Вниз
Скачать: CL | DM;

Отчет в QReport на основе Select в DBGridEh   Найти похожие ветки 

← →
gu_est   (2004-04-29 21:33) [0]

Вечер добрый мастера!
Подскажите как реализовать отчет в QReport на основе не всего DataSet, а на основе записей выделенных Мультиселектом в DBGridEh который с ним связан?


← →
Jack128 ©   (2004-04-29 21:59) [1]

проверь в деталБанд.OnBeforePrint выделена ли текущая запись в гриде и соответственно PrintBand := True или False

или ручками (см OnNeedData)


← →
gu_est   (2004-05-02 11:14) [2]

Я сейчас может быть глупость спрошу... Ногами не бейте.
А как проверить выделена ли текущая запись в гриде или нет?


← →
gu_est   (2004-05-04 17:38) [3]

Так как всетаки проверить выделена ли текущая запись в DBGrid?


← →
Плохиш   (2004-05-04 18:00) [4]

SelectedRows + F1


← →
Jack128 ©   (2004-05-04 18:06) [5]

Вобщем вот пример

unit uTestReport;

interface

uses Windows, SysUtils, Messages, Classes, Graphics, Controls,
 StdCtrls, ExtCtrls, Forms, Quickrpt, QRCtrls;

type
 TTestReport = class(TQuickRep)
   QRBand1: TQRBand; // Детайл бенд
   QRLabel1: TQRLabel; // qrLabel на этом бенде
   procedure QuickRepNeedData(Sender: TObject; var MoreData: Boolean);
   procedure QuickRepBeforePrint(Sender: TCustomQuickRep;
     var PrintReport: Boolean);
 private
   // Текущий индекс в массиве SelectedRows
   FCurrIndex: Integer;
 public

 end;

var
 TestReport: TTestReport;

implementation

uses
 uMainUnit;

{$R *.DFM}

procedure TTestReport.QuickRepNeedData(Sender: TObject;
 var MoreData: Boolean);
begin
 MoreData := FCurrIndex < Form1.DBGrid1.SelectedRows.Count;
 with MainForm.DbGrid1, DataSource.Dataset do
 begin
   GotoBookmark(Pointer(SelectedRows[FCurrIndex]));
   QRLabel1.Caption := Fields[0].AsString;
 end;
 inc(FCurrIndex);
end;

procedure TTestReport.QuickRepBeforePrint(Sender: TCustomQuickRep;
 var PrintReport: Boolean);
begin
 FCurrIndex := 0;
end;

end.


← →
gu_est   (2004-05-04 18:56) [6]

Спасибо!
Получилось.
Только добавил проверочку,
procedure TTestReport.QuickRepNeedData(Sender: TObject;
var MoreData: Boolean);
begin
MoreData := FCurrIndex < Form1.DBGrid1.SelectedRows.Count;
if MoreData then
begin
 with MainForm.DbGrid1, DataSource.Dataset do
 begin
   GotoBookmark(Pointer(SelectedRows[FCurrIndex]));
   QRLabel1.Caption := Fields[0].AsString;
 end;
 inc(FCurrIndex);
end;
end;

а то отправляет на несуществующую закладку.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
11-1072086191
Tenac
2003-12-22 12:43
2004.05.30
Что будет после KOL? И как сново сделать все как было


1-1084681278
tamroF
2004-05-16 08:21
2004.05.30
__________опять DLL


3-1083873489
SergP
2004-05-06 23:58
2004.05.30
SQL запрос для двух таблиц (добавление и удаление)


14-1084038401
проходил мимо
2004-05-08 21:46
2004.05.30
Delphi 8


14-1084455951
RealRascal
2004-05-13 17:45
2004.05.30
Баг компилятора дельфи?




   Наверх