Форум: "Базы";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];
ВнизОтчет в 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c