PDA

View Full Version : سوال: کار با Quick Report



ZonLine
سه شنبه 08 بهمن 1387, 19:22 عصر
با سلام خدمت دوستان عزیز
من می خوام با Quick Report کاری رو انجام بدم ولی از هر راهی که امتحان کردم نتیجه ی خوبی نگرفتم اگر کسی بتونه کمکم کنه ممنون می شم
و اما کاری که باید انجام بشه:
یک بانک اطلاعاتی داریم که دو جدول Master و Detail رو داره ، که بین این دو جدول یک ارتباط وجود داره از طریق فیلد کد که در جدول Master وجود داره که Primary Key هم هست ، فرض کنیم که در این جدول اطلاعاتی مربوط به اشخاص می باشد و هر شخص دارای یک کد است و اطلاعات آن شخص فقط یک بار در این جدول ذخیره گردیده و تکراری نمی باشد و در جدول Detail هم یک فیلد کد داریم که ارتباط رو با جدول Master برقرار می کنه و دو فیلد دیگر که برای هر شخصی که در جدول Master وجود داره ممکنه بینهایت رکورد در جدول Detail وجود داشته باشه ، حالا من از این دو جدول یک پرس جو (Quary) ساختم که درش فیلدهای جدول Master و Detail با هم ادغام شدند ، بدیهی است که در این پرس و جو به ازای هر رکوردی که در جدول Detail وجود داره اطلاعات جدول Master تکرار می شه و اگر هم که بخوام از این پرس و جو گزارش تهیه کنم باید برای اینکه مشخص بشه رکوردهای مربوط به جدول Detail مربوط به کدوم یکی از رکورد های جدول Master باید در هر خط رکورد های جدول Master هم آورده شوند که من می خوام این کار رو انجام ندم ولی در عوض در یک خط کد و فیلدهای دیگر جدول Master رو بیاره و زیر اون خط تمامی رکورد هایی که مربوط بهش هستند رو از جدول Detail بیاره و این کار رو تا پایان آخرین رکورد پرس و جو انجام بده.
ممنون می شم اگه کسی از دوستان بتونه کمکم کنه.

accpascal
سه شنبه 08 بهمن 1387, 21:07 عصر
1 - دو تا کوئری و یک دیتاسورس که دیتاست آن کوئری اول باشد در ریپورت بگذار در کوئری اول فقط جدول مستر را select کن و کوئری دوم همان کوئری خودت + یک دستور where بگذار که در آن id در کوئری دوم برابر با id در کویری اول البته بعنوان پارامتر باشد دینا سورس کوئری دوم را معادل دیتاسورس قرار بده
(where id=:id)
2 - یک qrband و یک qrsundetail در ریپورت بگذار
3 - دیتاست ریپورت و دیتاست فیلدهای مورد نیاز جدول مستر را را معادل کوئری مستر قرار بده
4 - دیتاست subband را معادل کوئری دیتیل قراربده
گمان کنم مشکلت حل شود البته اگر توضیحات گیج کننده ات را من درست فهمیده باشم

DelphiFriend
دوشنبه 14 بهمن 1387, 13:32 عصر
چطور میشه در Quick Report بین دو تا فیلد مثل نام و نام خانوادگی خط تیره کشید؟

mafazel
دوشنبه 14 بهمن 1387, 17:14 عصر
راه مستقیمی فکر نمی کنم داشته باشه، باید یک فیلد Calculated برای Table یا Query تعریف کنید که مقدارش برابر نام+ ' - ' + نام خانوادگی باشه بعد اونو به QRDBText بدید.

accpascal
سه شنبه 15 بهمن 1387, 09:22 صبح
چطور میشه در Quick Report بین دو تا فیلد مثل نام و نام خانوادگی خط تیره کشید؟
ازQrshape استفاده کن بدین ترتیب بین دو فیلد فوق یک qrshape بگذار و خواص زیر را برای آن در نظر بگیر
shape = qrsHorline
width = 5 (یا مقدار مناسب دیگر)
Top = 10 (برابر با نصف ارتفاع باند)
Height = 1

DelphiFriend
سه شنبه 15 بهمن 1387, 11:19 صبح
خوب حالا اگه به خواهیم یه خط اریب (با زاویه) بکشیم چه طور؟

mafazel
سه شنبه 15 بهمن 1387, 15:35 عصر
ازQrshape استفاده کن بدین ترتیب بین دو فیلد فوق یک qrshape بگذار و خواص زیر را برای آن در نظر بگیر
shape = qrsHorline
width = 5 (یا مقدار مناسب دیگر)
Top = 10 (برابر با نصف ارتفاع باند)
Height = 1
دوست عزیز روش شما ساده است و کار راه اندازه ولی اگر مثلا لازم باشه اول نام خانوادگی چاپ بشه بعد خط تیره بعد نام، اگر طول نام خانوادگی زیاد باشه میافته روی خطی که شما کشیدید. اگر هم طولش کم باشه فاصله می افته بین نام خانوادگی و خط تیره. هیچیک از اشیاء خاصیتی نداره که به شیئ قبلی بچسبه. در ثانی برای خط تیره یک QRLabel هم کافیه و متنش رو دو سه تا یا بیشتر زیر خط (Underline) میشه گذاشت.

DelphiFriend
سه شنبه 15 بهمن 1387, 17:23 عصر
دوست عزیز روش شما ساده است و کار راه اندازه ولی اگر مثلا لازم باشه اول نام خانوادگی چاپ بشه بعد خط تیره بعد نام، اگر طول نام خانوادگی زیاد باشه میافته روی خطی که شما کشیدید. اگر هم طولش کم باشه فاصله می افته بین نام خانوادگی و خط تیره. هیچیک از اشیاء خاصیتی نداره که به شیئ قبلی بچسبه. در ثانی برای خط تیره یک QRLabel هم کافیه و متنش رو دو سه تا یا بیشتر زیر خط (Underline) میشه گذاشت.

خوب دوست عزیز حرف شما درسته ولی در برنامه Rave شما حد مکانی که متن فیلد باید در اون قرار بگیره رو مشخص میکنید بخاطر همین اگه فیلد چاپی(مثل نام خانوادگی)بیشتر از اون بود تعداد کاراکتری که بیشتره میافته. و این مشکلی نیست بلکه برای ایجاد یه صفحه زیبا برای چاپ ضرورت داره !!!
اگه تو Quick Report هم بشه این کار رو کرد که خوبه. شما راهی دارید.

بعد هم برای داشتن صفحه ای جدول بنده شده و زیبا داشتن خطوطی که حد فاصل هر فیلد رو مشخص کنه لازمه مگه نه :متفکر::متفکر: