Малко помощ за TQuickRep ...
3 отговора
135 прегледа
Малко помощ за TQuickRep ...
имам си една формичка от която искам да принтвам...
Т.е.
TForm1.cmdPrintClick(Sender: TObject);
var i:Double;
begin
inherited;
with TQREP.Create(self) do begin
//Set the two Datasets not activated
DsTables.Active:=False;
DsTables.CachedUpdates:=False;
DsTables.ClearVariables;
DsTables.SetVariable('owner', cmbDBUserName.text);
i:=0;
DsTables.Active:=True;
if not DsTables.IsEmpty then begin
i:=DsTables.RecordCount;
//Loop all tables for the current Owner
with DsTables do begin
First;
while not EOF do begin
//Loop each Table and find column name and data type
DsTableDet.Active:=False;
DsTableDet.ClearVariables;
DsTableDet.CachedUpdates:=false;
DsTableDet.SetVariable('table_name', DsTablesTABLE_NAME.asString);
DsTableDet.Active:=True;
with DsTableDet do begin
first;
while not EOF do begin
//
next;
end;
end;
next;
end;
end;
QREP.ReportTitle:=' OWNER: ' + cmbDBUserName.Text + ' COUNT TABLES '+ FloatToStr(i);
qrep.Preview;
//After preview close the datasets
dstables.Active:=False;
DsTableDet.Active:=False;
end
else
ShowMessage('THE ORACLE USER : ' +cmbDBUserName.Text + ' HAVE NO TABLES');
//Close the quick report
free;
end;
end;
На тъпия TQREP си имам един Банд с BandType rddetail и вътре са ми TQRDBText сетнати със съответиния DataSet i DataField...
Отваря се .... и нищо не ми показва от данните...Мастер данните, които в случая намирам с DsTables
Къде бъркам да му се невиди
Четох из хелповете ама ....
Явно съм много тъпа...

Т.е.
TForm1.cmdPrintClick(Sender: TObject);
var i:Double;
begin
inherited;
with TQREP.Create(self) do begin
//Set the two Datasets not activated
DsTables.Active:=False;
DsTables.CachedUpdates:=False;
DsTables.ClearVariables;
DsTables.SetVariable('owner', cmbDBUserName.text);
i:=0;
DsTables.Active:=True;
if not DsTables.IsEmpty then begin
i:=DsTables.RecordCount;
//Loop all tables for the current Owner
with DsTables do begin
First;
while not EOF do begin
//Loop each Table and find column name and data type
DsTableDet.Active:=False;
DsTableDet.ClearVariables;
DsTableDet.CachedUpdates:=false;
DsTableDet.SetVariable('table_name', DsTablesTABLE_NAME.asString);
DsTableDet.Active:=True;
with DsTableDet do begin
first;
while not EOF do begin
//
next;
end;
end;
next;
end;
end;
QREP.ReportTitle:=' OWNER: ' + cmbDBUserName.Text + ' COUNT TABLES '+ FloatToStr(i);
qrep.Preview;
//After preview close the datasets
dstables.Active:=False;
DsTableDet.Active:=False;
end
else
ShowMessage('THE ORACLE USER : ' +cmbDBUserName.Text + ' HAVE NO TABLES');
//Close the quick report
free;
end;
end;
На тъпия TQREP си имам един Банд с BandType rddetail и вътре са ми TQRDBText сетнати със съответиния DataSet i DataField...
Отваря се .... и нищо не ми показва от данните...Мастер данните, които в случая намирам с DsTables
Къде бъркам да му се невиди
Четох из хелповете ама ....
Явно съм много тъпа...
Редактирано от Aйeз Ceдaй на
Re: Малко помощ за TQuickRep ...
Забърках се в кода.
Сложи го между pre и /pre (с [] разбира се).
Пък и защо създаваш QuickReport- а динамично. Давай по мързеливия начин.
Тогава (една форма с репорта в нея) се тества по- лесно. Слагам един DBGrid и го закачам за таблицата и гледам дали данните идват. Дори в дизайн режим.
Освен това провери дали самият QuickReport има зададено пропърти DataSet.
Трябва да ти е основната таблица.
Tова с обхождането (циклите) на таблиците не мога да го разбера.
Всичко което му трябва на QuickReport- а е активиран DataSet и DB компоненти закачени за полетата му. Той сам си фечва данните от рекордсета.
Сложи го между pre и /pre (с [] разбира се).
Пък и защо създаваш QuickReport- а динамично. Давай по мързеливия начин.
Тогава (една форма с репорта в нея) се тества по- лесно. Слагам един DBGrid и го закачам за таблицата и гледам дали данните идват. Дори в дизайн режим.
Освен това провери дали самият QuickReport има зададено пропърти DataSet.
Трябва да ти е основната таблица.
Tова с обхождането (циклите) на таблиците не мога да го разбера.
Всичко което му трябва на QuickReport- а е активиран DataSet и DB компоненти закачени за полетата му. Той сам си фечва данните от рекордсета.
Редактирано от vido на
Re: Малко помощ за TQuickRep ...
идеята ми е че в зависимост от userа Oracle ти намира всички таблици и за всяка таблица да ти отпечата columns и datatype. Затова и рипорта е динамичен.
С грида всичко си идва наред....
и да има си дата сет и т.н.
и пак не ще...
хм.... ровенето започва с нови сили и ентусиазъм...

С грида всичко си идва наред....
и да има си дата сет и т.н.
и пак не ще...
хм.... ровенето започва с нови сили и ентусиазъм...
Re: Малко помощ за TQuickRep ...
Мдаааа, ровенето бе полезно...
рипорта трябвало да бъде върху форма....
сега си работи джете....
рипорта трябвало да бъде върху форма....
сега си работи джете....