예제 #1
0
        /// <summary>
        /// グリッドビューへ会社情報を表示する
        /// </summary>
        /// <param name="dg">DataGridViewオブジェクト名</param>
        private void GridViewShowData(string sConnect, DataGridView dg)
        {
            string sqlSTRING = string.Empty;

            sqlControl.DataControl sdCon = new common.sqlControl.DataControl(sConnect);
            SqlDataReader          dR;

            //人事就業の会社領域のみを対象とする 2011/03/04
            sqlSTRING += "select * from ";
            sqlSTRING += "(select tbCorpDatabaseContext.EntityCode,tbCorpDatabaseContext.EntityName,";
            sqlSTRING += "tbCorpDatabaseContext.DatabaseName,tbCorpDatabaseContext.CreateDate,";
            sqlSTRING += "CorpData.value('(/ObcCorpData/Node[@key=\"InitializeHR\"])[1]','varchar') as type, ";
            sqlSTRING += "CorpData.value('(/ObcCorpData/Node[@key=\"EraIndicate\"])[1]','varchar') as EraIn, ";
            sqlSTRING += "CorpData.value('(/ObcCorpData/Node[@key=\"HRFiscalMonth\"])[1]','varchar(7)') as FisMonth, ";
            sqlSTRING += "CorpData.value('(/ObcCorpData/Node[@key=\"HRFiscalYear\"])[1]','varchar(4)') as FisYear ";
            sqlSTRING += "from tbCorpDatabaseContext) as Corp ";
            sqlSTRING += "where (type is not null) ";
            sqlSTRING += "order by EntityCode";

            dR = sdCon.free_dsReader(sqlSTRING);

            try
            {
                //グリッドビューに表示する
                int iX = 0;
                dg.RowCount = 0;

                while (dR.Read())
                {
                    //データグリッドにデータを表示する
                    dg.Rows.Add();
                    GridViewCellData(dg, iX, dR);
                    iX++;
                }
                dg.CurrentCell = null;
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "エラー", MessageBoxButtons.OK);
            }
            finally
            {
                dR.Close();
                sdCon.Close();
            }

            //会社情報がないとき
            if (dg.RowCount == 0)
            {
                MessageBox.Show("会社情報が存在しません", "会社選択", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                Environment.Exit(0);
            }
        }
예제 #2
0
            ///----------------------------------------------------------------
            /// <summary>
            ///     CSVデータから部門コンボボックスに課名をロードする </summary>
            /// <param name="tempObj">
            ///     コンボボックスオブジェクト</param>
            /// <param name="fName">
            ///     CSVデータファイルパス</param>
            ///----------------------------------------------------------------
            public static void loadKa(ComboBox tempObj, string dbName)
            {
                try
                {
                    ComboBumon cmb1;

                    tempObj.Items.Clear();
                    tempObj.DisplayMember = "DisplayName";
                    tempObj.ValueMember   = "code";

                    // 奉行SQLServer接続文字列取得
                    string sc = sqlControl.obcConnectSting.get(dbName);
                    sqlControl.DataControl sdCon = new sqlControl.DataControl(sc);

                    StringBuilder sb = new StringBuilder();
                    sb.Clear();
                    sb.Append("select DepartmentCode,DepartmentName from tbDepartment ");
                    sb.Append("where Right(DepartmentCode, 2) = '00'");
                    sb.Append("order by DepartmentCode");

                    SqlDataReader dR = sdCon.free_dsReader(sb.ToString());

                    while (dR.Read())
                    {
                        string dCode = string.Empty;

                        // コンボボックスにセット
                        cmb1    = new ComboBumon();
                        cmb1.ID = string.Empty;

                        if (Utility.NumericCheck(dR["DepartmentCode"].ToString()))
                        {
                            dCode = Utility.StrtoInt(dR["DepartmentCode"].ToString()).ToString().PadLeft(5, '0');
                        }
                        else
                        {
                            dCode = dR["DepartmentCode"].ToString().Trim();
                        }

                        cmb1.DisplayName = dCode + " " + dR["DepartmentName"].ToString();

                        cmb1.Name = dR["DepartmentName"].ToString();
                        cmb1.code = dCode;
                        tempObj.Items.Add(cmb1);
                    }

                    dR.Close();
                    sdCon.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "部門コンボボックスロード");
                }
            }
