PDA

View Full Version : دیتاگریدویو تودرتو



mkmostafa
چهارشنبه 23 تیر 1400, 15:33 عصر
سلام
من دیتاگریدویو تودرتو میخواستم
مانند تصویر زیر
153413
کسی هست منو راهنمایی کنه ، ممنون میشم.
وب فرم و زبان سی شارپ هست.

mazoolagh
پنج شنبه 24 تیر 1400, 11:12 صبح
سلام و روز خوش
جستجو کنین : master-detail grid winforms

mkmostafa
شنبه 26 تیر 1400, 11:18 صبح
سلام و روز خوش
جستجو کنین : master-detail grid winforms

عالی بود دست شما درد نکنه
الان شده تصویر زیر
153416

فقط فارسی نیست که دارم روش کار می کنم.
البته اگر راهنمایی کنید باز هم ممنون میشم.
یاعلی

mazoolagh
شنبه 26 تیر 1400, 13:13 عصر
بنظر میاد از کمپوننت های devexpress استفاده کردین - که خیلی کار خوبی هست.
هم میتونین کپشن ستونها رو فارسی بدین و هم میتونین متن های خود گرید رو سفارشی کنین.

mkmostafa
یک شنبه 27 تیر 1400, 12:53 عصر
بنظر میاد از کمپوننت های devexpress استفاده کردین - که خیلی کار خوبی هست.
هم میتونین کپشن ستونها رو فارسی بدین و هم میتونین متن های خود گرید رو سفارشی کنین.


تو سایت های خارجی خیلی گشتم ، چیزی جز Devexpress پیدا نکردم.
و مجبور شدم اون رو نصب کنم
امکاناتش خیلی زیاده و همه فیلدها فارسی شده ولی خیلی سنگینه
وقتی اجرا میشه مقدار رم از 25 به 75 میره و همچنین سرعت باز شدن فرم چند ثانیه دیرتر از فرم های دیگه برنامم هست.

اگر منظور شما استفاده از کامپوننت نبود ، متاسفانه من چیز دیگه ای پیدا نکردم.

الان تصویر تکمیل شده زیر شده
153420

mazoolagh
دوشنبه 28 تیر 1400, 12:52 عصر
تو سایت های خارجی خیلی گشتم ، چیزی جز Devexpress پیدا نکردم.
و مجبور شدم اون رو نصب کنم
امکاناتش خیلی زیاده و همه فیلدها فارسی شده ولی خیلی سنگینه
وقتی اجرا میشه مقدار رم از 25 به 75 میره و همچنین سرعت باز شدن فرم چند ثانیه دیرتر از فرم های دیگه برنامم هست.
اگر منظور شما استفاده از کامپوننت نبود ، متاسفانه من چیز دیگه ای پیدا نکردم.


البته شما میتونین از روی کنترل های استاندارد کنترل های custom بسازین، ولی بنظرم استفاده از کمپوننت بهتر از اختراع دوباره چرخ هست و باعث صرفه جویی در زمان میشه.
همچنین ارزش چند ثانیه زمان لود و چند مگ حافظه بیشتر رو داره (باز هم نظر شخصی من هست). بعد که جواب گرفتین احتمالا میتونین با اعمال یک سری تنظیمات روی این کمپوننت ها این چیزها رو بهبود بدین.
هم telerik و هم devexpress کمپوننت هاشون به صورت وسیع استفاده میشن و کاملا جا افتادن - حتی اون 2-3 هزار دلار لایسنس هم ارزش پرداخت داره!

mkmostafa
پنج شنبه 07 مرداد 1400, 09:00 صبح
با تبریک عید بزرگ غدیر خدمت همه دوستان و اساتید برنامه نویس
میخوام کاربر با انتخاب محصول از جدول دوم ، بتونه برگشت از فروش بزنه
خیلی گشتم ولی اصلا نتونستم به جدول دوم دسترسی داشته باشم.
حتی نمیتونم فیلدهای جدول دوم رو جابه جا کنم.
لطفا یه راهنمایی بفرمایید؟
153443

ma.rad
پنج شنبه 07 مرداد 1400, 19:48 عصر
سلام دوست عزیز
استفاده از این کامپوننت پیشنهاد نمی دم.
از دیتا گرید معمولی استفاده کنید و زمانی که روی سطر مورد نظر یا ستون مورد نظر کلیک شد دیتاگرید دوم نمایش دهنده محصول باز بشه که هم میتونه توی همون فرم باشه ویا توی یه فرم دیگه . به همین روش میتونید به تمام جداول دسترسی داشته باشید.

mazoolagh
شنبه 09 مرداد 1400, 12:06 عصر
میخوام کاربر با انتخاب محصول از جدول دوم ، بتونه برگشت از فروش بزنه
خیلی گشتم ولی اصلا نتونستم به جدول دوم دسترسی داشته باشم.

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

2- شما با متد getselectedrows میتونین به مجموعه ردیف های انتخاب شده هر view در grid دسترسی داشته باشین.
البته من قبلا برای view های detail مشکل داشتم ، یعنی جواب نمیداد و اگه راه دیگه ای داشت بلد نبودم، الان رو نمیدونم باید تست کنم.

3- برای راحتی میتونین در تنظیمات view ، روش انتخاب رکورد رو checkbox بگذارین و به این ترتیب یک ستون از نوع checkbox به view اضافه میشه برای انتخاب رکوردها.
همچنین یک checkbox هم در header اون ستون میاد برای انتخاب همه/هیچ (دست شماست که این دیده بشه یا نه)

4- حالا در رخداد selection_changed میتونین به رکوردهای انتخاب شده دسترسی داشته باشین (برای دورزدن مشکل 2)
و اون ها رو برای روتین که قرار هست روی اینها کاری انجام بده نگه دارین (در یک array فرضا)

mazoolagh
شنبه 09 مرداد 1400, 12:13 عصر
5- تا جایی که یادم هست:
اگر بیشتر از یک رکورد از master رو باز کنین (expand) - که البته این دست شماست که بشه یا نشه،
در رخداد selection_changed متد getselectedrows فقط رکوردهایی رو میاره مربوط به رکورد انتخاب شده master هست و نه همه اونها.

6- اینها رو تست کنین، اگر هنوز مشکلی بود خبر بدین اگر تونستم نمونه کد درست کنم.

mkmostafa
جمعه 17 دی 1400, 12:10 عصر
سلام به همگی
موفق شدم گریدویو از کمپوننت های devexpress رو کاملا فارسی و در هرستون دلخواه باتن بزارم.
153642
برای فارسی کردن هر ستون کافیه در کپشن هر ستون ، نام فارسی رو تایپ کنید.
برای دسترسی به کپشن از وارد دیتاست میشین و مانند تصویر زیر که گویا هست برای هر ستون نام دلخواه میزاریم.
153643
برای گذاشتن باتن برای ستون دلخواه از repositoryItemButtonEdit استفاده میشه
و برای دسترسی به ان در کد ButtonClick کدهای زیر رو میزاریم.
private void repositoryItemButtonEdit1_ButtonClick(object sender, ButtonPressedEventArgs e) {
StiReport stiReport = new StiReport();
stiReport.Load("Report/ReportSales.mrt");
stiReport["@FactorId"] = gridView1.GetFocusedRowCellValue("FactorId");
stiReport.Print(false);
}

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

gridView1.GetFocusedRowCellValue("column1")

با سپاس