PDA

View Full Version : سوال: دیتا گرید داینا میک



ma.andishe
یک شنبه 29 فروردین 1389, 08:56 صبح
سلام
من تو برنامه ام 1 فرم دارم که توش 1 گرید هست و همچنین یوزرهای متفاوت هستن که تحت شبکه میتونند به برنامه واردبشن حالا میخواهم وقتی یوزر وارد برنامه بشه وبره اون فرم رو ببینه فقط اطلاعات مربوط به خودشه ببینه
تعداد یوزرها محدود نیست وسطح دسترسی باید اعمل بشه

Mani_rf
یک شنبه 29 فروردین 1389, 10:08 صبح
سلام.
من خیلی منظورت را نفهمیدم اما این چیزی که شما گفتید به DataGrid ارتباطی نداره!
به اطلاعاتی که شما بهش میدید ربط پیدا میکنه ؛ به عبارت ساده تر DataSet که شما به DataGrid معرفی می کنید باید حاوی اطلاعات فیلتر شده ای باشد که مورد نظر شما و کاربرتان است.

ma.andishe
یک شنبه 29 فروردین 1389, 10:31 صبح
بله دقیقا از اشتباهی که کردم شرمنده (یه جورهای دیتا اداپتر داینامیک بشه)
یعنی اینکه data adapter های که از جدول اطلاعات را واکشی میکنند باید شرط دار باشند اما دقیقا نمی دونم به چه روش ان کارو بکنم که اطلاعات که تو گرید نشون داده میشن فیلتر بشن چون ممکن در ان واحد یوزرهای زیادی با سیستم کار کنندپس باید یه جوری دیتا اداپتور شرط دار کرد که برای یوزرهای دیگه یکسان نباشه
در کل اگه راهی بهتر به نظرتون میرسه و یا
اگه بتونید با نمونه کد 1 توضیح بم بدید خیلی ممنون میشم

ma.andishe
یک شنبه 29 فروردین 1389, 12:26 عصر
از دوستان عزیز کسی نیست کمکی بکنه

sahele_sheni
یک شنبه 29 فروردین 1389, 13:41 عصر
به این پست نگاه کن ....

http://barnamenevis.org/forum/showthread.php?t=214701

شما ولی به جای اینکه همهی اطلاعات رو توی table بریزی باید محدودش کنی ...
به tableadapter یه query اضافه میکنی مثل این ::



select * from mytable where column1=@column1 and column2=@column2 and....

و با استفاده از این query جدول رو پر میکنی ......


tableadapter.fillbycode(datatable,مقدار1,مق دار2,....)

حالا برای نشون دادن اطلاعات .....


DataGridView1.Update()

موفق باشید

ma.andishe
دوشنبه 30 فروردین 1389, 10:09 صبح
سلام
نگاه کن دوست عزیز شاید من منظورم خوب نرسوندم
برنامه باید تحت شبکه کار کنه برای 4 واحد مختلف ودر صورت نیاز ممکن واحدها بیشتر بشن
توی بعضی فرمهای مشترک اطلاعات مربوط به ان واحد باید نشون داده بشن یعنی هر واحد فقط اطلاعات مربوط به خودش تو گرید ببینه

sahele_sheni
دوشنبه 30 فروردین 1389, 10:27 صبح
خوب دوست عزیز 4 تا query مختلف بنویس بعد به نسبت اینکه کدوم user وارد شده query مربوط به اون واحد رو fill کن ......

ma.andishe
دوشنبه 30 فروردین 1389, 11:28 صبح
ممکن تعداد واحدها بیشتر بشن

Shahram_Shobeiri
دوشنبه 30 فروردین 1389, 15:10 عصر
برای کاربرات type تعریف کن. یه چیزی تو مایه های سطح دسترسی. بعد بیا هنگام نمایش اطلاعات سطوح دسترسی کاربر رو بررسی کن و با توجه به اون سطح ds رو fill کن.
می تونی یه جای دیگه تو db بیای و کوئری های مربوط به هر سطح دسترسی رو ذخیره کنی یا یه sp بنویسی که یه سطح دسترسی بگیره و با توجه به اون یه کوئری تولید کنه.
کلاً راه های زیادی داری!

ma.andishe
سه شنبه 31 فروردین 1389, 07:30 صبح
سلام میتونی 1 نمونه کار برام بزاری ممنون میشم

Shahram_Shobeiri
سه شنبه 31 فروردین 1389, 11:04 صبح
نمونه که دارم. من تو تمام پروژه هایی که واسه سازمان می نویسم چون با کاربرای مختلف از استان های مختلف و با اختیارات مختلف سر و کار دارم می بایست دسترسی اونها به بخشهای مختلف رو محدود و کارهای اونها رو ثبت کنم. مثلاً بدونم که کاربر x در تاریخ و ساعت m یک سطر با کد n در جدول z ثبت کرده. ولی متاسفانه نمی تونم پروژه رو برای شما بگذارم. فقط نحوه کار رو توضیح میدم.

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