نمایش نتایج 1 تا 5 از 5

نام تاپیک: نحوه مرتبط کردن کمبو باکس های الصاق شده به دیتاگرید متصل به پایگاه داده مربوط به یک جدول

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1399
    محل زندگی
    سراوان
    سن
    31
    پست
    32

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

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

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






    using System;
    using System.Drawing;
    using System.Linq;
    using System.Windows.Forms;
    using Telerik.WinControls;
    using Telerik.WinControls.Data;
    using Telerik.WinControls.UI;

    namespace program0
    {
    public partial class Form9 : Form
    {
    public Form9()
    {
    InitializeComponent();
    }

    linqDataContext db = new linqDataContext();
    GridViewMultiComboBoxColumn ProductCode = new GridViewMultiComboBoxColumn("کد کالا");
    GridViewMultiComboBoxColumn ProductName = new GridViewMultiComboBoxColumn("نام کالا");
    RadMultiColumnComboBoxElement mccbEl = new RadMultiColumnComboBoxElement();

    private void Form9_Load(object sender, EventArgs e)
    {
    var dtpcode = (from a in db.StockProductLists
    where a.FiscalYearYear == "1399"
    orderby a.ProductCode
    select new
    {
    ProductCode = a.ProductCode,
    ProductName = a.ProductName.Replace("ي", "ی").Replace("ك", "ک"),
    PackQty = a.PackQty,
    OnHandUnitQty = a.OnHandUnitQty,
    });
    ProductCode.DataSource = dtpcode;
    ProductCode.DisplayMember = "ProductCode";
    ProductCode.ValueMember = "ProductName";
    ProductCode.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown;
    ProductCode.FilteringMode = GridViewFilteringMode.DisplayMember;
    radGridView1.Columns.Add(ProductCode);

    var dtpname = (from a in db.StockProductLists
    where a.FiscalYearYear == "1399"
    orderby a.ProductCode
    select new
    {
    ProductCode = a.ProductCode,
    ProductName = a.ProductName.Replace("ي", "ی").Replace("ك", "ک"),
    PackQty = a.PackQty,
    OnHandUnitQty = a.OnHandUnitQty,
    });
    ProductName.DataSource = dtpname;
    ProductName.DisplayMember = "ProductName";
    ProductName.ValueMember = "ProductCode";
    ProductName.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown;
    ProductName.FilteringMode = GridViewFilteringMode.DisplayMember;
    radGridView1.Columns.Add(ProductName);

    radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;

    }

    private void radGridView1_CellEditorInitialized(object sender, GridViewCellEventArgs e)
    {
    mccbEl = e.ActiveEditor as RadMultiColumnComboBoxElement;
    if (mccbEl != null)
    {
    mccbEl.Columns[0].HeaderText = "کد کالا";
    mccbEl.Columns[1].HeaderText = "نام کالا";
    mccbEl.Columns[2].HeaderText = "تعداد جعبه";
    mccbEl.Columns[3].HeaderText = "تعداد عدد";
    mccbEl.BestFitColumns();
    mccbEl.EditorControl.Columns[0].HeaderText = "کد کالا";
    mccbEl.DropDownSizingMode = SizingMode.UpDownAndRightBottom;
    mccbEl.DropDownMinSize = new Size(550, 300);
    mccbEl.DropDownMaxSize = new Size(550, 300);
    mccbEl.AutoSizeDropDownToBestFit = false;
    mccbEl.DropDownAnimationEnabled = false;
    mccbEl.AutoFilter = true;
    FilterDescriptor filterDescriptor = new FilterDescriptor(mccbEl.DisplayMember, FilterOperator.Contains, string.Empty);
    mccbEl.EditorControl.MasterTemplate.FilterDescript ors.Add(filterDescriptor);
    }
    }
    }
    }


    آخرین ویرایش به وسیله ژیار رحیمی : یک شنبه 21 دی 1399 در 18:18 عصر

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1399
    محل زندگی
    سراوان
    سن
    31
    پست
    32

    نقل قول: نحوه مرتبط کردن کمبو باکس های الصاق شده به دیتاگرید متصل به پایگاه داده مربوط به یک جدول

    یعنی واقعا کسی نیست که بتونه جواب بنده رو بده ؟؟؟

    شاید هم سطح سوالم خیلی تخصصیه که کسی نمیتونه راه حلی پیدا کنه
    آخرین ویرایش به وسیله M.sheaikhzadeh : یک شنبه 21 دی 1399 در 08:51 صبح

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1399
    محل زندگی
    سراوان
    سن
    31
    پست
    32

    نقل قول: نحوه مرتبط کردن کمبو باکس های الصاق شده به دیتاگرید متصل به پایگاه داده مربوط به یک جدول

    و همچنان در انتظار برای پیدا کردن راه حل ....

  4. #4
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: نحوه مرتبط کردن کمبو باکس های الصاق شده به دیتاگرید متصل به پایگاه داده مربوط به یک جدول

    در مورد این سرچ کن ببین چیزی که میخوای هست یا نه
    hierarchical

    یا مولتیپی کومبو تلریک

    اینم ببینید

    https://www.telerik.com/blogs/wpf-multicolumncombobox-gridview-column-combobox-and-more


    https://docs.telerik.com/devtools/wi...etting-started
    آخرین ویرایش به وسیله رامین مرادی : دوشنبه 29 دی 1399 در 00:03 صبح

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1399
    محل زندگی
    سراوان
    سن
    31
    پست
    32

    نقل قول: نحوه مرتبط کردن کمبو باکس های الصاق شده به دیتاگرید متصل به پایگاه داده مربوط به یک جدول

    یه تغییراتی دادم ولی یه مشکلی هست وقتی سطر جدید اضافه می کنم کد کالا و نام کالا خالی میشه!

    using System;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Windows.Forms;
    using Telerik.WinControls;
    using Telerik.WinControls.Data;
    using Telerik.WinControls.UI;

    namespace program0
    {
    public partial class Form9 : Form
    {
    public Form9()
    {
    InitializeComponent();
    }

    linqDataContext db = new linqDataContext();
    GridViewMultiComboBoxColumn ProductCode = new GridViewMultiComboBoxColumn("کد کالا");
    new GridViewMultiComboBoxColumn ProductName = new GridViewMultiComboBoxColumn("نام کالا");
    RadMultiColumnComboBoxElement mccbEl = new RadMultiColumnComboBoxElement();
    public IQueryable StockProductList ;
    public string FiscalYear = "1399";
    public string code;
    public string name;
    private void Form9_Load(object sender, EventArgs e)
    {
    StockProductList = (from a in db.StockProductLists
    where a.FiscalYearYear == FiscalYear
    orderby a.ProductCode
    select new
    {
    ProductCode = a.ProductCode,
    ProductName = a.ProductName.Replace("ي", "ی").Replace("ك", "ک"),
    QtyPerPack = a.QtyPerPack,
    shell = a.OnHandPackQty,
    single = a.OnHandUnitQty,
    OnHandQty = a.OnHandQty
    });


    ProductCode.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown;
    ProductName.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown;

    ProductCode.FilteringMode = GridViewFilteringMode.DisplayMember;
    ProductName.FilteringMode = GridViewFilteringMode.DisplayMember;

    radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
    radGridView1.NewRowEnterKeyMode = RadGridViewNewRowEnterKeyMode.EnterMovesToNextCell ;

    radGridView1.Columns.Add(ProductCode);
    radGridView1.Columns.Add(ProductName);
    radGridView1.Columns.Add("ضریب کالا");
    radGridView1.Columns.Add("کارتن");
    radGridView1.Columns.Add("عدد");
    radGridView1.Columns.Add("تعداد کل");
    rbtn_1.Checked = true;
    }

    private void radGridView1_CellEditorInitialized(object sender, GridViewCellEventArgs e)
    {
    if (rbtn_0.Checked && e.ColumnIndex == 0)
    {
    mccbEl = e.ActiveEditor as RadMultiColumnComboBoxElement;
    if (mccbEl != null)
    {
    mccbEl.Columns[0].HeaderText = "کد کالا";
    mccbEl.Columns[1].HeaderText = "نام کالا";
    mccbEl.Columns[2].HeaderText = "ضریب کالا";
    mccbEl.Columns[3].HeaderText = "جعبه";
    mccbEl.Columns[4].HeaderText = "عدد";
    mccbEl.Columns[5].HeaderText = "تعداد کل";
    foreach (GridViewDataColumn column in
    mccbEl.Columns)
    {
    column.BestFit();
    }
    mccbEl.DropDownSizingMode = SizingMode.UpDownAndRightBottom;
    mccbEl.DropDownMinSize = new Size(550, 300);
    mccbEl.DropDownMaxSize = new Size(550, 300);
    mccbEl.AutoSizeDropDownToBestFit = false;
    mccbEl.DropDownAnimationEnabled = false;
    mccbEl.AutoFilter = true;
    FilterDescriptor filterDescriptor = new FilterDescriptor(mccbEl.DisplayMember, FilterOperator.Contains, string.Empty);
    mccbEl.EditorControl.MasterTemplate.FilterDescript ors.Add(filterDescriptor);
    mccbEl.TextChanged += MccbEl_TextChanged;
    }
    }

    if (rbtn_1.Checked && e.ColumnIndex == 1)
    {
    mccbEl = e.ActiveEditor as RadMultiColumnComboBoxElement;
    if (mccbEl != null)
    {
    mccbEl.Columns[0].HeaderText = "کد کالا";
    mccbEl.Columns[1].HeaderText = "نام کالا";
    mccbEl.Columns[2].HeaderText = "ضریب کالا";
    mccbEl.Columns[3].HeaderText = "جعبه";
    mccbEl.Columns[4].HeaderText = "عدد";
    mccbEl.Columns[5].HeaderText = "تعداد کل";
    foreach (GridViewDataColumn column in
    mccbEl.Columns)
    {
    column.BestFit();
    }
    mccbEl.DropDownSizingMode = SizingMode.UpDownAndRightBottom;
    mccbEl.DropDownMinSize = new Size(550, 300);
    mccbEl.DropDownMaxSize = new Size(550, 300);
    mccbEl.AutoSizeDropDownToBestFit = false;
    mccbEl.DropDownAnimationEnabled = false;
    mccbEl.AutoFilter = true;
    FilterDescriptor filterDescriptor = new FilterDescriptor(mccbEl.DisplayMember, FilterOperator.Contains, string.Empty);
    mccbEl.EditorControl.MasterTemplate.FilterDescript ors.Add(filterDescriptor);
    mccbEl.TextChanged += MccbEl_TextChanged;
    }
    }
    }

    private void MccbEl_TextChanged(object sender, EventArgs e)
    {
    if (mccbEl != null)
    {
    radGridView2.DataSource = mccbEl.DataSource;
    if (radGridView2.RowCount > 0)
    {
    radGridView2.Columns[0].HeaderText = "کد کالا";
    radGridView2.Columns[1].HeaderText = "نام کالا";
    radGridView2.Columns[2].HeaderText = "ضریب کالا";
    radGridView2.Columns[3].HeaderText = "جعبه";
    radGridView2.Columns[4].HeaderText = "عدد";
    radGridView2.Columns[5].HeaderText = "تعداد کل";
    foreach (GridViewDataColumn column in
    radGridView2.Columns)
    {
    column.BestFit();
    }
    radGridView2.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
    }
    }
    }


    private void radGridView1_UserAddingRow(object sender, GridViewRowCancelEventArgs e)
    {
    if (radGridView2.RowCount > 0)
    {
    int zarib = Convert.ToInt32(radGridView2.CurrentRow.Cells[2].Value.ToString());
    int carton1 = Convert.ToInt32(radGridView2.CurrentRow.Cells[3].Value.ToString());
    int add1 = Convert.ToInt32(radGridView2.CurrentRow.Cells[4].Value.ToString());
    int total1= Convert.ToInt32(radGridView2.CurrentRow.Cells[5].Value.ToString());

    if (e.Rows[0].Cells[3].Value == null)
    {
    e.Rows[0].Cells[3].Value = 0;
    }
    if (e.Rows[0].Cells[4].Value == null)
    {
    e.Rows[0].Cells[4].Value = 0;
    }
    int carton = Convert.ToInt32(e.Rows[0].Cells[3].Value.ToString());
    int add = Convert.ToInt32(e.Rows[0].Cells[4].Value.ToString());
    int total = carton * zarib + add;

    if (add == zarib)
    {
    add = 0;
    carton++;
    }
    else if (add > zarib)
    {
    carton = carton + add / zarib;
    add = add % zarib;
    }
    e.Rows[0].Cells[0].Value = code;
    e.Rows[0].Cells[1].Value = name;
    e.Rows[0].Cells[2].Value = zarib.ToString();
    e.Rows[0].Cells[3].Value = carton;
    e.Rows[0].Cells[4].Value = add;
    e.Rows[0].Cells[5].Value = total;

    if (total <= total1)
    {
    e.Cancel = false;
    }
    else
    {
    e.Cancel = true;
    }
    }
    else
    {
    e.Cancel = true;
    }
    }

    private void rbtn_0_CheckedChanged(object sender, EventArgs e)
    {
    if (rbtn_0.Checked)
    {
    ProductCode.DataSource = StockProductList;
    ProductCode.DisplayMember = "ProductCode";
    ProductCode.ValueMember = "ProductName";

    }
    if (rbtn_1.Checked)
    {
    ProductName.DataSource = StockProductList;
    ProductName.DisplayMember = "ProductName";
    ProductName.ValueMember = "ProductCode";
    }
    }
    }
    }


تاپیک های مشابه

  1. پاسخ: 2
    آخرین پست: شنبه 11 خرداد 1392, 10:33 صبح
  2. پاسخ: 0
    آخرین پست: جمعه 10 خرداد 1392, 04:45 صبح
  3. سوال: ایجاد نامحدود تگ img که به دیتابیس متصل باشند
    نوشته شده توسط mehdin69 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: شنبه 10 اردیبهشت 1390, 10:24 صبح
  4. پاسخ: 12
    آخرین پست: جمعه 19 آذر 1389, 19:50 عصر

قوانین ایجاد تاپیک در تالار

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