PDA

View Full Version : امکانات انتخابی



hamid-nice
سه شنبه 10 دی 1392, 13:35 عصر
یک فایل نمونه بسیار جالبی را ضمیمه کرده ام
لطفا هر کس نمونه open source آن یا نمونه ای هر چند ناقص برای انتخاب فیلدها و فونتها و ... دارد در این تاپیک به اشتراک بذارد
با تشکر فراوان

hamid-nice
پنج شنبه 12 دی 1392, 13:02 عصر
دوستان سلام
دو فایل ضمیمه کردم که یکی امکان تنتخاب فیلد ها را برای گزارش گیری در اختیار می ذاره و دیگری تغییر مکان فیلد ها را در لیست باکس
سوال
چطور می شه اینها را با هم بکار برد و در فایل اول که گزارش انتخابی را می دهد با امکان بالا و پایین کردن فیلد ها در لیست باکس در گزارش انتخابی امکان تغییر جای فیلدها را به سلیقه کاربر در گزارش فراهم نمود
با تشکر

alirezabahrami
پنج شنبه 12 دی 1392, 20:59 عصر
دوستان سلام
دو فایل ضمیمه کردم که یکی امکان تنتخاب فیلد ها را برای گزارش گیری در اختیار می ذاره و دیگری تغییر مکان فیلد ها را در لیست باکس
سوال
چطور می شه اینها را با هم بکار برد و در فایل اول که گزارش انتخابی را می دهد با امکان بالا و پایین کردن فیلد ها در لیست باکس در گزارش انتخابی امکان تغییر جای فیلدها را به سلیقه کاربر در گزارش فراهم نمود
با تشکر
سلام
از آنجائیکه اگر خصوصیت multi select لیست باکس در حالت Simple باشد عمل جابجائی رکورد به مشکل بر می خورد لذا نیاز است که ابتدا رکوردها را مرتب و سپس اقدام به انتخاب آنها برای گزارشگیری نمود .
نمونه ضمیمه راملاحظه کن!
یا علی

hamid-nice
پنج شنبه 12 دی 1392, 21:56 عصر
با سلام دوست گرامی
نمونه ای که ارائه دادید خیلی خوب هست اما هنوز منظور من از این تاپیک در آن برآورده نشده :
و آن هم اینکه وقتی یک جابجایی انجام می شه مثلا اینکه اگر از جدول اول فیلد AreaID را بیاوریم بین FirstName و LastName و برویم مرحله بعد و این سه فیلد را انتخاب کنیم و گزارش بگیریم در گزارش این فیلد ها به ترتیبی که در Listbox مرتب کردیم نمی آیند
اگر لطف کنید و این را انجام دهید بسیار ممنون خواهم بود
با تشکر

alirezabahrami
پنج شنبه 12 دی 1392, 23:00 عصر
با سلام دوست گرامی
نمونه ای که ارائه دادید خیلی خوب هست اما هنوز منظور من از این تاپیک در آن برآورده نشده :
و آن هم اینکه وقتی یک جابجایی انجام می شه مثلا اینکه اگر از جدول اول فیلد AreaID را بیاوریم بین FirstName و LastName و برویم مرحله بعد و این سه فیلد را انتخاب کنیم و گزارش بگیریم در گزارش این فیلد ها به ترتیبی که در Listbox مرتب کردیم نمی آیند
اگر لطف کنید و این را انجام دهید بسیار ممنون خواهم بود
با تشکر
سلام
فیلد ها به ترتیبی که در Listbox مرتب می شوند به همان ترتیب هم در گزارش می آیند فقط عنوان فیلد ها ثابت است که آنهم باید بررسی کنم که راهکار جابجا شدنش را پیدا کنم.
یا علی

hamid-nice
جمعه 13 دی 1392, 00:21 صبح
ممنون اشتباه گفتم منظورم همان بود که شما گفتید انشالله که به نتیجه خواهید رسید
با تشکر فراوان

alirezabahrami
جمعه 13 دی 1392, 01:05 صبح
سلام
فیلد ها به ترتیبی که در Listbox مرتب می شوند به همان ترتیب هم در گزارش می آیند فقط عنوان فیلد ها ثابت است که آنهم باید بررسی کنم که راهکار جابجا شدنش را پیدا کنم.
یا علی


ممنون اشتباه گفتم منظورم همان بود که شما گفتید انشالله که به نتیجه خواهید رسید
با تشکر فراوان
سلام
نمونه اصلاح شده رابررسی کن !
یا علی

alirezabahrami
جمعه 13 دی 1392, 01:42 صبح
سلام
در نمونه های قبلی عنوان فیلد در صورتیکه مقدار فیلد تهی بود به نمایش در می آمد ؛ در نمونه اصلاح شده جدید این مورد برطرف گردیده.
یاعلی

hamid-nice
جمعه 13 دی 1392, 02:07 صبح
بسیار عالی است فقط دو مورد کوچکی قابل ذکر هست و سه مورد مهم
1- مورد مهم : وقتی به فیلدهای جدول مثلا tblArea یک فیلد مثل Test اضافه می کنیم در فرم اول و دوم به درستی اضافه می شود ولی در گزارش گیری اسم آن می آید ولی اگر برای گزارش گیری کل فیلد ها را انتخاب کنیم همه را نمی آورد و یکی کمتر می آورد
2- وقتی یک جدول جدید می سازم ( البته با پیشوند tlb ) آنرا در فرم یک و 2 به درستی می آورد ولی هنگام گزارش گیری اصلا نمی شناسد و فیلد ها را سوال می کند!
3- در حال حاضر جداول را براساس جدول سیستمی و با پیشوند Tlb می شناسد امکان دارد که طوری بشناسد که هر اسمی را قبول کند مثلا بگوییم که هر جدول غیر سیستمی را لیست کند یا ... ؟
موارد کم اهمیت :
1- وقتی به مرحله بعد می رویم و گزارش می گیریم و گزارش را می بندیم و دوباره به فرم اول می رویم هنگام بالا و پایین رفتن پیغام می دهد : Invalid use of Null
2- وقتی تعداد فیلدها کم باشد جای خالی آنها طوسی می ماند که اگر بشه رنگ نداشته باشه بسیار بهتر می شود

با تشکر فراوان

alirezabahrami
جمعه 13 دی 1392, 09:25 صبح
بسیار عالی است فقط دو مورد کوچکی قابل ذکر هست و سه مورد مهم
1- مورد مهم : وقتی به فیلدهای جدول مثلا tblArea یک فیلد مثل Test اضافه می کنیم در فرم اول و دوم به درستی اضافه می شود ولی در گزارش گیری اسم آن می آید ولی اگر برای گزارش گیری کل فیلد ها را انتخاب کنیم همه را نمی آورد و یکی کمتر می آورد
2- وقتی یک جدول جدید می سازم ( البته با پیشوند tlb ) آنرا در فرم یک و 2 به درستی می آورد ولی هنگام گزارش گیری اصلا نمی شناسد و فلد ها را سوال می کند!
3- در حال حاضر جداول را براساس جدول سیستمی و با پیشوند Tlb می شناسد امکان دارد که طوری بشناسد که هر اسمی را قبول کند مثلا بگوییم که هر جدول غیر سیستمی را لیست کند یا ... ؟
موارد کم اهمیت :
1- وقتی به مرحله بعد می رویم و گزارش می گیریم و گزارش را می بندیم و دوباره به فرم اول می رویم هنگام بالا و پایین رفتن پیغام می دهد : Invalid use of Null
2- وقتی تعداد فیلدها کم باشد جای خالی آنها طوسی می ماند که اگر بشه رنگ نداشته باشه بسیار بهتر می شود

