مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

مشکل در انتخاب فیلد برای گزارش

  • یکشنبه 12 شهریور 1396
  • 17:18
تشکر میکنم

با سلام ببینید من یه مدل به صورت زیر دارم

  public partial class Person
    {
        public int Person_Id { get; set; }
        public string Person_Name { get; set; }
        public string Person_Family { get; set; }
        public string Person_ShomareShenasname { get; set; }
    }

در ویوو میخوام کاربر خودش بتوونه اون فیلدهایی که میخواد توو گزارش بیاد رو انتخاب کنه ، به خاطر همین یه کلاس دیگه ساخنم به صورت زیر

 public class csPerson
    {
        [ScaffoldColumn(false)]
        [Bindable(false)]
        public int Person_Id { get; set; }

        [Display(Name = "نام  ")]
        [DisplayName("نام  ")]
        public string Person_Name { get; set; }
        [Display(Name = "نام خانوادگی  ")]
        [DisplayName("نام خانوادگی  ")]
        public string Person_Family { get; set; }
        [Display(Name = "شماره شناسنامه  ")]
        [DisplayName("شماره شناسنامه  ")]
        public string Person_ShomareShenasname { get; set; }


        public bool b_Person_Name { get; set; }
        public bool b_Person_Family { get; set; }
        public bool b_Person_ShomareShenasname { get; set; }

    }

الان ویووی من این شکلی هست یعنی کاربر فیلدها رو میبینه و انتخاب میکنه

وقتی دکمه ثبت رو میزنه از طریق فیلدهای boolean من میفهمم که چه فیلدهایی را طرف انتخاب کرده ، اکشنمو ببینید

[HttpGet]
        public ActionResult Index()
        {
            csPerson p = new csPerson();
           
            return View(p);
        }
        [HttpPost]
        public ActionResult Index(csPerson p)
        {

            return View();
        }

ایرادم الان اینه که من میخوام فقط اوون فیلدهایی که انتخاب شده رو به عنوان یک دیتا سورس بدم به Stimul report و این یه چیز کلی هست یغنی مثلا من میام نام و شماره شناسنامه رو انتخاب میکنم یه نفر دیگه میاد فقط نام خانوادگی رو انتخاب میکنه میخوام هر شخص بتوونه خودش اون ستون های گزارش را به صورت داینامیک انتخاب کنه

واقعا موندم چیکار کنم

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

mvc_esmaeili

عضویت از 1395/08/22

  • یکشنبه 12 شهریور 1396
  • 18:34
با لامبدا شرط بزار که همه فیلد هر رو نیاره از لینک استفاده کن
کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • دوشنبه 13 شهریور 1396
  • 07:11

لینک رو بلدم ، اما با لامبدا شرط بزارم فکرکنم نوع anynomuuse برمیگردونه من اینو نمیخوام، میشه منظورتونو به صورت کد بگید

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 13 شهریور 1396
  • 09:46

برای اون قسمت بعد از انتخاب میتونید از ORM Dapper استفاده کنید

مثل Entity هست ولی اجازه میده کوئری Sql اجرا کنید و به راحتی ستون ها رو واکشی کنید

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • دوشنبه 13 شهریور 1396
  • 10:34

 به صورت زیر عمل کنید:

        public void TestReport()
        {
            // this is fack list of person
            var person = new List<Person>()
            {
                new Person()
                {
                    Person_Family  =  "Alizadeh",
                    Person_ShomareShenasname = "123",
                    Person_Name = "Soheil",
                    Person_Id = 1
                },
                new Person()
                {
                    Person_Family = "Madaeni",
                    Person_ShomareShenasname = "66",
                    Person_Name = "Iman",
                    Person_Id = 2
                }
            };

            var p = new csPerson()
            {
                b_Person_Family = true,
                b_Person_ShomareShenasname = true
            };

            var report = person.Select(o => new Person()
            {
                Person_Family = p.b_Person_Family ? o.Person_Family : null,
                Person_Name = p.b_Person_Name ? o.Person_Name : null,
                Person_ShomareShenasname = p.b_Person_ShomareShenasname ? o.Person_ShomareShenasname : null,
            }).ToList();
        }

دوست عزیز لطفا در نام گذاری دقت کنید:

9 Confusing Naming Conventions for Beginners

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • دوشنبه 13 شهریور 1396
  • 15:30

خب اقای علیزاده اینی هم که شما نوشتید یعنی report خب داخلش باز یه فیلد Person_Family و Person_Name و Person_Shomareshenasname هست دیگه منظورم اینه این فیلدها هست فقط تووش اومدی چک کردی که اگر کاربر انتخاب نکرده بود null بشه؟

سوال من الان اینه ، خب شما الان یه گزارش مثل stimul داری، میخوای این ستون ها رو داینامیک بدی بهش ، توو design استیمول میای تعریف میکین همه ستون ها رو ؟ یعنی Person_Name و Person_Familyو Person_shenasname و حالا ممکنه داخل اشون null باشه ، گیر اصلی من اینه که این ستون ها داینامیک باشه نمیدونم چه جور بگم.شما تنها کاری که کردی اومدی توو بعضی هایی که انتخاب نکرده null گذاشتی

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • دوشنبه 13 شهریور 1396
  • 16:13

مشکل شما با ایجاد Property های پویا حل می شود ؟

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)