سلام دوستان
آیا امکان دارد در فست ریپورت باند MasterData را مجبور کنیم اگر حتی فقط یک ردیف دیتا در کوئری داشت، حداقل 10 ردیف داشته باشد ولی بقیه خالی باشد. چیزی شبیه RowCount در StringGrid؟
ضمیمه 155931
Printable View
سلام دوستان
آیا امکان دارد در فست ریپورت باند MasterData را مجبور کنیم اگر حتی فقط یک ردیف دیتا در کوئری داشت، حداقل 10 ردیف داشته باشد ولی بقیه خالی باشد. چیزی شبیه RowCount در StringGrid؟
ضمیمه 155931
با سلام خدمت دوستان
من به روش زیر مسئله را برای خودم حل کردم.
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.qryTanzimatSystemTa b2TedadRadifHavale.AsInteger then begin
EnableControls;
frmSabtHavale2.qryChapRizHavaleTemp2.Open;
exit;
end;
frmSabtHavale2.qryRizHavaleTemp.Next;
end;
finally
EnableControls;
end;
end;
end;
راه جالبی بود
اما یعنی خود فست ریپورت با اون عظمتش (:خجالت:) چنین امکانی نداره؟
با سلام خدمت دوستان
عرض کردم من نمیدانم. البته همبن کد بالا هم میتوان بخش مربوطه به رکوردهای خالی را حلاصه نویسی کرد و فقط فیلد ردیف را فعال و بقیه فیلدها خالی را حذف کرد. و حتی از راههای دیگر هم استفاده نمود.