예제 #3
0
            ///----------------------------------------------------------------
            /// <summary>
            ///     CSVデータから部門コンボボックスにロードする </summary>
            /// <param name="tempObj">
            ///     コンボボックスオブジェクト</param>
            /// <param name="fName">
            ///     CSVデータファイルパス</param>
            ///----------------------------------------------------------------
            public static void load(ComboBox tempObj, string dbName)
            {
                try
                {
                    ComboProject cmb1;

                    tempObj.Items.Clear();
                    tempObj.DisplayMember = "DisplayName";
                    tempObj.ValueMember   = "code";

                    // 奉行SQLServer接続文字列取得
                    string sc_ac = sqlControl.obcConnectSting.get(dbName);

                    // 奉行SQLServer接続
                    sqlControl.DataControl sdCon_ac = new sqlControl.DataControl(sc_ac);

                    // プロジェクトデータリーダーを取得する
                    string sqlSTRING = string.Empty;
                    sqlSTRING += "SELECT ProjectCode,ProjectName,ValidDate,InValidDate ";
                    sqlSTRING += "from tbProject ";
                    sqlSTRING += "Order by ProjectCode";

                    SqlDataReader dR = sdCon_ac.free_dsReader(sqlSTRING);

                    while (dR.Read())
                    {
                        string dCode = string.Empty;

                        // コンボボックスにセット
                        cmb1    = new ComboProject();
                        cmb1.ID = string.Empty;

                        dCode = dR["ProjectCode"].ToString().PadLeft(20, '0').Substring(12, 8);

                        cmb1.DisplayName = dCode + " " + dR["ProjectName"].ToString();

                        cmb1.Name = dR["ProjectName"].ToString();
                        cmb1.code = dCode;
                        tempObj.Items.Add(cmb1);
                    }

                    dR.Close();
                    sdCon_ac.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "現場コンボボックスロード");
                }
            }
