22-11-2009, 10:40 AM
وعليكم السلام ورحمة الله
بارك الله فيك أخي Hani على التجاوب، فكرة جيدة
فعلا يتم إعداد التقرير من خلال المكون DataView للـ RaveReport الذي يستقي البيانات من DataSet، وبما أن هذه الأخيرة Filtred فالنتيجة إعداد تقرير بما هو محدد في الـ Filter.
كنت أحاول فعل ذلك من خلال الولوج إلى مكونات الـ Rave وتحديد عدد الأسطر بشيء مثل:
سأطرح ما قد يستفيد منه آخرون...
إذا كان التقرير يعرض كل سجل في صفحة منفردة يمكن عرض الصفحة الحالية بـ:
للتحكم في عرض التقرير والخيارات ضع مكون TRvSystem وحدد خصائصه، ثم اربط TRvProject معه،
مثل:
لتمرير براميترات:
وتضاف في Rave Designer من خاصية Parameters للصفحة (Page Component)، ثم تضاف في إحدى مكونات البيانات مثل: DataText في الخاصية DataField تحت Report Variables.
بارك الله فيك أخي hanipino.
بارك الله فيك أخي 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;مثل:
كود :
RvSystem.SystemPreview.FormState := wsMaximized;كود :
RvProject.SetParam('ParamName', 'Value');بارك الله فيك أخي hanipino.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...

