PDA

View Full Version : ایجاد کد بصورت پویا(داینامیک)



biotechsoft
پنج شنبه 31 شهریور 1390, 17:41 عصر
سلام کد زیر رو به چه صورت میتونم بصورت متغیر بنویسم
if me.example1.enabled=true
if me.example2.enabled=true
if me.example3.enabled=true
if me.example4.enabled=true
if me.example5.enabled=true
.
.
.

if me.exampleN.enabled=true
یعنی اینکه برنامه این کد ها رو خودش توی فرم لود ایجاد کنه
example1 تا exampleN
نام متغیر ها(example ها) و true , false داخل یک table sql ذخیره شده است
حالا یه جورایی فرض کنید که یه ستون از دیتاگرید رو میخوام بعنوان کد توی فرم لود تزریق کنم
خیلی فوری نیاز دارم خواهشا اساتید کمک کنن

biotechsoft
جمعه 01 مهر 1390, 08:53 صبح
کسی جواب رو نمیدونه؟؟؟؟
:گریه:

biotechsoft
یک شنبه 03 مهر 1390, 10:57 صبح
ای بابا هنوز راه حلی ارائه نشده:گریه:

armin8651
یک شنبه 03 مهر 1390, 11:51 صبح
ببین این کد به دردت میخوره:

For i = 1 To 5
Me.Controls("Label" + i.ToString).Text = i.ToString
Next



پنج تا label رو مقداردهی میکنه، نام گذاریشون م به صورت label1 و label2 و ... هستش
یه نمونه هم ضمیمه کردم

biotechsoft
یک شنبه 03 مهر 1390, 12:13 عصر
دوست عزیز array 1 تا n رو فرض کن توی دیتا بیس دارم! چطور مقدار دهی کنم؟؟

armin8651
یک شنبه 03 مهر 1390, 13:01 عصر
خوب مقدار n رو باید اول بدست بیاری و اون رو حد بالای حلقه قرار بدی، اگه داده ها تو دیتابیس و تو یه جدول باشن راحت میتونید با دستورات sql مقدار n رو به دست بیاری (دستور count). البیه من ایده میدم هیچ چیزی از برنامه و دیتابیست نمیدونم چون ندیدمش و این ها فقط ایده هستن

biotechsoft
یک شنبه 03 مهر 1390, 13:21 عصر
مرسی ،برای اینکه دیدت نسبت به برنامه بازتر بشه:
یه منو استریپ دارم
لیست آیتم های این منو (text و name)داخل دیتا بیس ذخیره شده
الان کاری که میخوام بکنم اینه:
1 فرم درست کنم که هر کاربر رو بتونم براش سطح دسترسی ایجاد کنم و جلوی آیتم هایی که نیاز هست کاربر ببینه تو دیتا بیس 1 بذارم(من یا مدیر سیستم)
هنگام لود فرم اصلی 1 دیتا گرید از اطلاعات بالا رو لود کنم و هر منویی که توی دیتا گرید 1 داشت توی منو استریپ visible بشه:اشتباه:

خب راهی که انتخاب کردم درسته یا کلا بیس برنامه رو باید تغییر بدم؟

armin8651
دوشنبه 04 مهر 1390, 11:11 صبح
خوب اینم یه ایده واسه این کاره ، میتونه عملی بشه ، فقط نیاز به دیتاگرید دیگه نداری، اطلاعات رو تو یه دیتاست بیار و با توجه به اطلاعات توی دیتاست سطح دسترسی رو مشخص کن
فقط چک کن کدی که من گذاشتم واسه خاصیت visible منو استریپ هم کار میکنه یا نه

biotechsoft
دوشنبه 04 مهر 1390, 12:07 عصر
متاسفانه زیر منو های منو استریپ رو با این کد نمیشناسه:ناراحت: و ارور میده موقع لود فرم "Me.Controls(i.ToString).visible=true"

جای i هم به صورت رشته داخل "" نام زیر منو های استریپ رو که مینویسم دستی بازم ارور میده
میشه یه نمونه درست کنید؟
از اینکه پیگیری میکنی خیلی ممنونم

biotechsoft
سه شنبه 05 مهر 1390, 19:52 عصر
Dim b As String = "BanketelaatpersonelToolStripMenuItem.DropDownItems .RemoveByKey("sabt_person_toolstrip")"

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

BanketelaatpersonelToolStripMenuItem.DropDownItems .RemoveByKey("sabt_person_toolstrip")

biotechsoft
دوشنبه 11 مهر 1390, 19:23 عصر
:گریه::گریه::گریه::گریه:

سوداگر
جمعه 25 آذر 1390, 23:10 عصر
Dim b As String = "BanketelaatpersonelToolStripMenuItem.DropDownItems .RemoveByKey("sabt_person_toolstrip")"

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

BanketelaatpersonelToolStripMenuItem.DropDownItems .RemoveByKey("sabt_person_toolstrip")

من دیده بودم با codedom همچین کاری رو انجام میدن. من یه نمونه به زبان #C دارم. ولی بهتره راجع بهش تحقیق کنی.