PDA

View Full Version : مشکل نشان دادن ایکیو ال sum(price) as pri در کوئیک ریپورت؟



jirjirakk
دوشنبه 19 آبان 1382, 13:12 عصر
من یک اس کیو الی به صورت زیر نوشته ام


select code,sum(price) as pri,darsad,name,family,father,shsh
from "user","user_bank"
where user.code=user_bank.code
Group By Code
Order By Code

من توی QRDBText کوئیک ریپورت میتونم مقدار فیلد pri رو داشته باشم و جمع مبلغ ها رو به من نشون میده
اما وقتی توی QRExpr میخوام از اون استفاده کنم مقدار فیلد رو نمیتونه به من نشون بده (با فیلد های دیگه مشکلی نداره و اونا رو به درستی نشون میده)
من میخوام توی QRExpr مقدار pri * darsad تقسیم بر 10 رو انجام بدم اما اصلا مقدار pri رو نمیشناسه :?:

phantasm
دوشنبه 19 آبان 1382, 16:27 عصر
فکر کنم چون pri یه نام مجازی برای مجموع فیلدهای price هست و همچین فیلدی وجود نداره QRExpr اونو نمیشناسه

ببین اگه pri رو بعد محاسبه ذخیره کنی و مقدارشو به QRExpr بدی مشکلت حل میشه :roll:

jirjirakk
دوشنبه 19 آبان 1382, 17:30 عصر
میشه یه راهنمایی کنید
راستی Field pri is of unknow type رو میده
( :: خیلی عجله دارم. مرسی :: )

jirjirakk
دوشنبه 19 آبان 1382, 17:39 عصر
چند جای دیگه هم دنبال این مشکل گشتم اما جوابی پیدا نکردم :cry:
این ها هم همین مشکل رو داشتن
http://dbforums.com/arch/118/2003/8/737131

phantasm
دوشنبه 19 آبان 1382, 18:00 عصر
با خو د sum(price) کار کن فکر کنم مشکل حل شه یعنی توی QRExpr بجای اینکه از pri استفاده کنی از sum(price) استفاده کن البته من تا حالا با QRExpr کار نکردم برای همین مطمین نیستم :roll:

jirjirakk
دوشنبه 19 آبان 1382, 18:05 عصر
اگه اشتباه نکنم یه فکرایی به سرم زده امتحان کنم خبرشو میدم :mrgreen:

jirjirakk
دوشنبه 19 آبان 1382, 18:32 عصر
نشد :cry:
این کار رو میخواستم بکنم

select code,sum(price)*10,name,family,father,shsh
که نشد پیام خطا میده

این رو هم بخونید اگه درست باشه من چی کار کنم


A. No, you can not do this with the QRExpre expression controls. The QRExpr component has a master property that gets set to the report or to a subdetail, you can't set the Master to multipel items. You would have to calculate the sum in code and assign the value to a QRLabel component.

اما من قراره روی فیلد های مبالغ محاسبات انجام بدم

phantasm
دوشنبه 19 آبان 1382, 20:59 عصر
سلام
jirjirak خان راهش رو پیدا کردی یا من بگم :wink:
راهش خیلی راحته :


QRExpr1.Expression:=query1.FieldValues['sum of price'];

اگه بازم مشکلی بود مطرح کن :wink:

baabi
سه شنبه 20 آبان 1382, 21:42 عصر
با سلام
یه راه دیگه هم هست که شاید جواب بده و اون اینکه ( البته اگه از یه TQuery جدا برای اینکار استفاده میکنی ) یه فیلد محاسباتی بسازی که توی بقیه برنامه هم بتونی از اون استفاده کنی.

jirjirakk
سه شنبه 20 آبان 1382, 22:18 عصر
1- این کار رو تو FastReport تونتستم انجام بدم اما با FR چون کار نکردم و ...
2- اون روش بالایی که جواب نداد
3- بابی منظورتو نمیفهمم :?: میشه یه خورده بیشتر ...
4- هر کی چیزی به زهنش میرسه بگه ببینم چه خاکی میتونم بسرم بریزم :cry:

phantasm
سه شنبه 20 آبان 1382, 22:46 عصر
من خودم امتحانش کردم جواب داد. :shock: البته لازمه as pri رو از توی کویری ت حذف کنی

jirjirakk
چهارشنبه 21 آبان 1382, 00:15 صبح
بازم جواب نداد (انگاری نمیهخواد با من راه بیاد :cry: )

من کد زیر رو نوشتم

اما این پیام خطا رو به من نشون داد

phantasm
چهارشنبه 21 آبان 1382, 05:43 صبح
حالا یه راه دیگه : :wink:
به فرم ت یه qrdbtext اضافه کن و فقط این query رو توی query1 وارد کن:


select sum(price)
from "user","user_bank"
where user.code=user_bank.code
Group By Code
Order By Code

و qrdbtext رو به query1 متصل کن خود دلفی بصورت اتوماتیک فیلدdatafield ازqrdbtext رو باید پر کنه ببین اونجا چی نوشته؟؟؟؟

baabi
چهارشنبه 21 آبان 1382, 19:46 عصر
سلام دوست عزیز.
میخوام اطلاعات کم خودم رو بگم:
شما برای اینکار باید از یه کامپوننت جدا استفاده کنی ( یه TQuery سوای بقیه ) . بعد هم یه مثال از Select خودت رو در sql اون در زمان طراحی بنویس و بعد روی Tquery خودت دابل کلیک کنی تا پنجره Fields Editor بیاد . روی این پنجره راست کلیک کن و َ addallfields رو انتخاب کن تا تمام فیلدهات بیان. حالا در حالی که query بسته است ، روی همان پنجره Fields Editor کلیک راست کن و New Field رو انتخاب کن . خالا یه فیلد از نوع Calculated بساز و در event های query روی oncalcfields برو و مقدار این فیلد جدید رو با توجه به فرمولت تعیین کن .
در ضمن اسم فیلدت رو همدر query با فاصله انتخاب نکن( چه کاریه ؟ ) .
امیدارم مشکلت حل بشه.

jirjirakk
شنبه 24 آبان 1382, 21:03 عصر
phantasm جان مرسی از این که با صبر و حوصله جواب منو دادی :oops:

من با گرفتن کوئری زیر و نشون دادن اون توی یک QRDBText مشکلم حل شد (محاسبات رو توی خود اس کیو ال انجام دادم به جای انجام عملیات در QRExpr)


select code,sum(price/(darsad*10)) as pri,darsad,name,family
from "user","user_bank"
where user.code = user_bank.code
Group By Code

بازم از همتون تشکر میکنم :oops: