private void btn_barcode_Click(object sender, EventArgs e)
        {
            DataTable w_dt = new DataTable();
            string    w_bcr_moji; //戻り値のバーコード文字列

            frm_bcr frm_bcr = new frm_bcr();

            //バーコード読込画面への受け渡しデータ
            frm_bcr.pub_form_text          = "生産指示日報 バーコード読み込み";
            frm_bcr.pub_msg1               = "生産指示日報のバーコードをスキャンしてください。";
            frm_bcr.pub_msg2               = "";
            frm_bcr.pub_msg3               = "";
            frm_bcr.pub_msg4               = "";
            frm_bcr.pub_bcr_identification = "SJ1";
            frm_bcr.pub_length             = 64;
            //バーコード読込画面表示
            frm_bcr.ShowDialog(this);
            //バーコード読込画面が閉じられた後の処理
            w_bcr_moji = frm_bcr.pub_bcr_moji;
            frm_bcr.Dispose();

            if (w_bcr_moji == "CANCEL")
            {
                //バーコード読込画面でキャンセルされた
                return;
            }
            if (w_bcr_moji == null)
            {
                //バーコード読込画面でエラーが発生した
                return;
            }
            //読み込んだバーコード文字列を分解し画面に表示
            tb_bcr.Text               = w_bcr_moji;
            tb_seisanbi.Text          = tss.StringMidByte(w_bcr_moji, 3, 10).TrimEnd();
            tb_busyo_cd.Text          = tss.StringMidByte(w_bcr_moji, 13, 4).TrimEnd();
            tb_busyo_name.Text        = tss.get_busyo_name(tb_busyo_cd.Text);
            tb_koutei_cd.Text         = tss.StringMidByte(w_bcr_moji, 17, 3).TrimEnd();
            tb_koutei_name.Text       = tss.get_koutei_name(tb_koutei_cd.Text);
            tb_line_cd.Text           = tss.StringMidByte(w_bcr_moji, 20, 3).TrimEnd();
            tb_line_name.Text         = tss.get_line_name(tb_line_cd.Text);
            tb_schedule_seq.Text      = tss.StringMidByte(w_bcr_moji, 23, 3).TrimEnd();
            tb_torihikisaki_cd.Text   = tss.StringMidByte(w_bcr_moji, 26, 6).TrimEnd();
            tb_torihikisaki_name.Text = tss.get_torihikisaki_name(tb_torihikisaki_cd.Text);
            tb_juchu_cd1.Text         = tss.StringMidByte(w_bcr_moji, 32, 16).TrimEnd();
            tb_juchu_cd2.Text         = tss.StringMidByte(w_bcr_moji, 48, 16).TrimEnd();
            tb_juchu_su.Text          = tss.get_juchu_juchu_su(tb_torihikisaki_cd.Text, tb_juchu_cd1.Text, tb_juchu_cd2.Text);
            tb_seisan_zumi_su.Text    = tss.get_seisan_su(tb_torihikisaki_cd.Text, tb_juchu_cd1.Text, tb_juchu_cd2.Text);
            tb_seisankisyu.Text       = tss.get_seisankisyu(tb_seihin_cd.Text, tb_koutei_cd.Text);
            //同一バーコードの生産実績があるか確認
            w_dt = read_seisan_jisseki();
            if (w_dt.Rows.Count >= 1)
            {
                //同一のバーコードが生産実績に存在する場合
                //「既に入力済み」であることを表示し、選択画面で選択させる(選択=修正、選択しない=新規(別の行として)入力、戻る=キャンセル)
                //選択画面へ
                jisseki_select(w_dt);
            }
            else
            {
                //同一バーコードが生産実績に存在しない場合
                //新規に入力
                tb_seihin_cd.Text   = tss.get_juchu_to_seihin_cd(tb_torihikisaki_cd.Text, tb_juchu_cd1.Text, tb_juchu_cd2.Text);
                tb_seihin_name.Text = tss.get_seihin_name(tb_seihin_cd.Text);
                tb_seisankisyu.Text = tss.get_seisankisyu(tb_seihin_cd.Text, tb_koutei_cd.Text);
                disp_schedule();
                clear_seisan_jisseki();
                tb_busyo_cd.Focus();
            }
        }