2017-02-16 8 views
0

私は請求用にデータグリッドビューを持っています。私は、在庫アイテムだけを表示するために別々のdatagridviewを1つ追加しました。だからアイテム名をダブルクリックすると、それは課金データグリービューの列名項目名に表示されるはずです。また、MRP税などの他の列も自動的に列記されます。私は項目名リストdatagridviewにcelldoubleclickイベントを追加し、このようなセル値を取得しました。別のデータグリッドビューのセルダブルクリックに基づいてデータグリッドビューを自動入力

private void dgv_ItemNamePOS_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
    { 
     string a = dgv_ItemNamePOS.CurrentRow.Cells[0].Value.ToString(); 
     dgv_POS.Rows[0].Cells[1].Value = a.ToString(); 


    } 

値は請求用グリッドビューの項目名の列に表示されます。私は課金データグリッドビューで値変更イベントを追加しましたが、それは発生しません。

SqlConnection con = new SqlConnection(CS); 
      con.Open(); 
      if (dgv_POS.Rows.Count == 0) 
      { 
       SqlCommand cmd = new SqlCommand("SELECT Item_Code from Items where [email protected] AND Activate='Yes'", con); 
       cmd.Parameters.AddWithValue("@Name", dgv_POS.Rows[0].Cells[1].Value.ToString()); 
       string k = cmd.ExecuteScalar().ToString(); 
       dgv_POS.CurrentRow.Cells[2].Value = k; 

      } 

このアイテム名を請求データグリッドビューの次の空き行に追加します。誰かがこれを解決するのを助けることができますか?ダブルクリックするとアイテム名のみを含む別のdatagridviewのアイテム名に基づいて、請求用のdatagridviewセルを自動入力します。

私の考えを得るには下の画像を参照してください。 Sample

答えて

0

実際に私はあなたが必要なすべてを理解していなかったが、あなたは、単に各法案の項目の詳細を表示する必要がある場合は、次の点を確認してください

public partial class Form1 : Form 
{ 
    List<BillItem> _Items = new List<BillItem>(); 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     DataTable dt = new DataTable(); 
     DataColumn clmItemName = new DataColumn("clmItemName", typeof(string)); 
     dt.Columns.Add(clmItemName); 
     dt.Rows.Add("Parle-G"); 
     dt.Rows.Add("Kardjack"); 

     dgv_ItemNamePOS.DataSource = dt; 

     // to simulate items' details in database 
     _Items.Add(new BillItem() { No = 1, ItemName = "Parle-G", Code = "P-G", MRP = "***" }); 
     _Items.Add(new BillItem() { No = 1, ItemName = "Kardjack", Code = "K", MRP = "@@@" }); 
    } 

    class BillItem 
    { 
     public int No { get; set; } 
     public string ItemName { get; set; } 
     public string Code { get; set; } 
     public string MRP { get; set; } 
    } 

    private void dgv_ItemNamePOS_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
    { 
     string a = dgv_ItemNamePOS.CurrentRow.Cells[0].Value.ToString(); 
     dgv_POS.Rows[0].Cells[1].Value = a.ToString(); 

     BillItem billItem = _Items.First(item => item.ItemName == a); 

     dgv_POS.Rows[0].Cells[0].Value = billItem.No.ToString(); 
     dgv_POS.Rows[0].Cells[2].Value = billItem.Code.ToString(); 
     dgv_POS.Rows[0].Cells[3].Value = billItem.MRP; 
    } 
} 
関連する問題