Ejemplo n.º 1
0
        private void button5_Click(object sender, EventArgs e)
        //配布エリアの町名を一括登録する
        {
            if (MessageBox.Show("選択されている町名を一括追加登録します。よろしいですか?", "登録確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                return;
            }

            foreach (DataGridViewRow r in dataGridView3.SelectedRows)
            {
                txtAreaID.Text     = dataGridView3[0, r.Index].Value.ToString();
                txtHaihuMaisu.Text = "0";

                if (fDataCheck() == true)
                {
                    Control.配布エリア dArea = new Control.配布エリア();
                    if (dArea.DataInsert(cArea) == false)
                    {
                        MessageBox.Show(dataGridView3[1, r.Index].Value.ToString() + "の新規登録に失敗しました", "町名一括登録", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    dArea.Close();
                }
            }

            DispClear2();

            txtAreaID.Focus();

            //配布エリア再表示
            GridviewSet.AreaShowData(dataGridView2, long.Parse(txtID.Text.ToString()));
            MaisuSum();
        }
Ejemplo n.º 2
0
        private void txtAdd_Click(object sender, EventArgs e)
        {
            //配布エリア登録
            try
            {
                if (fDataCheck() == true)
                {
                    Control.配布エリア dArea = new Control.配布エリア();

                    switch (aMode.Mode)
                    {
                    case 0:     //新規登録
                        if (MessageBox.Show("新規登録します。よろしいですか?", "登録確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                        {
                            break;
                        }

                        if (dArea.DataInsert(cArea) == false)
                        {
                            MessageBox.Show("新規登録に失敗しました", MESSAGE_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Stop);
                        }

                        break;

                    case 1:     //更新
                        if (MessageBox.Show("更新します。よろしいですか?", "更新確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                        {
                            break;
                        }

                        if (dArea.DataUpdate(cArea) == false)
                        {
                            MessageBox.Show("更新に失敗しました", MESSAGE_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Stop);
                        }

                        break;
                    }

                    dArea.Close();

                    DispClear2();

                    txtAreaID.Focus();

                    //配布エリア再表示
                    GridviewSet.AreaShowData(dataGridView2, long.Parse(txtID.Text.ToString()));
                    MaisuSum();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, MESSAGE_CAPTION + "保守", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
Ejemplo n.º 3
0
        private void GetExcelPos()
        {
            DialogResult ret;

            //ダイアログボックスの初期設定
            openFileDialog1.Title            = "ポスティングエリア表の選択";
            openFileDialog1.CheckFileExists  = true;
            openFileDialog1.RestoreDirectory = true;
            openFileDialog1.FileName         = "";
            openFileDialog1.Filter           = "Microsoft Office Excelファイル(*.xls)|*.xls|全てのファイル(*.*)|*.*";

            //ダイアログボックスの表示
            ret = openFileDialog1.ShowDialog();
            if (ret == System.Windows.Forms.DialogResult.Cancel)
            {
                return;
            }

            if (MessageBox.Show(openFileDialog1.FileName + Environment.NewLine + " が選択されました。よろしいですか?", "ポスティングエリアExcelシート取り込み", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                return;
            }

            const int S_GYO = 2;    //エクセルファイル見出し行(明細は2行目から)

            //マウスポインタを待機にする
            this.Cursor = Cursors.WaitCursor;

            //string sAppPath = System.AppDomain.CurrentDomain.BaseDirectory;

            Excel.Application oXls = new Excel.Application();

            Excel.Workbook oXlsBook = (Excel.Workbook)(oXls.Workbooks.Open(openFileDialog1.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                                                           Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                                                           Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                                                           Type.Missing, Type.Missing));

            Excel.Worksheet oxlsSheet = (Excel.Worksheet)oXlsBook.Sheets[1];

            Excel.Range   dRng;
            Excel.Range[] rng = new Microsoft.Office.Interop.Excel.Range[2];

            int    iX  = S_GYO;
            int    Cnt = 0;
            int    err;
            string cellID;
            string cellMaisu;
            int    d;

            try
            {
                while (true)
                {
                    err = 0;

                    //エリアID
                    dRng = (Excel.Range)oxlsSheet.Cells[iX, 1];

                    //空白なら処理終了
                    if ((dRng.Text.ToString().Trim() + "") == "")
                    {
                        break;
                    }

                    cellID = dRng.Text.ToString().Trim();

                    //IDチェック
                    if (cellID == null)
                    {
                        err = 1;
                        MessageBox.Show("エリアIDが正しくありません。この行はスキップされます。 " + Environment.NewLine + iX.ToString() + "行目 : " + cellID, "取り込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else if (int.TryParse(cellID, System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out d) == false)
                    {
                        err = 1;
                        MessageBox.Show("エリアIDが正しくありません。この行はスキップされます。 " + Environment.NewLine + iX.ToString() + "行目 : " + cellID, "取り込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else if (Int32.Parse(cellID, System.Globalization.NumberStyles.Any) < 0)
                    {
                        err = 1;
                        MessageBox.Show("エリアIDが正しくありません。この行はスキップされます。 " + Environment.NewLine + iX.ToString() + "行目 : " + cellID, "取り込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }

                    //配布枚数
                    dRng      = (Excel.Range)oxlsSheet.Cells[iX, 3];
                    cellMaisu = dRng.Text.ToString().Trim();

                    //チェック
                    if (cellMaisu == null)
                    {
                        err = 1;
                        MessageBox.Show("配布枚数が正しくありません。この行はスキップされます。 " + Environment.NewLine + iX.ToString() + "行目 : " + cellMaisu, "取り込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else if (int.TryParse(cellMaisu, System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out d) == false)
                    {
                        err = 1;
                        MessageBox.Show("配布枚数が正しくありません。この行はスキップされます。 " + Environment.NewLine + iX.ToString() + "行目 : " + cellMaisu, "取り込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else if (Int32.Parse(cellMaisu, System.Globalization.NumberStyles.Any) < 0)
                    {
                        err = 1;
                        MessageBox.Show("配布枚数が正しくありません。この行はスキップされます。 " + Environment.NewLine + iX.ToString() + "行目 : " + cellMaisu, "取り込みエラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }

                    //エラーのときは読み飛ばし
                    if (err == 0)
                    {
                        txtAreaID.Text     = cellID.ToString();
                        txtHaihuMaisu.Text = cellMaisu.ToString();

                        if (fDataCheck() == true)
                        {
                            Control.配布エリア dArea = new Control.配布エリア();
                            if (dArea.DataInsert(cArea) == false)
                            {
                                MessageBox.Show("新規登録に失敗しました", "Excelシート取り込み", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                            else
                            {
                                Cnt++;
                            }

                            dArea.Close();
                        }
                    }

                    iX++;
                }

                MessageBox.Show(Cnt.ToString() + " 件の配布エリアを取り込みました", "取り込み終了", MessageBoxButtons.OK, MessageBoxIcon.Information);

                //マウスポインタを元に戻す
                this.Cursor = Cursors.Default;

                // 確認のためExcelのウィンドウを表示する
                //oXls.Visible = true;

                //印刷
                //oxlsSheet.PrintPreview(true);

                //保存処理
                oXls.DisplayAlerts = false;

                //Bookをクローズ
                oXlsBook.Close(Type.Missing, Type.Missing, Type.Missing);

                //Excelを終了
                oXls.Quit();
            }

            catch (Exception e)
            {
                MessageBox.Show(e.Message, "印刷", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            finally
            {
                // COM オブジェクトの参照カウントを解放する
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oxlsSheet);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oXlsBook);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oXls);

                //マウスポインタを元に戻す
                this.Cursor = Cursors.Default;
            }


            DispClear2();

            txtAreaID.Focus();

            //配布エリア再表示
            GridviewSet.AreaShowData(dataGridView2, long.Parse(txtID.Text.ToString()));

            MaisuSum();
        }