Topic: [Отчет] Отправить в отчет только выбранные записи в TableGrid

Пример, как отправлять в отчет, только выбранные записи в TableGrid



procedure Form1_bSQLReport_OnClick (Sender: string; var Cancel: boolean);
var
    i,c: integer;
    s: string;
begin
    s := '';
    Form1.bSQLReport.dbSQL := 'SELECT lastname, firstname, strftime(''%m/%d/%Y'', dateofbirth) as dateofbirth FROM employees';
    c := Form1.GridEmployees.RowCount-1;

    for i := 0 to c do
    begin
        if Form1.GridEmployees.Selected[i] then s := s + 'employees.id='+IntToStr(Form1.GridEmployees.dbIndexToID(i)) + ' OR ';
    end;

    if s <> '' then
    begin
        SetLength(s, Length(s)-4);
        Form1.bSQLReport.dbSQL := Form1.bSQLReport.dbSQL + ' WHERE ' + s;
    end;
end;


begin
    Form1.GridEmployees.Options := Form1.GridEmployees.Options + goMultiSelect;
end.


Проект с примером:

Post's attachments

Attachment icon Employees - Multiselect for report.zip 97.83 kb, 1357 downloads since 2015-04-30 

Dmitry.

Re: [Отчет] Отправить в отчет только выбранные записи в TableGrid

Everything is clear but the role function "SetLength" and number 4 from office "Length (s) -4"? Thank you!

SetLength(s, Length(s)-4);

Re: [Отчет] Отправить в отчет только выбранные записи в TableGrid

To remove extra 4 characters
' OR '

Dmitry.

Re: [Отчет] Отправить в отчет только выбранные записи в TableGrid

Thank you!
Crystal smile)