PDA

View Full Version : راهنمایی در مورد طراحی فرم تعریف کاربران



iman_s52
شنبه 24 شهریور 1386, 09:06 صبح
با سلام خدمت دوستان گرامی
من یه برنامه MDI دارم که می خوام یه فرم تعریف کاربران واسش تعریف کنم اگه میشه لطف کنین از تجربیاتتون در مورد فرم تعریف کاربرانتون رو در اختیار بنده بذارین.
آخه موندم که چطوری این فرم رو طراحی کنم من تویه فرم اصلیم یه منو داروم که ممکنه تعداد منوها یا زیر منوهاش تغییر کنه ( بیشتر بشه ) حالا من چطوری می تونم این دسترسی ها رو تعریف کنم که اگه به منوهام چیزی اضافه کردم دسترسی های قبلیم به هم نریزه ؟؟

رها
شنبه 24 شهریور 1386, 14:01 عصر
سلام
من سه روش رو پیشنهاد می کنم
1. استفاده از سیستم مدیریت کاربران بر اساس مجوز به سمت و تعیین سمت کاربر
2. استفاده از سیستم مدیریت کاربران براساس مجوز مستقیم به کاربر
3. استفاده از روشهای 1 و 2 به صورت همزمان.

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

iman_s52
شنبه 24 شهریور 1386, 14:13 عصر
میشه روش دوم رو بیشتر توضیح بدین ؟؟؟؟

Rocker
شنبه 24 شهریور 1386, 15:39 عصر
میتونی بهتر توضیح بدی

gomnam
شنبه 24 شهریور 1386, 16:56 عصر
منوی خود را Dynamic بسازید
ورویداد های اون را هم به صورت dynamic هندل کنید

اینجا (http://www.codeproject.com/cs/miscctrl/DynamicMenuDataSet.asp)
را ببینید
میتونه بهتون ایده بده
البته من اصلا ازش خوشم نیومد
چون میشه خیلی قویتر از اینا کار کرد
ولی خوب برای شروع خوبه

موفق باشید
کیانی

iman_s52
یک شنبه 25 شهریور 1386, 03:59 صبح
دوستان اگه میشه لطف کنید و در مورد تعریف کاربرانی که تا حالا دیدید و یا تجربه کردین ایده و نظرتون رو بدین
ممنون

ghafoori
یک شنبه 25 شهریور 1386, 10:37 صبح
اگر برنامه شما کوچک است از روش دوم استفاده کنید چون راحت تر است ولی اگر برنامه ای بزرگ داری روش دوم با اینکه کد نویسی بیشتری دارد ولی در نهایت قابلیت توسعه ان راحت تر است و مناسب تر من در برنامه های خودم از روش دوم استفاده می کنم اما در برنامه های بزرگ مثلا اتوماسیون و حسابداری ها و cms دیدم از روش اول استفاده می کنند

iman_s52
یک شنبه 25 شهریور 1386, 11:17 صبح
آخه برنامه در یه حدی آماده شده و ممکنه بعدا به گزینه های منوهام اضافه بشه.
این دسترسی ها رو هم من بصورت 0 و 1 تویه دیتا بیسم ذخیره می کن نمی دونم اصلا روشم درسته یا نه ؟؟؟
در ضمن نمی دونم واسه پیاده کردن دسترسی در داخل فرم هام مثلا اینکه کاربر اجازه حذف یا ایجاد یا ابطال رو داره یا نه رو چطوری پیاده سازی کنم؟؟؟؟؟؟

iman_s52
دوشنبه 26 شهریور 1386, 07:55 صبح
از دوستان کسی نظری نداره ؟؟؟؟

gomnam
دوشنبه 26 شهریور 1386, 08:38 صبح
آخه برنامه در یه حدی آماده شده و ممکنه بعدا به گزینه های منوهام اضافه بشه.
این دسترسی ها رو هم من بصورت 0 و 1 تویه دیتا بیسم ذخیره می کن نمی دونم اصلا روشم درسته یا نه ؟؟؟
در ضمن نمی دونم واسه پیاده کردن دسترسی در داخل فرم هام مثلا اینکه کاربر اجازه حذف یا ایجاد یا ابطال رو داره یا نه رو چطوری پیاده سازی کنم؟؟؟؟؟؟

یه سوال
اول بگین منوهاتون را چطوری ساختین ؟
منظورم اینه که در زمان DESIGN ساختین ؟
یا اینکه در زمان RUNTIME ساخته میشن ؟

اگه از حالت دوم استفاده کنی خیلی راحت میتونی یوزر هاتو کنترل کنی

بیس کار هم به این شکل هست که تو یه جدول توی دیتابیست میسازی مثلا به نام MENU
که میتونه شامل فیلدهای menuTxtو menuCode و menuParentCode باشه
جدولت را هم به این شکل پرش میکنی که برای آیتم هایی که به خود menuStrip اضافه میشوند مقدار menuParentCode را صفر میذاری , برای بقیه مقدار menuParentCode را برابر با menuCode آیتم والدش میذاری
فرض کن میخوای یه منو بسازی که آیتم های file و new و exit و format و fornt داشته باشی
که font زیر format و new و exit هم زیر file قررا میگیرن

پس مقادیر جدولت به این شکل پر میشن




menuCode menuText menuParentCode

10 file 0
101 new 10
102 exit 10
20 fromat 0
201 font 20





همونطور که میبینی menuparentCode مربوط به گزینه های new , exit ,برابر با 10 هستند که برابر است با مقدار menuCode مربوط به فایل
پس اینطور نتیجه گرفته میشه که new وexit در زیر فایل قرار دارند
برای font و ... هم به همین شکل

حال برای تعیین سطح دسترسی میتونی یه جدول به نام userlevel داشته باشی که معمولا 2 تا ستون بیشتر نداره
یکی کد کاربر و دیگری کد آیتمی هست که به اون میتونه دسترسی داشته باشه

مثلا فرض کنید کاربری به نام مهدی کیانی با کد کاربری 1 به آیتم های new , exit دست رسی داره ولی به فونت دسترسی نداره
پس توی جدول userLevel میتونی داشته باشی




userCode menuCode
1 10
1 101
1 102



حالا میتونی با یه join کردن ساده بین دوتا جدول فوق براحتی به هدفی که میخوای برسی

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

موفق باشید
کیانی

iman_s52
سه شنبه 27 شهریور 1386, 08:22 صبح
ممنون از لطف و توجهتون
دارم تستش می کنم.