masoode
یک شنبه 14 مرداد 1403, 16:05 عصر
سلام دوستان
آیا امکان دارد در فست ریپورت باند MasterData را مجبور کنیم اگر حتی فقط یک ردیف دیتا در کوئری داشت، حداقل 10 ردیف داشته باشد ولی بقیه خالی باشد. چیزی شبیه RowCount در StringGrid؟
155931
khoshblagh
دوشنبه 15 مرداد 1403, 10:53 صبح
با سلام خدمت دوستان
من به روش زیر مسئله را برای خودم حل کردم.
1 - استخراج تعداد رکودهای موجود برای این فرم در قالب کونری.
2- انتقال این رکودها به یک فایل temp table .
3 - خواندن فست ریپورت از این فایل temp . برای من این فرم تعداد 7 رکود بیشتر نمایش داده نمی شود. و البته فرضا اگر 3 رکورد اطلاعات باشد در اینصورت 4 رکود خالی به آن فرم اضافه می شود.
procedure MakTableTempt2;var intRadifHavale:integer;
begin
//==========================================
frmSabtHavale2.cmdSaveData.CommandText:='IF OBJECT_ID(''tempdb..#ChapRizHavaleTemp2'') IS NOT NULL '+
'DROP TABLE #ChapRizHavaleTemp2';
frmSabtHavale2.cmdSaveData.Execute ;
//==========================================
frmSabtHavale2.cmdSaveData.CommandText:='CREATE TABLE #ChapRizHavaleTemp2('+
'IDRizHavale Smallint IDENTITY,'+
'NoaFahrest TinyInt,'+
'IDPayman Smallint,'+
'IDPaziresh Smallint,'+
'IDKhodro smallint,'+
'IDKala Smallint,'+
'ShomarHavale int,'+
'TarikhHavale nchar(10),'+
'CodKala NVarChar(10),'+
'NamKala NVarChar(80),'+
'WahedGheta TinyInt,'+
'NamWahedGheta NVarChar(10),'+
'Tedad Float,'+
'Price1 Bigint,'+
'JamPrice bigint,'+
'TahvilGer smallint,'+
'TasvibCon smallint,'+
'RadifHavale smallint'+')';
frmSabtHavale2.cmdSaveData.Execute ;
frmSabtHavale2.qryChapRizHavaleTemp2.close;
frmSabtHavale2.qryChapRizHavaleTemp2.Open;
intRadifHavale:=0;
with frmSabtHavale2.qryRizHavaleTemp do
begin
DisableControls;
try
frmSabtHavale2.qryRizHavaleTemp.First;
while True do
begin
frmSabtHavale2.qryChapRizHavaleTemp2.Append;
if not frmSabtHavale2.qryRizHavaleTemp.eof then begin
frmSabtHavale2.qryChapRizHavaleTemp2RadifHavale.Va lue:=intRadifHavale+1;
frmSabtHavale2.qryChapRizHavaleTemp2ShomarHavale.V alue:=frmSabtHavale2.qryRizHavaleTempShomarHavale. AsInteger;
frmSabtHavale2.qryChapRizHavaleTemp2TarikhHavale.V alue:=frmSabtHavale2.qryRizHavaleTempTarikhHavale. AsString;
frmSabtHavale2.qryChapRizHavaleTemp2CodKala.Value: =frmSabtHavale2.qryRizHavaleTempCodKala.AsString;
frmSabtHavale2.qryChapRizHavaleTemp2NamKala.Value: =frmSabtHavale2.qryRizHavaleTempNamKala.AsAnsiStri ng;
frmSabtHavale2.qryChapRizHavaleTemp2NamWahedGheta. Value:=frmSabtHavale2.qryRizHavaleTempNamWahedGhet a.AsAnsiString;
frmSabtHavale2.qryChapRizHavaleTemp2Tedad.Value:=f rmSabtHavale2.qryRizHavaleTempTedad.AsFloat;
end
else begin
frmSabtHavale2.qryChapRizHavaleTemp2RadifHavale.Va lue:=intRadifHavale+1;
frmSabtHavale2.qryChapRizHavaleTemp2ShomarHavale.V alue:=0;
frmSabtHavale2.qryChapRizHavaleTemp2TarikhHavale.V alue:='';
frmSabtHavale2.qryChapRizHavaleTemp2CodKala.Value: ='';
frmSabtHavale2.qryChapRizHavaleTemp2NamKala.Value: ='';
frmSabtHavale2.qryChapRizHavaleTemp2NamWahedGheta. Value:='';
frmSabtHavale2.qryChapRizHavaleTemp2Tedad.Value:=0 ;
end;
frmSabtHavale2.qryChapRizHavaleTemp2.Post;
intRadifHavale:=intRadifHavale+1;
if intRadifHavale>=frmSabtHavale2.qryTanzimatSystemTab2TedadRadifHav ale.AsInteger then begin
EnableControls;
frmSabtHavale2.qryChapRizHavaleTemp2.Open;
exit;
end;
frmSabtHavale2.qryRizHavaleTemp.Next;
end;
finally
EnableControls;
end;
end;
end;
masoode
دوشنبه 15 مرداد 1403, 11:24 صبح
راه جالبی بود
اما یعنی خود فست ریپورت با اون عظمتش (:خجالت:) چنین امکانی نداره؟
khoshblagh
سه شنبه 16 مرداد 1403, 11:30 صبح
با سلام خدمت دوستان
عرض کردم من نمیدانم. البته همبن کد بالا هم میتوان بخش مربوطه به رکوردهای خالی را حلاصه نویسی کرد و فقط فیلد ردیف را فعال و بقیه فیلدها خالی را حذف کرد. و حتی از راههای دیگر هم استفاده نمود.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.