مشاهدة النسخة كاملة : كيف تتم الطباعة من استعلام في الريف ريبورت
yahia1921
22-03-2010, 08:31 AM
سلام الله عليكم
سؤالي حول ما اذا انجزت مشروع كالتالي
جدول دبي قريد dbgrid
adodataset1
و datasource1
واذا كان لدي جدول استعلام كالتالي
adodataset1.Active:=false;
adodataset1.CommandText:=('SELECT journal12.[num-mag],journal12.[dat-jour],journal12.[num-prod],sum([qte-s-cons])as qtes,sum([qte-e-cons])as qtee FROM journal12 where [DAT-JOUR]= #' + maskEdit1.EditText + '# ' + 'and' +'[num-prod]='+maskedit2.Text+' GROUP BY [num-mag],[dat-jour],[num-prod]' );
adodataset1.Active:=true;
كيف تتم الطباعة من استعلام مع العلم انه لاتظهر بيانات في الريف ريبورت عند ربط
RvDataSetConnection1 مع adodataset1
ملاحظة: تم ربط الجدول بقاعدة البيانات فقط
استعمل ريف ريبورت 5
وقاعدة بيانات اكسس
kachwahed
22-03-2010, 09:17 AM
وعليكم السلام ورحمة الله
كيف تتم الطباعة من استعلام مع العلم انه لاتظهر بيانات في الريف ريبورت عند ربط
شرح الطباعة بـ Rave Report موجود في المنتدى
الطباعة باستخدام TRvProject...
السؤال غير واضح
yahia1921
22-03-2010, 10:25 AM
هذا شرح بالصور ابين فيه اين تخربطت علي الامور
1
http://img201.imageshack.us/img201/6884/40000877.png
2
http://img299.imageshack.us/img299/6476/93355844.png
3
http://img209.imageshack.us/img209/2476/39022649.png
yahia1921
22-03-2010, 10:26 AM
4
http://img201.imageshack.us/img201/9738/81785400.png
5
http://img221.imageshack.us/img221/8413/24167636.png
6
http://img34.imageshack.us/img34/8058/39463892.png
7
http://img191.imageshack.us/img191/2810/16565071.png
kachwahed
22-03-2010, 01:09 PM
تأكد من مكون adodataset1...
ماذا كتبت في الاستعلام، وهل هو مفتوح (Active)؟
yahia1921
22-03-2010, 01:20 PM
تأكد من مكون adodataset1...
ماذا كتبت في الاستعلام، وهل هو مفتوح (Active)؟
:cry:
هاهو الاستعلام اخي
adodataset1.Active:=false;
adodataset1.CommandText:=('SELECT journal12.[num-mag],journal12.[dat-jour],journal12.[num-prod],sum([qte-s-cons])as qtes,sum([qte-e-cons])as qtee FROM journal12 where [DAT-JOUR]= #' + maskEdit1.EditText + '# ' + 'and' +'[num-prod]='+maskedit2.Text+' GROUP BY [num-mag],[dat-jour],[num-prod]' );
adodataset1.Active:=true;
وطبعا ليس في حالة (Active)
لاحظ الكود
:blush:
kachwahed
22-03-2010, 06:46 PM
هل كتبت الاستعلام في Object Inspector من الخاصية CommandText؟؟؟
yahia1921
22-03-2010, 08:01 PM
هل كتبت الاستعلام في Object Inspector من الخاصية CommandText؟؟؟
لا اخي الكريم فكما تلاحظ في الكود المبين اعلاه ان الفلترة تتم لجدول حسب قيم متغيرة لا ثابتة اي استوردها من maskedit متواجدة في الفورم ولو كانت القيم ثابتة ولا تتغير لكتبتها مباشرة في
Object Inspector من الخاصية CommandText
لكن تجري الرياح بما لاتشتهي السفن
kachwahed
23-03-2010, 01:29 AM
لكن تجري الرياح بما لاتشتهي السفن
السفن لا تجري إن لم تكن هناك رياح!
إذا لم تقم بكتابة استعلام (أثناء التصميم) في CommandText فمن أين يأتيك الـ Rave Reports بالبيانات؟؟؟
مصمم التقارير Rave Reports يحتوي على مكون Data View الذي يستقي البيانات من TDataSet (في مثالك هي adodataset1) ويقوم بعرضها باستخدام مكونات العرض مثل: DataText...
لا بد من كتابة استعلام أثناء التصميم إذا أردت أن تشاهد النتائج على التقرير.
إذا فسؤالك: كيف نقوم بعرض بيانات في مصمم التقارير التي سيتم فرزها لاحقا؟
هناك طريقتين: إما تحذف الشرط WHERE من الاستعلام وبذلك تقوم بعرض جميع البيانات
أو تقوم بتحديد قيمتي الشرط WHERE ليتسنى لك معيانة النتائج في مصمم التقارير
والله أعلم.
yahia1921
23-03-2010, 02:12 AM
اخي الكريم ان قمت بنزع الشرط where
فلا يصبح استعلام وما فائدته
واذا قمت بتحديد قيم الشرط where فاذن بحرب ضروس قوامها اكثر من 300 استعلام وكل استعلام بزر
ومافائدة برنامج كهذا
هو فيه امكانية انا جربتها لكن في مكان الحقول الحسابية تظهر لي ' invalid'
واما عن الطريقة فكانت بانجاز جدول مشابه لنتيجة الاستعلام اي يحمل نفس الحقول
ونعمل عليه فلترة فكانت النتيجة ايجابية الى حد بعيد غير ان الحقول الحسابية تظهر كما سلف ذكره
kachwahed
23-03-2010, 07:11 PM
اخي الكريم ان قمت بنزع الشرط where
فلا يصبح استعلام وما فائدته
إفعل ذلك فقط أثناء تصميمك للبرنامج لـ:
يتسنى لك معيانة النتائج في مصمم التقارير
بالتوفيق.
yahia1921
23-03-2010, 10:37 PM
مشكور اخي على تفاعلك
نعم هو لا حل يوجد بالنسبة لهذه الحالة اذا يجب توفر الخاصيات
بارك الله فيك
saber-bsa
16-03-2011, 11:45 PM
السلام عليكم لقد واجهت نفس المسكلة ألا يوجد حل عملي او طريقة ما
لقد حاولت لكن دون فائدة
Lam.Abdeldjalil
19-03-2011, 03:56 PM
السلام عليكم
لم أفهم ما هو المشكل ؟ هل تريد إنشاء تقرير برمجيا ؟
saber-bsa
20-03-2011, 12:55 AM
ما هو المشكل ؟
كيف يمكن طباعة تقرير ناتج من إستعلام (adoquery) بارمتري
كما نعلم ان نتائج الإستعلام تخرج اثناء تفيذ البرنامج
لهذا لا يمكنني ان أصمم صفحة التقرير بحقول الفاتورة قبل التنفيذ
لانها غير موجودة !
Lam.Abdeldjalil
20-03-2011, 08:46 PM
السلام عليكم
ألق نظرة على :
فيديو شرح صنع تقارير ب rave raports (http://www.delphi4arab.com/forum/showthread.php?t=3686)
الدرس الثاني rave reports تصميم واجهات الصفحات (http://www.delphi4arab.com/forum/showthread.php?t=3718)
الدرس الثالث rave reports اعداد رأس و قدم الجسم (http://www.delphi4arab.com/forum/showthread.php?t=3730)
كما نعلم ان نتائج الإستعلام تخرج اثناء تفيذ البرنامج وكذلك في وقت التنفيذ :)
http://www.delphi4arab.com/forum/showpost.php?p=15939&postcount=9
ليكن في العلم أن RvDataSetConnection يتصل بأي كلاس منحدرة من TDataSet ـ (ADOTable/ADOQuery/ADODataSet) وبالتالي يحمل تسجيلاتها و التي يمكن الوصول إليها من DirectDataView في Rave
+ إذا أردت الطباعة/المعاينة دون إنشاء ملف التقرير ( برمجيا ) هذا مثال بإستخدام RvSystem
في الحدث OnPrint
procedure TForm1.RvSystem1Print(Sender: TObject);
begin
with Sender as TBaseReport do begin
NewLine;
SetFont('Arial',20);
FontColor := clRed;
PrintCenter('Dynamic Reporting in Rave',3);
NewLine;
NewLine;
ClearTabs;
// Column Header
SetTab(0.3, pjLeft, 0.5, 0, 0, 0);
SetTab(0.6, pjLeft, 1.1, 0, 0, 0);
SetTab(2.1, pjLeft, 1.0, 0, 0, 0);
SetTab(3.0, pjLeft, 1.0, 0, 0, 0);
SetFont('Arial', 10);
Bold := True;
// Column Header Captions
PrintTab('N°');
PrintTab('Client');
PrintTab('Nbr');
PrintTab('Note');
Bold := False;
NewLine;
ADODataSet1.first;
// Lines (Rows)
while not ADODataSet1.Eof do begin
Printtab(ADODataSet1.FieldByName('n').Text);
Printtab(ADODataSet1.FieldByName('client').Text);
Printtab(ADODataSet1.FieldByName('nbr').Text);
Printtab(ADODataSet1.FieldByName('note').Text);
newline;
ADODataSet1.Next;
if (LinesLeft < 4) and (not ADODataSet1.Eof) then begin
NewPage;
end;
end;
end;
end;
التنفيذ
RvSystem1.Execute;بالتوفيق
me&delphi
20-03-2011, 09:37 PM
هل منكم اخواني من جرب طباعة تقرير من خلال استعلام يحتوي على عدة جداول ...لأني غالبا أبرمج قواعد البيانات من خلال االدوت نت ... مجبر :( وأنوي أن أقنع زملائي بتجربة قواعد البيانات بلغة دلفي :smilie_xp:
Lam.Abdeldjalil
20-03-2011, 09:57 PM
السلام عليكم
طباعة تقرير من خلال استعلام يحتوي على عدة جداول لم أفهمها ؟ إذا كان بالإمكان التوضيح بمثال / صورة
me&delphi
20-03-2011, 10:07 PM
مثلا الطباعة من خلال هدا الاستعلام
Select n1,n2,n3 From Table1 INNER JOIN Table2 ON Table1.id=Table2.id
Lam.Abdeldjalil
20-03-2011, 10:20 PM
بالطبع يمكن :)
محرر التقارير لا يهمه الإستعلام من جدول أو من مئة (ربط داخلي / خارجي / كلي ....) بطريقة ( DirectDataView) كل ما يهمه هو نتيجة الإستعلام في الـ DataSet
+ جربت للتو طريقة Database Connection + Driver Data View تعمل أيضا :)
هل واجهت مشكل فيها ؟
me&delphi
20-03-2011, 10:42 PM
هل واجهت مشكل فيها ؟
ليس بعد أردت أن أستفسر قبل ان أحول أحد المشاريع من دوت نت الى دلفي...علما أخي الكريم Lam.Abdeldjalil سأستعمل ان شاء الله FastReport أعتقد أنه أفضل من Rave
Lam.Abdeldjalil
20-03-2011, 10:48 PM
في رأيي أيضا ، الـ FastReport أفضل و أكثر مرونة :)
بالتوفيق
me&delphi
20-03-2011, 10:51 PM
جزاك الله خيرا اخي Lam.Abdeldjalil
بالتوفيق .
vBulletin® , Copyright ©2008-2012