PDA

View Full Version : جستجو بر اساس ایتم های انتخابی کاربر



ShimaSh
سه شنبه 18 اردیبهشت 1386, 08:25 صبح
سلام.

می خواهم بر اساس آیتم های انتخابی توسط کاربر که با چک باکس مشخص شده گزارش گیری کنم. کاربر می تونه تمام موارد را چک بزنه یا تنها یک مورد رو انتخاب کنه.
13مورد انتخابی دارم.
ممکنه لطفا بگید چه کنم!! :ناراحت:

مــــمنون شیمــا

iman_s52
سه شنبه 18 اردیبهشت 1386, 09:00 صبح
خوب
شما می تونین از کنترل TCheckListBox استفاده کینی و بعد با یه حلقه For می تونی چک کنی کدوم آیتم تیک خورده و طبق اون گزارشت رو درست کنی البته نگفتی که از کدو ابزار گزارش گیری استفاده می کنی ؟؟؟

ShimaSh
سه شنبه 18 اردیبهشت 1386, 09:11 صبح
QuickReport

mzjahromi
سه شنبه 18 اردیبهشت 1386, 09:20 صبح
دو راه داری
1- اینکه از ابتدا همه فیلدها رو بذاری و بعد با توجه به آنچه کاربر انتخاب میکند تنها فیلد های مورد نظر رو نمایش بدی بدیهی است که سایز و موقعیت فیلدها رو بر اساس آنچه کاربر انتخاب میکند باید تنظیم کنی
2- هیچ فیلدی رو قرار ندی و پس از انتخاب فیلدد ها توسط کار بر اونها رو بصورت داینامیک ایجاد کنی و سایز و موقعیتشون رو تنظیم کنی

ShimaSh
سه شنبه 18 اردیبهشت 1386, 13:22 عصر
سلام.
خوب فرض کنید از روش اول استفاده کنم. حالا چطوری می تونم سایز و موقعیت فیلدها رو بر اساس آنچه کاربر انتخاب میکنه تنظیم کنم؟!!!!!!

مرسی از راهنمایی شیما

zman123456
سه شنبه 18 اردیبهشت 1386, 13:31 عصر
من از روش چک تمام آیتمها استفاده می کنم و با توجه به انتخاب آنها توسط کاربر Query رو می سازم.به نر من روش بسیار ساده ای هست و جواب هم داده و با این روش تو کد نویسی هم به راحتی می تونی تغییرات انجام بدی.

mzjahromi
سه شنبه 18 اردیبهشت 1386, 13:37 عصر
اول باید دید میخواهید برای طول فیلدها اندازه یکسان در نظر بگیرید یا متغیر اگر اندازه یکسان باشد که موقعیت چپ برابر است با w/n*i , و طول هر کدوم برابر است با w/n که w عرض صفحه است N تعداد فیلد هائی که میخواهیم نمایش دهیم و i ایندکس فیلد است

SYNDROME
سه شنبه 18 اردیبهشت 1386, 19:55 عصر
با سلام
می تونی Boxرا در صفحه قرار دهی.سپس اندازه هر کدام را مشخص کنی.
حال در زمان قراردادن در صفحه می توانی Width مربوط به Box ها را جمع کنی و سپس با سایز صفحه مقایسه کنی تا بیشتر نشود.

Bahmany
چهارشنبه 19 اردیبهشت 1386, 06:41 صبح
شما می تونین از کنترل TCheckListBox استفاده کینی

;
begin
begin
if CheckListBox1.Checked[1] = true then
begin
QR_Name_title.visible:=true; // Header Object
QR_Name.visible:=true; // Detail Object
end;
if CheckListBox1.Checked[2] = true then
begin
QR_Family_title.visible:=true; // Header Object
QR_Family.visible:=true; // Detail Object
end;
if CheckListBox1.Checked[3] = true then
begin
QR_ID_title.visible:=true; // Header Object
QR_ID.visible:=true; // Detail Object
end;

ShimaSh
چهارشنبه 19 اردیبهشت 1386, 07:27 صبح
من از روش چک تمام آیتمها استفاده می کنم و با توجه به انتخاب آنها توسط کاربر Query رو می سازم.به نر من روش بسیار ساده ای هست و جواب هم داده و با این روش تو کد نویسی هم به راحتی می تونی تغییرات انجام بدی.


سلام.
ممکنه لطفا بیشتر توضیح بدید. یا نمونه ای از کدتونو بذارید.
(من ابتدایی بندرعباس بودم, شهر خوبی بود)

مـــــرسی شیمـــا

ShimaSh
چهارشنبه 19 اردیبهشت 1386, 07:32 صبح
با سلام
می تونی Boxرا در صفحه قرار دهی.سپس اندازه هر کدام را مشخص کنی.
حال در زمان قراردادن در صفحه می توانی Width مربوط به Box ها را جمع کنی و سپس با سایز صفحه مقایسه کنی تا بیشتر نشود.

سلام
لطف می کنید اگه بیشتر توضیح بدید. :گیج:
کدشو بذارید لطفا :خجالت:

ممنون شیما

zman123456
چهارشنبه 19 اردیبهشت 1386, 08:50 صبح
سلام
ابتدا تمام فیلدهای گزارش سازی رو روی فرم قرار میدی اگر نیاز باشه کنار هر کدوم Checkbox هم می تونی قرار بدی وهم می تونی از پر یا خالی بودن اونها استفاده کنی.توی کد ابتدا بدنه اصلی Query رو بساز و در ادامه در قسمت Where که And می خوره باید بیایید تمام فیلدهای گزارش سازی تونو چک کنید که اگر مقدار داشت یک AND به Query‌شما اضافه کنه وگرنه بره بعدی رو چک کنه.
نکته : اگر بدنه اصلی Query‌خودش شرط داشته باشه مشکلی نیست ولی اگر Where نداشته باشه باید کدی بنویسی که بتونه تشخیص بده که اولین شرط کدومه که براش AND‌ قرار نده.
ولی در کل روش بسیار ساده ای هست هم قابل فهم و هم یه سادگی قابل تغییر هستش.
من بندری نیستم ولی با نظر شما موافقم شهر خوبیه.

SYNDROME
چهارشنبه 19 اردیبهشت 1386, 09:09 صبح
با سلام

سلام
لطف می کنید اگه بیشتر توضیح بدید. :گیج:
کدشو بذارید لطفا :خجالت:

ممنون شیما
Box1.width = 10;
Box2.Width = 25
تا Nام.
در صفحه با توجه به نیاز می توانید هر Box را قرا دهید.
حالا Box1 , Box2 را قرا می دهید.
پهنای Box های انتخاب شده 35 می باشد و مقداری پرت 5 که جمعاً 40 می شود.
حالا پهنای صفحه شما به طور مثال 100 است.پس Boxها جا می شود.
حال اگر پهنا 110 شود شما باید پیغامی چاپ کنید که فیلدهای نمایشی زیاد می شود و کاربر باید فیلدها را کم کند.
البته پهنای فیلدها را می توانید از خود کاربر هم بگیرید.
حال برای چیدن کمی خلاقیت می خواهد که توصیه می شود خودتان انجام دهید.
کد این چیدن ترجیحاً باید شخصی باشد ا به راحتی قابل تغییر و با توجه به نیاز باشد.