예제 #4
0
        ///--------------------------------------------------------------------------------------
        /// <summary>
        ///     就業奉行用受入データ作成</summary>
        ///--------------------------------------------------------------------------------------
        public void SaveData(string dbName)
        {
            #region 出力配列
            string[] arrayCsv = null;     // 出力配列
            #endregion

            #region 出力件数変数
            int sCnt = 0;   // 社員出力件数
            #endregion

            StringBuilder sb = new StringBuilder();
            Boolean       pblFirstGyouFlg = true;
            string        wID             = string.Empty;
            string        hKinmutaikei    = string.Empty;

            global gl = new global();

            // 奉行SQLServer接続文字列取得
            string sc = sqlControl.obcConnectSting.get(dbName);
            sqlControl.DataControl sdCon = new sqlControl.DataControl(sc);

            // 出力先フォルダがあるか?なければ作成する
            //string cPath = Properties.Settings.Default.okPath;
            string cPath = global.cnfPath;

            if (!System.IO.Directory.Exists(cPath))
            {
                System.IO.Directory.CreateDirectory(cPath);
            }

            try
            {
                //オーナーフォームを無効にする
                _preForm.Enabled = false;

                //プログレスバーを表示する
                frmPrg frmP = new frmPrg();
                frmP.Owner = _preForm;
                frmP.Show();

                int      rCnt  = 1;
                int      saSum = 0;
                DateTime saDay = global.NODATE;
                int      kaisu = 1;
                DateTime chkDt = DateTime.Today;

                // 伝票最初行フラグ
                pblFirstGyouFlg = true;

                // 勤務票データ取得
                CONYX_CLIDataSetTableAdapters.汎用データ作成元TableAdapter adp = new CONYX_CLIDataSetTableAdapters.汎用データ作成元TableAdapter();
                adp.Fill(_cTbl);

                foreach (var r in _cTbl)
                {
                    // 存在しない日付は対象外
                    if (r.歴日付 == global.NODATE)
                    {
                        continue;
                    }

                    // 勤務実績のないデータは対象外
                    if (r.勤務体系コード == string.Empty && r.開始時 == string.Empty &&
                        r.開始分 == string.Empty && r.退勤時 == string.Empty && r.退勤分 == string.Empty &&
                        r.休憩時 == string.Empty && r.休憩分 == string.Empty && r.実労時 == string.Empty &&
                        r.実労分 == string.Empty && r.事由1 == string.Empty && r.事由2 == string.Empty)
                    {
                        continue;
                    }

                    // プログレスバー表示
                    frmP.Text          = "就業奉行用受入データ作成中です・・・" + rCnt.ToString() + "/" + _cTbl.Count().ToString();
                    frmP.progressValue = rCnt * 100 / _cTbl.Count();
                    frmP.ProgressStep();

                    // ヘッダファイル出力
                    if (pblFirstGyouFlg == true)
                    {
                        sb.Clear();
                        sb.Append(H1).Append(",");      // 社員番号
                        sb.Append(H2).Append(",");      // 日付
                        sb.Append(H3).Append(",");      // 勤務回
                        sb.Append(H4).Append(",");      // 勤務体系コード
                        sb.Append(H5).Append(",");      // 事由1
                        sb.Append(H6).Append(",");      // 事由2
                        //sb.Append(H7).Append(",");      // 事由3
                        sb.Append(H8).Append(",");      // 出勤時刻
                        sb.Append(H9).Append(",");      // 退勤時刻
                        sb.Append(H10).Append(",");     // 休憩時間項目コード
                        sb.Append(H11);                 // 休憩時間

                        // 配列にデータを出力
                        sCnt++;
                        Array.Resize(ref arrayCsv, sCnt);
                        arrayCsv[sCnt - 1] = sb.ToString();
                    }

                    sb.Clear();

                    // 社員番号
                    sb.Append(r.社員番号).Append(",");

                    // 日付
                    sb.Append(r.歴日付.ToShortDateString()).Append(",");

                    // 勤務回
                    if (saSum == r.社員番号 && saDay == r.歴日付)
                    {
                        kaisu++;
                    }
                    else
                    {
                        kaisu = 1;
                    }

                    sb.Append(kaisu).Append(",");

                    // 勤務体系(シフト)コード
                    hKinmutaikei = r.勤務体系コード.ToString();
                    sb.Append(hKinmutaikei).Append(",");

                    // 事由
                    sb.Append(r.事由1).Append(",");
                    sb.Append(r.事由2).Append(",");

                    // 開始時刻
                    if (r.開始時 == string.Empty && r.開始分 == string.Empty)
                    {
                        sb.Append(",");
                    }
                    else
                    {
                        sb.Append(r.開始時 + ":" + r.開始分.PadLeft(2, '0')).Append(",");
                    }

                    //退出時刻
                    int taikinH = Utility.StrtoInt(r.退勤時);

                    // 就業奉行が24時間制のとき
                    if (_dtIndi == 0)
                    {
                        if (taikinH >= 24)
                        {
                            // 先頭に「翌日」を付加
                            sb.Append("翌日");
                            taikinH -= 24;
                        }
                    }

                    if (r.退勤時 == string.Empty && r.退勤分 == string.Empty)
                    {
                        sb.Append(",");
                    }
                    else
                    {
                        sb.Append(taikinH + ":" + r.退勤分.PadLeft(2, '0')).Append(",");
                    }

                    // 休憩時間
                    sb.Append("012,");

                    if (r.休憩時 == string.Empty && r.休憩分 == string.Empty)
                    {
                        //sb.Append(",");
                        sb.Append("0:00");
                    }
                    else
                    {
                        //sb.Append(r.休憩時 + ":" + r.休憩分.PadLeft(2, '0')).Append(",");
                        sb.Append(r.休憩時 + ":" + r.休憩分.PadLeft(2, '0'));
                    }

                    string uCSV = sb.ToString();


                    // 配列にデータを格納します
                    sCnt++;
                    Array.Resize(ref arrayCsv, sCnt);
                    arrayCsv[sCnt - 1] = uCSV;

                    // データ件数加算
                    rCnt++;

                    pblFirstGyouFlg = false;

                    saSum = r.社員番号;
                    saDay = r.歴日付;
                }

                // 勤怠CSVファイル出力
                if (arrayCsv != null)
                {
                    txtFileWrite(cPath, arrayCsv);
                }

                // いったんオーナーをアクティブにする
                _preForm.Activate();

                // 進行状況ダイアログを閉じる
                frmP.Close();

                // オーナーのフォームを有効に戻す
                _preForm.Enabled = true;
            }
            catch (Exception e)
            {
                MessageBox.Show("就業奉行受入データ作成中" + Environment.NewLine + e.Message, "エラー", MessageBoxButtons.OK);
            }
            finally
            {
                //if (OutData.sCom.Connection.State == ConnectionState.Open) OutData.sCom.Connection.Close();

                if (sdCon.Cn.State == System.Data.ConnectionState.Open)
                {
                    sdCon.Close();
                }
            }
        }
