Index: branches/src/ProcessManagement/ProcessManagement/Common/CommonVersion.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Common/CommonVersion.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Common/CommonVersion.cs	(revision 241)
@@ -14,7 +14,7 @@
         /// <summary>
         /// 本体バージョン
         /// </summary>
-        public static int s_SystemVersion = 59;
+        public static int s_SystemVersion = 60;
 
         /// <summary>
         /// コピー・環境バージョン
Index: branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsApprovalPermission.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsApprovalPermission.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsApprovalPermission.cs	(revision 241)
@@ -91,16 +91,15 @@
                 // データがあるかをチェックする
                 if (!ApprDB.SelectAction(strSQL, ref DataList)) return false;
 
-                // データ追加時
                 if (DataList.Count == 0)
-                {
+                {   // データ追加時
                     if (!ApprDB.InsertAction(Rec)) return false;
-                    return true;
                 }
+                else
+                {   // データ更新時
+                    if (!ApprDB.UpdateAction(strSQL, Rec)) return false;
+                }
 
-                // データ更新時
-                if (!ApprDB.UpdateAction(strSQL, Rec)) return false;
-
                 return true;
             }
             catch (Exception ex)
Index: branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsExcute.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsExcute.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsExcute.cs	(revision 241)
@@ -3741,6 +3741,7 @@
 
                 if (CurrentPara.DateExecParameter.Count > 1) frm.DataSearchDate = CurrentPara.DateExecParameter[1];
                 if (CurrentPara.IntExecParameter.Count > 3) frm.DataSearchSeqNo = CurrentPara.IntExecParameter[3];
+                if (CurrentPara.ArrayParameter.Count > 0) frm.ArrayParam = CurrentPara.ArrayParameter;
                 
                 // フォーム表示
                 frm.ShowDialog();
Index: branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsSecurityPermission.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsSecurityPermission.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsSecurityPermission.cs	(revision 241)
@@ -824,16 +824,14 @@
         #region ログイン者がデータにアクセスできるかを返す（担当者データ）
         private enum PersonAppData
         {
-            DataPersonCode = 0,
-            DataDepCode,
-            DataPersonName,
-            DataSecRank,
-            DataAffiliationFlg,
-            RangePersonCode,
-            RangePersonName,
-            RangeSecCode,
-            RangeSecRank,
-            RangeGeneFlg
+            PetPersonCode = 0,
+            PetDepartmentCode,
+            PetPersonName,
+            PetSecRank,
+            AppDepartmentCode,
+            AppPersonCode,
+            AppPersonName,
+            AppSecRank
         }
         /// <summary>
         /// ログイン者がデータにアクセスできるかを返す
@@ -848,44 +846,39 @@
 
                 bool bRet = false;
 
-                string strSQL ="SELECT";
-                strSQL += " A.PERSONCODE, A.DEPARTMENTCODE, A.PERSONNAME, E.SECRANK,";
-                strSQL += " B.AFFILIATIONFLG,";
-                strSQL += " C.PERSONCODE, C.PERSONNAME, C.SECCODE, D.SECRANK, D.GENERALAFFAIRS";
-                strSQL += " FROM PERSONINCHARGEMASTER A, PERSONDEPARTMENTMASTER B, PERSONINCHARGEMASTER C, SECURITYMASTER D, SECURITYMASTER E";
-                strSQL += string.Format(" WHERE A.PERSONCODE = {0}", PersonCode);
-                strSQL += " AND B.DEPARTMENTCODE = A.DEPARTMENTCODE";
-                strSQL += " AND C.PERSONCODE = B.PERSONCODE";
-                strSQL += " AND D.SECCODE = C.SECCODE";
-                strSQL += " AND E.SECCODE = A.SECCODE";
-                strSQL += " ORDER BY B.PERSONCODE";
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append("SELECT");
+                strSQL.Append(" A.PERSONCODE");
+                strSQL.Append(", A.DEPARTMENTCODE");
+                strSQL.Append(", A.PERSONNAME");
+                strSQL.Append(", B.SecRank");
+                strSQL.Append(", C.DepartmentCode");
+                strSQL.Append(", D.PersonCode");
+                strSQL.Append(", D.PersonName");
+                strSQL.Append(", E.SecRank");
+                strSQL.Append(" FROM PERSONINCHARGEMASTER as A");
+                strSQL.Append(" LEFT JOIN  securitymaster as B ON B.SecCode = A.SecCode");
+                strSQL.Append(", PERSONDEPARTMENTMASTER as C");
+                strSQL.Append(" LEFT JOIN personinchargemaster as D ON D.PersonCode = C.PersonCode");
+                strSQL.Append(" LEFT JOIN securitymaster as E ON E.SecCode = D.SecCode");
+                strSQL.AppendFormat(" WHERE A.PERSONCODE = {0}", PersonCode);
+                strSQL.Append(" AND C.DepartmentCode = A.DepartmentCode");
+                strSQL.Append(" AND E.SecRank < B.SecRank");
 
                 ArrayList arData = new ArrayList();
-                if (!PersonDB.ExecuteReader(strSQL, ref arData)) return false;
+                if (!PersonDB.ExecuteReader(strSQL.ToString(), ref arData)) return false;
 
-                object[] objLoginUser = null;
                 int wrkPersonCode = 0;
                 foreach (object[] CurRec in arData)
                 {
-                    wrkPersonCode = CommonMotions.cnvInt(CurRec[(int)PersonAppData.RangePersonCode]);
-                    if (wrkPersonCode == CommonMotions.LoginUserData.PersonCode) 
+                    wrkPersonCode = CommonMotions.cnvInt(CurRec[(int)PersonAppData.AppPersonCode]);
+                    if (wrkPersonCode == CommonMotions.LoginUserData.PersonCode)
                     {
-                        objLoginUser = CurRec;
+                        bRet = true;
                         break;
                     }
                 }
 
-                // 対象データが無ければアクセスできない
-                if (objLoginUser == null) return false;
-
-                // 総務はアクセスできる
-                int GeneFlg = CommonMotions.cnvInt(objLoginUser[(int)PersonAppData.RangeGeneFlg]);
-                if (GeneFlg == (int)CommonDefine.GeneralAffairs.GeneralDep) bRet = true;
-
-                // 保護区分ランクがログイン者以下の場合はアクセスできる
-                int SecRank = CommonMotions.cnvInt(objLoginUser[(int)PersonAppData.DataSecRank]);
-                if (SecRank <= CommonMotions.LoginUserSecurity.SecRank) bRet = true;
-
                 return bRet;
             }
             catch (Exception ex)
Index: branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IODirectAccess.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IODirectAccess.cs	(nonexistent)
+++ branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IODirectAccess.cs	(revision 241)
@@ -0,0 +1,57 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Collections;
+
+using log4net;
+using MySql.Data.MySqlClient;
+
+using ProcessManagement.DB.MySql;
+using ProcessManagement.DB.Core;
+using ProcessManagement.DataModel;
+
+using ProcessManagement.Common;
+
+namespace ProcessManagement.DB.IOAccess
+{
+    /// <summary>
+    /// 直接DBアクセスクラス
+    /// </summary>
+    public class IODirectAccess : MySqlProcess
+    {
+        #region 定義部
+        /// <summary>
+        /// log4netログを使用する
+        /// </summary>
+        private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
+        #endregion
+
+        #region 定数
+        /// <summary>
+        /// フィールド並び
+        /// </summary>
+        public enum NameColumn
+        {
+            CompanyCode = 0,
+            TargetDate,
+            SeqNo,
+            BillPrice,
+            EntryDate,
+            UpdateDate,
+        }
+        #endregion
+
+        #region コンストラクタ
+        /// <summary>
+        /// コンストラクタ
+        /// </summary>
+        /// <param name="ConnectionString"></param>
+        public IODirectAccess()
+            : base(DBCommon.Instance.DBConnectString)
+        {
+        }
+
+        #endregion
+   }
+}
Index: branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOPaymentApprovalInfo.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOPaymentApprovalInfo.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOPaymentApprovalInfo.cs	(revision 241)
@@ -61,7 +61,51 @@
 
         #region パブリックメソッド
 
+        #region SELECT　SQL作成
         /// <summary>
+        /// SQL作成
+        /// </summary>
+        private string CreateSelectSQL()
+        {
+            StringBuilder strcmd = new StringBuilder();
+            try
+            {
+                // SQL作成
+                strcmd.Append("SELECT");
+
+                bool bColFirst = true;
+                string strWork = string.Empty;
+                foreach (var gender in Enum.GetValues(typeof(NameColumn)))
+                {
+                    strWork = gender.ToString();
+                    if (!bColFirst) strcmd.Append(",");
+                    if (strWork.Equals("EntryDate") || strWork.Equals("UpdateDate"))
+                    {
+                        strcmd.AppendFormat(" DATE_FORMAT({0}, '%Y/%m/%d %H:%i:%s')", strWork);
+                    }
+                    else if (strWork.Equals("ApprovalDate"))
+                    {
+                        strcmd.AppendFormat(" DATE_FORMAT({0}, '%Y/%m/%d')", strWork);
+                    }
+                    else
+                    {
+                        strcmd.AppendFormat(" {0}", strWork);
+                    }
+                    bColFirst = false;
+                }
+                strcmd.Append(" FROM PaymentApprovalInfo");
+
+                return strcmd.ToString();
+            }
+            catch (Exception ex)
+            {
+                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
+                return string.Empty;
+            }
+        }
+        #endregion
+
+        /// <summary>
         /// 検索
         /// </summary>
         /// <param name="AddSQLString"></param>
@@ -71,22 +115,17 @@
         public bool SelectAction(string AddSQLString, ref List<PaymentApprovalInfo> data, bool bConnect = true)
         {
             // インターフェース
-            string strcmd = "";
+            StringBuilder strcmd = new StringBuilder();
             ArrayList arData = new ArrayList();
 
             try
             {
-                // SQL作成（DateTime型が変換できないのでCharに変換しておく）
-                strcmd = "SELECT";
-                strcmd += " CompanyCode,TargetDate,SeqNo,LineCount,ApprovalNo,ApprovalPerson,ApprovalPersonName,ApprovalAuthority";
-                strcmd += " ,DATE_FORMAT(ApprovalDate, '%Y/%m/%d')";
-                strcmd += " ,DATE_FORMAT(EntryDate, '%Y/%m/%d %H:%i:%s')";
-                strcmd += " ,DATE_FORMAT(UpdateDate, '%Y/%m/%d %H:%i:%s')";
-                strcmd += " FROM PaymentApprovalInfo";
-                strcmd += AddSQLString;
+                // SQL作成
+                strcmd.Append(CreateSelectSQL());
+                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)
@@ -100,7 +139,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;
             }
 
@@ -107,6 +146,45 @@
         }
 
         /// <summary>
