예제 #1
0
        private void kensaku()
        {
            DataTable w_dt_seihin_kousei = new DataTable();

            w_dt_seihin_kousei = tss.OracleSelect("SELECT seihin_cd,  seihin_kousei_no,  buhin_cd FROM tss_seihin_kousei_m GROUP BY seihin_cd,  seihin_kousei_no,  buhin_cd HAVING buhin_cd = '" + tb_buhin_cd.Text.ToString() + "' ");
            if (w_dt_seihin_kousei.Rows.Count == 0)
            {
                MessageBox.Show("入力された部品コードは製品構成情報にありません。");
                tb_buhin_cd.Focus();
            }
            //w_dt_mの空枠の作成
            w_dt_m.Rows.Clear();
            w_dt_m.Columns.Clear();
            w_dt_m.Clear();
            //列の定義
            w_dt_m.Columns.Add("seihin_cd");
            w_dt_m.Columns.Add("seihin_name");
            w_dt_m.Columns.Add("seihin_kousei_no");
            w_dt_m.Columns.Add("seihin_kousei_name");

            //行追加
            DataTable w_dt_seihin             = new DataTable();
            DataTable w_dt_seihin_kousei_name = new DataTable();
            DataRow   w_dt_row;

            foreach (DataRow dr in w_dt_seihin_kousei.Rows)
            {
                //製品構成マスタから製品マスタをリンク
                w_dt_seihin = tss.OracleSelect("select * from tss_seihin_m where seihin_cd = '" + dr["seihin_cd"].ToString() + "'");
                if (w_dt_seihin.Rows.Count == 0)
                {
                    tss.GetUser();
                    MessageBox.Show("製品構成マスタと製品マスタの整合性に異常があります。処理を中止します。");
                    tss.MessageLogWrite(tss.user_cd, "000000", "製品構成マスタと製品マスタの整合性に異常", "製品構成マスタの製品コード " + dr["seihin_cd"].ToString() + " を確認してください。");
                    this.Close();
                }
                //製品構成マスタから製品構成名称マスタをリンク
                w_dt_seihin_kousei_name = tss.OracleSelect("select * from tss_seihin_kousei_name_m where seihin_cd = '" + dr["seihin_cd"].ToString() + "' and seihin_kousei_no = '" + dr["seihin_kousei_no"].ToString() + "'");
                if (w_dt_seihin_kousei_name.Rows.Count == 0)
                {
                    tss.GetUser();
                    MessageBox.Show("製品構成マスタと製品構成名称マスタの整合性に異常があります。処理を中止します。");
                    tss.MessageLogWrite(tss.user_cd, "000000", "製品構成マスタと製品構成名称マスタの整合性に異常", "製品構成マスタの製品コード " + dr["seihin_cd"].ToString() + " を確認してください。");
                    this.Close();
                }

                //w_dt_mにレコードを作成
                w_dt_row = w_dt_m.NewRow();
                w_dt_row["seihin_cd"]          = dr["seihin_cd"].ToString();
                w_dt_row["seihin_name"]        = w_dt_seihin.Rows[0]["seihin_name"].ToString();
                w_dt_row["seihin_kousei_no"]   = dr["seihin_kousei_no"].ToString();
                w_dt_row["seihin_kousei_name"] = w_dt_seihin_kousei_name.Rows[0]["seihin_kousei_name"].ToString();
                w_dt_m.Rows.Add(w_dt_row);
            }
            dgv_disp();
        }
        private void send_message()
        {
            bool w_bl;

            for (int i = 0; i <= w_to_max; i++)
            {
                //システムメッセージログFに書き込み
                w_bl = tss.MessageLogWrite("000000", w_to[i], tb_title.Text, tb_naiyou.Text);
                if (w_bl == false)
                {
                    MessageBox.Show("送信(書き込み)でエラーが発生しました。\n処理を中止します。");
                    return;
                }
            }
        }
