Вниз
Скачать: 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.021 c
14-1083794584
AlerX
2004-05-06 02:03
2004.05.30
RPG что происходит внутри


1-1084609360
KillOfCats
2004-05-15 12:22
2004.05.30
Delphi и HTML


14-1083930864
XsID
2004-05-07 15:54
2004.05.30
Линейное программирование


6-1081684143
iraizor
2004-04-11 15:49
2004.05.30
Чат в Интернете на сокетах


3-1084353383
Санёк
2004-05-12 13:16
2004.05.30
Как сделать чтобы LookupComboBox просто подставлял значения




   Наверх