+        /// 検索（1件）
+        /// </summary>
+        /// <param name="AddSQLString"></param>
+        /// <param name="data"></param>
+        /// <param name="bConnect"></param>
+        /// <returns></returns>
+        public bool SelectAction(string AddSQLString, ref PaymentApprovalInfo data, bool bConnect = true)
+        {
+            // インターフェース
+            StringBuilder strcmd = new StringBuilder();
+            ArrayList arData = new ArrayList();
+
+            try
+            {
+                // SQL作成
+                strcmd.Append(CreateSelectSQL());
+                strcmd.Append(AddSQLString);
+
+                // SQL実行
+                if (!ExecuteReader(strcmd.ToString(), ref arData, bConnect)) return false;
+
+                // データセット
+                foreach (object[] objwrk in arData)
+                {
+                    Reader2Struct(objwrk, ref data);
+                    break;
+                }
+
+                return true;
+            }
+            catch (Exception ex)
+            {
+                logger.ErrorFormat("システムエラー：：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
+                return false;
+            }
+
+        }
+
+        /// <summary>
         /// 新規登録
         /// </summary>
         /// <param name="data"></param>
@@ -114,42 +192,90 @@
         /// <returns></returns>
         public bool InsertAction(List<PaymentApprovalInfo> data, bool bConnect = true)
         {
-            string strcmd = "";
+            StringBuilder strcmd = new StringBuilder();
             try
             {
 
                 foreach (PaymentApprovalInfo work in data)
                 {
-                    strcmd = "INSERT INTO PaymentApprovalInfo";
+                    strcmd.Append("INSERT INTO PaymentApprovalInfo");
 
-                    strcmd += " VALUES (";
+                    strcmd.Append(" VALUES (");
 
-                    strcmd += string.Format("  {0}", work.CompanyCode.ToString());
-                    strcmd += string.Format(", {0}", work.TargetDate.ToString());
-                    strcmd += string.Format(", {0}", work.SeqNo.ToString());
-                    strcmd += string.Format(", {0}", work.LineCount.ToString());
-                    strcmd += string.Format(", {0}", work.ApprovalNo.ToString());
-                    strcmd += string.Format(", {0}", work.ApprovalPerson.ToString());
-                    strcmd += string.Format(", '{0}'", work.ApprovalPersonName);
-                    strcmd += string.Format(", {0}", work.ApprovalAuthority.ToString());
-                    strcmd += string.Format(", STR_TO_DATE('{0}','%Y/%m/%d')", work.ApprovalDate.ToShortDateString());
+                    strcmd.AppendFormat("  {0}", work.CompanyCode.ToString());
+                    strcmd.AppendFormat(", {0}", work.TargetDate.ToString());
+                    strcmd.AppendFormat(", {0}", work.SeqNo.ToString());
+                    strcmd.AppendFormat(", {0}", work.LineCount.ToString());
+                    strcmd.AppendFormat(", {0}", work.ApprovalNo.ToString());
+                    strcmd.AppendFormat(", {0}", work.ApprovalPerson.ToString());
+                    strcmd.AppendFormat(", '{0}'", work.ApprovalPersonName);
+                    strcmd.AppendFormat(", {0}", work.ApprovalAuthority.ToString());
+                    strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d')", work.ApprovalDate.ToShortDateString());
 
-                    strcmd += ", NOW()";
-                    strcmd += ", NOW()";
-                    strcmd += ")";
+                    strcmd.Append(", NOW()");
+                    strcmd.Append(", NOW()");
+                    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;
             }
         }
 
         /// <summary>
+        /// 新規登録（1件）
+        /// </summary>
+        /// <param name="data"></param>
+        /// <param name="bConnect"></param>
+        /// <returns></returns>
+        public bool InsertAction(PaymentApprovalInfo data, bool bConnect = true)
+        {
+            StringBuilder strcmd = new StringBuilder();
+            try
+            {
+
+                strcmd.Append("INSERT INTO PaymentApprovalInfo");
+                strcmd.Append("(");
+                bool bFirst = true;
+                foreach (var gender in Enum.GetValues(typeof(NameColumn)))
+                {
+                    if (!bFirst) strcmd.Append(" ,");
+                    strcmd.Append(gender.ToString());
+                    bFirst = false;
+                }
+                strcmd.Append(") VALUES (");
+
+                strcmd.AppendFormat("  {0}", data.CompanyCode.ToString());
+                strcmd.AppendFormat(", {0}", data.TargetDate.ToString());
+                strcmd.AppendFormat(", {0}", data.SeqNo.ToString());
+                strcmd.AppendFormat(", {0}", data.LineCount.ToString());
+                strcmd.AppendFormat(", {0}", data.ApprovalNo.ToString());
+                strcmd.AppendFormat(", {0}", data.ApprovalPerson.ToString());
+                strcmd.AppendFormat(", '{0}'", data.ApprovalPersonName);
+                strcmd.AppendFormat(", {0}", data.ApprovalAuthority.ToString());
+                strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d')", data.ApprovalDate.ToShortDateString());
+
+                strcmd.Append(", NOW()");
+                strcmd.Append(", NOW()");
+                strcmd.Append(")");
+
+                if (!ExecuteNonQuery(strcmd.ToString(), bConnect)) return false;
+
+                return true;
+            }
+            catch (Exception ex)
+            {
+                logger.ErrorFormat("システムエラー：：{0}：{1}：{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
+                return false;
+            }
+        }
+
+        /// <summary>
         /// 更新登録
         /// </summary>
         /// <param name="AddSQLString"></param>
@@ -158,29 +284,29 @@
         /// <returns></returns>
         public bool UpdateAction(string AddSQLString, PaymentApprovalInfo data, bool bConnect = true)
         {
-            string strcmd = "";
+            StringBuilder strcmd = new StringBuilder();
             try
             {
 
-                strcmd = "UPDATE PaymentApprovalInfo";
+                strcmd.Append("UPDATE PaymentApprovalInfo");
 
-                strcmd += " SET";
+                strcmd.Append(" SET");
 
-                strcmd += string.Format(" ApprovalPerson = {0}", data.ApprovalPerson.ToString());
-                strcmd += string.Format(",ApprovalPersonName = '{0}'", data.ApprovalPersonName);
-                strcmd += string.Format(",ApprovalAuthority = {0}", data.ApprovalAuthority.ToString());
-                strcmd += string.Format(",ApprovalDate = STR_TO_DATE('{0}','%Y/%m/%d')", data.ApprovalDate.ToShortDateString());
+                strcmd.AppendFormat(" ApprovalPerson = {0}", data.ApprovalPerson.ToString());
+                strcmd.AppendFormat(",ApprovalPersonName = '{0}'", data.ApprovalPersonName);
+                strcmd.AppendFormat(",ApprovalAuthority = {0}", data.ApprovalAuthority.ToString());
+                strcmd.AppendFormat(",ApprovalDate = STR_TO_DATE('{0}','%Y/%m/%d')", data.ApprovalDate.ToShortDateString());
 
-                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;
             }
         }
@@ -194,18 +320,18 @@
         public bool DeleteAction(string AddSQLString, bool bConnect = true)
         {
             // インターフェース
-            string strcmd = "";
+            StringBuilder strcmd = new StringBuilder();
             try
             {
-                strcmd = string.Format("{0}{1}", "DELETE FROM PaymentApprovalInfo", AddSQLString);
+                strcmd.AppendFormat("{0}{1}", "DELETE FROM PaymentApprovalInfo", 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;
             }
         }
@@ -255,22 +381,22 @@
         {
 
             //インターフェース
-            string strcmd = "";
+            StringBuilder strcmd = new StringBuilder();
             ArrayList arData = new ArrayList();
 
             try
             {
-                strcmd = string.Format("select * from PaymentApprovalInfo Where CompanyCode = {0} and TargetDate = {1} and SeqNo = {2} and LineCount = {3} and ApprovalNo = {4} for update;",
+                strcmd.AppendFormat("select * from PaymentApprovalInfo Where CompanyCode = {0} and TargetDate = {1} and SeqNo = {2} and LineCount = {3} and ApprovalNo = {4} for update;",
                                         CompanyCode, TargetDate, SeqNo, LineCount, ApprovalNo);
 
                 // SQL実行
-                if (!ExecuteReader(strcmd, ref arData, bConnect)) return false;
+                if (!ExecuteReader(strcmd.ToString(), ref arData, 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;
             }
 
@@ -279,18 +405,18 @@
 
         public string CreatePrimarykeyString(int CompanyCode, int TargetDate, int SeqNo, int LineCount, int ApprovalNo)
         {
-            string strWork = string.Empty;
+            StringBuilder strWork = new StringBuilder();
             try
             {
-                strWork = string.Format(" Where CompanyCode = {0} and TargetDate = {1} and SeqNo = {2} and LineCount = {3} and ApprovalNo = {4}", CompanyCode, TargetDate, SeqNo, LineCount,ApprovalNo);
+                strWork.AppendFormat(" Where CompanyCode = {0} and TargetDate = {1} and SeqNo = {2} and LineCount = {3} and ApprovalNo = {4}", CompanyCode, TargetDate, SeqNo, LineCount,ApprovalNo);
 
             }
             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();
         }
 
         #endregion
Index: branches/src/ProcessManagement/ProcessManagement/DataModel/PaymentApprovalInfo.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/DataModel/PaymentApprovalInfo.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/DataModel/PaymentApprovalInfo.cs	(revision 241)
@@ -9,17 +9,17 @@
     public class PaymentApprovalInfo
     {
         #region メンバ変数
-        private int m_CompanyCode = 0;        // 協力会社コード
-        private int m_TargetDate = 0;         // 対象年月     
-        private int m_SeqNo = 0;                // 連番
-        private int m_LineCount = 0;            // 行番号    
-        private int m_ApprovalNo = 0;               // 承認順序    
-        private int m_ApprovalPersonCode = 0;   // 承認者コード
-        private string m_ApprovalPersonName = "";   // 承認者名
-        private int m_ApprovalAuthority = 0;          // 承認権限区分    
-        private DateTime m_ApprovalDate = DateTime.Now;// 承認日付
-        private DateTime m_EntryDate = DateTime.Now;    // 登録日付
-        private DateTime m_UpdateDate = DateTime.Now;   // 更新日付
+        private int         m_CompanyCode = 0;              // 協力会社コード
+        private int         m_TargetDate = 0;               // 対象年月     
+        private int         m_SeqNo = 0;                    // 連番
+        private int         m_LineCount = 0;                // 行番号    
+        private int         m_ApprovalNo = 0;               // 承認順序    
+        private int         m_ApprovalPersonCode = 0;       // 承認者コード
+        private string      m_ApprovalPersonName = "";      // 承認者名
+        private int         m_ApprovalAuthority = 0;        // 承認権限区分    
+        private DateTime    m_ApprovalDate = DateTime.Now;  // 承認日付
+        private DateTime    m_EntryDate = DateTime.Now;     // 登録日付
+        private DateTime    m_UpdateDate = DateTime.Now;    // 更新日付
         #endregion
 
         #region コンストラクタ
Index: branches/src/ProcessManagement/ProcessManagement/DataModel/PaymentDataDetail.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/DataModel/PaymentDataDetail.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/DataModel/PaymentDataDetail.cs	(revision 241)
@@ -9,24 +9,24 @@
     public class PaymentDataDetail
     {
         #region メンバ変数
-        private int m_CompanyCode = 0;        // 協力会社コード
-        private int m_TargetDate = 0;         // 対象年月     
-        private int m_SeqNo = 0;                // 連番
-        private int m_LineCount = 0;            // 行番号    
-        private long m_BillPrice = 0;        // 請求金額    
-        private long m_DiscountPrice = 0;       // 値引き金額    
-        private long m_OffsetPrice = 0;         // 相殺金額    
-        private long m_NextCoPrice = 0;        // 次回繰越    
-        private long m_HighwPrice = 0;       // 高速代     
-        private long m_HardwPrice = 0;       // 金物代     
-        private long m_IndsWasteTax = 0;     // 産廃税       
-        private long m_CnstrPrice = 0;         // 協力金
-        private int m_CnstrPriceExist =0;       // 協力金有無
-        private int m_ApprovalPersonCode = 0;// 承認担当者コード
-        private DateTime m_ApprovalDate = DateTime.Now;// 担当者承認日付
-        private int m_ApprovalEndFlg = 0;       // 承認完了フラグ
-        private DateTime m_EntryDate = DateTime.Now;    // 登録日付
-        private DateTime m_UpdateDate = DateTime.Now;   // 更新日付
+        private int         m_CompanyCode = 0;              // 協力会社コード
+        private int         m_TargetDate = 0;               // 対象年月     
+        private int         m_SeqNo = 0;                    // 連番
+        private int         m_LineCount = 0;                // 行番号    
+        private long        m_BillPrice = 0;                // 請求金額    
+        private long        m_DiscountPrice = 0;            // 値引き金額    
+        private long        m_OffsetPrice = 0;              // 相殺金額    
+        private long        m_NextCoPrice = 0;              // 次回繰越    
+        private long        m_HighwPrice = 0;               // 高速代     
+        private long        m_HardwPrice = 0;               // 金物代     
+        private long        m_IndsWasteTax = 0;             // 産廃税       
+        private long        m_CnstrPrice = 0;               // 協力金
+        private int         m_CnstrPriceExist =0;           // 協力金有無
+        private int         m_ApprovalPersonCode = 0;       // 承認担当者コード
+        private DateTime    m_ApprovalDate = DateTime.Now;  // 担当者承認日付
+        private int         m_ApprovalEndFlg = 0;           // 承認完了フラグ
+        private DateTime    m_EntryDate = DateTime.Now;     // 登録日付
+        private DateTime    m_UpdateDate = DateTime.Now;    // 更新日付
 
         #endregion
 
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalPerson/FrmAppManAux.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalPerson/FrmAppManAux.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalPerson/FrmAppManAux.cs	(revision 241)
@@ -48,6 +48,14 @@
                         // 10:協力会社登録承認
                         CreateSubConstrData();
                         break;
+                    case (int)ClsExcute.ApprovalListNo.FeePayment:
+                        // 11:手間支払
+                        break;
+                    case (int)ClsExcute.ApprovalListNo.SubConstrPayment:
+                        // 12:業者支払
+                        break;
+                    default:
+                        break;
                 }
             }
             catch (Exception ex)
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalPerson/FrmApprovalPerson.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalPerson/FrmApprovalPerson.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalPerson/FrmApprovalPerson.cs	(revision 241)
@@ -133,6 +133,10 @@
         /// ���F�o�H�}�X�^�擾
         /// </summary>
         private List<ApprovalMaster> m_ApprovalList = new List<ApprovalMaster>();
+        /// <summary>
+        /// �I�u�W�F�N�g�l�z��p�����[�^
+        /// </summary>
+        private List<ArrayList> m_ArrayParam = new List<ArrayList>();
         #endregion
 
         #region �v���p�e�B
@@ -184,6 +188,14 @@
             get { return m_SearchSeqNo; }
             set { m_SearchSeqNo = value; }
         }
+        /// <summary>
+        /// �I�u�W�F�N�g�l�z��p�����[�^
+        /// </summary>
+        public List<ArrayList> ArrayParam
+        {
+            get { return m_ArrayParam; }
+            set { m_ArrayParam = value; }
+        }
 
         #endregion
 
@@ -542,8 +554,8 @@
                 // �R�����g���c���Ă���ꍇ�͍폜
                 RemoveCommentData();
 
-                // �\�����f�[�^�Ɏ�t�ԍ����Z�b�g����
-                SetApprovalOrderNo((int)CommonDefine.ApprovalStatus.Petition);
+                // �\���㏈���������Ȃ�
+                PettionNextProcess((int)CommonDefine.ApprovalStatus.Petition);
 
                 // �������b�Z�[�W
                 CommonMotions.EntryEndMessage("�S���Ґ\���f�[�^", "�\��");
@@ -602,9 +614,6 @@
 
                 pAppDB.commit();
 
-                // ----- �f�[�^�X�V����
-                if (!SorceDataBuild((int)CommonDefine.ApprovalStatus.Petition)) return;
-
                 // �������b�Z�[�W
                 CommonMotions.EntryEndMessage("�S���Ґ\���f�[�^�Đ\��", "�Đ\��");
 
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalPerson/FrmApprovalPersonAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalPerson/FrmApprovalPersonAuxiliary.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalPerson/FrmApprovalPersonAuxiliary.cs	(revision 241)
@@ -75,9 +75,9 @@
         }
         #endregion
 
-        #region 承認時データ更新処理
+        #region 申請時データ更新処理
         /// <summary>
-        /// 承認時にデータを更新する
+        /// 申請時にデータを更新する
         /// </summary>
         /// <param name="Rec"></param>
         /// <returns></returns>
@@ -144,6 +144,12 @@
                             // 最終承認が成された後の処理
                             ApprovalNextProcess();
                         }
+                        // 手間・業者支払は支払承認レコードを作成する
+                        if (m_ApprovalCode == (int)ClsExcute.ApprovalListNo.FeePayment
+                            || m_ApprovalCode == (int)ClsExcute.ApprovalListNo.SubConstrPayment)
+                        {
+                            ApprovalFeePayment();
+                        }
                         break;
                     default:
                         // ----- 承認以外
@@ -150,8 +156,6 @@
                         ClsApprovalPermission.SetPrimaryRecStatus(m_PersonCode, m_ApprovalCode, m_OrderDate, m_OrderNo, (int)CommonDefine.ApprovalStatus.NotApproval);
                         break;
                 }
-                // ----- データ更新処理
-                if (!SorceDataBuild(statusCode)) return false;
 
                 return true;
             }
@@ -347,13 +351,18 @@
                 // 申請・承認以外は申請ボタンを表示する
                 switch (ApprovalStatus)
                 {
-                    case (int)CommonDefine.ApprovalStatus.Petition:     // 申請
-                    case (int)CommonDefine.ApprovalStatus.Pending:      // 保留
-                    case (int)CommonDefine.ApprovalStatus.Approval:     // 承認
-                    case (int)CommonDefine.ApprovalStatus.NotApproval:  // 不承認
-                        btnPetition.Visible = false;                // 申請ボタン
+                    case (int)CommonDefine.ApprovalStatus.Petition:
+                        // ----- 申請
+                    case (int)CommonDefine.ApprovalStatus.Pending:
+                        // ----- 保留
+                    case (int)CommonDefine.ApprovalStatus.Approval:
+                        // ----- 承認
+                    case (int)CommonDefine.ApprovalStatus.NotApproval:
+                        // ----- 不承認
+                        
+                        btnPetition.Visible = false;                        // 申請ボタン
 
-                        // 注文書承認は承認取り消しがある
+                        // ----- 注文書承認は承認取り消しがある
                         switch (m_ApprovalCode)
                         {
                             case (int)ClsExcute.ApprovalListNo.PurchaseOrderEntryApproval:
@@ -372,26 +381,28 @@
                                 break;
                         }
 
-                        txtHoppesDate.Enabled = false;              // 承認希望日
+                        txtHoppesDate.Enabled = false;                      // 承認希望日
 
-                        btnApproval.Visible = true;                 // 承認ボタン
-                        btnNotApproval.Visible = true;              // 不承認ボタン
-                        btnOnHold.Visible = true;                   // 保留ボタン
+                        btnApproval.Visible = true;                         // 承認ボタン
+                        btnNotApproval.Visible = true;                      // 不承認ボタン
+                        btnOnHold.Visible = true;                           // 保留ボタン
                         break;
-                    case (int)CommonDefine.ApprovalStatus.Undecided:    // 未定
-                    case (int)CommonDefine.ApprovalStatus.Unclaimed:    // 未申請
-                        btnPetition.Visible = true;                 // 申請ボタン
+                    case (int)CommonDefine.ApprovalStatus.Undecided:
+                        // ----- 未定
+                    case (int)CommonDefine.ApprovalStatus.Unclaimed:    
+                        // ----- 未申請
+                        btnPetition.Visible = true;                         // 申請ボタン
                         btnPetition.Left = s_ButtonPosition[2].X;
                         btnPetition.Top = s_ButtonPosition[2].Y;
 
-                        btnRePetition.Visible = false;              // 再申請ボタン
-                        btnNotPetition.Visible = false;             // 申請取消ボタン
+                        btnRePetition.Visible = false;                      // 再申請ボタン
+                        btnNotPetition.Visible = false;                     // 申請取消ボタン
 
-                        txtHoppesDate.Enabled = true;               // 承認希望日
+                        txtHoppesDate.Enabled = true;                       // 承認希望日
 
-                        btnApproval.Visible = false;                // 承認ボタン
-                        btnNotApproval.Visible = false;             // 不承認ボタン
-                        btnOnHold.Visible = false;                  // 保留ボタン
+                        btnApproval.Visible = false;                        // 承認ボタン
+                        btnNotApproval.Visible = false;                     // 不承認ボタン
+                        btnOnHold.Visible = false;                          // 保留ボタン
                         break;
                 }
             }
@@ -786,7 +797,7 @@
         /// 申請元データに受付番号をセットする
         /// </summary>
         /// <returns></returns>
-        private bool SetApprovalOrderNo(int AppAction)
+        private bool PettionNextProcess(int AppAction)
         {
             IOPersonApproval AppDB = new IOPersonApproval();
             try
@@ -796,38 +807,40 @@
                 switch (m_ApprovalCode)
                 {
                     case (int)ClsExcute.ApprovalListNo.DRWorkApproval:
+                        // 出勤日報データ
                         strSQL.AppendFormat("UPDATE ATTENDANCEDATA SET ORDERDATE = STR_TO_DATE('{0}','%Y/%m/%d'),", m_OrderDate.ToShortDateString());
                         strSQL.AppendFormat(" ORDERNO = {0}", m_OrderNo);
-                        strSQL.AppendFormat(" WHERE PersonCode = {0}",m_PersonCode);
+                        strSQL.AppendFormat(" WHERE PersonCode = {0}", m_PersonCode);
                         strSQL.AppendFormat(" AND DATE(AttendanceMonth) = STR_TO_DATE('{0}' ,'%Y/%m/%d')", m_SearchDate.ToShortDateString());
+                        if (!AppDB.ExecuteNonQuery(strSQL.ToString())) return false;
                         break;
                     case (int)ClsExcute.ApprovalListNo.CostomerRegistApproval:
+                        // 発注者登録申請
                         strSQL.AppendFormat("UPDATE COSTOMERREGIST SET ORDERDATE = STR_TO_DATE('{0}','%Y/%m/%d'),", m_OrderDate.ToShortDateString());
                         strSQL.AppendFormat(" ORDERNO = {0}", m_OrderNo);
                         strSQL.AppendFormat(" WHERE PersonCode = {0}", m_PersonCode);
                         strSQL.AppendFormat(" AND DATE(CREATEDATE) = STR_TO_DATE('{0}' ,'%Y/%m/%d')", m_SearchDate.ToShortDateString());
                         strSQL.AppendFormat(" AND SEQNO = {0}", m_SearchSeqNo);
+                        if (!AppDB.ExecuteNonQuery(strSQL.ToString())) return false;
                         break;
                     case (int)ClsExcute.ApprovalListNo.SubConstregistApproval:
+                        // 協力会社登録申請
                         strSQL.AppendFormat("UPDATE SUBCONSTRREGIST SET ORDERDATE = STR_TO_DATE('{0}','%Y/%m/%d'),", m_OrderDate.ToShortDateString());
                         strSQL.AppendFormat(" ORDERNO = {0}", m_OrderNo);
                         strSQL.AppendFormat(" WHERE PersonCode = {0}", m_PersonCode);
                         strSQL.AppendFormat(" AND DATE(CREATEDATE) = STR_TO_DATE('{0}' ,'%Y/%m/%d')", m_SearchDate.ToShortDateString());
                         strSQL.AppendFormat(" AND SEQNO = {0}", m_SearchSeqNo);
+                        if (!AppDB.ExecuteNonQuery(strSQL.ToString())) return false;
                         break;
                     case (int)ClsExcute.ApprovalListNo.FeePayment:              // 手間支払承認
                     case (int)ClsExcute.ApprovalListNo.SubConstrPayment:        // 業者支払承認
                         // 手間・業者支払データ更新・作成処理
-                        if (!ApprovalFeePayment(AppAction)) return false;
+                        if (!PettionFeePayment(AppAction)) return false;
                         break;
                     default:
                         break;
                 }
 
-                if (strSQL.ToString().Length == 0) return true;
-
-                if (!AppDB.ExecuteNonQuery(strSQL.ToString())) return false;
-
                 return true;
             }
             catch (System.Exception ex)
@@ -889,59 +902,38 @@
         }
         #endregion
 
-        #region 元データの更新処理
+        #region 申請時：手間・業者支払データ作成処理
         /// <summary>
-        /// 元データの更新処理
+        /// 申請時：手間・業者支払データ作成処理
         /// </summary>
         /// <returns></returns>
-        private bool SorceDataBuild(int AppAction)
+        private bool PettionFeePayment(int AppAction)
         {
-            try
-            {
-                switch (m_ApprovalCode)
-                {
-                    case (int)ClsExcute.ApprovalListNo.FeePayment:              // 手間支払承認
-                    case (int)ClsExcute.ApprovalListNo.SubConstrPayment:        // 業者支払承認
-                        // 手間・業者支払データ更新・作成処理
-                        if (!ApprovalFeePayment(AppAction)) return false;
-                        break;
-                    default:
-                        break;
-                }
-
-                return true;
-            }
-            catch (System.Exception ex)
-            {
-                logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
-                return false;
-            }
-        }
-        #endregion
-
-        #region 手間・業者支払データ更新・作成処理
-        /// <summary>
-        /// 手間・業者支払データ更新・作成処理
-        /// </summary>
-        /// <returns></returns>
-        private bool ApprovalFeePayment(int AppAction)
-        {
             IOPaymentDataDetail PayDetailDB = new IOPaymentDataDetail();
             IOPaymentApprovalInfo PayAppDB = new IOPaymentApprovalInfo();
             try
             {
+                PayDetailDB.connect(); PayDetailDB.beginTran();
+                PayAppDB.connect(); PayAppDB.beginTran();
+
                 // 手間・業者支払承認情報取得
-                int NowPoint = ClsExcute.GetNowProcessPoint();
-                List<ArrayList> Arlist = ClsExcute.ProcControlPara[NowPoint].ArrayParameter;
-
                 bool bSuccess = true;
-                for (int i = 0; i < Arlist.Count; i++)
+                int nBCompanyCode = 0;              // 協力会社コード
+                int nBTargetDate = 0;               // 対象年月     
+                int nBSeqNo = 0;                    // 連番
+                int nBLineCount = 0;                // 行番号    
+                ArrayList arData = m_ArrayParam[0];
+                for (int i = 0; i < arData.Count; i++)
                 {
-                    ArrayList arData = Arlist[i];
-                    PaymentApprovalInfo PaIWork = (PaymentApprovalInfo)arData[0];
+                    PaymentApprovalInfo PaIWork = (PaymentApprovalInfo)arData[i];
 
-                    if (AppAction == (int)CommonDefine.ApprovalStatus.Petition)
-                    {   // 申請時のみ
+                    if (nBCompanyCode == PaIWork.CompanyCode        // 協力会社コード
+                        && nBTargetDate == PaIWork.TargetDate       // 対象年月
+                        && nBLineCount == PaIWork.LineCount)        // 行番号
+                    {
+                    }
+                    else
+                    {
                         // 業者請求明細データ更新
                         if (!PaymentDataDetailUpdate(PayDetailDB, PaIWork))
                         {
@@ -948,27 +940,19 @@
                             bSuccess = false;
                             break;
                         }
+
+                        nBCompanyCode = PaIWork.CompanyCode;
+                        nBTargetDate = PaIWork.TargetDate;
+                        nBLineCount = PaIWork.LineCount;
+                        nBSeqNo = 0;
                     }
 
-                    if (AppAction == (int)CommonDefine.ApprovalStatus.Petition 
-                        || AppAction == (int)CommonDefine.ApprovalStatus.Approval)
+                    // 支払承認情報データ作成
+                    if (!PaymentApprovalInfoCreate(PayAppDB, PaIWork, ++nBSeqNo))
                     {
-                        // 支払承認情報データ作成
-                        if (!PaymentApprovalInfoCreate(PayAppDB, PaIWork))
-                        {
-                            bSuccess = false;
-                            break;
-                        }
+                        bSuccess = false;
+                        break;
                     }
-                    else
-                    {
-                        // 支払承認情報データ削除
-                        if (!PaymentApprovalInfoRemove(PayAppDB, PaIWork))
-                        {
-                            bSuccess = false;
-                            break;
-                        }
-                    }
                 }
                 if (!bSuccess)
                 {
@@ -992,23 +976,23 @@
         }
         #endregion
 
-        #region 支払明細データ更新
+        #region 申請時：支払明細データ更新
         /// <summary>
-        /// 支払明細データ更新
+        /// 申請時：支払明細データ更新
         /// </summary>
         /// <returns></returns>
-        private bool PaymentDataDetailUpdate(IOPaymentDataDetail PayDetailDB, PaymentApprovalInfo PaIWork)
+        private bool PaymentDataDetailUpdate(IOPaymentDataDetail PayDetailDB,
+                                                PaymentApprovalInfo PaIWork)
         {
             try
             {
                 StringBuilder strSQL = new StringBuilder();
-
-                strSQL.Clear();
+                // 支払明細データ更新
                 strSQL.Append("UPDATE paymentdatadetail SET");
-                strSQL.AppendFormat(" APPROVALPERSONCODE = {0}", PaIWork.ApprovalPerson);       // 承認担当者コード
+                strSQL.AppendFormat(" APPROVALPERSONCODE = {0}", CommonMotions.LoginUserData.PersonCode);   // 承認担当者コード
                 strSQL.AppendFormat(", APPROVALDATE = STR_TO_DATE('{0}','%Y/%m/%d')"
-                                                , DateTime.Now.ToShortDateString());            // 担当者承認日付
-                strSQL.Append(", APPROVALENDFLG = 1");                                          // 承認完了フラグ
+                                                , DateTime.Now.ToShortDateString());                        // 担当者承認日付
+                strSQL.Append(", APPROVALENDFLG = 1");                                                      // 承認完了フラグ
                 strSQL.Append(PayDetailDB.CreatePrimarykeyString(PaIWork.CompanyCode, PaIWork.TargetDate, PaIWork.SeqNo, PaIWork.LineCount));
 
                 if (!PayDetailDB.ExecuteNonQuery(strSQL.ToString(), false)) return false;
@@ -1022,20 +1006,90 @@
         }
         #endregion
 
-        #region 支払承認情報データ作成
+        #region 申請時：支払承認情報データ作成
         /// <summary>
-        /// 支払承認情報データ作成
+        /// 申請時：支払承認情報データ作成
         /// </summary>
         /// <returns></returns>
-        private bool PaymentApprovalInfoCreate(IOPaymentApprovalInfo PayAppDB, PaymentApprovalInfo PaIWork)
+        private bool PaymentApprovalInfoCreate(IOPaymentApprovalInfo PayAppDB,
+                                                PaymentApprovalInfo PaIWork,
+                                                int nBSeqNo)
         {
             try
             {
-                List<PaymentApprovalInfo> InfoList = new List<PaymentApprovalInfo>();
-                InfoList.Add(PaIWork);
+                // 連番を変更する
+                PaIWork.SeqNo = nBSeqNo;
+                // 日付を初期値にする
+                PaIWork.ApprovalDate = new DateTime(2001, 1, 1);
+                if (!PayAppDB.InsertAction(PaIWork, false)) return false;
 
-                if (!PayAppDB.InsertAction(InfoList, false)) return false;
+                return true;
+            }
+            catch (System.Exception ex)
+            {
+                logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
+                return false;
+            }
+        }
+        #endregion
 
+        #region 支払承認情報データ更新処理
+        /// <summary>
+        /// 支払承認情報データ更新処理
+        /// </summary>
+        /// <param name="PayAppDB"></param>
+        /// <param name="PaIWork"></param>
+        /// <returns></returns>
+        private bool ApprovalFeePayment()
+        {
+            IOPaymentApprovalInfo PayAppDB = new IOPaymentApprovalInfo();
+            try
+            {
+                PayAppDB.connect(); PayAppDB.beginTran();
+
+                bool bSuccess = true;
+                ArrayList arData = m_ArrayParam[0];
+                // 手間・業者支払承認情報取得
+                for (int i = 0; i < arData.Count; i++)
+                {
+                    PaymentApprovalInfo PaIWork = (PaymentApprovalInfo)arData[i];
+
+                    StringBuilder strSQL = new StringBuilder();
+                    List<PaymentApprovalInfo> AddList = new List<PaymentApprovalInfo>();
+                    // 支払承認情報データ検索
+                    strSQL.Append(PayAppDB.CreatePrimarykeyString(PaIWork.CompanyCode, PaIWork.TargetDate, PaIWork.SeqNo, PaIWork.LineCount, PaIWork.ApprovalNo));
+                    List<PaymentApprovalInfo> PayAppList = new List<PaymentApprovalInfo>();
+                    if (!PayAppDB.SelectAction(strSQL.ToString(), ref PayAppList)) return false;
+                    bool bExist = true;
+                    if (PayAppList.Count == 0) bExist = false;
+
+                    if (bExist)
+                    {   // データがあれば承認日付を変更する
+                        strSQL.Clear();
+                        PayAppList[0].ApprovalDate = DateTime.Now.Date;
+                        if (!PayAppDB.UpdateAction(strSQL.ToString(), PayAppList[0], false))
+                        {
+                            bSuccess = false;
+                            break;
+                        }
+                    }
+                    else
+                    {   // データが無ければ承認者データを作成する
+                        PaIWork.ApprovalDate = DateTime.Now.Date;
+                        if (!PayAppDB.InsertAction(PaIWork, false))
+                        {
+                            bSuccess = false;
+                            break;
+                        }
+                    }
+                }
+
+                if (!bSuccess)
+                {
+                    PayAppDB.rollback();
+                    return false;
+                }
+
                 return true;
             }
             catch (System.Exception ex)
@@ -1043,6 +1097,10 @@
                 logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
                 return false;
             }
+            finally
+            {
+                PayAppDB.commit(); PayAppDB.close(); PayAppDB = null;
+            }
         }
         #endregion
 
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntry.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntry.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntry.cs	(revision 241)
@@ -744,9 +744,10 @@
             try
             {
                 // 注文書データが無い場合は登録する
-                string strSQL = OrderDB.CreatePrimarykeyString(m_ConstructionCode);
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append(OrderDB.CreatePrimarykeyString(m_ConstructionCode));
                 PurchaseOrder DataRec = new PurchaseOrder();
-                if (!OrderDB.SelectAction(strSQL, ref DataRec)) m_bChengeAns = true;
+                if (!OrderDB.SelectAction(strSQL.ToString(), ref DataRec)) m_bChengeAns = true;
 
                 // データ変更有時はデータ登録
                 if (m_bChengeAns)
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntryAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntryAuxiliary.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntryAuxiliary.cs	(revision 241)
@@ -29,8 +29,9 @@
             IOConstructionBaseInfo cbDB = new IOConstructionBaseInfo();
             try
             {
-                string strSQL = cbDB.CreatePrimarykeyString(m_ConstructionCode);
-                if (!cbDB.SelectAction(strSQL, ref m_ConstructionBaseInfo)) return false;
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append(cbDB.CreatePrimarykeyString(m_ConstructionCode));
+                if (!cbDB.SelectAction(strSQL.ToString(), ref m_ConstructionBaseInfo)) return false;
 
                 return true;
             }
@@ -137,10 +138,12 @@
             {
 
                 // 一覧リストを作成する
-                string strSQL = AppDetailDB.CreatePrimarykeyString(m_ConstructionCode, (int)ClsExcute.ApprovalListNo.PurchaseOrderEntryApproval, m_OrderNo);
-                strSQL += " ORDER BY ORDERNO";
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append(AppDetailDB.CreatePrimarykeyString(m_ConstructionCode,
+                                                                (int)ClsExcute.ApprovalListNo.PurchaseOrderEntryApproval, m_OrderNo));
+                strSQL.Append(" ORDER BY ORDERNO");
                 List<ProcessApprovalDetail> DetailList = new List<ProcessApprovalDetail>();
-                if (!AppDetailDB.SelectAction(strSQL, ref DetailList)) return;
+                if (!AppDetailDB.SelectAction(strSQL.ToString(), ref DetailList)) return;
             
                 m_DetailList.Clear();
                 foreach (ProcessApprovalDetail CurRec in DetailList)
@@ -287,18 +290,22 @@
                 m_DspLabelCtrl[(int)DspLblCtrlName.ConstCode].Text = CommonMotions.cnvStringCodeFromInt(m_ConstructionBaseInfo.ConstructionCode, "-", 8);       // 工事コード
 
                 // 工事基本情報明細取得
-                string strSQL = cbidDB.CreatePrimarykeyString(m_ConstructionCode, (int)ConstructionBaseInfoDetail.DetailDataNo.ConstructionName);
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append(cbidDB.CreatePrimarykeyString(m_ConstructionCode,
+                                                            (int)ConstructionBaseInfoDetail.DetailDataNo.ConstructionName));
                 ConstructionBaseInfoDetail workRec = new ConstructionBaseInfoDetail();
-                if (!cbidDB.SelectAction(strSQL, ref workRec)) return;
+                if (!cbidDB.SelectAction(strSQL.ToString(), ref workRec)) return;
+
                 m_DspLabelCtrl[(int)DspLblCtrlName.ConstName].Text = workRec.DetailString;                                                                      // 工事名称
-                strSQL = cbidDB.CreatePrimarykeyString(m_ConstructionCode);
-                strSQL += string.Format(" And (DetailNo = {0} Or DetailNo = {1} Or DetailNo = {2})",
+                strSQL.Clear();
+                strSQL.Append(cbidDB.CreatePrimarykeyString(m_ConstructionCode));
+                strSQL.AppendFormat(" And (DetailNo = {0} Or DetailNo = {1} Or DetailNo = {2})",
                                             (int)ConstructionBaseInfoDetail.DetailDataNo.ConstructionPlace1,                                   // 工事場所１
                                             (int)ConstructionBaseInfoDetail.DetailDataNo.ConstructionPlace2,                                   // 工事場所２
                                             (int)ConstructionBaseInfoDetail.DetailDataNo.ConstructionPlace3);                                  // 工事場所３
-                strSQL += " Order By DetailNo";
+                strSQL.Append(" Order By DetailNo");
                 List<ConstructionBaseInfoDetail> workList = new List<ConstructionBaseInfoDetail>();
-                cbidDB.SelectAction(strSQL, ref workList);
+                cbidDB.SelectAction(strSQL.ToString(), ref workList);
                 string Place = string.Empty;
                 foreach (ConstructionBaseInfoDetail wrkRec in workList)
                 {
@@ -307,16 +314,18 @@
                 m_DspLabelCtrl[(int)DspLblCtrlName.ConstPlace].Text = Place;                                                                                    // 工事場所
 
                 // 工事担当者取得
-                strSQL = picDB.CreatePrimarykeyString(m_ConstructionBaseInfo.ConstructionPersonCode);
+                strSQL.Clear();
+                strSQL.Append(picDB.CreatePrimarykeyString(m_ConstructionBaseInfo.ConstructionPersonCode));
                 PersonInChargeMaster personRec = new PersonInChargeMaster();
-                picDB.SelectAction(strSQL, ref personRec);
+                picDB.SelectAction(strSQL.ToString(), ref personRec);
 
                 m_DspLabelCtrl[(int)DspLblCtrlName.CreatorName].Text = personRec.PersonName;                                                                    // 工事担当者
 
                 // 注文書タイプ取得
-                strSQL = OrderDB.CreatePrimarykeyString(m_ConstructionBaseInfo.ConstructionPersonCode);
+                strSQL.Clear();
+                strSQL.Append(OrderDB.CreatePrimarykeyString(m_ConstructionBaseInfo.ConstructionPersonCode));
                 List<PurchaseOrder> OrderList = new List<PurchaseOrder>();
-                OrderDB.SelectAction(strSQL, ref OrderList);
+                OrderDB.SelectAction(strSQL.ToString(), ref OrderList);
                 PurchaseOrder OrderRec = new PurchaseOrder();
                 if (OrderList.Count != 0)
                 {
@@ -342,9 +351,10 @@
                 //}
 
                 // 工事種別マスタ取得
-                strSQL = ctypeDB.CreatePrimarykeyString(m_ConstructionBaseInfo.ConstructionType);
+                strSQL.Clear();
+                strSQL.Append(ctypeDB.CreatePrimarykeyString(m_ConstructionBaseInfo.ConstructionType));
                 ConstructionTypeMaster ctypeRec = new ConstructionTypeMaster();
-                ctypeDB.SelectAction(strSQL, ref ctypeRec);
+                ctypeDB.SelectAction(strSQL.ToString(), ref ctypeRec);
                 m_DspLabelCtrl[(int)DspLblCtrlName.ConstructionType].Text = ctypeRec.NameString;                                                                // 工事種別
 
                 DateTime StDate = m_ConstructionBaseInfo.ConstructionPeriodStart;
@@ -412,13 +422,14 @@
         /// 工事詳細台帳より読み込むSQLを作成する
         /// </summary>
         /// <param name="strSQL"></param>
-        private void CreateNewDataSQL(ref string strSQL)
+        private void CreateNewDataSQL(ref StringBuilder strSQL)
         {
             try
             {
                 // 工事台帳コードのセット
                 object[] ParentRec = (object[])m_DetailList[0];
-                strSQL = string.Format(" WHERE CONSTRUCTIONCODE = {0}",
+                strSQL.Clear();
+                strSQL.AppendFormat(" WHERE CONSTRUCTIONCODE = {0}",
                                         CommonMotions.cnvInt(ParentRec[(int)FrmOrderEntryList.ReadDBColumn.ConstructionCode]));
 
                 int SourceCode = 0;
@@ -437,27 +448,27 @@
                     {
                         if (bFirstCode)
                         {
-                            strSQL += " AND";
+                            strSQL.Append(" AND");
                             bFirstCode = false;
                         }
                         else
                         {
-                            strSQL += ")) OR";
+                            strSQL.Append(")) OR");
                         }
 
-                        strSQL += string.Format(" (SOURCECODE = {0} AND (", SourceCode);
+                        strSQL.AppendFormat(" (SOURCECODE = {0} AND (", SourceCode);
 
                         brkSourceCode = SourceCode;
                         bFirstCompany = true;
                     }
                     // 会社番号のセット
-                    if (!bFirstCompany) strSQL += " OR";
+                    if (!bFirstCompany) strSQL.Append(" OR");
 
-                    strSQL += string.Format(" (COMPANYCODE = {0} AND LINECOUNT = {1})", CompanyCode, LineNo);
+                    strSQL.AppendFormat(" (COMPANYCODE = {0} AND LINECOUNT = {1})", CompanyCode, LineNo);
                     
                     bFirstCompany = false;
                 }
-                strSQL += ")) ORDER BY COMPANYCODE";
+                strSQL.Append(")) ORDER BY COMPANYCODE");
             }
             catch (System.Exception ex)
             {
@@ -480,11 +491,11 @@
                 if (m_DetailList.Count == 0) return false;
 
                 // 対象データSQL作成
-                string strSQL = string.Empty;
+                StringBuilder strSQL = new StringBuilder();
                 CreateNewDataSQL(ref strSQL);
                 // 工事詳細台帳データ読込
                 List<ConstructionLedgerDetail> DetailList = new List<ConstructionLedgerDetail>();
-                if (!DetailDB.SelectAction(strSQL, ref DetailList)) return false;
+                if (!DetailDB.SelectAction(strSQL.ToString(), ref DetailList)) return false;
                 if (DetailList.Count == 0) return false;
 
                 // デフォルトページを削除する
@@ -735,19 +746,20 @@
             try
             {
                 // 注文書データ読込
-                string strSQL = " WHERE";
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append(" WHERE");
                 bool bFirst = true;
                 foreach (object[] objRec in m_DetailList)
                 {
-                    if (!bFirst) strSQL += " Or";
-                    strSQL += string.Format(" (CONSTRUCTIONCODE = {0}", CommonMotions.cnvInt(objRec[(int)FrmOrderEntryList.ReadDBColumn.SourceCode]));
-                    strSQL += string.Format(" AND SEQNO = {0})", CommonMotions.cnvInt(objRec[(int)FrmOrderEntryList.ReadDBColumn.PurchaseSeqNo]));
+                    if (!bFirst) strSQL.Append(" Or");
+                    strSQL.AppendFormat(" (CONSTRUCTIONCODE = {0}", CommonMotions.cnvInt(objRec[(int)FrmOrderEntryList.ReadDBColumn.SourceCode]));
+                    strSQL.AppendFormat(" AND SEQNO = {0})", CommonMotions.cnvInt(objRec[(int)FrmOrderEntryList.ReadDBColumn.PurchaseSeqNo]));
                     bFirst = false;
                 }
-                strSQL += " ORDER BY CONSTRUCTIONCODE, SEQNO";
+                strSQL.Append(" ORDER BY CONSTRUCTIONCODE, SEQNO");
 
                 List<PurchaseOrder> OrderList = new List<PurchaseOrder>();
-                if (!OrderDB.SelectAction(strSQL, ref OrderList)) return false;
+                if (!OrderDB.SelectAction(strSQL.ToString(), ref OrderList)) return false;
                 if (OrderList.Count == 0) return false;
 
                 // デフォルトページを削除する
@@ -757,9 +769,10 @@
                 foreach (PurchaseOrder OrderRec in OrderList)
                 {
                     List<PurchaseOrderDetail> DetailData = new List<PurchaseOrderDetail>();
-                    strSQL = DetailDB.CreatePrimarykeyString(OrderRec.ConstructionCode, OrderRec.SeqNo);
-                    strSQL += " ORDER BY GroupCount ASC, LineCount ASC";
-                    if (!DetailDB.SelectAction(strSQL, ref DetailData)) continue;
+                    strSQL.Clear();
+                    strSQL.Append(DetailDB.CreatePrimarykeyString(OrderRec.ConstructionCode, OrderRec.SeqNo));
+                    strSQL.Append(" ORDER BY GroupCount ASC, LineCount ASC");
+                    if (!DetailDB.SelectAction(strSQL.ToString(), ref DetailData)) continue;
 
                     // ページ追加
                     PurchaseOrderInputPage inputpage = new PurchaseOrderInputPage();
@@ -805,8 +818,9 @@
                 inputpage.SeqNo = DataRec.SeqNo;
 
                 SubContractorMaster SubRec = new SubContractorMaster();
-                string strSQL = SubCDB.CreatePrimarykeyString(DataRec.CompanyCode);
-                SubCDB.SelectAction(strSQL, ref SubRec);
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append(SubCDB.CreatePrimarykeyString(DataRec.CompanyCode));
+                SubCDB.SelectAction(strSQL.ToString(), ref SubRec);
 
                 // 台帳発注金額テーブル作成
                 ReadLedgerOrder();
@@ -976,13 +990,14 @@
             {
                 LedgerOrderPrice.Clear();
 
-                string strSQL = "SELECT COMPANYCODE, SUM(EXECUTIONAMOUNT) FROM CONSTRUCTIONLEDGERDETAIL";
-                strSQL += string.Format(" WHERE CONSTRUCTIONCODE = {0}", m_ConstructionCode);
-                strSQL += string.Format(" AND GROUPCOUNT = {0}", (int)FrmConstructionLedger.DataGroup.ConstructionCosts);
-                strSQL += string.Format(" AND PURCHASEORDERFLG = {0}", (int)CommonDefine.PurchaseOrderFlg.Making);
-                strSQL += " GROUP BY COMPANYCODE ORDER BY COMPANYCODE";
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append("SELECT COMPANYCODE, SUM(EXECUTIONAMOUNT) FROM CONSTRUCTIONLEDGERDETAIL");
+                strSQL.AppendFormat(" WHERE CONSTRUCTIONCODE = {0}", m_ConstructionCode);
+                strSQL.AppendFormat(" AND GROUPCOUNT = {0}", (int)FrmConstructionLedger.DataGroup.ConstructionCosts);
+                strSQL.AppendFormat(" AND PURCHASEORDERFLG = {0}", (int)CommonDefine.PurchaseOrderFlg.Making);
+                strSQL.Append(" GROUP BY COMPANYCODE ORDER BY COMPANYCODE");
                 ArrayList arList = new ArrayList();
-                LedgerDDB.ExecuteReader(strSQL, ref arList);
+                LedgerDDB.ExecuteReader(strSQL.ToString(), ref arList);
                 foreach (object[] objRec in arList)
                 {
                     LedgerOrderPrice.Add(new KeyValuePair<int, int>(CommonMotions.cnvInt(objRec[0]), CommonMotions.cnvInt(objRec[1])));
@@ -1105,10 +1120,11 @@
             IOMConstructionType TypeDB = new IOMConstructionType();
             try
             {
-                string strSQL = TypeDB.CreatePrimarykeyString(m_ConstructionBaseInfo.ConstructionType);
-                strSQL += string.Format(" AND PUBLICFLG = {0}", (int)CommonDefine.ConstructionType.Community);
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append(TypeDB.CreatePrimarykeyString(m_ConstructionBaseInfo.ConstructionType));
+                strSQL.AppendFormat(" AND PUBLICFLG = {0}", (int)CommonDefine.ConstructionType.Community);
                 ConstructionTypeMaster TypeRec = new ConstructionTypeMaster();
-                if (!TypeDB.SelectAction(strSQL, ref TypeRec)) return false;
+                if (!TypeDB.SelectAction(strSQL.ToString(), ref TypeRec)) return false;
 
                 return true;
             }
@@ -1240,9 +1256,10 @@
                     bPageAns &= CommonMotions.DispFieldDateCheck(CurPage.Group1TextBox);
 
                     // 注文書データ読込
-                    string strSQL = LedgerDB.CreatePrimarykeyString(m_ConstructionCode);
+                    StringBuilder strSQL = new StringBuilder();
+                    strSQL.Append(LedgerDB.CreatePrimarykeyString(m_ConstructionCode));
                     ConstructionLedger LedgerRec = new ConstructionLedger();
-                    if (!LedgerDB.SelectAction(strSQL, ref LedgerRec)) continue;
+                    if (!LedgerDB.SelectAction(strSQL.ToString(), ref LedgerRec)) continue;
 
                     // 発注金額・合計金額のチェック(入力金額が大きくなった場合はエラー)
                     bool bNotErr = true;
@@ -1469,8 +1486,9 @@
                 // データ存在確認
                 bool DataExists = false;
                 PurchaseOrder DataRec = new PurchaseOrder();
-                string strSQL = OrderDB.CreatePrimarykeyString(m_ConstructionCode, SeqNo);
-                if (OrderDB.SelectAction(strSQL, ref DataRec, false)) DataExists = true;
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append(OrderDB.CreatePrimarykeyString(m_ConstructionCode, SeqNo));
+                if (OrderDB.SelectAction(strSQL.ToString(), ref DataRec, false)) DataExists = true;
 
                 if (!DataExists)
                 {
@@ -1538,7 +1556,7 @@
                 if (DataExists)
                 {
                     // データ更新
-                    if (!OrderDB.UpdateAction(strSQL, DataRec, false))
+                    if (!OrderDB.UpdateAction(strSQL.ToString(), DataRec, false))
                     {
                         LogicalErrorMessage("注文書データ：更新に失敗しました。", "更新エラー", CommonMotions.GetMethodName());
                         return false;
@@ -1574,8 +1592,9 @@
             try
             {
                 // データ削除
-                string strSQL = DetailDB.CreatePrimarykeyString(m_ConstructionCode, SeqNo);
-                DetailDB.DeleteAction(strSQL, false);
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append(DetailDB.CreatePrimarykeyString(m_ConstructionCode, SeqNo));
+                DetailDB.DeleteAction(strSQL.ToString(), false);
 
                 // 明細グリッド書込み
                 for (int i = 0; i < DataTab.Group1DataGridView.RowCount; i++)
@@ -1667,7 +1686,7 @@
                 int LedgerLine = 0;
                 bool ChangeCompany = false;
                 int BeforeCode = 0;
-                string strSQL = string.Empty;
+                StringBuilder strSQL = new StringBuilder();
                 int TargetCode = ClsProcessExist.GetParentConstrCode(m_ConstructionCode);
                 int TargetField = 0;
 
@@ -1692,13 +1711,14 @@
                     {
                         // 協力会社名変更
                         TargetField = (int)IOConstructionLedgerDetail.TableColumn.CompanyName;
-                        strSQL = LDetailDB.CreatePrimarykeyString(TargetCode);
-                        strSQL += string.Format(" AND SOURCECODE = {0}", m_ConstructionCode);
-                        strSQL += string.Format(" AND GROUPCOUNT = {0}", (int)FrmConstructionLedger.DataGroup.ConstructionCosts);
-                        strSQL += string.Format(" AND COMPANYCODE = {0}", BeforeCode);
+                        strSQL.Clear();
+                        strSQL.Append(LDetailDB.CreatePrimarykeyString(TargetCode));
+                        strSQL.AppendFormat(" AND SOURCECODE = {0}", m_ConstructionCode);
+                        strSQL.AppendFormat(" AND GROUPCOUNT = {0}", (int)FrmConstructionLedger.DataGroup.ConstructionCosts);
+                        strSQL.AppendFormat(" AND COMPANYCODE = {0}", BeforeCode);
                         //strSQL += string.Format(" AND EXECUTIONAMOUNT = {0}", PriceVal);
-                        if (LedgerLine != 0) strSQL += string.Format(" AND LINECOUNT = {0}", LedgerLine);
-                        if (!LDetailDB.UpdateFeild(strSQL, TargetField, DataTab.EntryTab.Text, false))
+                        if (LedgerLine != 0) strSQL.AppendFormat(" AND LINECOUNT = {0}", LedgerLine);
+                        if (!LDetailDB.UpdateFeild(strSQL.ToString(), TargetField, DataTab.EntryTab.Text, false))
                         {
                             LogicalErrorMessage("注文書データ：協力会社名称変更に失敗しました。", "更新エラー", CommonMotions.GetMethodName());
                             return false;
@@ -1705,7 +1725,7 @@
                         }
                         // 協力会社コード変更
                         TargetField = (int)IOConstructionLedgerDetail.TableColumn.CompanyCode;
-                        if (!LDetailDB.UpdateFeild(strSQL, TargetField, DataTab.OrderCompanyCode, false))
+                        if (!LDetailDB.UpdateFeild(strSQL.ToString(), TargetField, DataTab.OrderCompanyCode, false))
                         {
                             LogicalErrorMessage("注文書データ：協力会社コード変更に失敗しました。", "更新エラー", CommonMotions.GetMethodName());
                             return false;
@@ -1713,13 +1733,14 @@
                     }
                     // 注文書作成フラグON
                     TargetField = (int)IOConstructionLedgerDetail.TableColumn.PurchaseOrderFlg;
-                    strSQL = LDetailDB.CreatePrimarykeyString(TargetCode);
-                    strSQL += string.Format(" AND SOURCECODE = {0}", m_ConstructionCode);
-                    strSQL += string.Format(" AND GROUPCOUNT = {0}", (int)FrmConstructionLedger.DataGroup.ConstructionCosts);
-                    strSQL += string.Format(" AND COMPANYCODE = {0}", DataTab.OrderCompanyCode);
+                    strSQL.Clear();
+                    strSQL.Append(LDetailDB.CreatePrimarykeyString(TargetCode));
+                    strSQL.AppendFormat(" AND SOURCECODE = {0}", m_ConstructionCode);
+                    strSQL.AppendFormat(" AND GROUPCOUNT = {0}", (int)FrmConstructionLedger.DataGroup.ConstructionCosts);
+                    strSQL.AppendFormat(" AND COMPANYCODE = {0}", DataTab.OrderCompanyCode);
                     //strSQL += string.Format(" AND EXECUTIONAMOUNT = {0}", PriceVal);
-                    if (LedgerLine != 0) strSQL += string.Format(" AND LINECOUNT = {0}", LedgerLine);
-                    if (!LDetailDB.UpdateFeild(strSQL, TargetField, (int)CommonDefine.PurchaseOrderFlg.Making, false))
+                    if (LedgerLine != 0) strSQL.AppendFormat(" AND LINECOUNT = {0}", LedgerLine);
+                    if (!LDetailDB.UpdateFeild(strSQL.ToString(), TargetField, (int)CommonDefine.PurchaseOrderFlg.Making, false))
                     {
                         LogicalErrorMessage("注文書データ：注文書作成フラグ更新に失敗しました。", "更新エラー", CommonMotions.GetMethodName());
                         return false;
@@ -1787,6 +1808,7 @@
                 OrderDB.connect(); OrderDB.beginTran();
                 DetailDB.connect(); DetailDB.beginTran();
 
+                StringBuilder strDel = new StringBuilder();
                 for (int i = 0; i < m_TabPageList.Count; i++)
                 {
                     PurchaseOrderInputPage DataTab = m_TabPageList[i];
@@ -1793,13 +1815,14 @@
                     int SeqCnt = DataTab.SeqNo;
 
                     // 削除する
-                    string strDel = OrderDB.CreatePrimarykeyString(m_ConstructionCode, SeqCnt);
-                    if (!OrderDB.DeleteAction(strDel, false))
+                    strDel.Clear();
+                    strDel.Append(OrderDB.CreatePrimarykeyString(m_ConstructionCode, SeqCnt));
+                    if (!OrderDB.DeleteAction(strDel.ToString(), false))
                     {
                         OrderDB.rollback();
                         return false;
                     }
-                    if (!DetailDB.DeleteAction(strDel, false))
+                    if (!DetailDB.DeleteAction(strDel.ToString(), false))
                     {
                         OrderDB.rollback();
                         DetailDB.rollback();
@@ -2627,10 +2650,11 @@
             try
             {
                 // 担当者マスタを検索する
-                string strSQL = " Where DeleteFlg = 0 Order By DisplayOrder ASC";
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append(" Where DeleteFlg = 0 Order By DisplayOrder ASC");
 
                 // 担当者マスタ読込
-                if (!picDB.SelectAction(strSQL, ref workList)) return false;
+                if (!picDB.SelectAction(strSQL.ToString(), ref workList)) return false;
 
                 List<KeyValuePair<int, string>> DataList1 = new List<KeyValuePair<int, string>>();
                 List<KeyValuePair<int, string>> DataList2 = new List<KeyValuePair<int, string>>();
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/FrmRequestSummaryList.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/FrmRequestSummaryList.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/FrmRequestSummaryList.cs	(revision 241)
@@ -224,6 +224,23 @@
         /// �䒠�n���h��
         /// </summary>
         FrmConstructionLedger m_FrmLedger = null;
+
+        /// <summary>
+        /// ���F�u���b�N�̃J������
+        /// </summary>
+        private int s_ShoninBlockCnt = 5;
+        /// <summary>
+        /// ���F�Җ��J�����I�t�Z�b�g
+        /// </summary>
+        private int s_ShoninPersonNameCnt = 1;
+        /// <summary>
+        /// ���F�����J�����I�t�Z�b�g
+        /// </summary>
+        private int s_ShoninAuthorityCnt = 3;
+        /// <summary>
+        /// ���F�ҏ����J�����I�t�Z�b�g
+        /// </summary>
+        private int s_ShoninNoCnt =  4;
         #endregion
 
         #region �ϐ�
@@ -2567,7 +2584,7 @@
                             // �ƎҐ����x���T�}���[�f�[�^����
                             bMakeBpsData = true;
 
-                            for (int iShoninColumn = (int)DispColumn.Shonin1Code; iShoninColumn < (int)DispColumn.Bikou; iShoninColumn += 5)
+                            for (int iShoninColumn = (int)DispColumn.Shonin1Code; iShoninColumn < (int)DispColumn.Bikou; iShoninColumn += s_ShoninBlockCnt)
                             {
                                 // �ݒ肳��Ă��Ȃ����F���͖���
                                 if (CommonMotions.cnvInt(r.Cells[iShoninColumn + 4].Value) == 0)
@@ -2589,10 +2606,10 @@
                                     PaIWork.TargetDate = TargetDate;
                                     PaIWork.SeqNo = iSeqNo;
                                     PaIWork.LineCount = iLineCount;
-                                    PaIWork.ApprovalNo = CommonMotions.cnvInt(r.Cells[iShoninColumn + 4].Value);
+                                    PaIWork.ApprovalNo = CommonMotions.cnvInt(r.Cells[iShoninColumn + s_ShoninNoCnt].Value);
                                     PaIWork.ApprovalPerson = CommonMotions.cnvInt(r.Cells[iShoninColumn].Value);
-                                    PaIWork.ApprovalPersonName = CommonMotions.cnvString(r.Cells[iShoninColumn + 1].Value);
-                                    PaIWork.ApprovalAuthority = CommonMotions.cnvInt(r.Cells[iShoninColumn + 3].Value);
+                                    PaIWork.ApprovalPersonName = CommonMotions.cnvString(r.Cells[iShoninColumn + s_ShoninPersonNameCnt].Value);
+                                    PaIWork.ApprovalAuthority = CommonMotions.cnvInt(r.Cells[iShoninColumn + s_ShoninAuthorityCnt].Value);
 
                                     if (r.Cells[iShoninColumn + 1].Style.ForeColor != Color.Gray)
                                     {
@@ -3734,7 +3751,6 @@
 
             // �I�����̌��o
             DataGridView dgv = null;
-            DataGridViewCell SelectCell = null;
             if (dgvCompany.Visible == true)         // �ƎҒP�ʕ\��
             {
                 dgv = dgvCompany;
@@ -3743,37 +3759,11 @@
             {
                 dgv = dgvProject;
             }
-            // TODO�@�S���ҏ��F�ꊇ�\���Ή�
-            //foreach (DataGridViewCell c in dgv.SelectedCells)
-            //{
-            //    SelectCell = c;
-            //}
+         
+            if (MessageBox.Show("�\������Ă���f�[�^�̏��F�\�����s���܂��B", "���F�\���m�F", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) return;
 
-            //if (SelectCell != null)
-            //{
-                // �x�����F���f�[�^�ݒ�
-                PaymentApprovalInfo PaIWork = new PaymentApprovalInfo();
-                //PaIWork.CompanyCode = CommonMotions.cnvInt(dgv.Rows[SelectCell.RowIndex].Cells[m_Company_Column].Value);
-                PaIWork.TargetDate = m_Select_TargetDate;
-                //PaIWork.SeqNo = CommonMotions.cnvInt(dgv.Rows[SelectCell.RowIndex].Cells[(int)DispColumn.GroupSeqNo].Value);
-                //PaIWork.LineCount = CommonMotions.cnvInt(dgv.Rows[SelectCell.RowIndex].Cells[(int)DispColumn.LineCount].Value);
-
-                //if ((PaIWork.CompanyCode == 0)
-                //|| (PaIWork.SeqNo == 0)
-                //|| (PaIWork.LineCount == 0)
-                //    )
-                //{
-                //    MessageBox.Show("���ꂪ�ݒ肳��Ă��Ȃ����ߏ��F�\�����s���܂���B", "���F�\���G���[", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
-                //}
-                if (MessageBox.Show("�\������Ă���f�[�^�̏��F�\�����s���܂��B", "���F�\���m�F", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) return;
-
-                // ���F�\������
-                PetitionProcess(PaIWork);
-            //}
-            //else
-            //{
-            //    MessageBox.Show("�s���I������Ă��Ȃ����ߏ��F�\�����s���܂���B", "���F�\���G���[", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
-            //}
+            // ���F�\������
+            PetitionProcess();
         }
         #endregion
 
@@ -3801,30 +3791,10 @@
                 SelectCell = c;
             }
 
-            if (SelectCell != null)
-            {
-                // �x�����F���f�[�^�ݒ�
-                PaymentApprovalInfo PaIWork = new PaymentApprovalInfo();
-                PaIWork.CompanyCode = CommonMotions.cnvInt(dgv.Rows[SelectCell.RowIndex].Cells[m_Company_Column].Value);
-                PaIWork.TargetDate = m_Select_TargetDate;
-                PaIWork.SeqNo = CommonMotions.cnvInt(dgv.Rows[SelectCell.RowIndex].Cells[(int)DispColumn.GroupSeqNo].Value);
-                PaIWork.LineCount = CommonMotions.cnvInt(dgv.Rows[SelectCell.RowIndex].Cells[(int)DispColumn.LineCount].Value);
-
-                if ((PaIWork.CompanyCode == 0)
-                || (PaIWork.SeqNo == 0)
-                || (PaIWork.LineCount == 0)
-                    )
-                {
-                    MessageBox.Show("���ꂪ�ݒ肳��Ă��Ȃ����ߏ��F���s���܂���B", "���F�G���[", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
-                }
-                if (MessageBox.Show("�I������Ă���s�̏��F���s���܂��B", "���F�m�F", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) return;
-                // ���F�{�^����������
-                ApprovalProcess(PaIWork);
-            }
-            else
-            {
-                MessageBox.Show("�s���I������Ă��Ȃ����ߏ��F�\�����s���܂���B", "���F�\���G���[", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
-            }
+            if (MessageBox.Show("�I������Ă���s�̏��F���s���܂��B", "���F�m�F", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) return;
+         
+            // ���F�{�^����������
+            ApprovalProcess();
         }
         #endregion
 
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/FrmRequestSummaryListAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/FrmRequestSummaryListAuxiliary.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/FrmRequestSummaryListAuxiliary.cs	(revision 241)
@@ -1277,11 +1277,72 @@
         }
         #endregion
 
+        #region �x�����F���f�[�^�p�����^�Z�b�g����
+        /// <summary>
+        /// �x�����F���f�[�^�p�����^�Z�b�g����
+        /// </summary>
+        /// <param name="dgv"></param>
+        /// <param name="NowPoint"></param>
+        private void SetApprovalInfoData(DataGridView dgv, ref ArrayList DataList)
+        {
+            try
+            {
+                int CompanyCode = 0;
+                int LineCount = 0;
+                int SeqNo = 0;
+
+                int ApprovalNo = 0;
+                int ApprovalPerson = 0;
+                string ApprovalPersonName = string.Empty;
+                int ApprovalAuthority = 0;
+
+                foreach (DataGridViewRow CurRow in dgv.Rows)
+                {
+                    // ��\���s�͑ΏۊO
+                    if (!CurRow.Visible) continue;
+
+                    CompanyCode = CommonMotions.cnvInt(CurRow.Cells[m_Company_Column].Value);
+                    LineCount = CommonMotions.cnvInt(CurRow.Cells[(int)DispColumn.LineCount].Value);
+                    SeqNo = CommonMotions.cnvInt(CurRow.Cells[(int)DispColumn.GroupSeqNo].Value);
+                    if (CompanyCode == 0) continue;
+
+                    for (int i = (int)DispColumn.Shonin1Code; i < (int)DispColumn.Bikou; i += s_ShoninBlockCnt)
+                    {
+
+                        ApprovalNo = CommonMotions.cnvInt(CurRow.Cells[i + s_ShoninNoCnt].Value);
+                        ApprovalPerson = CommonMotions.cnvInt(CurRow.Cells[i].Value);
+                        ApprovalPersonName = CommonMotions.cnvString(CurRow.Cells[i + s_ShoninPersonNameCnt].Value);
+                        ApprovalAuthority = CommonMotions.cnvInt(CurRow.Cells[i + s_ShoninAuthorityCnt].Value);
+
+                        if (ApprovalPerson == 0) continue;
+
+                        PaymentApprovalInfo DataRec = new PaymentApprovalInfo();
+                        DataRec.CompanyCode = CompanyCode;                  // ���͉�ЃR�[�h
+                        DataRec.TargetDate = m_Select_TargetDate;           // �Ώ۔N��     
+                        DataRec.SeqNo = SeqNo;                              // �A��
+                        DataRec.LineCount = LineCount;                      // �s�ԍ�    
+
+                        DataRec.ApprovalNo = ApprovalNo;                    // ���F����    
+                        DataRec.ApprovalPerson = ApprovalPerson;            // ���F�Ҕԍ�
+                        DataRec.ApprovalPersonName = ApprovalPersonName;    // ���F�Җ�
+                        DataRec.ApprovalAuthority = ApprovalAuthority;      // ���F����
+
+                        DataList.Add(DataRec);
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                logger.ErrorFormat("�V�X�e���G���[�F{0}�F{1}", CommonMotions.GetMethodName(), ex.Message);
+            }
+        }
+        #endregion
+
         #region �\���{�^����������
         /// <summary>
         /// �\���{�^����������
         /// </summary>
-        private void PetitionProcess(PaymentApprovalInfo PaymentApprovalInfoData)
+        private void PetitionProcess()
         {
             try
             {
@@ -1300,10 +1361,11 @@
                 // ��t�ԍ�
                 ClsExcute.ProcControlPara[NowPoint].IntExecParameter.Add(CommonDefine.s_Default_OrderNo);
 
-                // �x�����F���f�[�^
-                ArrayList PaymentApprovalInfoDataList = new ArrayList();
-                PaymentApprovalInfoDataList.Add(PaymentApprovalInfoData);
-                ClsExcute.ProcControlPara[NowPoint].ArrayParameter.Add(PaymentApprovalInfoDataList);
+                // ----- �x�����F���f�[�^�Z�b�g
+                DataGridView dgv = dgvCompany.Visible == true ? dgvCompany : dgvProject;
+                ArrayList DataList = new ArrayList();
+                SetApprovalInfoData(dgv, ref DataList);
+                if (DataList.Count > 0) ClsExcute.ProcControlPara[NowPoint].ArrayParameter.Add(DataList);
 
                 // ���t�H�[���I��
                 this.Close();
@@ -1321,7 +1383,7 @@
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
-        private void ApprovalProcess(PaymentApprovalInfo PaymentApprovalInfoData)
+        private void ApprovalProcess()
         {
             try
             {
@@ -1344,10 +1406,11 @@
                 // ��t�ԍ�
                 ClsExcute.ProcControlPara[NowPoint].IntExecParameter.Add(CommonDefine.s_Default_OrderNo);
 
-                // �x�����F���f�[�^
-                ArrayList PaymentApprovalInfoDataList = new ArrayList();
-                PaymentApprovalInfoDataList.Add(PaymentApprovalInfoData);
-                ClsExcute.ProcControlPara[NowPoint].ArrayParameter.Add(PaymentApprovalInfoDataList);
+                // ----- �x�����F���f�[�^
+                DataGridView dgv = dgvCompany.Visible == true ? dgvCompany : dgvProject;
+                ArrayList DataList = new ArrayList();
+                SetApprovalInfoData(dgv, ref DataList);
+                if (DataList.Count > 0) ClsExcute.ProcControlPara[NowPoint].ArrayParameter.Add(DataList);
 
                 // ���t�H�[���I��
                 this.Close();
@@ -1383,6 +1446,12 @@
                 // ��t�ԍ�
                 frm.OrderNo = CommonDefine.s_Default_OrderNo;
 
+                // ----- �x�����F���f�[�^
+                DataGridView dgv = dgvCompany.Visible == true ? dgvCompany : dgvProject;
+                ArrayList DataList = new ArrayList();
+                SetApprovalInfoData(dgv, ref DataList);
+                if (DataList.Count > 0) frm.ArrayParam.Add(DataList);
+
                 // �\���E���F���R�[�h�X�V
                 if (!frm.ApprovalDataUpDate((int)CommonDefine.ApprovalStatus.Approval, false))
                 {
@@ -1428,6 +1497,12 @@
                 // ��t�ԍ�
                 frm.OrderNo = CommonDefine.s_Default_OrderNo;
 
+                // ----- �x�����F���f�[�^
+                DataGridView dgv = dgvCompany.Visible == true ? dgvCompany : dgvProject;
+                ArrayList DataList = new ArrayList();
+                SetApprovalInfoData(dgv, ref DataList);
+                if (DataList.Count > 0) frm.ArrayParam.Add(DataList);
+
                 // �\���E���F���R�[�h�X�V
                 if (!frm.ApprovalDataUpDate((int)CommonDefine.ApprovalStatus.Pending, false))
                 {
@@ -1473,6 +1548,12 @@
                 // ��t�ԍ�
                 frm.OrderNo = CommonDefine.s_Default_OrderNo;
 
+                // ----- �x�����F���f�[�^
+                DataGridView dgv = dgvCompany.Visible == true ? dgvCompany : dgvProject;
+                ArrayList DataList = new ArrayList();
+                SetApprovalInfoData(dgv, ref DataList);
+                if (DataList.Count > 0) frm.ArrayParam.Add(DataList);
+
                 // �\���E���F���R�[�h�X�V
                 if (!frm.ApprovalDataUpDate((int)CommonDefine.ApprovalStatus.NotApproval, false))
                 {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCosts.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCosts.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCosts.cs	(revision 241)
@@ -948,18 +948,11 @@
             CommonMotions.EntryEndMessage("交通費・購入品データ");
 
             bool bSelFlg = false;
-            // 新セキュリティデータ対応済みかを確認する
-            if (CommonMotions.LoginUserData.SecCode == 0)
-            {
-                int User = CommonDefine.SystemManageDiv[(int)CommonDefine.SysManaDivNo.UserAuthority].Key;
-                if (CommonMotions.LoginUserData.SecurityManagement == User) bSelFlg = true;
-            }
-            else
-            {
-                int User = CommonDefine.SecurityRankList[(int)CommonDefine.SecurityRankPos.NormalAuthority].Key;
-                if (CommonMotions.LoginUserSecurity.SecRank == User) bSelFlg = true;
-            }
 
+            // ユーザーのセキュリティランクを取得する
+            int User = CommonDefine.SecurityRankList[(int)CommonDefine.SecurityRankPos.NormalAuthority].Key;
+            if (CommonMotions.LoginUserSecurity.SecRank == User) bSelFlg = true;
+
             // 一般ユーザーは登録後終了する
             if (bSelFlg)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCostsAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCostsAuxiliary.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/TAndPCosts/FrmTAndPCostsAuxiliary.cs	(revision 241)
@@ -1389,7 +1389,7 @@
                 NewRec.EntryPriceInTax = CommonMotions.cnvInt(dgvRow.Cells[(int)DispGridColumn.EntryPriceInTax].Value);
                 // 伝票番号
                 string strSlipNo = CommonMotions.cnvString(dgvRow.Cells[(int)DispGridColumn.SlipNo].Value);
-                NewRec.SlipNumber = strSlipNo.Substring(1);
+                if (strSlipNo.Length > 1) NewRec.SlipNumber = strSlipNo.Substring(1);
 
                 // 引込済みフラグ
                 if (CommonMotions.cnvString(dgvRow.Cells[(int)DispGridColumn.ApprovalCount1].Value).Length == 0)
Index: branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenu.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenu.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenu.cs	(revision 241)
@@ -2122,7 +2122,7 @@
         }
         #endregion
 
-        #region 工事承認一覧
+        #region 工事承認一覧グリッドクリック時処理
         /// <summary>
         /// 工事承認一覧グリッドクリック時処理
         /// </summary>
@@ -2209,8 +2209,16 @@
                 // 受付番号取得
                 int iOrderNo = CommonMotions.cnvInt(dgv.CurrentRow.Cells[(int)PersonAppGridCount.OrderNo].Value);
 
-                // 起動資格の確認
-                if (!(bExecFlg = ClsSecurityPermission.PersonDataAccess2(iPersonCode, iApprovalCode, OrderDate, iOrderNo))) return;
+                // 承認者の確認
+                if (CheckPetAppPerson(dgv.CurrentRow))
+                {
+                    bExecFlg = true;
+                }
+                else
+                {
+                    // 起動資格の確認
+                    if (!(bExecFlg = ClsSecurityPermission.PersonDataAccess2(iPersonCode, iApprovalCode, OrderDate, iOrderNo))) return;
+                }
 
                 // 自画面非表示
                 if (CommonMotions.ProductionExecution) this.Visible = false;
Index: branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenuAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenuAuxiliary.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenuAuxiliary.cs	(revision 241)
@@ -1885,6 +1885,64 @@
         }
         #endregion
 
+        #region 担当者承認画面よりログイン者が対象かをチェックする
+        /// <summary>
+        /// 担当者承認画面よりログイン者が対象かをチェックする
+        /// </summary>
+        /// <param name="CurRow"></param>
+        /// <returns></returns>
+        private bool CheckPetAppPerson(DataGridViewRow CurRow)
+        {
+            IOMPersonInCharge PersonDB = new IOMPersonInCharge();
+            try
+            {
+                int ApprovalCode = CommonMotions.cnvInt(CurRow.Cells[(int)PersonAppGridCount.ApprovalCode].Value);
+                int PettionPerson = CommonMotions.cnvInt(CurRow.Cells[(int)PersonAppGridCount.PersonCode].Value);
+                // 申請者が本人の場合はOK
+                if (PettionPerson == CommonMotions.LoginUserData.PersonCode) return true;
+
+                // 承認対象者を取得する
+                StringBuilder strSQL = new StringBuilder();
+                strSQL.Append("Select");
+                strSQL.Append(" A.PersonCode,");
+                strSQL.Append(" A.PersonName,");
+                strSQL.Append(" A.DepartmentCode,");
+                strSQL.Append(" B.ApprovalCode,");
+                strSQL.Append(" B.SeqNo,");
+                strSQL.Append(" B.ApprovalPerson");
+                strSQL.Append(" From personinchargemaster as A, approvalmaster as B");
+                strSQL.AppendFormat(" Where A.PersonCode = {0}", PettionPerson);
+                strSQL.AppendFormat(" And B.ApprovalCode = {0}", ApprovalCode);
+                strSQL.Append(" AND B.DepartmentCode = A.DepartmentCode");
+
+                ArrayList arlist = new ArrayList();
+                if (!PersonDB.ExecuteReader(strSQL.ToString(), ref arlist)) return false;
+                if (arlist.Count == 0) return false;
+
+                bool bRet = false;
+                foreach (object[] objRec in arlist)
+                {   // ログイン者が承認者の場合はOK
+                    if (CommonMotions.LoginUserData.PersonCode == CommonMotions.cnvInt(objRec[5]))
+                    {
+                        bRet = true;
+                        break;
+                    }
+                }
+
+                return bRet;
+            }
+            catch (Exception ex)
+            {
+                logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
+                return false;
+            }
+            finally
+            {
+                PersonDB.close(); PersonDB = null;
+            }
+        }
+        #endregion
+
         #region メニュータブ表示関連処理
         // *---------------- メニュータブ表示関連処理
         #region 掲示板処理関連
Index: branches/src/ProcessManagement/ProcessManagement/ProcessManagement.csproj
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/ProcessManagement.csproj	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/ProcessManagement.csproj	(revision 241)
@@ -215,6 +215,7 @@
     <Compile Include="DB\IOAccess\IOAttendanceDailyData.cs" />
     <Compile Include="DB\IOAccess\IOAttendanceData.cs" />
     <Compile Include="DB\IOAccess\IOBankBusinessDayMaster.cs" />
+    <Compile Include="DB\IOAccess\IODirectAccess.cs" />
     <Compile Include="DB\IOAccess\IOBillingData.cs" />
     <Compile Include="DB\IOAccess\IOBillingDataDetail.cs" />
     <Compile Include="DB\IOAccess\IOBillingPaymentSummary.cs" />
Index: branches/src/ProcessManagement/ProcessManagement/Properties/AssemblyInfo.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Properties/AssemblyInfo.cs	(revision 240)
+++ branches/src/ProcessManagement/ProcessManagement/Properties/AssemblyInfo.cs	(revision 241)
@@ -32,7 +32,7 @@
 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を 
 // 既定値にすることができます:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.59")]
-[assembly: AssemblyFileVersion("1.0.0.59")]
+[assembly: AssemblyVersion("1.0.0.60")]
+[assembly: AssemblyFileVersion("1.0.0.60")]
 // Log4netを使用する
 [assembly: log4net.Config.XmlConfigurator(ConfigFile = @"log4net.config", Watch = true)]
\ No newline at end of file