예제 #5
0
        ///----------------------------------------------------------------------------------
        /// <summary>
        ///     対象シフトコードの開始時刻と終了時刻を取得する
        ///     : 日替わり時刻を取得 2018/02/06 </summary>
        /// <param name="_dbName">
        ///     データベース名</param>
        /// <param name="sftCode">
        ///     シフトコード </param>
        /// <param name="sTime">
        ///     開始時刻</param>
        /// <param name="eTime">
        ///     終了時刻</param>
        /// <param name="changeTime">
        ///     日替わり時刻</param>
        ///----------------------------------------------------------------------------------
        private void GetSftTime(string sftCode, out string sTime, out string eTime, out DateTime changeTime, sqlControl.DataControl sdCon)
        {
            // 対象のシフトコード取得する
            DateTime sDt = DateTime.Now;
            DateTime eDt = DateTime.Now;
            DateTime cDt = DateTime.Now;    // 2018/02/06

            // 勤務体系(シフト)コード情報取得
            StringBuilder sb = new StringBuilder();

            sb.Clear();
            sb.Append("SELECT tbLaborSystem.LaborSystemID,tbLaborSystem.LaborSystemCode,");
            sb.Append("tbLaborSystem.LaborSystemName,tbLaborTimeSpanRule.StartTime,");
            sb.Append("tbLaborTimeSpanRule.EndTime,tbLaborSystem.DayChangeTime ");
            sb.Append("FROM tbLaborSystem inner join tbLaborTimeSpanRule ");
            sb.Append("on tbLaborSystem.LaborSystemID = tbLaborTimeSpanRule.LaborSystemID ");
            sb.Append("where tbLaborTimeSpanRule.LaborTimeSpanRuleType = 1 ");
            sb.Append("and tbLaborSystem.LaborSystemCode = '").Append(sftCode).Append("'");

            SqlDataReader dR = sdCon.free_dsReader(sb.ToString());

            while (dR.Read())
            {
                sDt = DateTime.Parse(dR["StartTime"].ToString());
                eDt = DateTime.Parse(dR["EndTime"].ToString());
                cDt = DateTime.Parse(dR["DayChangeTime"].ToString());   // 2018/02/06
                break;
            }

            dR.Close();

            // 開始時刻
            sTime = sDt.Hour.ToString() + ":" + sDt.Minute.ToString().PadLeft(2, '0');

            // 終了時刻
            eTime = string.Empty;
            if (sDt.Day < eDt.Day)
            {
                // 翌日のとき
                eTime = "翌日";
            }

            eTime += eDt.Hour.ToString() + ":" + eDt.Minute.ToString().PadLeft(2, '0');

            // 2018/02/06
            changeTime = cDt;
        }