// サブプロシージャ:部品マスタ情報を取得する private void readPartsMasterTable(ref DataTable dt) { string subAssyNo = cmbSubAssyNo.Text; string sql = "select parts_no, parts_name, ratio from t_parts where sub_assy_no ='" + subAssyNo + "'"; System.Diagnostics.Debug.Print(sql); dt.Rows.Clear(); TfSQL tf = new TfSQL(); tf.sqlDataAdapterFillDatatable(sql, ref dt); }
// �@オペレーター // サブプロシージャ:オペレーター情報をデータグリッドビューに反映する private void readOperatorTable(ref DataTable dt, ref DataGridView dgv, bool load) { string batchNo = txtBatchNo.Text; string sql = "select process, operator, machine from t_operator " + "where batch_no='" + batchNo + "'"; System.Diagnostics.Debug.Print(sql); dt.Clear(); TfSQL tf = new TfSQL(); tf.sqlDataAdapterFillDatatable(sql, ref dt); updateDataGridViewsub(dt, ref dgv); //// グリッドビューにコンボボックスを追加する //if(load) insertComboBoxToGridView(); }
// サブプロシージャ:新規登録モード時、工程リストを表示する private void showDefaultProcess(ref DataTable dt, ref DataGridView dgv, bool load) { string subAssyNo = cmbSubAssyNo.Text; // string line = "mc_line_" + cmbLine.Text; マシン番号取得機能は、使用停止。将来的に再度使用する可能性はあり。 // string sql = "select process, " + line + " as machine from t_process " + "where sub_assy_no='" + subAssyNo + "'"; string sql = "select process from t_process where sub_assy_no='" + subAssyNo + "' order by process"; System.Diagnostics.Debug.Print(sql); dt.Clear(); TfSQL tf = new TfSQL(); tf.sqlDataAdapterFillDatatable(sql, ref dt); updateDataGridViewsub(dt, ref dgv); //// グリッドビューにコンボボックスを追加する //if (load) insertComboBoxToGridView(); }
// �B副資材 // サブプロシージャ:副資材情報をデータグリッドビューに反映する private void readSubMaterialTable(ref DataTable dt, ref DataGridView dgv) { string batchNo = txtBatchNo.Text; string sql = "select sub_mat_no, sub_mat_name, sub_mat_supplier, sub_mat_invoice, validity from t_sub_mat_invoice " + "where batch_no='" + batchNo + "'"; System.Diagnostics.Debug.Print(sql); dt.Clear(); TfSQL tf = new TfSQL(); tf.sqlDataAdapterFillDatatable(sql, ref dt); updateDataGridViewsub(dt, ref dgv); // スキャン登録ができるよう、カレントセルを設定し、DIRTYにする int r = dt.Rows.Count; dt.Rows.Add(dt.NewRow()); dgv.CurrentCell = dgv[0, r]; dgv.NotifyCurrentCellDirty(true); dgv.NotifyCurrentCellDirty(false); }
// �A部品 // サブプロシージャ:部品情報をデータグリッドビューに反映する private void readPartsTable(ref DataTable dt, ref DataGridView dgv) { string batchNo = txtBatchNo.Text; string sql = "select parts_no, parts_name, parts_supplier, parts_invoice, qty, note from t_parts_invoice " + "where batch_no='" + batchNo + "'"; System.Diagnostics.Debug.Print(sql); dt.Clear(); TfSQL tf = new TfSQL(); tf.sqlDataAdapterFillDatatable(sql, ref dt); updateDataGridViewsub(dt, ref dgv); // スキャン登録ができるよう、カレントセルを設定し、DIRTYにする int r = dt.Rows.Count; dt.Rows.Add(dt.NewRow()); dgv.CurrentCell = dgv[0, r]; dgv.NotifyCurrentCellDirty(true); dgv.NotifyCurrentCellDirty(false); // 部品マスタ情報を取得する readPartsMasterTable(ref dtPartsMaster); }
// サブプロシージャ:グリッドビューにコンボボックスを追加する private void insertComboBoxToGridView() { //dgvOperator.Columns["process"].Visible = false; DataGridViewComboBoxColumn cmbCol = new DataGridViewComboBoxColumn(); cmbCol.HeaderText = "select_process"; cmbCol.Name = "cmbProcess"; string sql = "select process from t_process where " + "sub_assy_no = '" + cmbSubAssyNo.Text + "'"; System.Diagnostics.Debug.Print(sql); DataTable dtProcessList = new DataTable(); TfSQL tf = new TfSQL(); tf.sqlDataAdapterFillDatatable(sql, ref dtProcessList); foreach (DataRow row in dtProcessList.Rows) { cmbCol.Items.Add(row[0].ToString()); } dgvOperator.Columns.Add(cmbCol); dgvOperator.Columns["cmbProcess"].DisplayIndex = 0; }
// サブプロシージャ:データグリットビューの更新 public void updateDataGridViews(ref DataTable dt, ref DataGridView dgv) { string batchNo = txtBatchNo.Text; string modelNo = cmbModelNo.Text; string modelName = txtModelName.Text; string subAssyNo = cmbSubAssyNo.Text; string subAssyName = txtSubAssyName.Text; DateTime batchDate = dtpBatchDate.Value.Date; DateTime batchNextDate = dtpBatchDate.Value.Date.AddDays(1); string shift = cmbShift.Text; string line = cmbLine.Text; string leader = txtLeaderId.Text; string leaderName = txtLeaderName.Text; bool b_batch = chkBatch.Checked; bool b_model = chkModel.Checked; bool b_subAssy = chkSubAssy.Checked; bool b_batchDate = chkBatchDate.Checked; bool b_shift = chkShift.Checked; bool b_line = chkLine.Checked; bool b_leader = chkLeader.Checked; string sql1 = "select batch_no, model_no, model_name, sub_assy_no, sub_assy_name, batch_date, " + "shift, line, leader_id, leader_name, in_qty, out_qty, in_time, out_time, remark from t_batch_no where "; bool[] cr = { batchNo == String.Empty ? false : true, modelNo == String.Empty ? false : true, subAssyNo == String.Empty ? false : true, true, shift == String.Empty ? false : true, line == String.Empty ? false : true, leader == String.Empty ? false : true }; bool[] ck = { b_batch, b_model, b_subAssy, b_batchDate, b_shift, b_line, b_leader }; string sql2 = (!(cr[0] && ck[0]) ? String.Empty : "batch_no like '" + batchNo + "%' AND ") + (!(cr[1] && ck[1]) ? String.Empty : "model_no = '" + modelNo + "' AND ") + (!(cr[2] && ck[2]) ? String.Empty : "sub_assy_no = '" + subAssyNo + "' AND ") + (!(cr[3] && ck[3]) ? String.Empty : "batch_date >= '" + batchDate + "' AND batch_date < '" + batchNextDate + "' AND ") + (!(cr[4] && ck[4]) ? String.Empty : "shift = '" + shift + "' AND ") + (!(cr[5] && ck[5]) ? String.Empty : "line = '" + line + "' AND ") + (!(cr[6] && ck[6]) ? String.Empty : "leader_id = '" + leader + "' AND "); bool b_all = (cr[0] && ck[0]) || (cr[1] && ck[1]) || (cr[2] && ck[2]) || (cr[3] && ck[3]) || (cr[4] && ck[4]) || (cr[5] && ck[5]) || (cr[6] && ck[6]); System.Diagnostics.Debug.Print(b_all.ToString()); System.Diagnostics.Debug.Print(cr[0].ToString() + " " + ck[0].ToString() + " " + cr[1].ToString() + " " + ck[1].ToString() + " " + cr[2].ToString() + " " + ck[2].ToString() + " " + cr[3].ToString() + " " + ck[3].ToString() + " " + cr[4].ToString() + " " + ck[4].ToString() + cr[5].ToString() + " " + ck[5].ToString() + " " + cr[6].ToString() + " " + ck[6].ToString()); if (!b_all) { MessageBox.Show("Please select at least one check box and fill the criteria.", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2); return; } string sql3 = sql1 + VBStrings.Left(sql2, sql2.Length - 5); System.Diagnostics.Debug.Print(sql3); dt.Clear(); TfSQL tf = new TfSQL(); tf.sqlDataAdapterFillDatatable(sql3, ref dt); // データグリットビューへDTAATABLEを格納 dgv.DataSource = dt; dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; //行ヘッダーに行番号を表示する for (int i = 0; i < dgv.Rows.Count; i++) { dgv.Rows[i].HeaderCell.Value = (i + 1).ToString(); } //行ヘッダーの幅を自動調節する dgv.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders); // 一番下の行を表示する if (dgv.Rows.Count != 0) { dgv.FirstDisplayedScrollingRowIndex = dgv.Rows.Count - 1; } }