Передать отмеченные строки из Grid в отчет

отредактировано 05:23 Раздел: FastReport VCL
Помогите передать отмеченные строки из Grid в отчет

Есть таблица. Выбираю отмеченные:
for I := 0 to gridView.ViewData.RecordCount - 1 do
begin
// только реальные записи
if not gridView.ViewData.Records.IsData then
begin
Continue;
end;

Как передать отмеченные в отчет?

Комментарии

  • отредактировано 05:23
    type
    TfrxDataSetGrid_cx = class(TfrxUserDataSet)
      private
        i: integer;
        F: boolean;
        fView: TcxCustomGridTableView;
        procedure DoFirst(Sender: TObject);
        procedure DoNext(Sender: TObject);
        procedure DoGetValue(const VarName: String; var Value: Variant);
        procedure DoCheckEOF(Sender: TObject; var Eof: Boolean);
      public
        constructor Create(AOwner: TComponent); override;
      published
        property View: TcxCustomGridTableView read fView write fView;
    end;
    
    constructor TfrxDataSetGrid_cx.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      OnCheckEOF := DoCheckEOF;
      OnFirst := DoFirst;
      OnGetValue := DoGetValue;
      OnNext := DoNext;
    end;
    
    procedure TfrxDataSetGrid_cx.DoCheckEOF(Sender: TObject; var Eof: Boolean);
    begin
      Eof := F or not Assigned(View);
    end;
    
    procedure TfrxDataSetGrid_cx.DoFirst(Sender: TObject);
    begin
      i := 0;
      F := false;
    end;
    
    procedure TfrxDataSetGrid_cx.DoGetValue(const VarName: String; var Value: Variant);
    var Item: TcxCustomGridTableItem;
    begin
      Item := View.FindItemByName(VarName);
      if not Assigned(Item) and (View.DataController is TcxGridDBDataController)
        then Item := TcxGridDBDataController(View.DataController).GetItemByFieldName(VarName);
      if Item = nil then raise Exception.Create('Invalid field name "'+VarName+'"');
      with View.DataController do
        Value := Values[FilteredRecordIndex[i],Item.Index];
    end;
    
    procedure TfrxDataSetGrid_cx.DoNext(Sender: TObject);
    begin
      with View.DataController do
        if I < FilteredRecordCount-1 then begin
          inc(i);
        end
        else F := true;
    end;
    
    initialization
      frxObjects.RegisterObject1(TfrxDataSetGrid_cx, nil, '', '', 0, 38);
    

    57035a28990c46238ce5546ec40cd017.png

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.