PDA

View Full Version : سوال: ذخیره پروفایل شخصی در دیتابیس



MasoudAdmin
شنبه 21 آبان 1401, 19:09 عصر
با سلام
من در برنامه از کامپوننت Telerik RadGridView استفاده کردم. کاربر که لاگین میکنه ستون هایی رو که پیش فرض برنامه هست رو مشاهده میکنه. میتونه ستون ها را مخفی کنه یا به دلخواه خودش ستون ها رو جابجا کنه. حالا کاربر من میخواد این تنظیماتی که روی جدولش انجام میشه رو به عنوان پروفایل شخصیش ذخیره کنه تا هر وقتی لاگین کرد اون جدول با تنظیماتی که انجام داده بهش نمایش بده و مجبور نشه هر با که لاگین میکنه دوباره اون تنظیمات رو انجام بده.
ممنون میشم راهنمایی کنید.

MasoudAdmin
دوشنبه 23 آبان 1401, 19:06 عصر
سلام دوستان. هیچ کدام از عزیزان این مورد را نداشتند که راهنمایی بفرمایند.:افسرده:

samiasoft
سه شنبه 24 آبان 1401, 02:30 صبح
سلام وقت بخیر
نام ستون هایی که در برنامه بصورت پیش فرض نمایش دادید که در دسترستون هست حالا وقتی هرکدوم از ستون هارو مخفی میکنه نام همون ستون رو در یک فایل ذخیره میکنید و موقع لود شدن هم براساس همون نام ستون های مربوطه را مخفی یا نمایش میدید و یا بالعکس کلیه ستون هایی که در حال حاضر در حال نمایش هست رو ذخیره میکنید و موقع ورود به اون بخش فقط اون ستون ها رو نمایش میدید.

فکرمیکنم در بحث ذخیره کردن مشکلی نداشته باشید اما در مورد مخفی کردن ستون ها مطمئنا مشابه دیتاگرید ویو هست در غیراین صورت داکیومنت خود سایتشو یک نگاهی کنید.

MasoudAdmin
سه شنبه 24 آبان 1401, 09:58 صبح
ممنون از پاسخ شما. یکی از مواردی هم که مطرح کردم جابجایی ستون ها هست. اون رو چجوری باید به عنوان پروفایل شخصی ذخیره کنم؟ مثلا ستون آخر رو به وسط یا اول منتقل میکنه. این موضوع رو هم ممنون میشم راهنمایی بفرمایید.

MasoudAdmin
شنبه 05 آذر 1401, 18:02 عصر
با سلام مجدد.
من اطلاعات فیلدهای جدول رو داخل یک جدول Tbl_CustomizeGrids بر اساس کد کاربر ذخیره کردم. منتهی بحث ترتیب جدول رو چجوری باید بر اساس چیزی که کاربر ستون ها رو جابجا کرده مثلا ستون آخر رو به اول منتقل کرده کلا ترتیب ستون ها رو کاربر بر اساس سلیقه شخصی خودش مرتب کرده رو وقتی لاگین میکنه و فرمش باز میشه جدولی رو ببینه که با سلیقه خودش Customize کرده.
اینم فیلدهای جدولی هست که گفتم:
InfoGridID
UserID
GridName
EnglishColumnName
PersianColumnName
Priority
Visible

یکی از دوستان از کامپوننت Janus استفاده کرده بوده میگه گرید این کامپوننت یک خاصیتی داره به اسم Content که کاربر هر تغییری بده اون Content رو ذخیره کنیم و دوباره موقع فراخوانی از Content که تو دیتابیس ذخیره شده میره میخونه دقیقا جدول بر اساس تغییرات کاربر رو نمایش میده.
منتهی من از تلریک استفاده کردم.
امیدوارم که منظورم رو خوب رسونده باشم و بتونم از دوستان کمکی دریافت کنم.

mazoolagh
شنبه 05 آذر 1401, 19:08 عصر
سلام و روز خوش
همیشه اول داکیومنت ها رو چک کنین:

Save and Load Layout - WinForms GridView Control - Telerik UI for WinForms (https://docs.telerik.com/devtools/winforms/controls/gridview/save-and-load-layout/save-and-load-layout)

MasoudAdmin
یک شنبه 06 آذر 1401, 19:26 عصر
با سلام و سپاس از راهنمایی شما.
بله. من میخوام این فایل Layout رو در یک جدول دیتابیس ذخیره کنم و وقتی برنامه اجرا میشه اول بره سراغ این جدول در دیتابیس و این فایل xml مربوط به layout رو بخونه طبق همین فایل جدول رو کاربر تغییرات داده رو نمایش بده. نمی خوام کاربر رو درگیر این کنم که هر بار بره فایل xml رو بخونه. می خوام اتوماتیک بدون SaveFileDialog و OpenFileDialog برنامه با تغییراتی که کاربر واسه خودش در دیتابیس ذخیره کنه بالا بیاد.

mazoolagh
دوشنبه 07 آذر 1401, 08:49 صبح
سلام دوباره
اون نمونه خود تلریک روش کار رو نشون میده و شما باید کدها رو برای کار خودتون ویرایش کنین؛
فرضا برای خودکار کردن کارها باید روتین save رو در form close و روتین load رو در فرم load بیارین.

دوباره پیشنهاد میکنم داکیومنت ها رو بخونین!
تلریک 3 راه برای نوشتن/خوندن layout گذاشته:
1- فایل xml
2- stream
3- xml writer/xml reader

روش های 2 و 3 به شما اجازه میدن layout رو به string تبدیل و در بانک ذخیره کنین
یا
از بانک بصورت string بخونین و به xml تبدیل کنین.

MasoudAdmin
دوشنبه 07 آذر 1401, 19:07 عصر
با سپاس فراوان. از روش 2 استفاده کردم. :تشویق: