Index: branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsChangeLedgerData.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsChangeLedgerData.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsChangeLedgerData.cs	(revision 191)
@@ -192,7 +192,7 @@
                     // 工事台帳実行データよりグループごとの合計金額を取得する
                     strSQL = "SELECT GROUPCOUNT, SUM(PAYMENTAMOUNT)";
                     strSQL += " FROM CONSTRUCTIONLEDGEREXCUTE";
-                    strSQL += string.Format(" WHERE CONSTRUCTIONCODE = {0}",ConstrCode);
+                    strSQL += string.Format(" WHERE CONSTRUCTIONCODE = {0}", ConstrCode);
                     strSQL += " GROUP BY GROUPCOUNT";
                     strSQL += " ORDER BY GROUPCOUNT";
 
@@ -207,13 +207,13 @@
                     GroupCodeList.Add((int)FrmConstructionLedger.DataGroup.Expenses);               // 1:経費
 
                     GroupCodeList.Add((int)FrmConstructionLedger.DataGroup.ConstructionCosts);      // 2:施工費
-                    
+
                     GroupCodeList.Add((int)FrmConstructionLedger.DataGroup.TransportationCosts);    // 3:交通費（通行料・電車代）
                     GroupCodeList.Add((int)FrmConstructionLedger.DataGroup.PurchaseCosts);          // 4:購入品
                     GroupCodeList.Add((int)FrmConstructionLedger.DataGroup.VehicleLeaseFee);        // 5:車両リース代
                     GroupCodeList.Add((int)FrmConstructionLedger.DataGroup.ParkingCosts);           // 6:駐車場・資材置き場
                     GroupCodeList.Add((int)FrmConstructionLedger.DataGroup.RoomChargeCosts);        // 7:宿泊費
-                    
+
                     GroupCodeList.Add((int)FrmConstructionLedger.DataGroup.DisposeCosts);           // 8:処分費等
                     int Payment = CalcGetTotal(InData, GroupCodeList);                              // ----- 支払額
 
@@ -229,7 +229,7 @@
                     GroupCodeList.Clear();
                     GroupCodeList.Add((int)FrmConstructionLedger.DataGroup.BillingAmount);          // 14:請求金額
                     int Billing = CalcGetTotal(InData, GroupCodeList);                              // ----- 請求額
-                    
+
                     // ----- 工事詳細台帳更新
                     strSQL = "UPDATE CONSTRUCTIONLEDGER SET";
                     strSQL += string.Format(" TOTALPAYMENT = {0}", Payment);
@@ -292,7 +292,7 @@
         /// </summary>
         /// <returns></returns>
         private static bool SearchTatgetConstructionLedger(IOConstructionLedger LedgerDB, IOConstructionLedgerDetail LedgerDetailDB
-                                                            ,int ConstructionCode, int GroupNo, string TargetMonth, ref int LineCnt, ref int ColCnt)
+                                                            , int ConstructionCode, int GroupNo, string TargetMonth, ref int LineCnt, ref int ColCnt)
         {
             try
             {
@@ -300,7 +300,7 @@
                 string strLedger = LedgerDB.CreatePrimarykeyString(ConstructionCode);
                 ConstructionLedger LedgerRec = new ConstructionLedger();
                 if (!LedgerDB.SelectAction(strLedger, ref LedgerRec, false)) return false;
-                
+
                 // 現在の処理年月をDateTime型に変換する
                 DateTime NowDates = CommonMotions.cnvDate(TargetMonth + "/01");
 
@@ -472,7 +472,7 @@
                 // 見えない画面を出す
                 frm.WindowState = FormWindowState.Minimized;
                 frm.Hide();
-                
+
                 // データを追加する
                 frm.AddingConstrCode = ConstructionCode;
                 if (!frm.AddDataLedger)
@@ -561,8 +561,8 @@
                     LedgerExDB.ExecuteReader(strExecout, ref arExecList, false);
                     if (arExecList.Count != 0)
                     {
-                       object[] objRec = (object[])arExecList[0];
-                       NowValue = CommonMotions.cnvInt(objRec[0]);
+                        object[] objRec = (object[])arExecList[0];
+                        NowValue = CommonMotions.cnvInt(objRec[0]);
                     }
 
                     // 1日分の給与を取得する
@@ -752,10 +752,10 @@
                     LedgerExDBRec.ColumnCount = ColumnCount;        // 列番号
                     LedgerExDBRec.PaymentAmount = DaySalary;        // 支払金額
                     LedgerExDBRec.TargetMonth = ColumnDate;         // 対象年月
-                    
+
                     // データ作成
                     if (!LedgerExDB.InsertAction(LedgerExDBRec, false)) return false;
-                    
+
                     return true;
                 }
 
@@ -839,7 +839,7 @@
                     bSuccess = false;
                     return bSuccess;
                 }
-                
+
                 // データ保存処理
                 if (!frm.SaveLedgerData)
                 {
@@ -913,5 +913,152 @@
             }
         }
         #endregion
+
+        // ↓↓ ** ----- インターフェース ----- **
+        #region 支払金額合計チェック
+        /// <summary>
+        /// 支払金額合計が実行金額を超えた場合はflaseを返す
+        /// </summary>
+        /// <param name="ConstrCode">工事番号</param>
+        /// <param name="CompanyCode">会社コード</param>
+        /// <param name="LineNo">工事台帳行番号</param>
+        /// <param name="CurrentValue">現在入力値</param>
+        /// <param name="TargetDate">現在入力年月</param>
+        /// <returns></returns>
+        public static bool OverExecAmount(int ConstrCode, int LineNo, int CurrentValue, DateTime TargetDate, int CompanyCode = 0)
+        {
+            IOConstructionLedgerDetail DetailDB = new IOConstructionLedgerDetail();
+            try
+            {
+                // 行番号無は新規追加分としてチェックしない
+                if (LineNo < 1) return true;
+
+                StringBuilder strSQL = new StringBuilder();
+
+                int GroupNo = (int)FrmConstructionLedger.DataGroup.ConstructionCosts;
+
+                strSQL.Append("select");
+                strSQL.Append(" A.ConstructionCode,");
+                strSQL.Append(" A.CompanyCode,");
+                strSQL.Append(" A.ExecutionAmount,");
+                strSQL.Append(" SUM(B.PaymentAmount)");
+                strSQL.Append(" From constructionledgerdetail AS A");
+
+                strSQL.Append(" LEFT OUTER JOIN constructionledgerexcute AS B");
+                strSQL.Append(" ON B.ConstructionCode = A.ConstructionCode");
+                strSQL.Append(" AND B.GroupCount = A.GroupCount");
+                strSQL.Append(" AND B.LineCount = A.LineCount");
+                strSQL.AppendFormat(" AND DATE_FORMAT(B.TargetMonth ,'%Y%m') <> '{0}'", TargetDate.ToString("yyyyMM"));
+
+                strSQL.AppendFormat(" WHERE A.ConstructionCode = {0}", ConstrCode);
+                strSQL.AppendFormat(" AND A.GroupCount = {0}", GroupNo);
+                strSQL.AppendFormat(" AND A.LineCount = {0}", LineNo);
+                if (CompanyCode != 0) strSQL.AppendFormat(" AND A.CompanyCode = {0}", CompanyCode);
+
+                ArrayList ArrayList = new ArrayList();
+                if (!DetailDB.ExecuteReader(strSQL.ToString(), ref ArrayList)) return false;
+                if (ArrayList.Count == 0) return false;
+
+                object[] objRec = (object[])ArrayList[0];
+                int ExecValue = CommonMotions.cnvInt(objRec[2]);
+                int PaymentValue = CommonMotions.cnvInt(objRec[3]);
+                
+                // 登録値+入力値が実行金額を超えた場合はfalseを返す
+                if (ExecValue < (PaymentValue + CurrentValue)) return false;
+
+                return true;
+            }
+            catch (System.Exception ex)
+            {
+                logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
+                return false;
+            }
+            finally
+            {
+                DetailDB.close(); DetailDB = null;
+            }
+        }
+        #endregion
+
+        #region 工事詳細台帳支払いデータ一括登録
+        /// <summary>
+        /// 工事詳細台帳支払いデータ一括登録
+        /// </summary>
+        /// <param name="EntryList"></param>
+        /// <returns></returns>
+        public static bool EntryExecuteData(List<ConstructionLedgerExcute> EntryList)
+        {
+            IOConstructionLedgerExcute ExecDB = new IOConstructionLedgerExcute();
+            try
+            {
+                ExecDB.connect(); ExecDB.beginTran();
+
+                StringBuilder strSQL = new StringBuilder();
+                bool bExists = true;
+                bool bRet = true;
+                foreach (ConstructionLedgerExcute CurRec in EntryList)
+                {
+                    strSQL.Clear();
+
+                    strSQL.AppendFormat(ExecDB.CreatePrimarykeyString(CurRec.ConstructionCode,
+                                                                        CurRec.GroupCount,
+                                                                        CurRec.LineCount,
+                                                                        CurRec.ColumnCount));
+
+                    List<ConstructionLedgerExcute> ExecList = new List<ConstructionLedgerExcute>();
+                    if (!ExecDB.SelectAction(strSQL.ToString(), ref ExecList, false)) continue;
+                    if (ExecList.Count == 0) bExists = false;
+
+                    if (bExists)
+                    {   // データ存在時は支払金額更新
+                        if(!ExecDB.UpdateFeild(CurRec.ConstructionCode,
+                                            CurRec.GroupCount,
+                                            CurRec.LineCount,
+                                            CurRec.ColumnCount,
+                                            (int)IOConstructionLedgerExcute.TableColumn.PaymentAmount,
+                                            CurRec.PaymentAmount,
+                                            false))
+                        {
+                            bRet = false;
+                            ExecDB.rollback();
+                            break;
+                        }
+                    }
+                    else
+                    {   // データ未作成の場合は施工費の最大行番号で新規データ作成
+                        strSQL.Clear();
+                        strSQL.Append("SELECT MAX(LINECOUNT) FROM CONSTRUCTIONLEDGEREXCUTE");
+                        strSQL.AppendFormat(" WHERE CONSTRUCTIONCODE = {0}", CurRec.ConstructionCode);
+                        strSQL.AppendFormat(" AND GROUPCOUNT = {0}", (int)FrmConstructionLedger.DataGroup.ConstructionCosts);
+
+                        ArrayList CountData = new ArrayList();
+                        ExecDB.ExecuteReader(strSQL.ToString(), ref CountData, false);
+
+                        object[] objRec = (object[])CountData[0];
+                        CurRec.LineCount = CommonMotions.cnvInt(objRec[0]) + 1;
+                        if (!ExecDB.InsertAction(CurRec, false))
+                        {
+                            bRet = false;
+                            ExecDB.rollback();
+                            break;
+                        }
+                    }
+                }
+
+                return bRet;
+            }
+            catch (System.Exception ex)
+            {
+                logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
+                return false;
+            }
+            finally
+            {
+                ExecDB.commit();
+                ExecDB.close(); ExecDB = null;
+            }
+        }
+        #endregion
+        // ↑↑ ** ----- インターフェース ----- **
     }
 }
Index: branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsExcute.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsExcute.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsExcute.cs	(revision 191)
@@ -84,7 +84,8 @@
             PriceOfBudget = 37,                 // 37:台帳状況確認画面
             MaterialEntrylList = 38,            // 38:資材選択一覧
             BillingEntrylList = 39,             // 39:請求選択一覧
-            PurchaseStatusInput = 40,           // 40:注文書状況日付入力
+            PurchaseStatusInput = 40,           // 40:注文書状況入力
+            ReqBillingStatus = 41,              // 41:請求書状況入力
         }
         #endregion
 
@@ -189,7 +190,8 @@
                                                                                 { (int)ProcessExecuteNo.PriceOfBudget,          "工事台帳状態確認－表示"},
                                                                                 { (int)ProcessExecuteNo.MaterialEntrylList,     "資材データ一覧－表示"},
                                                                                 { (int)ProcessExecuteNo.BillingEntrylList,      "請求データ一覧－表示"},
-                                                                                { (int)ProcessExecuteNo.PurchaseStatusInput,      "注文書状況日付－入力"},
+                                                                                { (int)ProcessExecuteNo.PurchaseStatusInput,    "注文書状況－入力"},
+                                                                                { (int)ProcessExecuteNo.ReqBillingStatus,     "請求書状況－入力"},
         };
 
         #endregion
@@ -255,49 +257,57 @@
         public enum ApprovalListNo
         {
             /// <summary>
-            /// 0:空白
+            ///  0:空白
             /// </summary>
             None = 0,
             /// <summary>
-            /// 1:積算見積書承認
+            ///  1:積算見積書承認
             /// </summary>
             EstimateApproval,
             /// <summary>
-            /// 2:積算予算書承認
+            ///  2:積算予算書承認
             /// </summary>
             EstimateBudgetApproval,
             /// <summary>
-            /// 3:工事予算書承認
+            ///  3:工事予算書承認
             /// </summary>
             ConstructionBudgetApproval,
             /// <summary>
-            /// 4:注文書承認
+            ///  4:注文書承認
             /// </summary>
             PurchaseOrderEntryApproval,
             /// <summary>
-            /// 5:請求書承認
+            ///  5:請求書承認
             /// </summary>
             OrderBillingApproval,
             /// <summary>
-            /// 6:工事日報承認
+            ///  6:工事日報承認
             /// </summary>
             DRConstructionApproval,
             /// <summary>
-            /// 7:議事録承認
+            ///  7:議事録承認
             /// </summary>
             DRProceedingsApproval,
             /// <summary>
-            /// 8:出勤管理承認
+            ///  8:出勤管理承認
             /// </summary>
             DRWorkApproval,
             /// <summary>
-            /// 9:発注者登録承認
+            ///  9:発注者登録承認
             /// </summary>
             CostomerRegistApproval,
             /// <summary>
-            ///10:協力会社登録承認
+            /// 10:協力会社登録承認
             /// </summary>
-            SubConstregistApproval
+            SubConstregistApproval,
+            /// <summary>
+            /// 11:手間支払
+            /// </summary>
+            FeePayment,
+            /// <summary>
+            /// 12:業者支払
+            /// </summary>
+            SubConstrPayment,
         }
         #endregion
 
@@ -336,6 +346,8 @@
                                                                                 {8, "出勤管理承認"},
                                                                                 {9, "発注者登録承認"},
                                                                                 {10, "協力会社登録承認"},
+                                                                                {11, "手間支払確認承認"},
+                                                                                {12, "業社支払確認承認"},
                                                                                 {98, "入金確認承認"},
                                                                                 {99, "請求まとめ承認"}
                                                                                 };
@@ -456,12 +468,17 @@
             {
                 while (m_ProcControlPara.Count != 0)
                 {
+                    // 起動指示処理取得
                     int NowPoint = GetNowProcessPoint();
 
                     // 起動チェック
+                    //int EditFlg = (int)CommonDefine.ProcessDataEdit.Reference;
+                    //if (!ClsSecurityPermission.GetExecutePermission(m_ProcControlPara[NowPoint].ProcNo, ref EditFlg))
+                    //{
+                    //    MessageBox.Show("選択された処理の起動権限が設定されていません。", "起動権限確認", MessageBoxButtons.OK, MessageBoxIcon.Stop);
+                    //    BackProcess();
+                    //}
 
-
-
                     switch (m_ProcControlPara[NowPoint].ProcNo)
                     {
                         #region 通常処理
@@ -625,6 +642,10 @@
                             ProcessExecuteNo_PurchaseStatusInput(m_ProcControlPara[NowPoint]);
                             break;
 
+                        case (int)ProcessExecuteNo.ReqBillingStatus:                  // 41:請求書状況入力
+                            ProcessExecuteNo_ReqBillingStatus(m_ProcControlPara[NowPoint]);
+                            break;
+
                         #endregion
 
                         #region マスタメンテ
@@ -908,14 +929,6 @@
             FrmConstructionList frm = new FrmConstructionList();
             try
             {
-                // 次起動プロセスが設定されていない場合は終了
-                if (CurrentPara.IntExecParameter[0] == 0)
-                {
-                    // 前プロセスに戻る
-                    BackProcess();
-                    return;
-                }
-
                 // 次起動プロセスセット
                 frm.ExecuteFlg = CurrentPara.IntExecParameter[0];
                 // データ追加フラグ
@@ -955,11 +968,7 @@
 
                 // 起動・編集フラグ
                 int EditFlg = (int)CommonDefine.ProcessDataEdit.Reference;
-                if (!ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg))
-                {
-                    BackProcess();
-                    return;
-                }
+                ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg);
                 if (EditFlg == (int)CommonDefine.ProcessDataEdit.Reference) frm.EditLock = true;
 
                 // パラメータセット
@@ -1001,11 +1010,7 @@
 
                 // 起動・編集フラグ
                 int EditFlg = (int)CommonDefine.ProcessDataEdit.Reference;
-                if (!ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg))
-                {
-                    BackProcess();
-                    return;
-                }
+                ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg);
                 if (EditFlg == (int)CommonDefine.ProcessDataEdit.Reference) frm.EditLock = true;
 
                 // パラメータセット
@@ -1044,11 +1049,7 @@
 
                 // 起動・編集フラグ
                 int EditFlg = (int)CommonDefine.ProcessDataEdit.Reference;
-                if (!ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg))
-                {
-                    BackProcess();
-                    return;
-                }
+                ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg);
                 if (EditFlg == (int)CommonDefine.ProcessDataEdit.Reference) frm.EditLock = true;
 
                 // パラメータセット
@@ -1088,11 +1089,7 @@
 
                 // 起動・編集フラグ
                 int EditFlg = (int)CommonDefine.ProcessDataEdit.Reference;
-                if (!ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg))
-                {
-                    BackProcess();
-                    return;
-                }
+                ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg);
                 if (EditFlg == (int)CommonDefine.ProcessDataEdit.Reference) frm.EditLock = true;
 
                 // パラメータセット
@@ -1131,11 +1128,7 @@
 
                 // 起動・編集フラグ
                 int EditFlg = (int)CommonDefine.ProcessDataEdit.Reference;
-                if (!ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg))
-                {
-                    BackProcess();
-                    return;
-                }
+                ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg);
                 if (EditFlg == (int)CommonDefine.ProcessDataEdit.Reference) frm.EditLock = true;
 
                 // パラメータセット
@@ -1174,11 +1167,7 @@
 
                 // 起動・編集フラグ
                 int EditFlg = (int)CommonDefine.ProcessDataEdit.Reference;
-                if (!ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg))
-                {
-                    BackProcess();
-                    return;
-                }
+                ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg);
                 if (EditFlg == (int)CommonDefine.ProcessDataEdit.Reference) frm.EditLock = true;
 
                 // パラメータセット
@@ -1224,11 +1213,7 @@
 
                 // 起動・編集フラグ
                 int EditFlg = (int)CommonDefine.ProcessDataEdit.Reference;
-                if (!ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg))
-                {
-                    BackProcess();
-                    return;
-                }
+                ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg);
                 if (EditFlg == (int)CommonDefine.ProcessDataEdit.Reference) frm.EditLock = true;
 
                 // パラメータセット
@@ -2506,8 +2491,37 @@
         }
         #endregion
 
+        #region 請求書状況入力
+        /// <summary>
+        /// 請求書状況入力
+        /// </summary>
+        /// <param name="CurrentPara"></param>
+        public static void ProcessExecuteNo_ReqBillingStatus(ProcessParameter CurrentPara)
+        {
+            //　請求選択一覧
+            FrmReqBillingStatus frm = new FrmReqBillingStatus();
+            try
+            {
+                // パラメータセット
+                //frm.ExecuteFlg = CurrentPara.IntExecParameter[0];
+
+                // フォーム表示
+                frm.ShowDialog();
+            }
+            catch (Exception ex)
+            {
+                logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
+                BackProcess();
+            }
+            finally
+            {
+                frm.Dispose(); frm = null;
+            }
+        }
         #endregion
 
+        #endregion
+
         #region マスタメンテナンス
         // ----------------- メンテナンス起動
         #region 管理マスタ
Index: branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOConstructionLedgerExcute.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOConstructionLedgerExcute.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOConstructionLedgerExcute.cs	(revision 191)
@@ -478,7 +478,7 @@
                         break;
                     // 支払金額
                     case (int)TableColumn.PaymentAmount:
-                        strcmd.AppendFormat(" PaymentAmount = {0}", (int)value);
+                        strcmd.AppendFormat(" PaymentAmount = {0}", (double)value);
                         break;
                     // 対象年月
                     case (int)TableColumn.TargetMonth:
Index: branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOMApproval.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOMApproval.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOMApproval.cs	(revision 191)
@@ -66,26 +66,26 @@
         public bool SelectAction(string AddSQLString, ref List<ApprovalMaster> data, bool bConnect = true)
         {
             // インターフェース
-            string strcmd = "";
+            StringBuilder strcmd = new StringBuilder();
             ArrayList arData = new ArrayList();
 
             try
             {
                 // SQL作成（DateTime型が変換できないのでCharに変換しておく）
-                strcmd = "SELECT";
-                strcmd += " ApprovalCode";
-                strcmd += ",DepartmentCode";
-                strcmd += ",SeqNo";
-                strcmd += ",DisplayOrder";
-                strcmd += ",ApprovalPerson";
-                strcmd += ",ApprovalAuthority";
-                strcmd += ",DATE_FORMAT(EntryDate, '%Y/%m/%d %H:%i:%s')";
-                strcmd += ",DATE_FORMAT(UpdateDate, '%Y/%m/%d %H:%i:%s')";
-                strcmd += " FROM ApprovalMaster";
-                strcmd += AddSQLString;
+                strcmd.Append("SELECT");
+                strcmd.Append(" ApprovalCode");
+                strcmd.Append(",DepartmentCode");
+                strcmd.Append(",SeqNo");
+                strcmd.Append(",DisplayOrder");
+                strcmd.Append(",ApprovalPerson");
+                strcmd.Append(",ApprovalAuthority");
+                strcmd.Append(",DATE_FORMAT(EntryDate, '%Y/%m/%d %H:%i:%s')");
+                strcmd.Append(",DATE_FORMAT(UpdateDate, '%Y/%m/%d %H:%i:%s')");
+                strcmd.Append(" FROM ApprovalMaster");
+                strcmd.Append(AddSQLString);
 
                 // SQL実行
-                if (!ExecuteReader(strcmd, ref arData, bConnect)) return false;
+                if (!ExecuteReader(strcmd.ToString(), ref arData, bConnect)) return false;
 
                 // データセット
                 foreach (object[] objwrk in arData)
@@ -99,7 +99,7 @@
             }
             catch (Exception ex)
             {
-                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd);
+                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
                 return false;
             }
 
@@ -114,85 +114,85 @@
         /// <returns>true：成功 false：失敗</returns>
         public bool InsertAction(List<ApprovalMaster> data, bool bConnect = true)
         {
-            string strcmd = "";
+            StringBuilder strcmd = new StringBuilder();
             try
             {
                 bool bColFirst = true;
-                strcmd = "INSERT INTO ApprovalMaster";
-                strcmd += " (";
+                strcmd.Append("INSERT INTO ApprovalMaster");
+                strcmd.Append(" (");
                 foreach (var gender in Enum.GetValues(typeof(NameColumn)))
                 {
-                    if (!bColFirst) strcmd += ", ";
-                    strcmd += gender.ToString();
+                    if (!bColFirst) strcmd.Append(", ");
+                    strcmd.Append(gender.ToString());
                     bColFirst = false;
                 }
-                strcmd += ") VALUES";
+                strcmd.Append(") VALUES");
 
                 bool bDataFirst = true;
                 foreach (ApprovalMaster work in data)
                 {
-                    if (bDataFirst) strcmd += " (";
-                    else strcmd += ", (";
+                    if (bDataFirst) strcmd.Append(" (");
+                    else strcmd.Append(", (");
 
-                    strcmd += string.Format("  {0}", work.ApprovalCode.ToString());
-                    strcmd += string.Format(", {0}", work.DepartmentCode.ToString());
-                    strcmd += string.Format(", {0}", work.SeqNo.ToString());
-                    strcmd += string.Format(", {0}", work.DisplayOrder.ToString());
-                    strcmd += string.Format(", {0}", work.ApprovalPerson.ToString());
-                    strcmd += string.Format(", {0}", work.ApprovalAuthority.ToString());
-                    strcmd += string.Format(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", work.EntryDate);
-                    strcmd += string.Format(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", work.UpdateDate);
+                    strcmd.AppendFormat("  {0}", work.ApprovalCode.ToString());
+                    strcmd.AppendFormat(", {0}", work.DepartmentCode.ToString());
+                    strcmd.AppendFormat(", {0}", work.SeqNo.ToString());
+                    strcmd.AppendFormat(", {0}", work.DisplayOrder.ToString());
+                    strcmd.AppendFormat(", {0}", work.ApprovalPerson.ToString());
+                    strcmd.AppendFormat(", {0}", work.ApprovalAuthority.ToString());
+                    strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", work.EntryDate);
+                    strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", work.UpdateDate);
 
-                    strcmd += ")";
+                    strcmd.Append(")");
 
                     bDataFirst = false;
                 }
 
-                if (!ExecuteNonQuery(strcmd, false)) return false;
+                if (!ExecuteNonQuery(strcmd.ToString(), false)) return false;
 
                 return true;
             }
             catch (Exception ex)
             {
-                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd);
+                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
                 return false;
             }
         }
         public bool InsertAction(ApprovalMaster data, bool bConnect = true)
         {
-            string strcmd = "";
+            StringBuilder strcmd = new StringBuilder();
             try
             {
 
                 bool bColFirst = true;
-                strcmd = "INSERT INTO ApprovalMaster";
-                strcmd += " (";
+                strcmd.Append("INSERT INTO ApprovalMaster");
+                strcmd.Append(" (");
                 foreach (var gender in Enum.GetValues(typeof(NameColumn)))
                 {
-                    if (!bColFirst) strcmd += ", ";
-                    strcmd += gender.ToString();
+                    if (!bColFirst) strcmd.Append(", ");
+                    strcmd.Append(gender.ToString());
                     bColFirst = false;
                 }
-                strcmd += ") VALUES (";
+                strcmd.Append(") VALUES (");
 
-                strcmd += string.Format("  {0}", data.ApprovalCode.ToString());
-                strcmd += string.Format(", {0}", data.DepartmentCode.ToString());
-                strcmd += string.Format(", {0}", data.SeqNo.ToString());
-                strcmd += string.Format(", {0}", data.DisplayOrder.ToString());
-                strcmd += string.Format(", {0}", data.ApprovalPerson.ToString());
-                strcmd += string.Format(", {0}", data.ApprovalAuthority.ToString());
+                strcmd.AppendFormat("  {0}", data.ApprovalCode.ToString());
+                strcmd.AppendFormat(", {0}", data.DepartmentCode.ToString());
+                strcmd.AppendFormat(", {0}", data.SeqNo.ToString());
+                strcmd.AppendFormat(", {0}", data.DisplayOrder.ToString());
+                strcmd.AppendFormat(", {0}", data.ApprovalPerson.ToString());
+                strcmd.AppendFormat(", {0}", data.ApprovalAuthority.ToString());
 
-                strcmd += string.Format(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", data.EntryDate);
-                strcmd += string.Format(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", data.UpdateDate);
-                strcmd += ")";
+                strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", data.EntryDate);
+                strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", data.UpdateDate);
+                strcmd.Append(")");
 
-                if (!ExecuteNonQuery(strcmd, bConnect)) return false;
+                if (!ExecuteNonQuery(strcmd.ToString(), bConnect)) return false;
 
                 return true;
             }
             catch (Exception ex)
             {
-                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd);
+                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
                 return false;
             }
         }
@@ -207,31 +207,31 @@
         /// <returns>true：成功 false：失敗</returns>
         public bool UpdateAction(string AddSQLString, ApprovalMaster data, bool bConnect = true)
         {
-            string strcmd = "";
+            StringBuilder strcmd = new StringBuilder();
             try
             {
 
-                strcmd = "UPDATE ApprovalMaster";
+                strcmd.Append("UPDATE ApprovalMaster");
 
-                strcmd += " SET";
+                strcmd.Append(" SET");
 
-                strcmd += string.Format(" ApprovalCode = {0}", data.ApprovalCode.ToString());
-                strcmd += string.Format(",DepartmentCode = {0}", data.DepartmentCode.ToString());
-                strcmd += string.Format(",SeqNo = {0}", data.SeqNo.ToString());
-                strcmd += string.Format(",DisplayOrder = {0}", data.DisplayOrder.ToString());
-                strcmd += string.Format(",ApprovalPerson = {0}", data.ApprovalPerson.ToString());
-                strcmd += string.Format(",ApprovalAuthority = {0}", data.ApprovalAuthority.ToString());
+                strcmd.AppendFormat(" ApprovalCode = {0}", data.ApprovalCode.ToString());
+                strcmd.AppendFormat(",DepartmentCode = {0}", data.DepartmentCode.ToString());
+                strcmd.AppendFormat(",SeqNo = {0}", data.SeqNo.ToString());
+                strcmd.AppendFormat(",DisplayOrder = {0}", data.DisplayOrder.ToString());
+                strcmd.AppendFormat(",ApprovalPerson = {0}", data.ApprovalPerson.ToString());
+                strcmd.AppendFormat(",ApprovalAuthority = {0}", data.ApprovalAuthority.ToString());
 
-                strcmd += ", UpdateDate = NOW()";
-                strcmd += AddSQLString;
+                strcmd.Append(", UpdateDate = NOW()");
+                strcmd.Append(AddSQLString);
 
-                if (!ExecuteNonQuery(strcmd, bConnect)) return false;
+                if (!ExecuteNonQuery(strcmd.ToString(), bConnect)) return false;
 
                 return true;
             }
             catch (Exception ex)
             {
-                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd);
+                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
                 return false;
             }
         }
@@ -247,18 +247,18 @@
         public bool DeleteAction(string AddSQLString, bool bConnect = true)
         {
             // インターフェース
-            string strcmd = "";
+            StringBuilder strcmd = new StringBuilder();
             try
             {
-                strcmd = string.Format("{0}{1}", "DELETE FROM ApprovalMaster", AddSQLString);
+                strcmd.AppendFormat("{0}{1}", "DELETE FROM ApprovalMaster", AddSQLString);
 
-                if (!ExecuteNonQuery(strcmd, bConnect)) return false;
+                if (!ExecuteNonQuery(strcmd.ToString(), bConnect)) return false;
 
                 return true;
             }
             catch (Exception ex)
             {
-                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd);
+                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
                 return false;
             }
         }
@@ -306,22 +306,22 @@
         /// <returns>Where文字列</returns>
         public string CreatePrimarykeyString(int ApprovalCode, int DepartmentCode = -1, int SeqNo = -1)
         {
-            string strWork = string.Empty;
+            StringBuilder strWork = new StringBuilder();
             try
             {
-                strWork = string.Format(" Where ApprovalCode = {0}", ApprovalCode.ToString());
+                strWork.AppendFormat(" Where ApprovalCode = {0}", ApprovalCode.ToString());
                 if (DepartmentCode != -1)
-                    strWork += string.Format(" And DepartmentCode = {0}", DepartmentCode.ToString());
+                    strWork.AppendFormat(" And DepartmentCode = {0}", DepartmentCode.ToString());
                 if (SeqNo != -1)
-                    strWork += string.Format(" And SeqNo = {0}", SeqNo.ToString());
+                    strWork.AppendFormat(" And SeqNo = {0}", SeqNo.ToString());
 
             }
             catch (Exception ex)
             {
-                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strWork);
+                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strWork.ToString());
             }
 
-            return strWork;
+            return strWork.ToString();
         }
         /// <summary>
         /// 枝番の最大値を取得する
@@ -332,16 +332,16 @@
         public int SelectMaxSeqNoCount(string AddSQLString, bool bConnect = true)
         {
             // インターフェース
-            string strcmd = "";
+            StringBuilder strcmd = new StringBuilder();
             ArrayList arData = new ArrayList();
             int iRet = 0;
             try
             {
                 // SQL作成
-                strcmd = "SELECT IFNULL(MAX(SeqNo), 0) FROM ApprovalMaster" + AddSQLString;
+                strcmd.AppendFormat("SELECT IFNULL(MAX(SeqNo), 0) FROM ApprovalMaster{0}" , AddSQLString);
 
                 // SQL実行
-                if (!ExecuteReader(strcmd, ref arData, bConnect)) return iRet;
+                if (!ExecuteReader(strcmd.ToString(), ref arData, bConnect)) return iRet;
 
                 // データセット
                 foreach (object[] objwrk in arData)
@@ -355,7 +355,7 @@
             }
             catch (Exception ex)
             {
-                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd);
+                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
             }
             return iRet;
         }
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalScreen/FrmApprovalScreenAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalScreen/FrmApprovalScreenAuxiliary.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalScreen/FrmApprovalScreenAuxiliary.cs	(revision 191)
@@ -266,7 +266,10 @@
                         if (ClsApprovalPermission.CheckProcessApprovalData(m_ConstructionCode, m_ApprovalCode, m_OrderNo))
                         {
                             // 最終承認がされていれば申請レコードを承認へ変更する
-                            ClsApprovalPermission.SetPrimaryRecStatus(m_ConstructionCode, m_ApprovalCode, m_OrderNo, statusCode);
+                            if (!ClsApprovalPermission.SetPrimaryRecStatus(m_ConstructionCode,
+                                                                            m_ApprovalCode,
+                                                                            m_OrderNo,
+                                                                            statusCode)) return false;
                             
                             // 工事詳細台帳データを作成するデータがある
                             CaretaLedgerData();
@@ -274,7 +277,10 @@
                         break;
                     default:
                         // ----- 承認以外
-                        ClsApprovalPermission.SetPrimaryRecStatus(m_ConstructionCode, m_ApprovalCode, m_OrderNo, statusCode);
+                        if (!ClsApprovalPermission.SetPrimaryRecStatus(m_ConstructionCode,
+                                                                        m_ApprovalCode,
+                                                                        m_OrderNo,
+                                                                        statusCode)) return false;
                         break;
                 }
                 return true;
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderStatus/FrmPurchaseOrderStatusAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderStatus/FrmPurchaseOrderStatusAuxiliary.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderStatus/FrmPurchaseOrderStatusAuxiliary.cs	(revision 191)
@@ -87,7 +87,17 @@
                 }
 
                 // ���N���v���Z�X�Z�b�g
-                NowPoint = ClsExcute.NextProcess(m_ExecuteFlg);
+                int NextProcNo = m_ExecuteFlg;
+                // �{�H�Ǘ���ʂ���̕\���͋N���������`�F�b�N����
+                if (NextProcNo == (int)ClsExcute.ProcessExecuteNo.PurchaseOrderPrint)
+                {
+                    int EditFlg = (int)CommonDefine.ProcessDataEdit.Reference;
+                    if (!ClsSecurityPermission.GetExecutePermission(NextProcNo, ref EditFlg))
+                    {   // �N���������Ȃ��ꍇ�͒������ꗗ��\������
+                        NextProcNo = (int)ClsExcute.ProcessExecuteNo.PurchaseOrderEntry;
+                    }
+                }
+                NowPoint = ClsExcute.NextProcess(NextProcNo);
                 // �I���H���ԍ��Z�b�g
                 ClsExcute.ProcControlPara[NowPoint].IntExecParameter.Add(para_ConstructionCode);
                 ClsExcute.ProcControlPara[NowPoint].IntExecParameter.Add(CommonMotions.cnvInt(dgv.Rows[CurrentIndex].Cells[(int)DispColumn.OrderNo].Value));
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCosts.Designer.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCosts.Designer.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCosts.Designer.cs	(revision 191)
@@ -2597,8 +2597,6 @@
             this.panel3.Anchor = System.Windows.Forms.AnchorStyles.Top;
             this.panel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
             this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-            this.panel3.Controls.Add(this.pnlApproval);
-            this.panel3.Controls.Add(this.pnlApprovalButton);
             this.panel3.Controls.Add(this.cmbDepartment);
             this.panel3.Controls.Add(this.label2);
             this.panel3.Controls.Add(this.cmbConstructionPerson);
@@ -2618,7 +2616,7 @@
             this.pnlApproval.Controls.Add(this.lblApprovalCount);
             this.pnlApproval.Controls.Add(this.btnPetition);
             this.pnlApproval.Controls.Add(this.btnApproval);
-            this.pnlApproval.Location = new System.Drawing.Point(1056, 2);
+            this.pnlApproval.Location = new System.Drawing.Point(1069, 3);
             this.pnlApproval.Name = "pnlApproval";
             this.pnlApproval.Size = new System.Drawing.Size(262, 34);
             this.pnlApproval.TabIndex = 109;
@@ -2672,7 +2670,7 @@
             this.pnlApprovalButton.Controls.Add(this.btnOnApproval);
             this.pnlApprovalButton.Controls.Add(this.btnNotApproval);
             this.pnlApprovalButton.Controls.Add(this.btnOnHold);
-            this.pnlApprovalButton.Location = new System.Drawing.Point(1056, 2);
+            this.pnlApprovalButton.Location = new System.Drawing.Point(1069, 3);
             this.pnlApprovalButton.Name = "pnlApprovalButton";
             this.pnlApprovalButton.Size = new System.Drawing.Size(262, 34);
             this.pnlApprovalButton.TabIndex = 110;
@@ -2836,6 +2834,7 @@
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
             this.BackColor = System.Drawing.Color.Black;
             this.ClientSize = new System.Drawing.Size(1344, 697);
+            this.Controls.Add(this.pnlApproval);
             this.Controls.Add(this.lblCellTotal);
             this.Controls.Add(this.btnDataDelete);
             this.Controls.Add(this.btnDataEntry);
@@ -2843,6 +2842,7 @@
             this.Controls.Add(this.TabControl1);
             this.Controls.Add(this.btnEnd);
             this.Controls.Add(this.label1);
+            this.Controls.Add(this.pnlApprovalButton);
             this.Font = new System.Drawing.Font("ＭＳ 明朝", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
             this.KeyPreview = true;
@@ -2867,7 +2867,6 @@
             this.tabPage6.ResumeLayout(false);
             ((System.ComponentModel.ISupportInitialize)(this.dgvPage6)).EndInit();
             this.panel3.ResumeLayout(false);
-            this.panel3.PerformLayout();
             this.pnlApproval.ResumeLayout(false);
             this.pnlApprovalButton.ResumeLayout(false);
             this.ResumeLayout(false);
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCosts.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCosts.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCosts.cs	(revision 191)
@@ -387,6 +387,9 @@
                 // 初期表示
                 InitDataLoad();
 
+                // グリッドロック
+                GridEditLock();
+
                 // 初期表示フラグOFF
                 m_bInitFlg = false;
 
@@ -1024,6 +1027,9 @@
                 if (m_EditLock) SeeModeLock(ix, true);
             }
 
+            // グリッドロック
+            GridEditLock();
+
             // データ変更フラグクリア
             m_bChengeAns = false;
         }
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCostsAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCostsAuxiliary.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCostsAuxiliary.cs	(revision 191)
@@ -166,7 +166,7 @@
             {
                 // 存在月を担当者毎経費データより取得する
                 //string strSQL = "SELECT DATE_FORMAT(ACTIONDATE,'YYYY/MM'), COUNT(*) FROM CostDataOfPerson GROUP BY DATE_FORMAT(ACTIONDATE,'YYYY/MM') ORDER BY 1";
-                string strSQL = "SELECT DATE_FORMAT(ACTIONDATE,'%Y/%m'), COUNT(*) FROM CostDataOfPerson GROUP BY DATE_FORMAT(ACTIONDATE,'%Y/%m') ORDER BY 1";
+                string strSQL = "SELECT DATE_FORMAT(ACTIONDATE,'%Y/%m'), COUNT(*) FROM CostDataOfPerson GROUP BY DATE_FORMAT(ACTIONDATE,'%Y/%m') ORDER BY 1 DESC";
                 ArrayList arList = new ArrayList();
                 CostDB.ExecuteReader(strSQL, ref arList);
 
@@ -217,73 +217,6 @@
         {
             try
             {
-                // 新セキュリティデータ対応済みかを確認する
-                if (CommonMotions.LoginUserData.SecCode == 0)
-                {
-                    InitCombBox_OLD();
-                }
-                else
-                {
-                    InitCombBox_NEW();
-                }
-            }
-            catch (Exception ex)
-            {
-                logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
-            }
-        }
-        #endregion
-
-        #region コンボボックス初期表示（旧）
-        /// <summary>
-        /// コンボボックス初期表示（旧）
-        /// </summary>
-        private void InitCombBox_OLD()
-        {
-            try
-            {
-                // システム権限によってデータアクセスに制限がある
-                if (CommonMotions.LoginUserData.SecurityManagement == CommonDefine.AdminSecurityManagement
-                || CommonMotions.LoginUserData.SecurityManagement == CommonDefine.SystemManageDiv[(int)CommonDefine.SysManaDivNo.PresidentAuthority].Key
-                || CommonMotions.LoginUserData.SecurityManagement == CommonDefine.SystemManageDiv[(int)CommonDefine.SysManaDivNo.SupervisorAuthority].Key
-                || CommonMotions.LoginUserData.DepartmentCode == CommonDefine.s_GeneralAffairsDevision)
-                {
-                    // システム管理者
-                    // 最高機密管理者
-                    // 統括機密管理者
-                    // 総務部所属者は全て見える
-
-                    // 部署・担当者コンボ表示
-                    DispAllCombBoxControl(true);
-                }
-                else if (CommonMotions.LoginUserData.SecurityManagement == CommonDefine.SystemManageDiv[(int)CommonDefine.SysManaDivNo.SuperiorAuthority].Key)
-                {
-                    // 所属長
-                    // 部署コンボ非表示
-                    NonDispDepCombBox();
-                }
-                else if (CommonMotions.LoginUserData.SecurityManagement == CommonDefine.SystemManageDiv[(int)CommonDefine.SysManaDivNo.UserAuthority].Key)
-                {
-                    // 一般使用者（自分のみアクセス可能）
-                    // 部署・担当者コンボ非表示
-                    DispAllCombBoxControl(false);
-                }
-            }
-            catch (Exception ex)
-            {
-                logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
-            }
-        }
-        #endregion
-
-        #region コンボボックス初期表示（新）
-        /// <summary>
-        /// コンボボックス初期表示（新）
-        /// </summary>
-        private void InitCombBox_NEW()
-        {
-            try
-            {
                 int AllPath = (int)CommonDefine.SecurityRangePos.AllPath;           // 全部署
                 int Multiple = (int)CommonDefine.SecurityRangePos.Multiple;         // 複数部署
                 int Only = (int)CommonDefine.SecurityRangePos.Only;                 // 自部署のみ
@@ -1741,5 +1674,38 @@
         }
         #endregion
 
+        #region グリッドの編集をロックする
+        /// <summary>
+        /// グリッドの編集をロックする
+        /// </summary>
+        private void GridEditLock()
+        {
+            try
+            {
+                // 全グリッドを編集可能にする
+                for (int i = (int)InputTabCount.Transport; i <= (int)InputTabCount.DisposalCost; i++)
+                {
+                    // グリッド取得
+                    DataGridView dgv = m_dispGridControl[i];
+                    dgv.ReadOnly = false;
+                }
+
+                // 選択されていれば抜ける
+                if (CommonMotions.cnvInt(cmbConstructionPerson.SelectedValue) != 0) return;
+
+                // 全グリッドを編集不可にする
+                for (int i = (int)InputTabCount.Transport; i <= (int)InputTabCount.DisposalCost; i++)
+                {
+                    // グリッド取得
+                    DataGridView dgv = m_dispGridControl[i];
+                    dgv.ReadOnly = true;
+                }
+            }
+            catch (System.Exception ex)
+            {
+                logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
+            }
+        }
+        #endregion
     }
 }
Index: branches/src/ProcessManagement/ProcessManagement/Forms/Master/Security/FrmSecurityAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/Master/Security/FrmSecurityAuxiliary.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/Master/Security/FrmSecurityAuxiliary.cs	(revision 191)
@@ -530,15 +530,16 @@
                 DataGridView dgv = dgvProcess;
 
                 // 起動対象マスタ取得
-                string strSQL = "SELECT";
-                strSQL += CreateFeildSQL("A.");
-                strSQL += ", B.EXECCODE";
-                strSQL += ", B.EDITFLG";
-                strSQL += " FROM SECURITYMASTER A";
-                strSQL += " LEFT JOIN PROCESSEXCUTEMASTER B ON B.SECCODE = A.SECCODE";
-                strSQL += " ORDER BY A.DISPLAYORDER, B.EXECCODE";
+                StringBuilder strSQL = new StringBuilder(512);
+                strSQL.Append("SELECT");
+                strSQL.Append(CreateFeildSQL("A."));
+                strSQL.Append(", B.EXECCODE");
+                strSQL.Append(", B.EDITFLG");
+                strSQL.Append(" FROM SECURITYMASTER A");
+                strSQL.Append(" LEFT JOIN PROCESSEXCUTEMASTER B ON B.SECCODE = A.SECCODE");
+                strSQL.Append(" ORDER BY A.DISPLAYORDER, B.EXECCODE");
                 ArrayList peList = new ArrayList();
-                secDB.ExecuteReader(strSQL, ref peList);
+                secDB.ExecuteReader(strSQL.ToString(), ref peList);
                 if (peList.Count == 0) return;
 
                 m_SecMasterList.Clear();
Index: branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenu.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenu.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenu.cs	(revision 191)
@@ -601,8 +601,8 @@
                                                                     },
                                                                     {(int)ClsExcute.ProcessExecuteNo.PurchaseOrderPrint,
                                                                         (int)ClsExcute.ProcessExecuteNo.PurchaseOrderStatus,
+                                                                        (int)ClsExcute.ProcessExecuteNo.ReqBillingStatus,
                                                                         0,
-                                                                        0,
                                                                         0
                                                                     },
                                                                     {(int)ClsExcute.ProcessExecuteNo.RequestSummaryList,
@@ -2259,31 +2259,18 @@
         /// <param name="e"></param>
         private void btnOrder_Click(object sender, EventArgs e)
         {
-            int NowPoint = -1;
             try
             {
-                // 自画面非表示
-                if (CommonMotions.ProductionExecution) this.Visible = false;
-
                 // 参照オブジェクトをボタンに変換
                 System.Windows.Forms.Button btnKey = (System.Windows.Forms.Button)sender;
-                int ButtonCol = tblLayoutOrder.GetColumn(btnKey);                           // 列取得（Ｘ）
-                int ButtonRow = tblLayoutOrder.GetRow(btnKey);                              // 行取得（Ｙ）
 
                 // 処理起動
-                OrderTabEvent(ButtonRow, ButtonCol, ref NowPoint);
+                OrderTabEvent(btnKey);
             }
             catch (Exception ex)
             {
                 logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
             }
-            finally
-            {
-                // 再表示
-                if (NowPoint > -1) DisplayDataLoad();
-                // 自画面表示
-                if (CommonMotions.ProductionExecution) this.Visible = true;
-            }
         }
         #endregion
 
@@ -2295,31 +2282,18 @@
         /// <param name="e"></param>
         private void btnConstruction_Click(object sender, EventArgs e)
         {
-            int NowPoint = -1;
             try
             {
-                // 自画面非表示
-                if (CommonMotions.ProductionExecution) this.Visible = false;
-
                 // 参照オブジェクトをボタンに変換
                 System.Windows.Forms.Button btnKey = (System.Windows.Forms.Button)sender;
-                int ButtonCol = tblLayoutConstruction.GetColumn(btnKey);                    // 列取得（Ｘ）
-                int ButtonRow = tblLayoutConstruction.GetRow(btnKey);                       // 行取得（Ｙ）
              
                 // 処理起動
-                ConstructionTabEvent(ButtonRow, ButtonCol, ref NowPoint);
+                ConstructionTabEvent(btnKey);
             }
             catch (Exception ex)
             {
                 logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
             }
-            finally
-            {
-                // 再表示
-                if (NowPoint > -1) DisplayDataLoad();
-                // 自画面表示
-                if (CommonMotions.ProductionExecution) this.Visible = true;
-            }
         }
         #endregion
 
@@ -2331,31 +2305,18 @@
         /// <param name="e"></param>
         private void btnAffairs_Click(object sender, EventArgs e)
         {
-            int NowPoint = -1;
             try
             {
-                // 自画面非表示
-                if (CommonMotions.ProductionExecution) this.Visible = false;
-
                 // 参照オブジェクトをボタンに変換
                 System.Windows.Forms.Button btnKey = (System.Windows.Forms.Button)sender;
-                int ButtonCol = tblLayoutConstruction.GetColumn(btnKey);                    // 列取得（Ｘ）
-                int ButtonRow = tblLayoutConstruction.GetRow(btnKey);                       // 行取得（Ｙ）
 
                 // 処理起動
-                AffairsTabEvent(ButtonRow, ButtonCol, ref NowPoint);
+                AffairsTabEvent(btnKey);
             }
             catch (Exception ex)
             {
                 logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
             }
-            finally
-            {
-                // 再表示
-                if (NowPoint > -1) DisplayDataLoad();
-                // 自画面表示
-                if (CommonMotions.ProductionExecution) this.Visible = true;
-            }
         }
         #endregion
 
@@ -2369,27 +2330,16 @@
         {
             try
             {
-                int NowPoint = -1;
-                // 自画面非表示
-                if (CommonMotions.ProductionExecution) this.Visible = false;
-
                 // 参照オブジェクトをボタンに変換
                 System.Windows.Forms.Button btnKey = (System.Windows.Forms.Button)sender;
-                int ButtonCol = tblLayoutConstruction.GetColumn(btnKey);                    // 列取得（Ｘ）
-                int ButtonRow = tblLayoutConstruction.GetRow(btnKey);                       // 行取得（Ｙ）
 
                 // 処理起動
-                NotificationTabEvent(ButtonRow, ButtonCol, ref NowPoint);
+                NotificationTabEvent(btnKey);
             }
             catch (Exception ex)
             {
                 logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
             }
-            finally
-            {
-                // 自画面表示
-                if (CommonMotions.ProductionExecution) this.Visible = true;
-            }
         }
         #endregion
 
@@ -2403,29 +2353,15 @@
         {
             try
             {
-                // 自画面非表示
-                if (CommonMotions.ProductionExecution) this.Visible = false;
-
                 // 参照オブジェクトをボタンに変換
                 System.Windows.Forms.Button btnKey = (System.Windows.Forms.Button)sender;
 
-                int ProcessNo = CommonMotions.cnvInt(btnKey.Name);
-                int NowPoint = ClsExcute.NextProcess(ProcessNo);
-
-                // 処理実行
-                ClsExcute.ProcesscExecute();
+                MasterMaintenanceTabEvent(btnKey);
             }
             catch (Exception ex)
             {
                 logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
             }
-            finally
-            {
-                // 再表示
-                DisplayDataLoad();
-                // 自画面表示
-                if (CommonMotions.ProductionExecution) this.Visible = true;
-            }
         }
         #endregion
 
Index: branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenuAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenuAuxiliary.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenuAuxiliary.cs	(revision 191)
@@ -143,7 +143,7 @@
                 int Tabcount = MenuTabName[wrkname];
 
                 // グリッドセルを画面サイズに合わせる
-                if (m_Alldgv[Tabcount] != null)
+                if (m_Alldgv[Tabcount - 1] != null)
                 {
                     bool bNormal = false;
 
Index: branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenuEvent.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenuEvent.cs	(revision 190)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenuEvent.cs	(revision 191)
@@ -35,10 +35,14 @@
         /// <param name="RowCnt"></param>
         /// <param name="ColCnt"></param>
         /// <param name="NowPoint"></param>
-        private void OrderTabEvent(int RowCnt, int ColCnt, ref int NowPoint)
+        private void OrderTabEvent(Button btnKey)
         {
+            int NowPoint = -1;
             try
             {
+                int ColCnt = tblLayoutOrder.GetColumn(btnKey);                          // 列取得（Ｘ）
+                int RowCnt = tblLayoutOrder.GetRow(btnKey);                             // 行取得（Ｙ）
+                
                 switch (RowCnt)
                 {
                     case 0:
@@ -123,8 +127,15 @@
                         }
                         break;
                 }
-                if (NowPoint < 0) return;
+                if (NowPoint < 0)
+                {
+                    MessageBox.Show("処理が実装されていません。", "未実装処理", MessageBoxButtons.OK, MessageBoxIcon.None);
+                    return;
+                }
 
+                // 自画面非表示
+                if (CommonMotions.ProductionExecution) this.Visible = false;
+
                 // 処理実行
                 ClsExcute.ProcesscExecute();
             }
@@ -132,6 +143,13 @@
             {
                 logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
             }
+            finally
+            {
+                // 再表示
+                if (NowPoint > -1) DisplayDataLoad();
+                // 自画面表示
+                if (CommonMotions.ProductionExecution) this.Visible = true;
+            }
         }
         #endregion
 
@@ -142,10 +160,14 @@
         /// <param name="RowCnt"></param>
         /// <param name="ColCnt"></param>
         /// <param name="NowPoint"></param>
-        private void ConstructionTabEvent(int RowCnt, int ColCnt, ref int NowPoint)
+        private void ConstructionTabEvent(Button btnKey)
         {
+            int NowPoint = -1;
             try
             {
+                int ColCnt = tblLayoutOrder.GetColumn(btnKey);                          // 列取得（Ｘ）
+                int RowCnt = tblLayoutOrder.GetRow(btnKey);                             // 行取得（Ｙ）
+
                 switch (RowCnt)
                 {
                     case 1:
@@ -181,7 +203,7 @@
                                 #endregion
                             case 5:
                                 #region 各工事打合わせ議事録
-                                NowPoint = ClsExcute.NextProcess((int)ClsExcute.ProcessExecuteNo.DRList);
+                                NowPoint = ClsExcute.NextProcess((int)ClsExcute.ProcessExecuteNo.Proceedings);
                                 // 日報一覧から表示を行うため起動プロセスはパラメータの1つ目にセットする。
                                 ClsExcute.ProcControlPara[NowPoint].IntExecParameter.Add((int)ClsExcute.ProcessExecuteNo.Proceedings);
                                 break;
@@ -517,8 +539,15 @@
                         }
                         break;
                 }
-                if (NowPoint < 0) return;
+                if (NowPoint < 0)
+                {
+                    MessageBox.Show("処理が実装されていません。", "未実装処理", MessageBoxButtons.OK, MessageBoxIcon.None);
+                    return;
+                }
 
+                // 自画面非表示
+                if (CommonMotions.ProductionExecution) this.Visible = false;
+
                 // 処理実行
                 ClsExcute.ProcesscExecute();
             }
@@ -526,6 +555,13 @@
             {
                 logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
             }
+            finally
+            {
+                // 再表示
+                if (NowPoint > -1) DisplayDataLoad();
+                // 自画面表示
+                if (CommonMotions.ProductionExecution) this.Visible = true;
+            }
         }
         #endregion
 
@@ -536,10 +572,14 @@
         /// <param name="RowCnt"></param>
         /// <param name="ColCnt"></param>
         /// <param name="NowPoint"></param>
-        private void AffairsTabEvent(int RowCnt, int ColCnt, ref int NowPoint)
+        private void AffairsTabEvent(Button btnKey)
         {
+            int NowPoint = -1;
             try
             {
+                int ColCnt = tblLayoutOrder.GetColumn(btnKey);                          // 列取得（Ｘ）
+                int RowCnt = tblLayoutOrder.GetRow(btnKey);                             // 行取得（Ｙ）
+
                 switch (RowCnt)
                 {
                     case 1:
@@ -649,7 +689,13 @@
                                 break;
                                 #endregion
                             case 5:
+                                #region 請求書発給状況一覧
+                                // 請求書発給状況一覧
+                                // ----- 起動プロセス設定
+                                NowPoint = ClsExcute.NextProcess((int)ClsExcute.ProcessExecuteNo.ReqBillingStatus);
+                                ClsExcute.ProcControlPara[NowPoint].IntExecParameter.Add((int)ClsExcute.ProcessExecuteNo.ReqBillingStatus);
                                 break;
+                                #endregion
                             case 7:
                                 break;
                             case 9:
@@ -705,8 +751,15 @@
                         }
                         break;
                 }
-                if (NowPoint < 0) return;
+                if (NowPoint < 0)
+                {
+                    MessageBox.Show("処理が実装されていません。", "未実装処理", MessageBoxButtons.OK, MessageBoxIcon.Stop);
+                    return;
+                }
 
+                // 自画面非表示
+                if (CommonMotions.ProductionExecution) this.Visible = false;
+
                 // 処理実行
                 ClsExcute.ProcesscExecute();
             }
@@ -714,6 +767,13 @@
             {
                 logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
             }
+            finally
+            {
+                // 再表示
+                if (NowPoint > -1) DisplayDataLoad();
+                // 自画面表示
+                if (CommonMotions.ProductionExecution) this.Visible = true;
+            }
         }
         #endregion
 
@@ -724,10 +784,14 @@
         /// <param name="RowCnt"></param>
         /// <param name="ColCnt"></param>
         /// <param name="NowPoint"></param>
-        private void NotificationTabEvent(int RowCnt, int ColCnt, ref int NowPoint)
+        private void NotificationTabEvent(Button btnKey)
         {
+            int NowPoint = -1;
             try
             {
+                int ColCnt = tblLayoutOrder.GetColumn(btnKey);                          // 列取得（Ｘ）
+                int RowCnt = tblLayoutOrder.GetRow(btnKey);                             // 行取得（Ｙ）
+
                 switch (RowCnt)
                 {
                     case 0:
@@ -759,8 +823,15 @@
                         break;
                 }
 
-                if (NowPoint < 0) return;
+                if (NowPoint < 0)
+                {
+                    MessageBox.Show("処理が実装されていません。", "未実装処理", MessageBoxButtons.OK, MessageBoxIcon.Stop);
+                    return;
+                }
 
+                // 自画面非表示
+                if (CommonMotions.ProductionExecution) this.Visible = false;
+
                 // 処理実行
                 ClsExcute.ProcesscExecute();
             }
@@ -768,8 +839,53 @@
             {
                 logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
             }
+            finally
+            {
+                // 再表示
+                if (NowPoint > -1) DisplayDataLoad();
+                // 自画面表示
+                if (CommonMotions.ProductionExecution) this.Visible = true;
+            }
         }
         #endregion
 
+        #region マスタメンテナンス起動処理
+        /// <summary>
+        /// マスタメンテナンス起動処理
+        /// </summary>
+        /// <param name="btnKey"></param>
+        private void MasterMaintenanceTabEvent(Button btnKey)
+        {
+            int NowPoint = -1;
+            try
+            {
+                int ProcessNo = CommonMotions.cnvInt(btnKey.Name);
+                NowPoint = ClsExcute.NextProcess(ProcessNo);
+
+                if (ProcessNo < 1)
+                {
+                    MessageBox.Show("処理が実装されていません。", "未実装処理", MessageBoxButtons.OK, MessageBoxIcon.Stop);
+                    return;
+                }
+
+                // 自画面非表示
+                if (CommonMotions.ProductionExecution) this.Visible = false;
+
+                // 処理実行
+                ClsExcute.ProcesscExecute();
+            }
+            catch (Exception ex)
+            {
+                logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
+            }
+            finally
+            {
+                // 再表示
+                if (NowPoint > -1) DisplayDataLoad();
+                // 自画面表示
+                if (CommonMotions.ProductionExecution) this.Visible = true;
+            }
+        }
+        #endregion
     }
 }
