منزل
Top.Mail.Ru Yandeks.Metrika
المنتدى: "القواعد";
الأرشيف الحالي: 2002.01.08;
تنزيل: [xml.tar.bz2];

إلى

المشكلة في ترجمة الطلب وإخراجه إلى QReport البحث عن فروع مماثلة


Andrey Pogorelov   (2001-12-02 10:49) [0]

هناك جداول 3
Table1 سجل الحيوانات
id
فيد
الفئة
--------------
معرف فيد الفئة
1 ، 1 ، 2
2 ، 1 ، 2
3 ، 2 ، 1
--------------
Table2 الأنواع الحيوانية
id
الاسم
--------------
1 ، الكلاب
2 ، القطط
--------------
Table3 - فئات الحيوانات
id
الاسم
--------------
1 ، الصفحة الرئيسية
2 ، بلا مأوى
--------------
من الضروري حساب عدد الحيوانات في قاعدة البيانات ، وعدد الأنواع المحلية والمشردة والنتائج الموضوعة في QReport
تلك تحصل في النموذج
بلا مأوى بلا مأوى
الكلاب 0 2
القطط 1 0
به: 3
المساعدة ضرورية جدا ، مقدما شكرا جزيلا لك.



asafr   (2001-12-03 15:14) [1]

خذ TQuery ، واسمه ، على سبيل المثال qr_Work. تكتب طلب: SELECT VID ، CATHEGORY ، COUNT (*) AS SUM_ FROM TABLE1 مجموعة من فيد ، كاثيجوري - تعلن أن هذا qr_Work مصدر لـ QReport. طلب النتيجة:
VID CATHEGORY SUM_
1 2 2
2 1 1

في QReport في DetailBand تقوم بذلك:
----------------------------------------
<- DetailHeader
VID Cathegory Sum_
----------------------------------------
<- فرقة التفاصيل
[QRLabel1] [QRLabel2] [QRDBText1]
----------------------------------------
QRDBText1 - الربط بحقل Sum_

في الأحداث QRLabel1 تكتب: الإجراء TForm1.QRLabel1Print (المرسل: TObject ؛ var القيمة: سلسلة) ؛ بدأ إذا qr_Work.FirldByName ("vid"). AsInteger = 1 ثم QRLabel1.Caption: = "Dogs" QRLabel1.Caption آخر: = "قطط" ينتهي.

على التوالي الإجراء TForm1.QRLabel2Print (المرسل: TObject ؛ var القيمة: سلسلة) ؛ بدأ إذا qr_Work.FirldByName ("cathegory"). AsInteger = 1 ثم QRLabel2.Caption: = "الصفحة الرئيسية" QRLabel2.Caption آخر: = "بلا مأوى" ينتهي.


حسنًا ، إجمالي: - يمكن العثور عليه بعدة طرق. إما استخدام QRExpr ، أو على QRDBText1Print ، أضف قيم Sum_ لكل سطر. قبل الطباعة مباشرةً ، لا تنسَ أن تفعل Sum _: = 0 - لأنه بعد ذلك ستتم إضافة قيم كل مطبوعة إلى بعضها البعض.




Dick Gonsales   (2001-12-04 03:14) [2]

تحقيق
/ * هنا ، اعتمادًا على الطريقة التي تريدها أن تبدو * /
/ * البديل 1 * /
SELECT T3.name ، T2.name ، عدد (T1. *)
من T3 ، T2 ، T1
أين T3.id = T1.categoria و T2.id = T1.vid
GROUP BY T3.name ، T2.name
UNION
SELECT T3.name ، "Total" ، count (T1. *)
/ * المساحة بحيث يعمل الترتيب حسب * بشكل صحيح * /
من T3 ، T1
أين T3.id = T1.categoria
GROUP BY T3.name
ترتيب حسب T3.name
/ * الفئة 1 View1 الكمية * /
/ * الفئة 1 View2 الكمية * /
/ * الفئة 1 Total Qty * /
/ * الفئة 2 View1 الكمية * /
/ * الفئة 1 View2 الكمية * /
/ * الفئة 1 Total Qty * /

/ * البديل 2 * /
SELECT T2.name ، T3.name ، عدد (T1. *)
من T3 ، T2 ، T1
أين T3.id = T1.categoria و T2.id = T1.vid
GROUP BY T2.name ، T3.name
UNION
SELECT T2.name ، "Total" ، count (T1. *)
من T2 ، T1
أين T2.id = T1.vid
GROUP BY T2.name
ترتيب حسب T2.name
/ * View1 Category1 qty * /
/ * View1 Category2 qty * /
/ * View1 Total Qty * /
/ * View2 Category1 qty * /
/ * View2 Category2 qty * /
/ * View2 Total Qty * /



قمت بتعليق الطلب في التقرير وترسم الحقول ،
ولكن من حيث المبدأ يمكنك استخدامها
دلفي ماجستير لإنشاء تقرير
باستخدام SELECT الموضح أعلاه ، وسوف يفعل كل شيء من أجلك.

يمكن استخدام الخيار الذي اقترح asafr
إذا كان لديك فئات وأنواع قليلة ولن تتغير ،
ل أنها مشفرة الثابت في التعليمات البرمجية. لا يهم هنا.



صفحات: 1 فرع كامل

المنتدى: "القواعد";
الأرشيف الحالي: 2002.01.08;
تنزيل: [xml.tar.bz2];

الطابق العلوي





الذاكرة: 0.56 ميغابايت
الوقت: 0.021 ج
1-22225
Reyst
2001-12-16 15:56
2002.01.08
لا أستطيع حفظ المورد إلى ملف


1-22154
مرسى
2001-12-20 15:42
2002.01.08
حذف محتويات الدليل


1-22150
Dimich
2001-12-20 13:22
2002.01.08
كيفية التمرير في لوحة


1-22226
غذاء
2001-12-15 13:06
2002.01.08
لماذا لا يعمل هذا الكود البسيط ...


1-22045
Socol
2001-12-15 17:14
2002.01.08
اكتب إلى الملف.





الأفريكانية الألبانية عربي الأرميني أذربيجان الباسكي البيلاروسية Bulgarian التشيكية الصينية المبسطة) تقاليد صينية) الكرواتية التشيكية دانماركي Dutch English الإستونية الفلبينية Finnish جيب
الجاليكية الجورجية الألمانيّة اليونانيّة الكريولية الهايتية اللغة العبرية الهندية الهنغارية أيسلندي Indonesian الأيرلندية Italian اليابانيّة الكوريّة اللاتفية اللتوانية المقدونية الملايو المالطية Norwegian
اللغة الفارسية بولنديّة البرتغاليّة رومانية Russian صربي السلوفاكيّة سلوفيني إسباني السواحيلي Swedish Thai التركية الأوكراني الأردية الفيتنامية ويلزي اليديشية البنغالي البوسنية
السيبيونو الاسبرانتو الغوجاراتية الهوسا همونغ الإيبو جاوي الكانادا الخمير لاو لاتينية الماوري المهاراتية المنغولية النيبالية البنجابية الصومالية التاميل التيلجو اليوروبا
زولو
Английский Французский ألماني Итальянский البرتغالية Русский Испанский