با تشکر فراوان
سلام
موارد قابل برطرف شدن است ، اجازه بدهیم دوستان بزرگواردیگر هم درادامه و تکمیل این تاپیک سهیم باشند.
بی تردید اگر دوستان همکاری نمایند و مرحله به مرحله نمونه را تکمیل تر نمائیم در نهایت به یک گزارش ساز پویا برای اکسس دست پیدا خواهیم کرد


برای برطرف شدن مورد 3 در رویداد open فرم اول کد زیر را وارد کن!


cboTable.RowSource = "SELECT MSysObjects.Name FROM MSysObjects " & "WHERE Left$([Name],1)<>'~' AND Left$([Name],4)<>'MSys' " & "AND MSysObjects.Type =1 and MSysObjects.Name<>'TableFields' ORDER BY MSysObjects.Name"


یاعلی

hamid-nice
جمعه 13 دی 1392, 12:33 عصر
بسیار عالی
برای اینکه این مساله وسیع تر بشه نیاز هست تا ایده ها یی مطرح بشه
که انشالله از سوی کاربران دیگر استقبال بشه و صرفا نظاره گر نباشند

alirezabahrami
جمعه 13 دی 1392, 13:33 عصر
بسیار عالی
برای اینکه این مساله وسیع تر بشه نیاز هست تا ایده ها یی مطرح بشه
که انشالله از سوی کاربران دیگر استقبال بشه و صرفا نظاره گر نباشند
سلام
بعنوان یک ایده ، میتوان از تهیه گزارش ویزارد خود اکسس الگو گرفت .
در نمونه ارائه شده بنده میتوان بجای دو فرم که در هر کدام یک لیست باکس وجود دارد یک فرم داشته باشیم بادو لیست باکس ؛ که در اولی با انتخاب جدول مورد نظر همه فیلد ها درآن به نمایش در آیند ، سپس میتوان تک تک یا بصورت کلی فیلدهائی که قرار است در گزارش بکار روند از این لیست باکس به لیست باکس دوم منتقل نمود. در لیست باکس دوم هم دیگر نیاز نیست که خصوصیت multi select لیست باکس در حالت Simple باشد( چون در لیست باکس فیلدهای که قرار است درگزارش بکار رود انتخاب شده اند).
تصویر ضمیمه راملاحظه بفرمائید!
یاعلی

hamid-nice
یک شنبه 15 دی 1392, 20:02 عصر
با سلام
برای پیشبرد تاپیک مثل اینکه کسی فعلا احساس توانایی یا علاقه مندی یا ... نمی کنه امیدواریم در ادامه دوستان حضور فعالی از خود نشان دهند
لذا جناب بهرامی این تاپیک را رها نکنید
جناب بهرامی چیزی که گفتید فعلا با نواقصی در فایل زیر شبه سازی شده لطفا بررسی فرمایید .
البته این کار اگر با استفاده از دوتا لیست باکس بشه بهتر است
مساله مهم :
مخصوصا برای ما فارسی زبانان بهتر است به جای نام فیلد ها از نام caption آنها که در جداول یا فرم می نویسیم استفاده شود و در لیست باکسها فراخوانی شوند ، چرا که معمولا از نام فیلد ها برای interface برنامها استفاده نمی کنیم
با تشکر

majid_tiger
یک شنبه 15 دی 1392, 21:51 عصر
سلام آقا حمید منم بدجوری محتاج این ریپورت دینامیک هستم ، البته صرف نظر از بالا پایین کردن ترتیب فیلدها ، گروه بندی هم خیلی کمک خواهد کرد ، البته بطور خیلی مبتدی مشکل رو مثلاً برای خودم حل کردم ولی یه مشکلی که داره تینه که بیش از دو فیلد باید انتخاب بشه تا گروه بندی کار کنه . یک ضمیمه گذاشتم امیدوارم شاید کمکی هم به خودم بشه هم در کاملتر شدن این ریپورت داینامیک .
114909

