Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: 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 вся ветка

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
1-1084619254
DimonNew
2004-05-15 15:07
2004.05.30
передача свойст объектов в качестве параметров процедуры


7-1081744606
random
2004-04-12 08:36
2004.05.30
Как сохранить изменения


4-1082564288
bOSE
2004-04-21 20:18
2004.05.30
завершение сеанса в w2k/xp


3-1083711368
Dark Man
2004-05-05 02:56
2004.05.30
Работа с SQL Server 2000 из под Delphi 5


3-1083742577
KillOfCats
2004-05-05 11:36
2004.05.30
DBF