Topic: выбрать нужную колонку в гриде

Ув. Дмитрий. На форуме я нашел проект , в котором при выборе на чекбокс убирается или вставляется нужная колонка в гриде. Это есть хорошо. Но есть одна проблема. При отправке в экзель данные всех колонок отоброжаются, хотя она не была выбрана. Ка можно сделать так чтобы в экзель отправилась данные которые видимы на данный момент. Проект прилагается.

Post's attachments

Attachment icon Grid with select need columns.rar 5.35 kb, 449 downloads since 2015-12-10 

Re: выбрать нужную колонку в гриде

К сожалению данное действие нельзя настроить, могу только предложить с помощью скрипта не скрывать колонки, а удалять не  нужные

Form1.TableGrid1.Columns.Delete(0); // удалит первую колонку
Dmitry.

3 (edited by pha1984 2015-12-12 04:44:05)

Re: выбрать нужную колонку в гриде

DriveSoft wrote:

К сожалению данное действие нельзя настроить, могу только предложить с помощью скрипта не скрывать колонки, а удалять не  нужные

Form1.TableGrid1.Columns.Delete(0); // удалит первую колонку

procedure Form1_CheckBox1_OnClick (Sender: string);
begin
    if Form1.GridEmployees.Columns.Count >= 3 then
    begin
        Form1.GridEmployees.Columns[0].Delete := Form1.CheckBox1.Checked;
        Form1.GridEmployees.Columns[1].Delete := Form1.CheckBox2.Checked;
        Form1.GridEmployees.Columns[2].Delete := Form1.CheckBox3.Checked;
    end;
end;

procedure Form1_GridEmployees_OnChange (Sender: string);
begin
    Form1.GridEmployees.Columns[0].Delete := Form1.CheckBox1.Checked;
    Form1.GridEmployees.Columns[1].Delete := Form1.CheckBox2.Checked;
    Form1.GridEmployees.Columns[2].Delete := Form1.CheckBox3.Checked;
end;

С этим скриптом не получается, как его поправить?

Re: выбрать нужную колонку в гриде

Таким скриптом не получиться это реализовать, вам просто нужно удалить не нужные колонки. К сожалению я не смогу вам написать рабочий скрипт для вашего случая.

Dmitry.

Re: выбрать нужную колонку в гриде

Вы правы, мне надо удалить колонки в том случае если они не нужны при выводе их в экзель, но если мне понадобиться обратно то как их вернуть обратно?

Re: выбрать нужную колонку в гриде

чтобы вернуть обратно, вызовите метод dbUpdate
например:

Form1.TableGrid1.dbUpdate;  

для кнопки, которая экспортирует данные в Excel, можете создать события OnClick и OnAfterClick

procedure Form1_Button6_OnClick (Sender: string; var Cancel: boolean);
begin
    Form1.GridAbonent.Columns.Delete(0); // удаляем колонку, перед тем как отправить данные из грида в Excel
end;

procedure Form1_Button6_OnAfterClick (Sender: string);
begin
    Form1.GridAbonent.dbUpdate; // восстанавливаем колонки, после того как данные попали в Excel
end;
Dmitry.

Re: выбрать нужную колонку в гриде

ок, спс, большое, попробую

8 (edited by borsai 2016-01-05 17:13:26)

Re: выбрать нужную колонку в гриде

DriveSoft wrote:

К сожалению данное действие нельзя настроить, могу только предложить с помощью скрипта не скрывать колонки, а удалять не  нужные

Form1.TableGrid1.Columns.Delete(0); // удалит первую колонку

Есть ли возможность в программе,  в которой при выборе на чекбокс убирается или вставляется нужная колонка в гриде, что бы действия сохранялись после выхода из программы ? Т.е. сам пользователь настроил как ему удобно и при этом сохранилось после выхода.


Updade

Если нет, возможно ли в настройках прав пользователей прописать каждый чекбокс ?

Спасибо

Re: выбрать нужную колонку в гриде

borsai
Вы можете сохранять и загружать информацию из системного реестра, посмотрите пожалуйста в качестве примера этот проект, который сохраняет и восстанавливает позицию и размер окон.
http://myvisualdatabase.com/forum/misc. … download=1

Dmitry.