hamid-nice
یک شنبه 15 دی 1392, 22:55 عصر
سلام majid_tiger (http://barnamenevis.org/member.php?308442-majid_tiger)
کارت خیلی عالی بوده و از تلاش شما سپاسگزارم ، مشکل خاصی وجود نداره در واقع در گزارش جای فیلد اول به هم ریخته بود
اما در فایل شما برای اینکه انتخاب فیلدها نیاز به پیشوند tlb نداشته باشه در رویداد Onopen کد پیشنهادی جناب بهرامی را وارد کردم تا جداولی که پیشوند tlb هم ندارند در کموباکس به نمایش در بیاید که این مساله 2 مشکل را ایجاد کرده است ( البته تغییرات بسیار کمی در فایل جهت بهتر شدند بعضی موارد اعمال کرده ام)
1- با انتخاب آن جداول مثل TABLE1 که در فایل ضمیمه آورده ام گزارشگیری عمل نمی کنه
2- در کمبو باکس نامی به صورت f_D08CDA8E440B4770A9678576E6E3C9D5_Data می آید!

که امید از دوستان به ادامه تاپیک کمک کنند
با تشکر

hamid-nice
چهارشنبه 25 دی 1392, 16:42 عصر
با سلام
يك ايده ديگه و كاربردي براي داشتن فرمهاي انتخابي اينه كه يك فرم تنظيمات داشته باشيم كه در آن فيلدهاي جدول را بشه با تيك زدن انتخاب كرد ( يا ... ) و هركدوم را كه انتخاب كرديم بياورد
اگه دوستان لطف كنند نمونه را به اين صورت تغيير دهند يا اگه نمونه اي آماده دارند اينجا قرار دهند ، ممنون مي شم
با تشكر

hamid-nice
سه شنبه 01 بهمن 1392, 01:46 صبح
با سلام
دوستان کسی می تونه بگه فایل ضمیمه آخری را چطور بر اساس caption فیلدها می شه در لیست باکس و گزارش تغییر داد ؟
با تشکر

hamid-nice
سه شنبه 01 بهمن 1392, 18:48 عصر
ظاهرا caption را كسي اعلام آمادگي نكرد !!
دوستان مي تونن كمبو باكس فايل ضميمه آخري را در پست 15 ، براي هم كوئري و هم جداول تنظيم كنند ؟
با تشكر

alirezabahrami
سه شنبه 01 بهمن 1392, 19:27 عصر
ظاهرا caption را كسي اعلام آمادگي نكرد !!
دوستان مي تونن كمبو باكس فايل ضميمه آخري را در پست 15 ، براي هم كوئري و هم جداول تنظيم كنند ؟
با تشكر
سلام آقا حمید!
فکرمیکنم این تاپیک را بیشتر از این ادامه ندهیم سنگین تریم ؛ چون کسی تمایلی به شرکت در این تاپیک و ارائه ایده ندارد .
ولی از آنجائیکه جنابعالی خیلی پیگیر موضوع این تاپیک بوده اید نمونه ای را برایت آماده کردم انشاءالله مورد استفاده ات قرار بگیرد.
یا علی

saeed1234n
سه شنبه 01 بهمن 1392, 20:37 عصر
با سلام
خدمت جناب استاد بهرامی

نمونه ضمیمه شد بسیار عالی است
از تمامی دوستان خواهش می کنم این نمونه فوق العاده را از دست ندهند

من که واقعا حظ کردم نمی دانم دوستان تا چه اندازه با سایر نرم افزارهای برنامه نویسی آشنا هستند
آنوقت است که قدر این نمونه را متوجه می شوند .

از دوستان خواهش می کنم کمال استفاده را از دانسته های جناب بهرامی و آقای امیری و ... ببرند .
که به این صورت خالصانه و بدون چشم داشت در اختیار دیگران قرار میدهند.

linktaz
سه شنبه 01 بهمن 1392, 20:48 عصر
سلام آقا سعید!
فکرمیکنم این تاپیک را بیشتر از این ادامه ندهیم سنگین تریم ؛ چون کسی تمایلی به شرکت در این تاپیک و ارائه ایده ندارد .
ولی از آنجائیکه جنابعالی خیلی پیگیر موضوع این تاپیک بوده اید نمونه ای را برایت آماده کردم انشاءالله مورد استفاده ات قرار بگیرد.
یا علی
آقای بهرامی عزیز،اگر کسی شرکت نمیکنه مطمئن باشید پیگیر موضوع هستیم و استفاده میکنم اما اطلاعات منه نوعی و شاید بعضی دوستان در حدی نیست که بخوام به چالش بکشیم یا ایده ای بدیم.اما از فکر و ایده ی شما بهرمند میشیم.مطمئنا همه خوشحال میشن از پست های پرمحتواتون.:لبخندساده:

Abbas Amiri
سه شنبه 01 بهمن 1392, 21:01 عصر
سلام آقا سعید!
فکرمیکنم این تاپیک را بیشتر از این ادامه ندهیم سنگین تریم ؛ چون کسی تمایلی به شرکت در این تاپیک و ارائه ایده ندارد .
ولی از آنجائیکه جنابعالی خیلی پیگیر موضوع این تاپیک بوده اید نمونه ای را برایت آماده کردم انشاءالله مورد استفاده ات قرار بگیرد.
یا علی

سلام و خسته نباشید. کار خیلی خوبی بود

برای اینکه به توجه کاربران به مطالبتان پی ببرید به آمار بازدید از تاپیک و همچنین دانلود ضمیمه ها توجه کنید .

متاسفانه خیلی ها ارزش زمان و هنری که برای بعضی مسایل مطرح می شود را نمی دانند . در اینصورت با زدن کلید تشکر آن را ابراز می کردند

منتظر هنر نمایی های بیشتر شما هستیم

abdoreza57
سه شنبه 01 بهمن 1392, 21:57 عصر
سلام

ضمن تایید فرمایش دوستانم ، همه میدونیم جناب بهرامی از معدود سرمایه های تالار هستند که همچون استاد امیری و بعضی از بزرگواران بی منت خدمات ارزنده ای تو این تالار ارائه می کنند ...


جناب بهرامی به همه لطف دارند و هر بار موضوع و مشکلی برامون پیش میومد ایشون یا استاد امیری ما را مورد لطف خودشون قرار دادند و راهنمایی کردند ولی خیلی از موارد دوستان ماحصل این عزیزان را مورد استفاده قرار میدند بدون اینکه حتی روی اون دکمه تشکر کلیک کنند ، تقدیر از زحمات این اساتبد با یه کلیک تشکر به ظاهر مسخره باعث ایجاد انگیزه بیشتر میشه ولی واقعا بعضی از دوستان حتی زحمت این کار ساده را هم به خودشون نمیدند !!!
میزان دانلود فایل های ضمیمه ، مشاهده مراجعه کنندگان ، و پاسخهای صحیح ارائه شده توسط این اساتید هیچ تناسبی با میزان تشکر های نداره ...

حکمت 204 کتاب ارزشمند نهج البلاغه چنین هست :


لا يُزَهِّدَنَّكَ فِى المَعروفِ مَن لا يَشكُرُ لَكَ، فَقَد يَشكُرُكَ عَلَيهِ مَن لا يَستَمتِعُ بِشَى ءٍ مِنهُ، وَقَد تُدرِكُ مِن شُكرِ الشّاكِرِ أكثَرَ مِمّا أضاعَ الكافِرُ ، واللّه يُحِبُّ المُحسِنينَ؛

تشكر نكردن ديگران از تو نبايد تو را به خوبى كردن بى رغبت سازد، زيرا كسى كه از آن نيكى كم ترين بهره اى نمى برد (يعنى خداوند) از تو قدردانى مى كند و از سپاسگزارى اين سپاسگزار به بيش از آن چيزى مى رسى كه فرد ناسپاس فرو گذاشته است و خداوند نيكوكاران را دوست دارد.

نمیشه از این فرمایش رسول اکرم گذشت که فرمودند :

أفضَلُ النّاسِ عِندَ اللّه مَنزِلَةً و َأَقرَبُهُم مِنَ اللّه وَسيلَةً المُحسِنُ يُكَفَّرُ إحسانُهُ؛

بهترين مردم در نزد خداوند و نزديك ترين آنان به او، نيكوكارى است كه از نيكى او قدردانى نمى شود.


موفق باشید و خدا نگهدار

20mohammad
سه شنبه 01 بهمن 1392, 22:14 عصر
سلام آقا سعید!
فکرمیکنم این تاپیک را بیشتر از این ادامه ندهیم سنگین تریم ؛ چون کسی تمایلی به شرکت در این تاپیک و ارائه ایده ندارد .
ولی از آنجائیکه جنابعالی خیلی پیگیر موضوع این تاپیک بوده اید نمونه ای را برایت آماده کردم انشاءالله مورد استفاده ات قرار بگیرد.
یا علی

سلام گل کاشتی آقای بهرامی ، من تازه این تایپیک رو دیدم اما خدایی تو یه پروژه یه مشکل اساسی داشتم همین بود که گزارش انتخابی داشته باشم یکی دو تا تایپیک رو هم دیدم اما مشکلم حل نشد این کار شما بسیار عالیه

alirezabahrami
سه شنبه 01 بهمن 1392, 23:55 عصر
سلام!
ازابرازمحبت دوستان بزرگوار بسیار متشکر و سپاسگزارم . انشاءالله با همت دوستان به ویژه اساتید ارجمند بتوانیم این تاپیک را تاجائی به پیش ببریم که نتیجه وماحصل آن یک گزارش سازپویا بشود .مطمئنناً یکی از آروزهای همه برنامه نویسان و دوستداران اکسس بهره مندی از یک گزارش ساز پویا می باشد که کاربر بتواند با اختیارخود جداول و فیلد های مورد نظرخود را انتخاب و با اعمال فیلترهای مناسب گزارش خود را تهیه نماید.
البته با عرض پوزش باید به استحضار دوستان برسانم که حقیر بعلت مشغله کاری ،شاید نتوانم حضور مستمری در تالار داشته باشم ؛ به خاطر همین خواهشم از دوسنان بزرگوار این است که این تاپیک را تا رسیدن به نتیجه مطلوب و نهائی ادامه بدهند.
ضمناً در خصوص نمونه ارائه شده باید عرض شود برای اینکه نام جداول را به فارسی نمایش داده شود باید در قسمت Description جدول مربوطه عنوان فارسی آن را وارد نمایند و جهت نمایش عنوان فارسی فیلد های جدول باید در قسمت کپشن (Caption) نام فارسی آن را وارد نمایند.
انشاءالله در مرحله بعد باید فرمی طراحی کنیم که در آن موارد فیلتر گذاری بر روی فیلدهای انتخابی و نمایش نتیجه در یک سابفرم صورت گیرد.
به امید دیدار

hamid-nice
چهارشنبه 02 بهمن 1392, 02:10 صبح
با سلام و تشكر از جناب بهرامي عزيز
همچنان كه قبلا هم گفته ام اين سايت با وجود افرادي چون شما پويا باقي مانده و انشالله حضور فعال شما همچنان پابرجا باشد
جناب بهرامي ممنون از ارايه فايل خوبتان با اجازه شما فايل را كه بررسي كردم متوجه شدم كه مواردي اضافي وجود (حذف بعضی از جداول ، بعضي از كوئري ها و ... ) دارد كه مربوط به كاركرد فايل نيست و براي اينكه از سردرگمي در آييم و ديگر كاربران نيز از خالص و مفيد موارد مربوطه بتوانند استفاده كنند و شلوغي بي جهت باعث عدم همكاريشان نشود ، آنها را حذف كردم و براي ريست شدن هم يك دستور reset به اول دستورات Afterupdate كمبو باكس اضافه كردم و rowsource كمبو باكس نيز بي كاربرد بود لذا آنرا هم حذف كردم و به اين ترتيب فايل شما همچنان به خوبي عمل مي كند كه نمونه آنرا در زير ضميمه كرده ام. ( در صورتي كه مواردي كه حذف شده لازم بوده لطفا اعلام بفرماييد )

اما قبل از هر گونه مطلبي هنوز مساله اي باقي است كه بهتر است در همين ابتدا پوشش داده شود يعني با توجه به اينكه مي خواهيم گزارش ساز پويا داشته باشيم بهتر است كه يك جدولي باشد كه بتوانيم از آن براي rowsource كمبو باكس را بخوانيم زيرا هركس نياز دارد كه جداول و كوئري هايي را براي گزارشگيري بر حسب نياز براي كاربر قابل انتخاب كند كه با وارد كردن اسم جداول يا description آنها ( براي فارسي سازي عنوان جداول ) در آن جدول اين مهم محقق خواهد شد يا هر روشي كه شما صلاح بدانيد ( اين فقط يك ايده بود براي رساندن مطلب ) كه در حال حاضر كوئري ها را نمي توان بكار برد ( البته اگر مي شود و من نتوجه نشده ام لطفا طرز عمل را بيان فرماييد )
در ضمن ديگر دوستان چنانچه جناب بهرامي هم انتظار دارند براي مسائل كوچكتر اينجنيني اگر مي توانند اقدام كنند تا اساتيد بتوانند وقت براي موارد پيشرفته تري بذارند در غير اينصورت كه باز منتظر التفات اساتيد خواهيم بود.
با تشكر فراوان

hamid-nice
چهارشنبه 02 بهمن 1392, 15:31 عصر
فایل ضمیمه پست قبل اصلاح شد

hamid-nice
چهارشنبه 02 بهمن 1392, 18:17 عصر
بنابراین در حال حاضر اولویت با این موارد است :
1- تهیه جدولی و نوشتن کدی برای وارد کردن نام جداول و کوئری ها تا بتوان به دلخواه جداول و کوئری ها را در آن نوشت و به این ترتیب انتخابی نمود .
2- امکان اینکه حتی به صورت پیشفرض بتوان برای کمبو باکس یک جدول یا کوئری را تعریف کرد چرا که در خیلی از گزارشات نمی خواهیم کاربر تصمیم گیرنده باشد لذا کمبو باکس را از حالت Enable خارج می کنیم .

جناب بهرامی یا جناب امیری فکر کنم این قسمت را از کسی انتظار نداشته باشید بهتر باشه و خودتان راه حل را ارائه فرمایید .
با تشکر

alirezabahrami
چهارشنبه 02 بهمن 1392, 20:07 عصر
بنابراین در حال حاضر اولویت با این موارد است :
1- تهیه جدولی و نوشتن کدی برای وارد کردن نام جداول و کوئری ها تا بتوان به دلخواه جداول و کوئری ها را در آن نوشت و به این ترتیب انتخابی نمود .
2- امکان اینکه حتی به صورت پیشفرض بتوان برای کمبو باکس یک جدول یا کوئری را تعریف کرد چرا که در خیلی از گزارشات نمی خواهیم کاربر تصمیم گیرنده باشد لذا کمبو باکس را از حالت Enable خارج می کنیم .

جناب بهرامی یا جناب امیری فکر کنم این قسمت را از کسی انتظار نداشته باشید بهتر باشه و خودتان راه حل را ارائه فرمایید .
با تشکر
سلام
درخصوص پیشنهاد اول شما ، در نمونه جدید انتخاب جدول یاکوئری به فرم اضافه گردید.
در خصوص مورد دوم هم مشکلی وجود ندارد.
یا علی

hamid-nice
چهارشنبه 02 بهمن 1392, 21:14 عصر
جناب بهرامی عزیز
از پاسخ سریع شما سپاسگزارم
در مورد پیشنهاد 1 من که جدولی برای وارد کردن نام جداول بود روش فعلی شما کنترل آنها بر اساس وارد کردن Description در جداول است که بسیار هم خوب است و برای پیشنهاد خودم اصراری ندارم و روش شما کاملا جوابگوست.

در مورد 2 ، که فرمودید مشکلی وجود ندارد متاسفانه منظورتان را متوجه نشدم!
منظورمن این است که اگه بخواهیم هنگام باز کردن فرم ، یکی از جداول یا کوئری ( مثلا کوئری Query1 ) را به صورت پیش فرض برای کمبو باکس تعریف کنیم که هنگام باز شدن فرم به طور خودکار فیلد های آن جدول در لیست باکس اول نمایش داده شده باشد چگونه باید عمل کنیم اگر ممکن است این مورد را بیشتر توضیح دهید.
با تشکر

alirezabahrami
چهارشنبه 02 بهمن 1392, 21:25 عصر
در مورد 2 ، که فرمودید مشکلی وجود ندارد متاسفانه منظورتان را متوجه نشدم!
منظورمن این است که اگه بخواهیم هنگام باز کردن فرم ، یکی از جداول یا کوئری ( مثلا کوئری Query1 ) را به صورت پیش فرض برای کمبو باکس تعریف کنیم که هنگام باز شدن فرم به طور خودکار فیلد های آن جدول در لیست باکس اول نمایش داده شده باشد چگونه باید عمل کنیم اگر ممکن است این مورد را بیشتر توضیح دهید.
با تشکر
سلام
روال زیر را در قسمت ماژول عمومی فرم قرار بده و در قسمت رویداد open فرم آن را فراخوانی کن !


Private Sub DefaultTTableAfterUpdate()
On Error Resume Next
reset

Dim dbs As DAO.Database, tdf As DAO.TableDef
Dim fld As DAO.Field, Rst As DAO.Recordset
Dim tbl As String

tbl = "tblArea"
' Return reference to current database.
Set dbs = CurrentDb
' Return reference to Employees table.
Set tdf = dbs.TableDefs(tbl)
DoCmd.SetWarnings False
DoCmd.RunSQL ("Delete * from TList1")
DoCmd.SetWarnings True
Set Rst = dbs.OpenRecordset("TList1", dbOpenDynaset)
' Enumerate all fields in Fields collection of TableDef object.
For Each fld In tdf.Fields
If fld.Type >= 1 And fld.Type <= 8 Or fld.Type = 10 Then
Rst.AddNew
Rst!id = 1
Rst!FieldName = fld.Name
Rst!FieldType = fld.Type
Rst!fCaption = fld.Properties("Caption")
Rst.Update


End If
Next fld
Call InsertNum
Set dbs = Nothing
Call InsertNum
List0.Requery
' CreateIndexNumber
List0.Requery
Exit_cboTable_AfterUpdate:
Exit Sub

Err_cboTable_AfterUpdate:
MsgBox Err.Description
Resume Exit_cboTable_AfterUpdate

End Sub

hamid-nice
چهارشنبه 02 بهمن 1392, 21:50 عصر
جناب بهرامی عزیز
کارتان مثل همیشه عالی بود و تا به اینجا تمام مشکلات حل شده و ادامه تاپیک برای گسترش سایر موارد آماده است که انشالله باز با توانمندیهای جنابعالی بهره مند شده و با ایده ها ی دیگری به جلو حرکت کند

جهت دیگر کاربران هم با اجازه شما بگویم که برای کوئری ها ( مثلا Query1 ) نیز ساب فوق را به صورت زیر تغییر داده و در VBA فرم قرار داده و آنرا فراخوانی کنند:

Private Sub DefaultTQueryAfterUpdate()
On Error Resume Next
reset
Dim dbs As DAO.Database, qdf As DAO.QueryDef
Dim fld As DAO.Field, Rst As DAO.Recordset

Dim tbl As String

tbl = "Query1"
' Return reference to current database.
Set dbs = CurrentDb
' Return reference to Employees table.
Set tdf = dbs.QueryDefs(tbl)
DoCmd.SetWarnings False
DoCmd.RunSQL ("Delete * from TList1")
DoCmd.SetWarnings True
Set Rst = dbs.OpenRecordset("TList1", dbOpenDynaset)
' Enumerate all fields in Fields collection of TableDef object.
For Each fld In tdf.Fields
If fld.Type >= 1 And fld.Type <= 8 Or fld.Type = 10 Then
Rst.AddNew
Rst!id = 1
Rst!FieldName = fld.Name
Rst!FieldType = fld.Type
Rst!fCaption = fld.Properties("Caption")
Rst.Update


End If
Next fld
Call InsertNum
Set dbs = Nothing
Call InsertNum
List0.Requery
' CreateIndexNumber
List0.Requery
Exit_cboTable_AfterUpdate:
Exit Sub

Err_cboTable_AfterUpdate:
MsgBox Err.Description
Resume Exit_cboTable_AfterUpdate
End Sub

با تشکر

hamid-nice
پنج شنبه 03 بهمن 1392, 00:36 صبح
اما متوجه یک مورد ضروری شدم که تا اینجا هنوز وجود دارد و اینکه فرض کنیم که توسط کاربر گزارشی برای جدول یا کوئری با فیلد های دلخواه همیشگی اش یکبار تنظیم می شود (مخصوصا برای زمانی که از این گزارش ساز برای یک جدول یا کوئری خاصی استفاده می کنیم و کاربر باید با آن بارها استفاده کند ، بیشتر محسوس می شود ) و سپس انتظار دارد که بدون تنظیم مجدد با زدن دگمه ای که ما تعبیه می کنیم مستقیما گزارش را بدون نیاز به انتخاب مجدد جدول یا کوئری و بدون نیاز به تنظیم مجدد فیلدها ، باز کند یا به عبارت دیگر امکانی فراهم شود که تا وقتی کاربر تنظیمات را تغییر نداده و مستقیما گزارش را باز می کند همان فیلد ها بر اساس همان تنظیمات آخری که در این فرم گزارش ساز انجام داده است ، در گزارش قرار داشته باشد.
برای مشخص شدن بیشتر ملب توجهتان را به ضمیمه پست 15 جلب می کنم که این مشکل در آن وجود ندارد و با یکبار تنظیم در فم اصلی و گزارشگیری ، بعد از آن اگر فرم را ببندیم یا از برنامه خارج شویم و دوباره برگردیم و گزارش را مستقیما باز کنیم خواهیم دید که آخرین تنظیمات را دارا می باشد .
با تشکر

alirezabahrami
پنج شنبه 03 بهمن 1392, 09:31 صبح
اما متوجه یک مورد ضروری شدم که تا اینجا هنوز وجود دارد و اینکه فرض کنیم که توسط کاربر گزارشی برای جدول یا کوئری با فیلد های دلخواه همیشگی اش یکبار تنظیم می شود (مخصوصا برای زمانی که از این گزارش ساز برای یک جدول یا کوئری خاصی استفاده می کنیم و کاربر باید با آن بارها استفاده کند ، بیشتر محسوس می شود ) و سپس انتظار دارد که بدون تنظیم مجدد با زدن دگمه ای که ما تعبیه می کنیم مستقیما گزارش را بدون نیاز به انتخاب مجدد جدول یا کوئری و بدون نیاز به تنظیم مجدد فیلدها ، باز کند یا به عبارت دیگر امکانی فراهم شود که تا وقتی کاربر تنظیمات را تغییر نداده و مستقیما گزارش را باز می کند همان فیلد ها بر اساس همان تنظیمات آخری که در این فرم گزارش ساز انجام داده است ، در گزارش قرار داشته باشد.
برای مشخص شدن بیشتر ملب توجهتان را به ضمیمه پست 15 جلب می کنم که این مشکل در آن وجود ندارد و با یکبار تنظیم در فم اصلی و گزارشگیری ، بعد از آن اگر فرم را ببندیم یا از برنامه خارج شویم و دوباره برگردیم و گزارش را مستقیما باز کنیم خواهیم دید که آخرین تنظیمات را دارا می باشد .
با تشکر
سلام
پاسخ بدیهی است ؛ ولی پاسخ نمیدهم تا اینکه انشاءالله خودت یا دوستان دیگر جواب را پیداکنید.
یاعلی

Abbas Amiri
جمعه 04 بهمن 1392, 11:46 صبح
اما متوجه یک مورد ضروری شدم که تا اینجا هنوز وجود دارد و اینکه فرض کنیم که توسط کاربر گزارشی برای جدول یا کوئری با فیلد های دلخواه همیشگی اش یکبار تنظیم می شود (مخصوصا برای زمانی که از این گزارش ساز برای یک جدول یا کوئری خاصی استفاده می کنیم و کاربر باید با آن بارها استفاده کند ، بیشتر محسوس می شود ) و سپس انتظار دارد که بدون تنظیم مجدد با زدن دگمه ای که ما تعبیه می کنیم مستقیما گزارش را بدون نیاز به انتخاب مجدد جدول یا کوئری و بدون نیاز به تنظیم مجدد فیلدها ، باز کند یا به عبارت دیگر امکانی فراهم شود که تا وقتی کاربر تنظیمات را تغییر نداده و مستقیما گزارش را باز می کند همان فیلد ها بر اساس همان تنظیمات آخری که در این فرم گزارش ساز انجام داده است ، در گزارش قرار داشته باشد.
برای مشخص شدن بیشتر ملب توجهتان را به ضمیمه پست 15 جلب می کنم که این مشکل در آن وجود ندارد و با یکبار تنظیم در فم اصلی و گزارشگیری ، بعد از آن اگر فرم را ببندیم یا از برنامه خارج شویم و دوباره برگردیم و گزارش را مستقیما باز کنیم خواهیم دید که آخرین تنظیمات را دارا می باشد .
با تشکر

مورد فوق برای منظور تاپیک خیلی مهم است ولی یادتان باشد هرچه امکانات را بیشتر کنید موضوع تخصصی تر میشود و کاربران فعال کمتر .
برای منظور شما جدولی شبیه آنچه در تصویر زیر آمده کارگشا است:

115842

hamid-nice
شنبه 05 بهمن 1392, 12:23 عصر
سلام
پاسخ بدیهی است ؛ ولی پاسخ نمیدهم تا اینکه انشاءالله خودت یا دوستان دیگر جواب را پیداکنید.
یاعلی
با سلام
دوستانی که برای این مطلب جناب بهرامی دگمه تشکر را زده اند، اگر بدیهی بودن مطلب را تایید کرده اند و فهمیده اند که چه باید کرد فقط تشکر نکنند لطفا یک راهکاری ارایه دهند
من متوجه این موضوع نشده ام !


مورد فوق برای منظور تاپیک خیلی مهم است ولی یادتان باشد هرچه امکانات را بیشتر کنید موضوع تخصصی تر میشود و کاربران فعال کمتر .
برای منظور شما جدولی شبیه آنچه در تصویر زیر آمده کارگشا است:

جناب امیری عزیز
بله درست می فرمایید
ولی چه کنیم که این تاپیک بدون رفتن به سوی مطالب گسترده که به هدف نمی رسه ! در ضمن اینکه تا حالا هم آنچنان که تخصصی نبوده باشد ملاحظه می کنید که به جز دو نفر (majid_tiger (http://barnamenevis.org/member.php?u=308442)) و جناب بهرامی کسی آنچنان ،همکاری نکرده پس چه باک از هنگامی که تخصصی شود و کسی همکاری نکنه ! فعلا همه که نظاره گرند چه تخصصی باشه و چه نبوده باشه
امید است شما اساتید به تاپیکهای مهم اینچنینی بیشتر کمک کنید
در مورد راهماییتان:
با ایجاد این جدول پیشنهادی چگونه باید عمل کرد ؟

البته یک نکته ای را بگم که کوئری که ایجاد می شود حتی پس از خروج از برنامه و ورود مجدد ، اطلاعات را در خود حفظ می کند و تنها با اینکه Record source گزارش همان کوئری هست ، فیلد ها خالی می شود
با تشکر

alirezabahrami
شنبه 05 بهمن 1392, 19:29 عصر
سلام
پاسخ بدیهی است ؛ ولی پاسخ نمیدهم تا اینکه انشاءالله خودت یا دوستان دیگر جواب را پیداکنید.
یاعلی



با سلام
دوستانی که برای این مطلب جناب بهرامی دگمه تشکر را زده اند، اگر بدیهی بودن مطلب را تایید کرده اند و فهمیده اند که چه باید کرد فقط تشکر نکنند لطفا یک راهکاری ارایه دهند
من متوجه این موضوع نشده ام !

جناب امیری عزیز
بله درست می فرمایید
ولی چه کنیم که این تاپیک بدون رفتن به سوی مطالب گسترده که به هدف نمی رسه ! در ضمن اینکه تا حالا هم آنچنان که تخصصی نبوده باشد ملاحظه می کنید که به جز دو نفر (majid_tiger (http://barnamenevis.org/member.php?u=308442)) و جناب بهرامی کسی آنچنان ،همکاری نکرده پس چه باک از هنگامی که تخصصی شود و کسی همکاری نکنه ! فعلا همه که نظاره گرند چه تخصصی باشه و چه نبوده باشه
امید است شما اساتید به تاپیکهای مهم اینچنینی بیشتر کمک کنید
در مورد راهماییتان:
با ایجاد این جدول پیشنهادی چگونه باید عمل کرد ؟

البته یک نکته ای را بگم که کوئری که ایجاد می شود حتی پس از خروج از برنامه و ورود مجدد ، اطلاعات را در خود حفظ می کند و تنها با اینکه Record source گزارش همان کوئری هست ، فیلد ها خالی می شود
با تشکر
سلام
همانطورکه عرض کردم پاسخ بدیهی است ؛فقط نیاز به یک کم تأمل و دقت نظر دارد . با توجه به اینکه در رویداد Form_Unload دستور ریست جداول بکار برده شده بنابراین بعد از بستن فرم اطلاعات جداول حذف میشود . درنتیجه برای اینکه سوابق اطلاعات حذف نگردد دستور reset را از رویداد فوق حذف می کنیم و در ابتدای رویداد کلیک کمند باتن گزارش کد زیر را وارد می کنیم .


If DCount("[id]", "TList2", "") > 0 And IsNull(Form!cboTable) Then
INTListCount = List2.ListCount
DoCmd.OpenReport "qryLocalAuthority", acPreview
Exit Sub
End If



ضمناً با عرض پوزش ازهمه دوستان ،با توجه به اینکه ادامه تاپیک در مراحل بعد مشکلتر و تخصصی تر میشود و با این روند ، انتظار همکاری از طرف دوستان نمی رود ، بنده دیگر هیچگونه تمایلی به ادامه فعالیت و همکاری در این تاپیک را ندارم .
موفق باشید

hamid-nice
شنبه 05 بهمن 1392, 20:19 عصر
دوست گرامی جناب بهرامی
انشالله دیگر افراد با تلاش بیشتر و با دادن ایده ای سبکتر و همکاری برای انجام آنها ، شما را دوباره برای ادامه و رفع مسائل این تاپیک مهم و کاربردی ترغیب می کنند البته از هرکس بیشتر از توانش هم نمی شه انتظار داشت یعنی خیلی ها علاقه مند هستند و می خوان که کاری کنند ولی سعیشان حتما به نتیجه نمی رسه که پستی بزنند و شاید هم این موضوع ناراحت باشند

در ضمن اینکه در خواست می کنیم که این تاپیک را ترک نکنید لطفا این یک مورد را به انجام برسانید
در مورد اخیر کد های شما را اعمال کردم ولی نتیجه ای حاصل نشد و reset را هم که حذف می کنیم صرفا لیست باکسها خالی نمی شوند در صورتی که منظور من چیز دیگری بود یعنی وقتی از برنامه خارج می شویم و دوباره برمی گردیم و قبل از باز کردن فرم frmLocalAuthority ، یک راست بریم سراغ فرم ریپورت و آنرا اجرا کنیم و اطلاعات نمایش داده شوند ، صرفا با این راه حل به نتیجه نمی رسد ،اگر ممکنه در این مورد تجدید نظر بفرمایید

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

alirezabahrami
شنبه 05 بهمن 1392, 21:48 عصر
دوست گرامی جناب بهرامی
انشالله دیگر افراد با تلاش بیشتر و با دادن ایده ای سبکتر و همکاری برای انجام آنها ، شما را دوباره برای ادامه و رفع مسائل این تاپیک مهم و کاربردی ترغیب می کنند البته از هرکس بیشتر از توانش هم نمی شه انتظار داشت یعنی خیلی ها علاقه مند هستند و می خوان که کاری کنند ولی سعیشان حتما به نتیجه نمی رسه که پستی بزنند و شاید هم این موضوع ناراحت باشند

در ضمن اینکه در خواست می کنیم که این تاپیک را ترک نکنید لطفا این یک مورد را به انجام برسانید
در مورد اخیر کد های شما را اعمال کردم ولی نتیجه ای حاصل نشد و reset را هم که حذف می کنیم صرفا لیست باکسها خالی نمی شوند در صورتی که منظور من چیز دیگری بود یعنی وقتی از برنامه خارج می شویم و دوباره برمی گردیم و قبل از باز کردن فرم frmLocalAuthority ، یک راست بریم سراغ فرم ریپورت و آنرا اجرا کنیم و اطلاعات نمایش داده شوند ، صرفا با این راه حل به نتیجه نمی رسد ،اگر ممکنه در این مورد تجدید نظر بفرمایید

لطفا فایل ضمیمه را مشاهده فرمایید که مواردی که فرمودید اعمال شده ولی هنوز نتیجه حاصل نشده است
با کمال تشکر
سلام
برای خالی کردن لیست باکس ها به هنگام باز شدن فرم میتوان RowSource آنها را معادل null یا "" قرار داد اما به هنگام Requery مجدد آنها اطلاعات آنها چپ چین میشود و این کار اجتناب ناپذیر است و برای رفع این مشکل و اینکه در هنگام باز شدن فرم ، لیست باکس ها خالی به نظر برسند میتوان رنگ نوشته های آنها را به حالت رنگ زمینه آنها که سفید است در بیاوریم ودر هنگام Requery مجدد آنها را به رنگ سیاه درآورد .

نمونه اصلاح شده راملاحظه کن!

یا علی

hamid-nice
یک شنبه 06 بهمن 1392, 15:00 عصر
سلام
برای خالی کردن لیست باکس ها به هنگام باز شدن فرم میتوان RowSource آنها را معادل null یا "" قرار داد اما به هنگام Requery مجدد آنها اطلاعات آنها چپ چین میشود و این کار اجتناب ناپذیر است و برای رفع این مشکل و اینکه در هنگام باز شدن فرم ، لیست باکس ها خالی به نظر برسند میتوان رنگ نوشته های آنها را به حالت رنگ زمینه آنها که سفید است در بیاوریم ودر هنگام Requery مجدد آنها را به رنگ سیاه درآورد .
یا علی
با سلام
جناب بهرامی عزیز
ممنون از ادامه همکاریتون
فایل اخیرتان را بررسی کردم و چند مورد را خواستم خدمتتان گزارش کنم
1- در حال حاضر لیست باکسها هنوز راست چین عمل نمی کنه با روشی که گفتید و آنرا در فایل اعمال نموده اید هنوز راست چین به نظر نمی رسند
2- در کلیدهای بین لیست باکسها به جز اونهایی که همه فیلدها را از لیست باکسی به دیگری یکجا ،می برند مشکل وجود دارد مخصوصا آخری که اگر چند بار اینور و اونور کنید متوجه می شوید که فیلدها را درست جابجا نمی کنند
3- در مورد راست چین نمودن این مشکل را در فروم مایکروسافت مطرح کردم و راه حلی به وسیله کد نویسی و استفاده از ماژولی داده اند که متوجه شدم برای زبان فارسی خوب عمل نمی کنه ولی برای انگلیسی درست عمل می کنه که فایل آنرا ضمیمه کردم شاید شما مشکلش را متوجه شوید که در اینصورت می تونه فایل کاربردی و مفیدی بشه.
البته این فایل توسط شخصی طراحی شده که لینک سایتش را هم در زیر قرار داده ام
http://www.lebans.com/justicombo.htm
با تشکر

abas1388
یک شنبه 06 بهمن 1392, 19:02 عصر
با سلام

1- در حال حاضر لیست باکسها هنوز راست چین عمل نمی کنه با روشی که گفتید و آنرا در فایل اعمال نموده اید هنوز راست چین به نظر نمی رسند


سلام
ظاهراً آقای بهرامی بیشتر با اکسس 2003 کار میکنند ، چون لیست باکس های فایل نمونه در اکسس 2003 راست چین هستند و در ورژن های بالاتر چپ چین میشوند.
موفق باشید

hamid-nice
دوشنبه 07 بهمن 1392, 00:29 صبح
در سایت مایکروسافت علت را چنین بیان کردند :
علت استفاده از فونتهای عربی است که از LOGFONT استفاده می کنند و برای توضیح این مورد لینک زیر را ارایه کرده اند
http://msdn.microsoft.com/en-us/library/windows/desktop/dd145037(v=vs.85).aspx (http://msdn.microsoft.com/en-us/library/windows/desktop/dd145037%28v=vs.85%29.aspx)

اساتید یک نگاهی بیاندازند لطفا توضیحی در مورد این LOGFONT بدید
من که متوجه نشدم !
با تشکر

hamid-nice
چهارشنبه 09 بهمن 1392, 17:38 عصر
اساتید لطفا به این تاپیک بیشتر توجه فرمایید
با تشکر

hamid-nice
پنج شنبه 10 بهمن 1392, 11:07 صبح
در پست 41# دو تا مشکل هنوز وجود داشت : یکی راست چین نبودن که فایلی برای کمک ضمیمه شده بود و دیگری درست عمل نکرد دگمه یکی مانده به آخر
در فایل ضمیه کنونی ، مشکلات مربوط به دگمه رفع شده است و به جز راست چین بودن ، بقیه موارد درست عمل می کنه و فایل بدون اشکال است
دوستان عزیز بررسی کنند و اگر در فایل ضمیمه هنوز مشکلی دیده شد اعلام نمایند که تا اینجا فایلی کارآمد حاصل شده باشد که برای گسترش آن نمونه آماده ای باشد
با تشکر
موفق باشید

hamid-nice
پنج شنبه 10 بهمن 1392, 14:04 عصر
فايل پست 46# اصلاح شد
در اين تاپيك لطفا از سوالات شخصي خود داري شود اين تاپيك به رويه هاي كلي براي كاربرد عمومي ، پرداخته مي شود
از سولات خاص و غير عمومي پرهيز شود ولي از سوالاتي كه براي نشان دادن نقايص يا بهبود يا پيشرفت عمومي و كلي مباحث يا ايده اي مربوطه ، مورد استفاده قرار مي گيرد ، انشالله از طرف اساتيد استقبال خواهد شد
در واقع سوالات شخصی محدود خودتان را به صورت یک ایده کلی در اینجا مطرح کنید و با گرفتن جواب ، آنرا در پروژه شخصی خود کاربردی نمایید.
با تشكر

hamid-nice
پنج شنبه 10 بهمن 1392, 15:37 عصر
در فایل قبلی هنوز در پیغامها نیز اشکالی وجود داشت که برطرف شد
فایل نهایی تا به اینجا بدون راست چین شدن تکست باکسها در زیر قرار گرفت
باز اگه ایرادی کشف کردید ، لطفا اعلام فرمایید
امید است اساتید در گسترش این تاپیک بیشتر توجه فرمایند
با تشکر

hamid-nice
یک شنبه 11 اسفند 1392, 21:18 عصر
با سلام
با توجه به موضوع تاپیک یک مورد دیگری برای امکانات انتخابی توسط کاربر آماده گردیده که ضمیمه شده است
نمونه ضمیمه برای انتخاب فیلد ها توسط کاربر و همچنین ذخیره و فراخوانی مکان فیلدها به انتخاب کاربر فراهم گردیده که امید است مفید واقع گردد
در صورت داشتن ایده بهتر از سوی دوستان لطفا فایل را بهتر فرمایید
البته اگر بتوان محل ذخیره فیلدها را با موس تنظیم کرد هم خیلی خوب می شود.
متاسفانه فایلها فعلا در سایت آپلود نمی شه درصورت برطرف شدن مشکل سایت در همین پست فایل را ضمیمه می کنم
با تشکر

hamid-nice
دوشنبه 12 اسفند 1392, 06:58 صبح
با توجه به اینکه در این فاصله جناب کاویان عزیز روی انجام عملیات با موس بر روی فایلی که می خواستم ضمیمه کنم ، کار کردند و به نتیجه رسیدند لینک کامل شده مربوطه ایشان را در زیر قرار می دهم
http://www.mantis.ir/discussions/%D9%85%D8%B1%D8%AA%D8%A8-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%AC%D8%A7%DB%8C-%D9%81%DB%8C%D9%84%D8%AF-%D9%87%D8%A7-%D9%88-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%88-%D9%81%D8%B1%D8%A7%D8%AE%D9%88%D8%A7%D9%86%DB%8C-%D9%85%D8%AC%D8%AF%D8%AF-%D8%A2%D9%86%D9%87%D8%A7.html#%D9%BE%D8%A7%D8%B3%D 8%AE-499
با تشکر فراوان از جناب کاویان

hamid-nice
پنج شنبه 15 اسفند 1392, 20:45 عصر
کار دیگری روی این مساله باقی مانده و آن هم ذخیره و فراخوانده شدن اندازه فیلد ها در نمای Datasheet توسط کاربر هست
دوستان و کلیه عزیزان که موضوعات این تاپیک را مفید می دانند ممنون می شیم اگر اقدام فرمایند

ضمنا ظاهرا آپلود کردن فایل در سایت دچار مشکل شده و نمی توان فایلی را ضمیمه کرد ! لطفا دوستان و مدیریت محترم بررسی فرمایند
با تشکر

hamid-nice
جمعه 16 اسفند 1392, 01:32 صبح
نمونه کامل شده ( انتخاب و مرتب سازی توسط کاربر در نمای Datasheet برای فرمها و سابفرمها ) در ضمیمه قرار گرفت
برای کامل تر شدن این مورد و کاربردی شدن همه جانیه آن برای موضوع Datasheet ها مطلب لینک زیر را در کنار این فایل مورد توجه قرار دهید
حذف امکان فیلتر و سورت کردن در نمای Datasheet (http://barnamenevis.org/showthread.php?427432-%D8%AD%D8%B0%D9%81-%D8%A7%D9%85%DA%A9%D8%A7%D9%86-%D9%81%DB%8C%D9%84%D8%AA%D8%B1-%D9%88-%D8%B3%D9%88%D8%B1%D8%AA-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AF%D8%B1-%D9%86%D9%85%D8%A7%DB%8C-Datasheet)

توضیح : در صورتی که مستقیما فرم Form2 را استفاده کنید می توانید با استفاده از موس تغییر جای فیلد ها و اندازه آنها را نیز انجام داده و موارد به طور خودکار ذخیره شده و در باز شدن بعدی این فرم تغییرات فراخوانی خواهند شد این مساله در هنگام استفاده در فرمت mde بسیار اهمیت دارد زیرا در این فرمت امکان ذخیره سازی چنین مواردی که مربوط به Design هست امکانپذیر نمی باشد.

نحوه کاربرد : کافی است در رویداد های OnOpen و Onclose جداول را مطابق نیاز خود تغییر دهید و البته جداول را نیز مطابق جداول خود تغییر و نام گذاری کنید.

بنابراین یکی دیگر از مواردی که می توانست جزو موضوع تاپیک به طور عمومی قرار گیرد ، کامل شد
در ضمن از جناب کاویان عزیز که در کامل شدن این مورد نقش شایانی داشتند سپاسگزارم


از آنجایی که هنوز مشکل آپلود کردن فایلها در سایت برطرف نشده مجبور شدم فایل را در سایت دیگری آپلود کنم بنابراین از لینک زیر استفاده فرمایید

www.mantis.ir/discussions.html?controller=attachment&task=getFile&id=143 (http://www.mantis.ir/discussions.html?controller=attachment&task=getFile&id=143)

جهت گسترس کار : خوب است که به جای فرم From3 فرمی شبیه گزارشگیری پستهای قبلی عمل انتخاب فیلدها و شماره گذاری نیز با Moveup و MoveDown انجام گیرد که امید است سایر دوستان به بهبود کیفیت آن اقدام نمایند.

در ضمن ممنون می شویم اگر کسی وقت بگذاره و sub های فرم Form2 را به صورت Function در یک ماژول مجزا برای عمومبت بخشیدن بیشتر ، تبدیل کنه .

موفق باشید

hamid-nice
جمعه 16 اسفند 1392, 20:25 عصر
فایل پست قبل اصلاح شد
در پست بعد فایلی را که جدول Order به دو جدول تقسیم شده و انتخاب فیلدها جدا می شوند ، قرار خواهم داد

hamid-nice
جمعه 16 اسفند 1392, 22:55 عصر
با سلام
فایل کامل شده با تغییراتی ازجمله عدم وابستگی به جدول اصلی در زیر ضمیمه شد( یعنی صرفا کنترلهای روی فرم Datasheet با سه جدول که خصوصیات فیلدهای جدول اصلی در آنها ذخیره می شوند مقایسه می شوند بنابراین دستورات تغییر کرده اند )
نحوه کاربرد :
کافی است در رویداد OnOpen و Onclose فرم ، نام جداول ویژگی ها را تنظیم نمایید. و بقیه موارد مطابق آنچه در پست 50 # ذکر شده است .

فایل ضمیمه را از لینک زیر دانلود فرمایید

http://www.freeuploadsite.com/do.php?id=36493


در ضمن اگر دوستان زحمت بکشند و دستورات Sub ها را به صورت Function درآورند بسیار بهتر است زیرا از حجم کد نویسی ها برای استفاده در فرمهای مختلف به شدت کاسته خواهد شد .

جهت گسترس کار : خوب است که به جای فرم From3 فرمی شبیه گزارشگیری پستهای قبلی عمل انتخاب فیلدها و شماره گذاری نیز با Moveup و MoveDown انجام گیرد که امید است اساتید و سایر دوستان به بهبود کیفیت آن اقدام نمایند.

لطفا بررسی فرمایید و درصورت وجود اشکالی آنرا اعلام نمایید.
موفق باشید

hamid-nice
یک شنبه 18 اسفند 1392, 01:39 صبح
فایل پست قبل اصلاح شد
در فایل پست قبل در رویداد onclose هنوز به جدول اصلی وابستگی وجود داشت که رفع شد دراین فایل حذف امکان فیلتر و سورت کردن در نمای Datasheet (http://barnamenevis.org/showthread.php?427432-%D8%AD%D8%B0%D9%81-%D8%A7%D9%85%DA%A9%D8%A7%D9%86-%D9%81%DB%8C%D9%84%D8%AA%D8%B1-%D9%88-%D8%B3%D9%88%D8%B1%D8%AA-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AF%D8%B1-%D9%86%D9%85%D8%A7%DB%8C-Datasheet) اعمال نگردیده است و دوستان خودشان می توانند این کار را انجام دهند ) بنابراین فایل کاملی در استفاده از نمای Datasheet با امکان تغیرات انتخابی توسط کاربر فراهم گردیده است که امید است مفید واقع گردد.

نکته مهم : در دستورات sub ها از on error resume next استفاده کرده ام برای اینکه در نمای Datasheet فقط بعضی از انواع کنترلها از بعضی Properties ها مثل columnHidden برخوردارند و بسیاری از انواع کنترلها چنین Properties را ندارند بنابراین هنگام اجرا دچار ارور خواهیم شد
اما اگر نمی خواهید از on error resume next استفاده کنید احتمالا بتوانید( بعد از آن به خوبی تست کنید ) دستورات را فقط برای آن کنترل ها بکار برید که برای این منظور می توانید مثلا برای نوع کنترلهای زیر ،از دستورات زیر استفاده نمایید :

If ctl.ControlType = acTextBox _
Or ctl.ControlType = acComboBox _
Or ctl.ControlType = acCheckBox _
Then

یعنی با اینکار دستورات را برای همه نوع کنترل استفاده نکرده اید و تنها برای کنترلهای بکار رفته در فرمتان که دارای Properties هایی که در دستورات استفاده شده بکار می برید لذا دیگر به علت عدم وجود Properties برای کنترلی در فرمتان ، پیغام error دریافت نخواهید کرد
موفق باشید