Esempio n. 1
0
        // カートンのディープキャンセル(カートン・パック・トレーのキャンセル日を登録し、モジュールレコードを削除する。
        // PCのスーパーユーザーに権限を限定。パレットに既に登録されている場合は、処理を行わない。
        private void btnDeepCancelCartonPackTray_Click(object sender, EventArgs e)
        {
            if (dgvCarton.Rows.Count <= 0)
            {
                return;
            }

            // セルの選択範囲が2列以上の場合は、メッセージの表示のみでプロシージャを抜ける
            if (dgvCarton.Columns.GetColumnCount(DataGridViewElementStates.Selected) >= 2)
            {
                MessageBox.Show("Please select only carton id column.", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
                return;
            }
            // 列名が正しい場合のみ、処理を行う
            if (dgvCarton.Columns[dgvCarton.CurrentCell.ColumnIndex].Name != "carton_id")
            {
                MessageBox.Show("Please select only carton id column.", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
                return;
            }

            // トレー積載済みカートンがないか、確認する
            foreach (DataGridViewCell cell in dgvCarton.SelectedCells)
            {
                if (dgvCarton["pallet_id", cell.RowIndex].Value.ToString() != string.Empty ||
                    dgvCarton["cl_user", cell.RowIndex].Value.ToString() != string.Empty)
                {
                    MessageBox.Show(cell.Value.ToString() + " has been already on pallet or canceled.", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);
                    return;
                }
            }

            // 本当に削除してよいか、3重で確認する。
            DialogResult result1 = MessageBox.Show("Do you really want to cancel these carton, pack, tray, and module?", "Notice", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);

            if (result1 == DialogResult.No)
            {
                return;
            }
            DialogResult result2 = MessageBox.Show("Are you sure to cancel all the carton, pack, tray, and module?" + Environment.NewLine + "Please select NO if you are not sure.", "Notice", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);

            if (result2 == DialogResult.No)
            {
                return;
            }
            DialogResult result3 = MessageBox.Show("Are you really sure? Please select NO if you are not sure.", "Notice", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);

            if (result3 == DialogResult.No)
            {
                return;
            }

            // 選択セルを配列に格納、およびメッセージ用文字列を生成し、一括キャンセルSQLコマンドを実行
            string[] cartonlist = { };
            string   message    = string.Empty;
            int      i          = 0;

            foreach (DataGridViewCell cell in dgvCarton.SelectedCells)
            {
                if (dgvCarton["cl_user", cell.RowIndex].Value.ToString() == string.Empty)
                {
                    i += 1;
                    Array.Resize(ref cartonlist, i);
                    cartonlist[i - 1] = cell.Value.ToString();
                    message           = message + Environment.NewLine + cell.Value.ToString();
                }
            }
            if (message == string.Empty)
            {
                MessageBox.Show("No carton ID was selected.", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            TfSQL tf  = new TfSQL();
            bool  res = tf.sqlMultipleDeepCancelCartonPackTray(cartonlist, txtLoginName.Text);

            if (res)
            {
                //本フォームのデータグリットビュー更新
                dtCarton.Clear();
                updateDataGridViews(dtCarton, ref dgvCarton, false);
                MessageBox.Show("The following " + i + " carton IDs, their packs, trays, and modules were all canceled: " + message, "Process Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Cancel process was not successful.", "Process Result", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }