PDA

View Full Version : سوال: انتخاب فيلدها توسط كاربر در هنگام گزارشگيري



rezankh
چهارشنبه 01 آبان 1392, 16:07 عصر
با سلام
در بعضي برنامه‌ها ديدم كه كاربر فيلدهايي كه مي‌خواد چاپ بشند رو تيك دار ميكنه و نيز بازه شون رو مقداردهي مي‌كنه و در گزارش هم همون فيلدها چاپ مي‌شند كه ظاهرا اساتيد اسمشو گذاشتن گزارشگيري پويا، جستجو كردم چيزي دستگيرم نشد. البته با فيلتر كردنش هيچ مشكلي ندارم ولي اينكه به گزارشم بفهمونم كدوم فيلدها رو چاپ بگيره و كدومها رو نگيره مشكل دارم. ضمناً من از كريستال ريپورت 8.5 و اكسس استفاده مي‌كنم. اساتيدي كه در اين زمينه كار كردند، اگه ممكنه يك مثال كوچك در اين مورد بذاريد.
با تشكر

moghadam1372
پنج شنبه 02 آبان 1392, 06:42 صبح
باعرض سلام وخسته نباشید
من در محل کارم از این نوع کزارش استفاده می کنم ودر بالای گزارش کلیدی بنام تنظیمات گزارش گذاشته اند که باان یک فرم جدید باز می شود ود ران اسم فیلدها واندازه وفونت وراست چین وچپ چین ودیگر مزایا در ان است البته از برنامه نویس ان پرسیده ام گفته است که جدولی بنام تنظیمات است که این تنظیمات دران ذخیره می شود ودرزمان گزارشگیری گزارش مورد نظر از این تنظیمات استفاده می کند

rezankh
پنج شنبه 02 آبان 1392, 08:42 صبح
سلام
مثال من يك جدول با 10 فيلد a تا j رو دارم و حال كاربر فيلدهاي a-c-d-f-h رو انتخاب كرده و همين‌ها رو با فيلتري كه مي‌كنه، مي فرسته براي چاپ. مشكل من اينه كه به فايل گزارشم كه كريستال ريپورت هست چطوري بگم كه فقط اين فيلدها رو در Details گزارش قرار بده. دستور كدش رو مي‌خوام. در وي بي با كد نويسي ميشه مقدار يك فيلد فرمول رو در گزارش تغيير داد. حالا دستور قرار دادن كدوم فيلد در گزارش هم ممكنه؟

rezankh
پنج شنبه 02 آبان 1392, 15:28 عصر
سلام مجدد
الان يك فكر خوب به ذهنم رسيد اونم اينه كه بجاي 10 تا فيلدم، 10 تا فيلد فرمول درست كنم و اونها رو در قسمت Details گزارش قرار بدم. و سپس توي وي بي، مقدار هر فرمول رو فيلد انتخابي كاربر قرار بدم. اونوقت همون فيلدها فقط چاپ ميشند. فقط ميمونه پهناي هر ستون كه رو اينم كار ميكنم. البته هنوز اين كارو عملي نكردم و نميدونم ميشه يا نه. ايشاالا اگه درست شد يك نمونه سورسش رو مي ذارم.

moghadam1372
پنج شنبه 02 آبان 1392, 17:36 عصر
با سلام وخسته نباشی امید وارم که مشکلت حل شده باشد فکر خوبی کرده اید شدنی است شما می توانید که 10تا فیلد در details قرارداده ودر وی بی هر فیلدی که کاربر انتخاب کرد=با دیتا فورمت فیلد در کریستال باشد البته من با کریستا ل کارنکرده ام ولی در بعضی از مواقع در اکتیو ریپورت استفاده می کنم دیتا فورمت فیلد را در فرم وی بی به ان ابلاغ می کنم
مثلا
ActiveReport8.Field8.Text = Trim(Text10.Text)
ActiveReport8.Field8.DataField = "ali"

rezankh
پنج شنبه 02 آبان 1392, 19:17 عصر
همون روش بخوبي جواب داد فقط ميمونه تغيير اندازه هر ستون نسبت به فيلد انتخابي كه گير كردم. از كد زير براي ميزان چپ و راست در درون خود فيلد فرمول ميشه استفاده كرد ولي تغيير اندازه خودش رو پيدا نكردم.

crRept.FormulaFields.GetItemByName("a").Parent.RightMargin = 0

دوستان كسي ميدونه چطوري درستش كنم.

mohammadmowlavi
سه شنبه 29 بهمن 1392, 10:47 صبح
با سلام هنوز در این مورد به نتیجه نرسیده اید؟؟؟؟
بنده هم گیر این مسئله ام
با تشکر