예제 #3
0
        private void btn_hyouji_Click(object sender, EventArgs e)
        {
            //入力項目のチェック
            if (input_check() == false)
            {
                return;
            }
            DataTable w_dt = new DataTable();

            string[] sql_where = new string[7];
            int      sql_cnt   = 0;

            //取引先コード
            if (tb_torihikisaki_cd.Text != "")
            {
                sql_where[sql_cnt] = "torihikisaki_cd = '" + tb_torihikisaki_cd.Text.ToString() + "'";
                sql_cnt++;
            }

            //納品スケジュールの表示の考え方
            //指定月、指定取引先のnouhin_mのレコードをw_dtに集める(区分はまだ使用しない、sqlが面倒になる)
            //集めたw_dtを元に1レコードずつ製品マスタを読み込み区分を確認しながら処理し、w_dt_scheduleに必要項目を入れていく。(w_dt_scheduleは1から31までの列を持っているのでそこに納品数を足していく)
            //同一日で複数便の納品も考えられるので、その日の納品数は、常にaddするようにする。(初回はnullになている可能性があるので注意)
            //w_dt_scheduleを表示・印刷に使用する

            //1)指定月・指定取引先のnouhin_mを抽出
            string sql = "select * from tss_nouhin_m where to_char(nouhin_yotei_date, 'yyyy/mm') = '" + nud_year.Value.ToString() + "/" + nud_month.Value.ToString("00") + "'";

            for (int i = 1; i <= sql_cnt; i++)
            {
                sql = sql + " and " + sql_where[i - 1];
            }
            w_dt = tss.OracleSelect(sql);

            //2)抽出したnouhin_mを集計区分を確認しながらw_dt_scheduleに書き込んでいく
            //w_dt_scheduleの空枠の作成
            w_dt_schedule.Rows.Clear();
            w_dt_schedule.Columns.Clear();
            w_dt_schedule.Clear();
            //列の定義
            w_dt_schedule.Columns.Add("torihikisaki_ryakusiki_moji");
            w_dt_schedule.Columns.Add("torihikisaki_cd");
            w_dt_schedule.Columns.Add("juchu_cd1");
            w_dt_schedule.Columns.Add("juchu_cd2");
            w_dt_schedule.Columns.Add("seihin_cd");
            w_dt_schedule.Columns.Add("seihin_name");
            w_dt_schedule.Columns.Add("juchu_su");
            w_dt_schedule.Columns.Add("syuukei_syubetu_kbn");
            w_dt_schedule.Columns.Add("syuukei_bunrui_kbn");
            w_dt_schedule.Columns.Add("syuukei_sijou_kbn");
            w_dt_schedule.Columns.Add("syuukei_type_kbn");
            w_dt_schedule.Columns.Add("01");
            w_dt_schedule.Columns.Add("02");
            w_dt_schedule.Columns.Add("03");
            w_dt_schedule.Columns.Add("04");
            w_dt_schedule.Columns.Add("05");
            w_dt_schedule.Columns.Add("06");
            w_dt_schedule.Columns.Add("07");
            w_dt_schedule.Columns.Add("08");
            w_dt_schedule.Columns.Add("09");
            w_dt_schedule.Columns.Add("10");
            w_dt_schedule.Columns.Add("11");
            w_dt_schedule.Columns.Add("12");
            w_dt_schedule.Columns.Add("13");
            w_dt_schedule.Columns.Add("14");
            w_dt_schedule.Columns.Add("15");
            w_dt_schedule.Columns.Add("16");
            w_dt_schedule.Columns.Add("17");
            w_dt_schedule.Columns.Add("18");
            w_dt_schedule.Columns.Add("19");
            w_dt_schedule.Columns.Add("20");
            w_dt_schedule.Columns.Add("21");
            w_dt_schedule.Columns.Add("22");
            w_dt_schedule.Columns.Add("23");
            w_dt_schedule.Columns.Add("24");
            w_dt_schedule.Columns.Add("25");
            w_dt_schedule.Columns.Add("26");
            w_dt_schedule.Columns.Add("27");
            w_dt_schedule.Columns.Add("28");
            w_dt_schedule.Columns.Add("29");
            w_dt_schedule.Columns.Add("30");
            w_dt_schedule.Columns.Add("31");
            w_dt_schedule.Columns.Add("bikou");

            //行追加
            DataTable w_dt_juchu_m        = new DataTable();
            DataTable w_dt_seihin_m       = new DataTable();
            DataTable w_dt_torihikisaki_m = new DataTable();
            DataRow   w_dr_schedule;
            int       w_int_gyou;  //w_dt_scheduleの見つけた行
            bool      w_gyou_find; //w_dt_scheduleの見つけたフラグ
            DateTime  w_date;      //Oracleのdate型をc#のdatetime型に変換するための変数

            foreach (DataRow dr in w_dt.Rows)
            {
                //納品マスタから受注マスタをリンク
                w_dt_juchu_m = tss.OracleSelect("select * from tss_juchu_m where torihikisaki_cd = '" + dr["torihikisaki_cd"].ToString() + "' and juchu_cd1 = '" + dr["juchu_cd1"].ToString() + "' and juchu_cd2 = '" + dr["juchu_cd2"].ToString() + "'");
                if (w_dt_juchu_m.Rows.Count == 0)
                {
                    tss.GetUser();
                    MessageBox.Show("納品マスタと受注マスタの整合性に異常があります。処理を中止します。");
                    tss.ErrorLogWrite(tss.user_cd, "納品スケジュール参照", "表示ボタン押下後のOracleSelect");
                    tss.MessageLogWrite(tss.user_cd, "000000", "納品スケジュールの表示でエラーが発生しました。", "納品マスタと受注マスタの整合性が取れていない可能性があります。受注コード " + dr["torihikisaki_cd"].ToString() + "-" + dr["juchu_cd2"].ToString() + "-" + dr["juchu_cd2"].ToString() + " を確認してください。");
                    this.Close();
                }
                //受注マスタから製品マスタをリンク
                w_dt_seihin_m = tss.OracleSelect("select * from tss_seihin_m where seihin_cd = '" + w_dt_juchu_m.Rows[0]["seihin_cd"].ToString() + "'");
                if (w_dt_seihin_m.Rows.Count == 0)
                {
                    tss.GetUser();
                    MessageBox.Show("受注マスタと製品マスタの整合性に異常があります。処理を中止します。");
                    tss.ErrorLogWrite(tss.user_cd, "納品スケジュール参照", "表示ボタン押下後のOracleSelect");
                    tss.MessageLogWrite(tss.user_cd, "000000", "納品スケジュールの表示でエラーが発生しました。", "受注マスタと製品マスタの整合性が取れていない可能性があります。受注コード " + w_dt_juchu_m.Rows[0]["torihikisaki_cd"].ToString() + "-" + w_dt_juchu_m.Rows[0]["juchu_cd2"].ToString() + "-" + w_dt_juchu_m.Rows[0]["juchu_cd2"].ToString() + " 製品コード " + w_dt_juchu_m.Rows[0]["seihin_cd"] + " を確認してください。");
                    this.Close();
                }
                //受注マスタから取引先マスタをリンク
                w_dt_torihikisaki_m = tss.OracleSelect("select * from tss_torihikisaki_m where torihikisaki_cd = '" + w_dt_juchu_m.Rows[0]["torihikisaki_cd"].ToString() + "'");
                if (w_dt_torihikisaki_m.Rows.Count == 0)
                {
                    tss.GetUser();
                    MessageBox.Show("受注マスタと取引先マスタの整合性に異常があります。処理を中止します。");
                    tss.ErrorLogWrite(tss.user_cd, "納品スケジュール参照", "表示ボタン押下後のOracleSelect");
                    tss.MessageLogWrite(tss.user_cd, "000000", "納品スケジュールの表示でエラーが発生しました。", "受注マスタと取引先マスタの整合性が取れていない可能性があります。受注コード " + w_dt_juchu_m.Rows[0]["torihikisaki_cd"].ToString() + "-" + w_dt_juchu_m.Rows[0]["juchu_cd2"].ToString() + "-" + w_dt_juchu_m.Rows[0]["juchu_cd2"].ToString() + " を確認してください。");
                    this.Close();
                }
                //集計区分の判定
                int w_syubetu_flg = 1; //区分が一致した場合はフラグを1にして、抽出レコードに含める
                int w_bunrui_flg  = 1; //区分が一致した場合はフラグを1にして、抽出レコードに含める
                int w_sijou_flg   = 1; //区分が一致した場合はフラグを1にして、抽出レコードに含める
                int w_type_flg    = 1; //区分が一致した場合はフラグを1にして、抽出レコードに含める
                if (cb_syubetu_kbn.Checked == true)
                {
                    if (tb_syubetu_kbn.Text.ToString() != w_dt_seihin_m.Rows[0]["syuukei_syubetu_kbn"].ToString())
                    {
                        w_syubetu_flg = 0;
                    }
                }
                if (cb_bunrui_kbn.Checked == true)
                {
                    if (tb_bunrui_kbn.Text.ToString() != w_dt_seihin_m.Rows[0]["syuukei_bunrui_kbn"].ToString())
                    {
                        w_bunrui_flg = 0;
                    }
                }
                if (cb_sijou_kbn.Checked == true)
                {
                    if (tb_sijou_kbn.Text.ToString() != w_dt_seihin_m.Rows[0]["syuukei_sijou_kbn"].ToString())
                    {
                        w_sijou_flg = 0;
                    }
                }
                if (cb_type_kbn.Checked == true)
                {
                    if (tb_type_kbn.Text.ToString() != w_dt_seihin_m.Rows[0]["syuukei_type_kbn"].ToString())
                    {
                        w_type_flg = 0;
                    }
                }

                if (w_syubetu_flg == 1 && w_bunrui_flg == 1 && w_sijou_flg == 1 && w_type_flg == 1)
                {
                    //w_dt_scheduleの中から同じ受注を探す
                    w_int_gyou  = 0;     //見つけた行
                    w_gyou_find = false; //見つけたらtrue
                    for (int i = 0; i <= w_dt_schedule.Rows.Count - 1; i++)
                    {
                        if (w_dt_schedule.Rows[i]["torihikisaki_cd"].ToString() == dr["torihikisaki_cd"].ToString() && w_dt_schedule.Rows[i]["juchu_cd1"].ToString() == dr["juchu_cd1"].ToString() && w_dt_schedule.Rows[i]["juchu_cd2"].ToString() == dr["juchu_cd2"].ToString())
                        {
                            w_int_gyou  = i;
                            w_gyou_find = true;
                            break;
                        }
                    }
                    if (w_gyou_find)
                    {
                        //見つけたら日に足す
                        if (DateTime.TryParse(dr["nouhin_yotei_date"].ToString(), out w_date))
                        {
                            //w_dt_scheduleの日の値をdoubleに変換
                            double w_dou1 = new double();
                            if (double.TryParse(w_dt_schedule.Rows[w_int_gyou][w_date.Day.ToString("00")].ToString(), out w_dou1))
                            {
                                //変換された場合は何もしない
                            }
                            else
                            {
                                //変換されなかったという事はnullだったんじゃないかな?
                                w_dou1 = 0;
                            }
                            //納品マスタの納品数をdoubleに変換
                            double w_dou2 = new double();
                            if (double.TryParse(dr["nouhin_yotei_su"].ToString(), out w_dou2))
                            {
                                w_dt_schedule.Rows[w_int_gyou][w_date.Day.ToString("00")] = w_dou1 + w_dou2;
                            }
                        }
                    }
                    else
                    {
                        //見つけなかったら新規レコードを作成してから、日に足す
                        //w_dt_scheduleにレコードを作成
                        DateTime.TryParse(dr["nouhin_yotei_date"].ToString(), out w_date);
                        w_dr_schedule = w_dt_schedule.NewRow();
                        w_dr_schedule["torihikisaki_ryakusiki_moji"] = w_dt_torihikisaki_m.Rows[0]["torihikisaki_ryakusiki_moji"].ToString();
                        w_dr_schedule["torihikisaki_cd"]             = dr["torihikisaki_cd"].ToString();
                        w_dr_schedule["juchu_cd1"]               = dr["juchu_cd1"].ToString();
                        w_dr_schedule["juchu_cd2"]               = dr["juchu_cd2"].ToString();
                        w_dr_schedule["seihin_cd"]               = w_dt_seihin_m.Rows[0]["seihin_cd"].ToString();
                        w_dr_schedule["seihin_name"]             = w_dt_seihin_m.Rows[0]["seihin_name"].ToString();
                        w_dr_schedule["juchu_su"]                = w_dt_juchu_m.Rows[0]["juchu_su"].ToString();
                        w_dr_schedule["syuukei_syubetu_kbn"]     = w_dt_seihin_m.Rows[0]["syuukei_syubetu_kbn"].ToString();
                        w_dr_schedule["syuukei_bunrui_kbn"]      = w_dt_seihin_m.Rows[0]["syuukei_bunrui_kbn"].ToString();
                        w_dr_schedule["syuukei_sijou_kbn"]       = w_dt_seihin_m.Rows[0]["syuukei_sijou_kbn"].ToString();
                        w_dr_schedule["syuukei_type_kbn"]        = w_dt_seihin_m.Rows[0]["syuukei_type_kbn"].ToString();
                        w_dr_schedule[w_date.Day.ToString("00")] = dr["nouhin_yotei_su"].ToString();
                        w_dr_schedule["bikou"] = w_dt_juchu_m.Rows[0]["bikou"].ToString();
                        w_dt_schedule.Rows.Add(w_dr_schedule);
                    }
                }
            }
            list_disp(w_dt_schedule);
            rireki_disp(w_dt_schedule);
        }