/// <summary> /// データベース更新実行処理 /// ※Insert Update Delete /// </summary> /// <param material_name="strSql"></param> public int ExeDatabaseUpdate(string strSql) { var table = new DataTable(); var command = new SqlCommand(); try { // 実行するSQLの準備 command.Connection = M_Connection; command.CommandTimeout = 0; command.CommandText = @strSql; // SQLの実行 command.ExecuteNonQuery(); return(SystemInfo.RtnStatus.OK); } catch (SqlException exSql) { ErrCode = exSql.Number.ToString(); Com01.GetAppMessage(MethodBase.GetCurrentMethod().Name, "DB更新処理に失敗", exSql.Message + "[ErrCode:" + exSql.Number + "]" + "[" + strSql + "]"); return(SystemInfo.RtnStatus.NG); } catch (Exception ex) { Com01.GetAppMessage(MethodBase.GetCurrentMethod().Name, "DB更新処理で例外が発生", ex.Message + "[" + strSql + "]"); return(SystemInfo.RtnStatus.ER); } }
/// <summary> /// Select文実行関数 /// </summary> /// <param material_name="strSql"></param> public DataTable ExeSQL_Select(string strSql) { var table = new DataTable(); var command = new SqlCommand(); try { // 実行するSQLの準備 command.Connection = M_Connection; command.CommandTimeout = 0; command.CommandText = @strSql; // SQLの実行 var adapter = new SqlDataAdapter(command); adapter.Fill(table); } catch (SqlException exSql) { ErrCode = exSql.Number.ToString(); Com01.GetAppMessage(MethodBase.GetCurrentMethod().Name, "Select文実行処理に失敗", exSql.Message + "[ErrCode:" + exSql.Number + "]" + "[" + strSql + "]"); } catch (Exception ex) { Com01.GetAppMessage(MethodBase.GetCurrentMethod().Name, "Select文実行処理で例外が発生", ex.Message + "[" + strSql + "]"); } return(table); }
/// <summary> /// 初期処理 /// </summary> public View001() { InitializeComponent(); // ソリューション共通初期処理 Com01.SystemInit(); // 企業メニューからトップメニューを取得する ProcMenuSetting(0); }
public Form01() { InitializeComponent(); // ソリューション共通初期処理 Com01.SystemInit(); // プロジェクト毎の初期処理 Set_ProjectInit(clsBindData); //// 画面初期化処理 this.DataContext = clsBindData; }
/// <summary> /// メニューボタンクリックイベント /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Menu_Click(object sender, RoutedEventArgs e) { string strMsg = ""; string strErrMsg = ""; Button ClickButton = (Button)sender; btnMenu ClickMenuInfo; try { // ボタンの名前に連番を降っており、それがLstBtnMenuの配列番号とリンクしている int IntMenuSeq = int.Parse(ClickButton.Name.Split('_')[1]); ClickMenuInfo = clsBindData.Menu[IntMenuSeq]; if (ClickMenuInfo.program_id != "") { // 実行ファイルを実行 bool BooMenuExe = Com01.CallMenuExe(ClickMenuInfo.program_id, Com01.clsSystemInfo.ComLineArgs); if (BooMenuExe == false) { strMsg = ClickMenuInfo.text + "の起動処理に失敗しました。"; return; } } else { // 直下のメニュー取得・設定 ProcMenuSetting(ClickMenuInfo.id); } } catch (Exception ex) { strMsg = "例外が発生しました。"; strErrMsg = ex.Message; } finally { clsBindData.AppMessage = Com01.GetAppMessage(MethodBase.GetCurrentMethod().Name, strMsg, strErrMsg); this.DataContext = clsBindData; // カーソルを待機カーソルに変更 Mouse.OverrideCursor = Cursors.Arrow; } }
/// <summary> /// 初期処理 /// </summary> public View01() { InitializeComponent(); // ソリューション共通初期処理 Com01.SystemInit(); // 初期処理 clsBindData = new BindingData(); // データベースへ接続 SqlServer clsSqlServer = new SqlServer(Com01.clsSystemInfo.LoginDatabase); clsSqlServer.Connect(); // 新着情報取得処理 Set_DatSystemNews(clsSqlServer, clsBindData); // 画面表項目初期値設定 this.DataContext = clsBindData; }
/// <summary> /// システム設定情報 /// </summary> /// <param material_name="strSection"></param> /// <param material_name="strKey"></param> /// <returns></returns> private string GetIniInfo(string strSection, string strKey) { string strKankyoIniFile = strKankyoPath + "\\KANKYO\\Kankyo.ini"; try { if (System.IO.File.Exists(strKankyoIniFile) == false) { // ファイルが存在しない場合は例外 throw new Exception("環境ファイルが存在しません。[" + strKankyoIniFile + "]"); } StringBuilder sb = new StringBuilder(256); GetPrivateProfileString(strSection, strKey, string.Empty, sb, sb.Capacity, strKankyoIniFile); return(sb.ToString()); } catch (Exception ex) { // ログに記載 Com01.GetAppMessage(MethodBase.GetCurrentMethod().Name, "環境設定取得処理に失敗しました。", ex.Message); return(""); } }
/// <summary> /// コマンドライン引数の値を構造体へセット /// </summary> private void GetCommandLineArgs() { // 引数取得 string[] strAryCommandLineArgs = Environment.GetCommandLineArgs(); if (strAryCommandLineArgs.Length == 1) { // コマンドライン引数なし時の処理 Com01.GetAppMessage(MethodBase.GetCurrentMethod().Name, "コマンドライン引数なし", ""); return; } // 引数を構造体へ for (int intCount = 1; intCount <= strAryCommandLineArgs.Length - 1; intCount++) { // Key==Valueとなるように指定している前提 string[] words = strAryCommandLineArgs[intCount].Split("=="); if (words.Length != 2) { // 想定通りの形ではない場合は飛ばす continue; } switch (words[0]) { case CommandLineArgs_Key.kigyo_code: ComLineArgs.kigyo_code = words[1]; break; case CommandLineArgs_Key.user_id: ComLineArgs.user_id = words[1]; break; } } }
/// <summary> /// 接続開始 /// </summary> public void Connect() { string strConnectonString = ""; try { // 接続文字列を作成 strConnectonString = "Server = " + M_SqlConnectInfo.ServerName + ";" + "Database=" + M_SqlConnectInfo.DatabaseName + ";" + "User ID = " + M_SqlConnectInfo.User + ";" + "Password = "******";" + "MultipleActiveResultSets=True;"; // データベース接続の準備 M_Connection = new SqlConnection(strConnectonString); // データベースの接続開始 M_Connection.Open(); } catch (Exception ex) { Com01.GetAppMessage(MethodBase.GetCurrentMethod().Name, "SQL Server接続処理に失敗[" + strConnectonString + "]", ex.Message); } }
/// <summary> /// ログインボタンクリック /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Login_Click(object sender, RoutedEventArgs e) { string strMsg = ""; string strErrMsg = ""; Dictionary <string, SQL_Server.struct_vew001> Dic_vew001 = new Dictionary <string, SQL_Server.struct_vew001>(); try { #region 初期処理 // カーソルを待機カーソルに変更 Mouse.OverrideCursor = Cursors.Wait; SqlServer clsSqlServer = new SqlServer(Com01.clsSystemInfo.LoginDatabase); clsSqlServer.Connect(); #endregion #region ユーザ情報の取得とエラーチェック Dic_vew001 = Com02.Select_vew001(clsSqlServer, clsBindData.KigyoCode, clsBindData.UserID, clsBindData.PassWord); if (Dic_vew001.Count == 0) { // 取得件数が0件 strMsg = "ログインすることが出来ませんでした。入力内容を確認してください。"; return; } else if (Dic_vew001[clsBindData.KigyoCode].status != 0) { // 取得件数出来たがステータスが正常以外の場合 strMsg = "ログインすることが出来ませんでした。入力内容を確認し、間違いがなければ管理者へ御連絡ください。"; return; } #endregion #region メニュー画面起動 string strMenuExe = "MK0102"; // 引数を作成 SystemInfo.struct_CommandLineArgs SetComArgs = new SystemInfo.struct_CommandLineArgs(); SetComArgs.kigyo_code = clsBindData.KigyoCode; SetComArgs.user_id = clsBindData.UserID; // 実行 if (Com01.CallMenuExe(strMenuExe, SetComArgs) == false) { strMsg = "メニュー画面起動処理に失敗しました。"; return; } else { // 終了処理を実行 object obj = new object(); RoutedEventArgs rea = new RoutedEventArgs(); End_Click(obj, rea); } #endregion } catch (Exception ex) { strMsg = "例外が発生しました。"; strErrMsg = ex.Message; } finally { clsBindData.AppMessage = Com01.GetAppMessage(MethodBase.GetCurrentMethod().Name, strMsg, strErrMsg); this.DataContext = clsBindData; // カーソルを待機カーソルに変更 Mouse.OverrideCursor = Cursors.Arrow; } }
/// <summary> /// マスタ登録データ設定処理 /// </summary> /// <param name="clsSqlServer"></param> /// <param name="bindingData"></param> /// <returns></returns> private Com02.struct_m_kaisya Set_EntryData(SqlServer clsSqlServer, BindingData bindingData) { // キーを条件に最新データを取得 Com02.struct_m_kaisya m_kaisya = new Com02.struct_m_kaisya(); m_kaisya.kigyo_code = Com01.clsSystemInfo.ComLineArgs.kigyo_code; m_kaisya.kaisya_code = bindingData.KaisyaCode.text; m_kaisya.invalid_flg = 1; // 削除も含めて検索 DataTable dTable = Com02.Get_m_kaisya(clsSqlServer, m_kaisya, 1); // システム日時を取得 Com01.Set_DateTime(clsSqlServer); // 更新日時をセット m_kaisya.koshin_datetime = Com01.clsSystemInfo.dtNow.ToString(); m_kaisya.koshin_user_id = Com01.clsSystemInfo.ComLineArgs.user_id; m_kaisya.koshin_program = Com01.clsSystemInfo.strExeName; // 検索結果 if (dTable == null || dTable.Rows.Count == 0) { // 新規登録日時 m_kaisya.toroku_datetime = m_kaisya.koshin_datetime; m_kaisya.toroku_user_id = m_kaisya.koshin_user_id; m_kaisya.toroku_program = m_kaisya.koshin_program; // 空の場合は規定値を m_kaisya.invalid_flg = 0; } else { DataRow dRow = dTable.Rows[0]; // 取得内容を構造体へ m_kaisya.toroku_datetime = dRow[Com02.struct_m_kaisya.idx_toroku_datetime].ToString(); m_kaisya.toroku_user_id = dRow[Com02.struct_m_kaisya.idx_toroku_user_id].ToString(); m_kaisya.toroku_program = dRow[Com02.struct_m_kaisya.idx_toroku_program].ToString(); m_kaisya.invalid_flg = int.Parse(dRow[Com02.struct_m_kaisya.idx_invalid_flg].ToString()); m_kaisya.kaisya_code = dRow[Com02.struct_m_kaisya.idx_kaisya_code].ToString(); m_kaisya.kaisya_name = dRow[Com02.struct_m_kaisya.idx_kaisya_name].ToString(); m_kaisya.kaisya_name_kana = dRow[Com02.struct_m_kaisya.idx_kaisya_name_kana].ToString(); m_kaisya.kaisya_name_ryaku = dRow[Com02.struct_m_kaisya.idx_kaisya_name_ryaku].ToString(); m_kaisya.address = dRow[Com02.struct_m_kaisya.idx_address].ToString(); m_kaisya.postal_code = dRow[Com02.struct_m_kaisya.idx_postal_code].ToString(); m_kaisya.tel_no = dRow[Com02.struct_m_kaisya.idx_tel_no].ToString(); m_kaisya.fax_no = dRow[Com02.struct_m_kaisya.idx_fax_no].ToString(); m_kaisya.mail_address = dRow[Com02.struct_m_kaisya.idx_mail_address].ToString(); } // これに対して画面内容を上書く if (bindingData.InvalidFlg.check == true) { m_kaisya.invalid_flg = 1; } else { m_kaisya.invalid_flg = 0; } m_kaisya.kaisya_code = bindingData.KaisyaCode.text; m_kaisya.kaisya_name = bindingData.KaisyaName.text; m_kaisya.kaisya_name_kana = bindingData.KaisyaName_Kana.text; m_kaisya.kaisya_name_ryaku = bindingData.KaisyaName_Ryaku.text; m_kaisya.address = bindingData.Address.text; m_kaisya.postal_code = bindingData.PostalCode_1.text + "-" + bindingData.PostalCode_2.text; m_kaisya.tel_no = bindingData.TelNo.text; m_kaisya.fax_no = bindingData.FaxNo.text; m_kaisya.mail_address = bindingData.MailAddress.text; return(m_kaisya); }
/// <summary> /// 新規登録処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Save_Click(object sender, RoutedEventArgs e) { string strMsg; string strErrMsg; string strProcName; strMsg = ""; strErrMsg = ""; try { // DB接続 SqlServer clsSqlServer = new SqlServer(Com01.clsSystemInfo.SystemDatabase); clsSqlServer.Connect(); // 登録・更新用の構造体へ値をセットする Com02.struct_m_kaisya m_kaisya; m_kaisya = Set_EntryData(clsSqlServer, clsBindData); // 新規/更新の文言を取得 if (m_kaisya.toroku_datetime == m_kaisya.koshin_datetime) { strProcName = "新規登録"; } else { strProcName = "更新"; } // エラーチェック bool booRtn = Com02.Chk_m_kaisya(strErrMsg, clsSqlServer, m_kaisya); if (booRtn == false) { strMsg = "入力内容に誤りがあります。"; return; } // 確認 MessageBoxResult msgResult = MessageBox.Show(strProcName + "処理を行います。" + Environment.NewLine + "よろしいですか?" , "確認:" + strProcName , MessageBoxButton.YesNo); if (!(msgResult == MessageBoxResult.Yes)) { strMsg = strProcName + "処理を中止しました。"; return; } // 新規/更新を実行 int result = SystemInfo.RtnStatus.ER; if (m_kaisya.toroku_datetime == m_kaisya.koshin_datetime) { // 新規 result = Com02.Insert_m_kaisya(clsSqlServer, m_kaisya); } else { // 更新 result = Com02.Update_m_kaisya(clsSqlServer, m_kaisya); } // 戻り値から表示するメッセージを切り替える switch (result) { case SystemInfo.RtnStatus.ER: strMsg = strProcName + "処理に失敗しました。"; break; case SystemInfo.RtnStatus.NG: strMsg = strProcName + "処理に失敗しました。"; if (!(clsSqlServer.ErrCode == "0")) { strMsg += "管理者に右記コードと共に御連絡ください。[エラーコード:" + clsSqlServer.ErrCode + "]"; } break; default: // 再検索処理を行う Search_Click(BtnF01, new RoutedEventArgs()); strMsg = strProcName + "処理が完了しました。"; break; } } catch (Exception ex) { strMsg = "例外が発生しました。"; strErrMsg = ex.Message; } finally { clsBindData.AppMessage = Com01.GetAppMessage(MethodBase.GetCurrentMethod().Name, strMsg, strErrMsg); this.DataContext = clsBindData; } }
/// <summary> /// マテリアルマスタ登録データ設定処理 /// </summary> /// <param name="clsSqlServer"></param> /// <param name="bindingData"></param> /// <returns></returns> private Com02.struct_m_material Set_EntryData(SqlServer clsSqlServer, BindingData bindingData) { // キーを条件に最新データを取得 Com02.struct_m_material m_material = new Com02.struct_m_material(); m_material.kigyo_code = Com01.clsSystemInfo.ComLineArgs.kigyo_code; m_material.material_code = bindingData.MaterialCode; m_material.invalid_flg = 1; // 削除も含めて検索 DataTable dTable = Com02.Get_m_material(clsSqlServer, m_material, 1); // システム日時を取得 Com01.Set_DateTime(clsSqlServer); // 更新日時をセット m_material.koshin_datetime = Com01.clsSystemInfo.dtNow.ToString(); m_material.koshin_user_id = Com01.clsSystemInfo.ComLineArgs.user_id; m_material.koshin_program = Com01.clsSystemInfo.strExeName; // 検索結果 if (dTable == null || dTable.Rows.Count == 0) { // 新規登録日時 m_material.toroku_datetime = m_material.koshin_datetime; m_material.toroku_user_id = m_material.koshin_user_id; m_material.toroku_program = m_material.koshin_program; // 空の場合は規定値を m_material.invalid_flg = 0; } else { DataRow dRow = dTable.Rows[0]; // 取得内容を構造体へ m_material.toroku_datetime = dRow[Com02.struct_m_material.idx_toroku_datetime].ToString(); m_material.toroku_user_id = dRow[Com02.struct_m_material.idx_toroku_user_id].ToString(); m_material.toroku_program = dRow[Com02.struct_m_material.idx_toroku_program].ToString(); m_material.kigyo_code = dRow[Com02.struct_m_material.idx_kigyo_code].ToString(); m_material.material_code = dRow[Com02.struct_m_material.idx_material_code].ToString(); m_material.material_name = dRow[Com02.struct_m_material.idx_material_name].ToString(); m_material.unit_kbn = dRow[Com02.struct_m_material.idx_unit_kbn].ToString(); m_material.type_name = dRow[Com02.struct_m_material.idx_type_name].ToString(); m_material.kikaku_shiyo = dRow[Com02.struct_m_material.idx_kikaku_shiyo].ToString(); m_material.biko = dRow[Com02.struct_m_material.idx_biko].ToString(); m_material.yobi1 = dRow[Com02.struct_m_material.idx_yobi1].ToString(); m_material.yobi2 = dRow[Com02.struct_m_material.idx_yobi2].ToString(); m_material.yobi3 = dRow[Com02.struct_m_material.idx_yobi3].ToString(); m_material.yobi4 = dRow[Com02.struct_m_material.idx_yobi4].ToString(); m_material.yobi5 = dRow[Com02.struct_m_material.idx_yobi5].ToString(); m_material.invalid_flg = int.Parse(dRow[Com02.struct_m_material.idx_invalid_flg].ToString()); } // これに対して画面内容を上書く if (bindingData.InvalidFlg == true) { m_material.invalid_flg = 1; } else { m_material.invalid_flg = 0; } m_material.material_name = bindingData.MaterialName; m_material.unit_kbn = bindingData.UnitKbn; m_material.type_name = bindingData.TypeName; m_material.kikaku_shiyo = bindingData.KikakuShiyo; m_material.biko = bindingData.Biko; return(m_material); }