/// <summary> /// work_detail/work_reportsテーブルの更新 /// </summary> /// <param name="ds">データセット </param> /// <param name="year">年</param> /// <param name="month">月</param> /// <param name="day">日</param> /// <param name="time">管理時間</param> /// <param name="sh">開始時</param> /// <param name="ss">開始分</param> /// <param name="eh">終了時</param> /// <param name="es">終了分</param> private void updateDailyWork(String sh, String ss, String eh, String es, String note = "") { using (DataAccessClass data_access = new DataAccessClass()) { data_access.Update(this.ds, "work_detail"); // データベース(work_report)更新作業 try { // データテーブルの作成 DataTable dt = this.ds.Tables["work_reports"]; DataRow dr = dt.Rows[0]; dr["start_time"] = this.getTime(year, month, day, int.Parse(sh), int.Parse(ss)); dr["end_time"] = this.getTime(year, month, day, int.Parse(eh), int.Parse(es)); // 時間の再計算 this.times = GetWorkTime(int.Parse(sh), int.Parse(ss), int.Parse(eh), int.Parse(es)); dr["work_times"] = this.times[0]; dr["overtime125"] = this.times[2]; dr["overtime150"] = this.times[3]; dr["rest_time"] = this.times[1]; dr["note"] = note; // データベースへの更新作業 data_access.Update(this.ds, "work_reports"); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } } }
/// <summary> /// work_detail/work_reportsテーブルのデータセットを作成 /// </summary> /// <returns></returns> private DataSet makeDataSet() { // データベースへのアクセス using (DataAccessClass data_access = new DataAccessClass()) { // work_detailテーブルの作成 this.ds = data_access.GetWorkDetailDs(this.userID, this.year, this.month, this.day); // work_reportsテーブルの作成 this.ds.Merge(data_access.GetWorkReportsDS(this.userID, this.year, this.month, this.day)); // 更新時の比較用に初期時のデータをコピー this.ds_org = this.ds.Copy(); } return(this.ds); }
/// <summary> /// work_detail/work_reportsテーブルの更新 /// </summary> /// <param name="ds">データセット </param> /// <param name="year">年</param> /// <param name="month">月</param> /// <param name="day">日</param> /// <param name="time">管理時間</param> /// <param name="sh">開始時</param> /// <param name="ss">開始分</param> /// <param name="eh">終了時</param> /// <param name="es">終了分</param> private void updateDailyWork(String sh, String ss, String eh, String es, String note ="" ) { using (DataAccessClass data_access = new DataAccessClass()) { data_access.Update(this.ds, "work_detail"); // データベース(work_report)更新作業 try { // データテーブルの作成 DataTable dt = this.ds.Tables["work_reports"]; DataRow dr = dt.Rows[0]; dr["start_time"] = this.getTime(year, month, day, int.Parse(sh), int.Parse(ss)); dr["end_time"] = this.getTime(year, month, day, int.Parse(eh), int.Parse(es)); // 時間の再計算 this.times = GetWorkTime(int.Parse(sh), int.Parse(ss), int.Parse(eh), int.Parse(es)); dr["work_times"] = this.times[0]; dr["overtime125"] = this.times[2]; dr["overtime150"] = this.times[3]; dr["rest_time"] = this.times[1]; dr["note"] = note; // データベースへの更新作業 data_access.Update(this.ds, "work_reports"); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } } }
/// <summary> /// work_detail/work_reportsテーブルのデータセットを作成 /// </summary> /// <returns></returns> private DataSet makeDataSet() { // データベースへのアクセス using (DataAccessClass data_access = new DataAccessClass()) { // work_detailテーブルの作成 this.ds = data_access.GetWorkDetailDs(this.userID, this.year, this.month, this.day); // work_reportsテーブルの作成 this.ds.Merge(data_access.GetWorkReportsDS(this.userID, this.year, this.month, this.day)); // 更新時の比較用に初期時のデータをコピー this.ds_org = this.ds.Copy(); } return this.ds; }
/// <summary> /// ADDボタンが押された時のアクション /// </summary> /// <param name="project_name"></param> /// <param name="task_name"></param> /// <param name="description"></param> /// <param name="worktime"></param> public void add_action(String project_name, String task_name, String description, String worktime ) { bool same_data = false; // 業務詳細の枠から必要な情報を取得して、データセットを更新 DataTable dt = this.ds.Tables["work_detail"]; // 既存に同じデータがないかどうかをチェック foreach (DataRow drCurrent in dt.Rows) { if ((project_name == (string)drCurrent["name"]) && (task_name == (string)drCurrent["name1"]) ) { same_data = true; } } if (same_data) { // メッセージウィンドウを表示してアクションキャンセル DialogResult result = MessageBox.Show( "既に同等の業務詳細(同じプロジェクト、業務)が登録されています。異なる業務詳細を指定してください。", "メッセージ", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button2); } else { // 新規データテーブル作成 DataRow dr = dt.NewRow(); dr["name"] = project_name; dr["name1"] = task_name; dr["note"] = description; dr["times"] = work_time; dr["projects_ID"] = this.project_ID; dr["tasks_ID"] = this.task_ID; using (DataAccessClass data_access = new DataAccessClass()) { dr["work_reports_ID"] = data_access.GetWorkReportID(this.userID, this.year, this.month, this.day); } if ((double)dr["times"] % 0.25 != 0.00) { // メッセージウィンドウを表示してアクションキャンセル DialogResult result = MessageBox.Show( "業務詳細の時間には0.25刻みの値しか入力することができません", "メッセージ", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button2); } else if ((string)dr["name"] != "" && (string)dr["name1"] != "" && (double)dr["times"] > 0.0) { // データセット更新 dt.Rows.Add(dr); } else { // 入力情報不足の場合のワーニングメッセージ出力 // 動作としては”OK”ボタンを押して、元の画面に戻る DialogResult result = MessageBox.Show( "入力情報が不足しています。", "ワーニング", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); } } }
/// <summary> /// ADDボタンが押された時のアクション /// </summary> /// <param name="project_name"></param> /// <param name="task_name"></param> /// <param name="description"></param> /// <param name="worktime"></param> public void add_action(String project_name, String task_name, String description, String worktime) { bool same_data = false; // 業務詳細の枠から必要な情報を取得して、データセットを更新 DataTable dt = this.ds.Tables["work_detail"]; // 既存に同じデータがないかどうかをチェック foreach (DataRow drCurrent in dt.Rows) { if ((project_name == (string)drCurrent["name"]) && (task_name == (string)drCurrent["name1"]) ) { same_data = true; } } if (same_data) { // メッセージウィンドウを表示してアクションキャンセル DialogResult result = MessageBox.Show( "既に同等の業務詳細(同じプロジェクト、業務)が登録されています。異なる業務詳細を指定してください。", "メッセージ", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button2); } else { // 新規データテーブル作成 DataRow dr = dt.NewRow(); dr["name"] = project_name; dr["name1"] = task_name; dr["note"] = description; dr["times"] = work_time; dr["projects_ID"] = this.project_ID; dr["tasks_ID"] = this.task_ID; using (DataAccessClass data_access = new DataAccessClass()) { dr["work_reports_ID"] = data_access.GetWorkReportID(this.userID, this.year, this.month, this.day); } if ((double)dr["times"] % 0.25 != 0.00) { // メッセージウィンドウを表示してアクションキャンセル DialogResult result = MessageBox.Show( "業務詳細の時間には0.25刻みの値しか入力することができません", "メッセージ", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button2); } else if ((string)dr["name"] != "" && (string)dr["name1"] != "" && (double)dr["times"] > 0.0) { // データセット更新 dt.Rows.Add(dr); } else { // 入力情報不足の場合のワーニングメッセージ出力 // 動作としては”OK”ボタンを押して、元の画面に戻る DialogResult result = MessageBox.Show( "入力情報が不足しています。", "ワーニング", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); } } }