المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
السلام عليكم
هل من طريقة لطباعة تقرير يظهر فقط السجلات المحددة من TDBGrid باستخدام Rave Report
بشيء مثل:
كود :
RvProject1.SelectReport('Report1');
for I := 0 to DBGrid1.SelectedRows.Count - 1 do begin
/// ???
end;
RvProject1.Execute;
شكرا مسبقا.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
المشاركات : 378
المواضيع 44
:
: 6
الإنتساب : Feb 2008
السلام عليكم
اخى kachwahed جرب فلترة كل ما تم تحديده فى DBgrid ثم قم بعملية الطباعة .
الله اعلم سيتم طباعة ماهو مفلتر فقط .
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
وعليكم السلام ورحمة الله
بارك الله فيك أخي Hani على التجاوب، فكرة جيدة
فعلا يتم إعداد التقرير من خلال المكون DataView للـ RaveReport الذي يستقي البيانات من DataSet، وبما أن هذه الأخيرة Filtred فالنتيجة إعداد تقرير بما هو محدد في الـ Filter.
كنت أحاول فعل ذلك من خلال الولوج إلى مكونات الـ Rave وتحديد عدد الأسطر بشيء مثل:
كود :
var
Page: TRavePage;
Band: TRaveDataBand;
// Report: TRaveReport;
begin
with dm.RvProject do begin
Close;
SelectReport('ReportName', False);
// Report := ProjMan.FindReport('ReportName', False);
Page := ProjMan.FindRaveComponent('ReportName.MainPage', nil) as TRavePage;
Band := ProjMan.FindRaveComponent('DataBandName', Page) as TRaveDataBand;
Band.MaxRows := DBGrid1.SelectedRows.Count; //<-- Here
// Band.DataView.CurrentColumn := DataSet.RecNo; //<- This is ReadOnly property
Open;
Execute;
end;
سأطرح ما قد يستفيد منه آخرون...
إذا كان التقرير يعرض كل سجل في صفحة منفردة يمكن عرض الصفحة الحالية بـ:
كود :
RvSystem.SystemPrinter.FirstPage := DataSet.RecNo;
RvSystem.SystemPrinter.LastPage := DataSet.RecNo;
للتحكم في عرض التقرير والخيارات ضع مكون TRvSystem وحدد خصائصه، ثم اربط TRvProject معه،
مثل:
كود :
RvSystem.SystemPreview.FormState := wsMaximized;
لتمرير براميترات:
كود :
RvProject.SetParam('ParamName', 'Value');
وتضاف في Rave Designer من خاصية Parameters للصفحة (Page Component)، ثم تضاف في إحدى مكونات البيانات مثل: DataText في الخاصية DataField تحت Report Variables.
بارك الله فيك أخي hanipino.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...