Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
7-1082622973
serg128
2004-04-22 12:36
2004.05.30
Как сохранять всё, что печатается на принтере?


8-1079200504
Step[B.M.]
2004-03-13 20:55
2004.05.30
Кто работает с компоненами WaveAudio.


14-1082287615
panov
2004-04-18 15:26
2004.05.30
Взлом. Законность и моральные аспекты.


14-1083159353
SeriousSam
2004-04-28 17:35
2004.05.30
Помогите выбрать комп


6-1081852444
bit
2004-04-13 14:34
2004.05.30
Входящие подключения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский