delphi4arab منتديات دلفي للعرب

نسخة كاملة : إنشاء تقرير (Rave Report) للسجلات المحددة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
هل من طريقة لطباعة تقرير يظهر فقط السجلات المحددة من TDBGrid باستخدام Rave Report
بشيء مثل:
كود :
RvProject1.SelectReport('Report1'); for I := 0 to DBGrid1.SelectedRows.Count - 1 do begin /// ??? end; RvProject1.Execute;
شكرا مسبقا.
السلام عليكم

اخى kachwahed جرب فلترة كل ما تم تحديده فى DBgrid ثم قم بعملية الطباعة .
الله اعلم سيتم طباعة ماهو مفلتر فقط .
وعليكم السلام ورحمة الله
بارك الله فيك أخي 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.