Exemplo n.º 1
0
 /// <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);
         }
     }
 }
Exemplo n.º 2
0
 /// <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);
 }
Exemplo n.º 3
0
        /// <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);
                }

            }
        }
Exemplo n.º 4
0
 /// <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;
 }
Exemplo n.º 5
0
        /// <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);
                }
            }
        }
Exemplo n.º 6
0
        /// <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);
                }
            }
        }