Index: branches/src/ProcessManagement/ProcessManagement/Common/CommonMotions.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Common/CommonMotions.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Common/CommonMotions.cs	(revision 301)
@@ -1856,7 +1856,29 @@
                 logger.ErrorFormat("システムエラー：{0}：{1}：{2}", GetMethodName(), GetMethodName(2), ex.Message);
             }
         }
+        #endregion
 
+        #region ポイントに規定値を加算して戻す
+        /// <summary>
+        /// ポイントに規定値を加算して戻す
+        /// </summary>
+        /// <param name="PosPoint"></param>
+        public static Point SetFormPosion(Point PosPoint)
+        {
+            Point po = PosPoint;
+            try
+            {
+                po.X += CommonDefine.s_DefalutShiftValue;
+                po.Y += CommonDefine.s_DefalutShiftValue;
+
+                return po;
+            }
+            catch (Exception ex)
+            {
+                logger.ErrorFormat("システムエラー：{0}：{1}：{2}", GetMethodName(), GetMethodName(2), ex.Message);
+                return po;
+            }
+        }
         #endregion
 
         #region 工事管理システム専用
Index: branches/src/ProcessManagement/ProcessManagement/Common/CommonVersion.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Common/CommonVersion.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Common/CommonVersion.cs	(revision 301)
@@ -14,7 +14,7 @@
         /// <summary>
         /// 本体バージョン
         /// </summary>
-        public static int s_SystemVersion = 112;
+        public static int s_SystemVersion = 114;
 
         /// <summary>
         /// コピー・環境バージョン
Index: branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsExcute.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsExcute.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsExcute.cs	(revision 301)
@@ -2159,7 +2159,11 @@
                 // メニュー起動フラグ
                 if (CurrentPara.BoolExecParameter.Count > 0) frm.FirstFlg = CurrentPara.BoolExecParameter[0];
                 // 承認一覧画面よりのパラメタ対象月
-                if (CurrentPara.DateExecParameter.Count > 0) frm.ParaTargetDate = CommonMotions.cnvInt(CurrentPara.DateExecParameter[0].ToString("yyyyMM"));
+                if (CurrentPara.DateExecParameter.Count > 0)
+                {
+                    frm.ParaTargetMonth = CommonMotions.cnvInt(CurrentPara.DateExecParameter[0].ToString("yyyyMM"));
+                    frm.OrderDate = CurrentPara.DateExecParameter[0];
+                }
                 // 支払担当者コード
                 if (CurrentPara.IntExecParameter.Count > 1) frm.PaymentPersonCode = CurrentPara.IntExecParameter[1];
 
Index: branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOPurchaseOrderDetail.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOPurchaseOrderDetail.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOPurchaseOrderDetail.cs	(revision 301)
@@ -48,6 +48,7 @@
             OrdersLinePrice,		// 金額
             SourceCode,             // 予算作成時工事番号
             SourceLineCnt,	        // 注文書作成時台帳行番号
+            DataTypeFlag,           // 明細行データタイプフラグ
 
             EntryDate,
             UpdateDate,
@@ -76,20 +77,21 @@
             StringBuilder strcmd = new StringBuilder();
 
             strcmd.Append("SELECT");
-            strcmd.Append("  ConstructionCode");	        // 工事コード
-            strcmd.Append(", SeqNo");                    // 注文書枝番
-            strcmd.Append(", GroupCount");               // グループ番号
-            strcmd.Append(", LineCount");                // 行番号
-            strcmd.Append(", ComponentCode");            // 構成キー
-            strcmd.Append(", ItemCode");		            // 工種キー
-            strcmd.Append(", FirstString");              // 工種品名
-            strcmd.Append(", SecondString");             // 内容内訳
+            strcmd.Append("  ConstructionCode");	    // 工事コード
+            strcmd.Append(", SeqNo");                   // 注文書枝番
+            strcmd.Append(", GroupCount");              // グループ番号
+            strcmd.Append(", LineCount");               // 行番号
+            strcmd.Append(", ComponentCode");           // 構成キー
+            strcmd.Append(", ItemCode");		        // 工種キー
+            strcmd.Append(", FirstString");             // 工種品名
+            strcmd.Append(", SecondString");            // 内容内訳
             strcmd.Append(", UnitCount");		        // 数量
-            strcmd.Append(", UnitName");		            // 単位
+            strcmd.Append(", UnitName");		        // 単位
             strcmd.Append(", UnitPrice");		        // 単価
             strcmd.Append(", OrdersLinePrice");		    // 金額
-            strcmd.Append(", SourceCode");               // 予算作成時工事番号
+            strcmd.Append(", SourceCode");              // 予算作成時工事番号
             strcmd.Append(", SourceLineCnt");	        // 注文書作成時台帳行番号
+            strcmd.Append(", DataTypeFlag");            // 明細行データタイプフラグ
 
             strcmd.Append(", DATE_FORMAT(EntryDate, '%Y/%m/%d %H:%i:%s')");
             strcmd.Append(", DATE_FORMAT(UpdateDate, '%Y/%m/%d %H:%i:%s')");
@@ -217,7 +219,9 @@
                 strcmd.AppendFormat(", {0}", work.OrdersLinePrice);         // 金額
                 strcmd.AppendFormat(", {0}", work.SourceCode);              // 予算作成時工事番号
                 strcmd.AppendFormat(", {0}", work.SourceLineCnt);	        // 注文書作成時台帳行番号
+                strcmd.AppendFormat(", {0}", work.DataTypeFlag);            // 明細行データタイプフラグ
 
+
                 strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", work.EntryDate);
                 strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", work.UpdateDate);
                 strcmd.Append(")");
@@ -277,6 +281,7 @@
                     strcmd.AppendFormat(", {0}", work.OrdersLinePrice);         // 金額
                     strcmd.AppendFormat(", {0}", work.SourceCode);              // 予算作成時工事番号
                     strcmd.AppendFormat(", {0}", work.SourceLineCnt);	        // 注文書作成時台帳行番号
+                    strcmd.AppendFormat(", {0}", work.DataTypeFlag);            // 明細行データタイプフラグ
 
                     strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", work.EntryDate);
                     strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", work.UpdateDate);
@@ -329,6 +334,7 @@
                 strcmd.AppendFormat(", OrdersLinePrice = {0}", data.OrdersLinePrice);		    // 金額
                 strcmd.AppendFormat(", SourceCode = {0}", data.SourceCode);                     // 予算作成時工事番号
                 strcmd.AppendFormat(", SourceLineCnt = {0}", data.SourceLineCnt);	            // 注文書作成時台帳行番号
+                strcmd.AppendFormat(", DataTypeFlag = {0}", data.DataTypeFlag);                 // 明細行データタイプフラグ
 
                 strcmd.Append(", UpdateDate = NOW()");
                 strcmd.Append(AddSQLString);
@@ -429,6 +435,9 @@
                     case (int)TableColumn.SourceLineCnt:	// 注文書作成時台帳行番号
                         strcmd.AppendFormat(" SourceLineCnt = {0}", ((int)value).ToString());
                         break;
+                    case (int)TableColumn.DataTypeFlag:     // 明細行データタイプフラグ
+                        strcmd.AppendFormat(" DataTypeFlag = {0}", ((int)value).ToString());
+                        break;
                 }
 
                 strcmd.Append(", UpdateDate = NOW()");
@@ -473,7 +482,9 @@
                 wrk.OrdersLinePrice = CommonMotions.cnvDouble(objwrk[(int)TableColumn.OrdersLinePrice]);		// 金額
                 wrk.SourceCode = int.Parse(objwrk[(int)TableColumn.SourceCode].ToString());                     // 予算作成時工事番号
                 wrk.SourceLineCnt = int.Parse(objwrk[(int)TableColumn.SourceLineCnt].ToString());	            // 注文書作成時台帳行番号
+                wrk.DataTypeFlag = int.Parse(objwrk[(int)TableColumn.DataTypeFlag].ToString());                 // 明細行データタイプフラグ
 
+
                 wrk.EntryDate = DateTime.Parse(objwrk[(int)TableColumn.EntryDate].ToString());
                 wrk.UpdateDate = DateTime.Parse(objwrk[(int)TableColumn.UpdateDate].ToString());
             }
@@ -490,7 +501,7 @@
 
         #endregion
 
-        #region パブリックメソッド（特殊処理）
+        #region 主キー検索の文字列を返す
         /// <summary>
         /// 主キー検索の文字列を返す
         /// </summary>
@@ -498,18 +509,18 @@
         /// <param name="OutsourcingFlg"></param>
         /// <param name="LineCount"></param>
         /// <returns></returns>
-        public string CreatePrimarykeyString(int ConstructionCode, int SeqNo = 0, int GroupCount = 0, int LineCount = 0)
+        public string CreatePrimarykeyString(int ConstructionCode, int SeqNo = 0, int GroupCount = 0, int LineCount = 0, string strArias = "")
         {
             StringBuilder strWork = new StringBuilder();
             try
             {
-                strWork.AppendFormat(" Where ConstructionCode = {0}", ConstructionCode);
+                strWork.AppendFormat(" Where {0}ConstructionCode = {1}", strArias, ConstructionCode);
                 if (SeqNo != 0)
-                    strWork.AppendFormat(" And SEQNO = {0}", SeqNo);
+                    strWork.AppendFormat(" And {0}SEQNO = {1}", strArias, SeqNo);
                 if (GroupCount != 0)
-                    strWork.AppendFormat(" And GROUPCOUNT = {0}", GroupCount);
+                    strWork.AppendFormat(" And {0}GROUPCOUNT = {1}", strArias, GroupCount);
                 if (LineCount != 0)
-                    strWork.AppendFormat(" And LineCount = {0}", LineCount);
+                    strWork.AppendFormat(" And {0}LineCount = {1}", strArias, LineCount);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/DataModel/ConstructionLedgerDetail.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/DataModel/ConstructionLedgerDetail.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/DataModel/ConstructionLedgerDetail.cs	(revision 301)
@@ -74,6 +74,10 @@
         public enum PurOrderFlgDef
         {
             /// <summary>
+            /// 業者変更データ
+            /// </summary>
+            ChangeOld = -1,
+            /// <summary>
             /// 0:未作成
             /// </summary>
             NoCreate = 0,
Index: branches/src/ProcessManagement/ProcessManagement/DataModel/PurchaseOrderDetail.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/DataModel/PurchaseOrderDetail.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/DataModel/PurchaseOrderDetail.cs	(revision 301)
@@ -5,12 +5,11 @@
 
 namespace ProcessManagement.DataModel
 {
+    /// <summary>
+    /// 注文書明細データ
+    /// </summary>
     public class PurchaseOrderDetail
     {
-        /// <summary>
-        /// 注文書明細データ
-        /// </summary>
-
         #region 定数
         /// <summary>
         /// グループ番号定義
@@ -36,6 +35,23 @@
         }
         #endregion
 
+        #region 明細行データタイプフラグ
+        /// <summary>
+        /// 明細行データタイプフラグ
+        /// </summary>
+        public enum DataTypeFlagDef
+        {
+            /// <summary>
+            /// 0:通常データ
+            /// </summary>
+            CommonData = 0,
+            /// <summary>
+            /// 1:法定福利費
+            /// </summary>
+            StatutoryWelfare,
+        }
+        #endregion
+
         #region メンバ変数
 
         private int     m_ConstructionCode = 0;	            // 工事コード
@@ -55,6 +71,8 @@
         private double  m_SourceCode = 0;                   // 予算作成時工事番号
         private int     m_SourceLineCnt = 0;                // 注文書作成時台帳行番号
 
+        private int     m_DataTypeFlag = 0;                 // 明細行データタイプフラグ
+
         private DateTime m_EntryDate = DateTime.Now;        // 登録日付
         private DateTime m_UpdateDate = DateTime.Now;       // 更新日付
         #endregion
@@ -178,6 +196,15 @@
         }
 
         /// <summary>
+        /// 明細行データタイプフラグ
+        /// </summary>
+        public int DataTypeFlag
+        {
+            get { return m_DataTypeFlag; }
+            set { m_DataTypeFlag = value; }
+        }
+        
+        /// <summary>
         /// 登録日付
         /// </summary>
         public DateTime EntryDate
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionBaseInfo/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionBaseInfo/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionBaseInfo/ProcessControl.cs	(revision 301)
@@ -323,6 +323,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -381,6 +384,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -436,6 +442,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -491,6 +500,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -546,6 +558,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -600,6 +615,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -656,6 +674,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -712,6 +733,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -755,6 +779,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -795,6 +822,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionBudget/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionBudget/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionBudget/ProcessControl.cs	(revision 301)
@@ -325,6 +325,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -387,6 +390,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -449,6 +455,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -511,6 +520,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -573,6 +585,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -634,6 +649,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -697,6 +715,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -760,6 +781,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -809,6 +833,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -855,6 +882,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionLedger/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionLedger/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionLedger/ProcessControl.cs	(revision 301)
@@ -318,6 +318,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -380,6 +383,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -442,6 +448,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -504,6 +513,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -566,6 +578,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -627,6 +642,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -690,6 +708,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -753,6 +774,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -802,6 +826,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -853,6 +880,9 @@
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.FormClosed += new FormClosedEventHandler(ReLoadLedgerData);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionLedgerList/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionLedgerList/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionLedgerList/ProcessControl.cs	(revision 301)
@@ -318,6 +318,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -380,6 +383,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -442,6 +448,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -504,6 +513,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -566,6 +578,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -627,6 +642,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -690,6 +708,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -753,6 +774,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -802,6 +826,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -852,6 +879,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/DRConstruction/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/DRConstruction/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/DRConstruction/ProcessControl.cs	(revision 301)
@@ -318,6 +318,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -380,6 +383,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -442,6 +448,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -504,6 +513,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -566,6 +578,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -627,6 +642,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -690,6 +708,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -753,6 +774,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -802,6 +826,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -848,6 +875,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/DepExpenssList/FrmDepExpenssListAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/DepExpenssList/FrmDepExpenssListAuxiliary.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/DepExpenssList/FrmDepExpenssListAuxiliary.cs	(revision 301)
@@ -77,15 +77,15 @@
         {
             try
             {
-                Point po = this.DesktopLocation;
                 bool ReloadFlg = false;
 
                 int ProcessNo = (int)ClsExcute.ProcessExecuteNo.ConstructionLedgerList;
                 // �t�H�[��������΍őO�ʂ�
                 FrmLedgerStatus frm = (FrmLedgerStatus)ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle;
-                // �\���S���҂������Ȃ�Ώ������Ȃ�
+                
                 if (frm != null)
                 {
+                    // �\���S���҂������Ȃ�Ώ������Ȃ�
                     if (frm.NowPersonCode == para_PersonCode)
                     {
                         frm.Activate();
@@ -93,7 +93,6 @@
                     }
 
                     ReloadFlg = true;
-                    po = frm.DesktopLocation;
                     // �t�H�[�����N���[�Y����
                     TerminatingProcess();
                 }
@@ -133,16 +132,14 @@
                 frm.Show();
 
                 // �\���ʒu�ύX
-                Point parentPO = frm.Location;
                 if (ReloadFlg)
                 {
+                    Point po = this.DesktopLocation;
                     frm.DesktopLocation = po;
                 }
                 else
                 {
-                    parentPO.X += CommonDefine.s_DefalutShiftValue;
-                    parentPO.Y += CommonDefine.s_DefalutShiftValue;
-                    frm.Location = parentPO;
+                    frm.Location = CommonMotions.SetFormPosion(this.Location);
                 }
 
             }
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/EstimateBudget/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/EstimateBudget/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/EstimateBudget/ProcessControl.cs	(revision 301)
@@ -318,6 +318,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -380,6 +383,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -442,6 +448,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -504,6 +513,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -566,6 +578,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -627,6 +642,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -690,6 +708,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -753,6 +774,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -802,6 +826,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -848,6 +875,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/EstimateInput/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/EstimateInput/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/EstimateInput/ProcessControl.cs	(revision 301)
@@ -318,6 +318,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -380,6 +383,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -442,6 +448,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -504,6 +513,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -566,6 +578,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -627,6 +642,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -690,6 +708,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -753,6 +774,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -802,6 +826,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -848,6 +875,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/EstimatePrint/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/EstimatePrint/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/EstimatePrint/ProcessControl.cs	(revision 301)
@@ -318,6 +318,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -380,6 +383,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -442,6 +448,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -504,6 +513,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -566,6 +578,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -627,6 +642,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -690,6 +708,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -753,6 +774,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -802,6 +826,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -848,6 +875,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Material/MaterialReserveEntry/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Material/MaterialReserveEntry/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Material/MaterialReserveEntry/ProcessControl.cs	(revision 301)
@@ -314,6 +314,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -358,6 +361,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -402,6 +408,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -446,6 +455,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -490,6 +502,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -533,6 +548,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -577,6 +595,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -621,6 +642,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -665,6 +689,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -709,6 +736,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Material/MaterialReturnEntry/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Material/MaterialReturnEntry/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Material/MaterialReturnEntry/ProcessControl.cs	(revision 301)
@@ -314,6 +314,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -358,6 +361,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -402,6 +408,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -446,6 +455,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -490,6 +502,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -533,6 +548,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -577,6 +595,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -621,6 +642,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -665,6 +689,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -709,6 +736,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Proceedings/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Proceedings/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Proceedings/ProcessControl.cs	(revision 301)
@@ -318,6 +318,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -380,6 +383,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -442,6 +448,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -504,6 +513,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -566,6 +578,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -627,6 +642,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -690,6 +708,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -753,6 +774,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -802,6 +826,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -848,6 +875,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/CreateNewTabPage.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/CreateNewTabPage.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/CreateNewTabPage.cs	(revision 301)
@@ -868,6 +868,21 @@
                 NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.LedgerLine].Visible = false;
                 NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.LedgerLine].Width = 5;
 
+                // 予算書金額
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.BudgetValue].HeaderText = "予算書金額";
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.BudgetValue].Name = string.Format("Group1TextBoxColumnBudgetValue{0}", PageCount);
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.BudgetValue].Visible = false;
+
+                // 前回入力値
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.PreviousValue].HeaderText = "前回入力値";
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.PreviousValue].Name = string.Format("Group1TextBoxColumnPreviousValue{0}", PageCount);
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.PreviousValue].Visible = false;
+                
+                // 計算対象フラグ
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.DataType].HeaderText = "計算対象フラグ";
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.DataType].Name = string.Format("Group1TextBoxColumnDataTypeFlag{0}", PageCount);
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.DataType].Visible = false;
+
                 // DafaultCellStyle
                 NewPage.Group1CellDefaultStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
                 NewPage.Group1CellDefaultStyle.BackColor = System.Drawing.SystemColors.Control;
@@ -899,7 +914,10 @@
                 NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.UnitPrice],
                 NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.PriceValue],
                 NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.SourceCode],
-                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.LedgerLine]});
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.LedgerLine],
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.BudgetValue],
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.PreviousValue],
+                NewPage.Group1TextBoxColumn[(int)DispDetailGridColumn.DataType]});
                 wrkGrid.Location = new System.Drawing.Point(8, 20);
                 wrkGrid.Name = string.Format("dgvAllDisplay{0}", PageCount);
                 wrkGrid.RowHeadersVisible = false;
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmOrderEntryListAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmOrderEntryListAuxiliary.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmOrderEntryListAuxiliary.cs	(revision 301)
@@ -207,6 +207,7 @@
                 strSQL.AppendFormat(" AND A.GROUPCOUNT = {0}", (int)FrmConstructionLedger.DataGroup.ConstructionCosts);
                 strSQL.Append(" AND A.COMPANYCODE > 0");
                 strSQL.AppendFormat(" AND A.COMPANYTYPE <> {0}", (int)CommonDefine.CodeDataType.Person);
+                strSQL.AppendFormat(" AND A.PurchaseOrderFlg > {0}", (int)ConstructionLedgerDetail.PurOrderFlgDef.ChangeOld);
 
                 strSQL.AppendFormat(" AND ((ConstrType.PublicFlg != {0}", (int)ConstructionTypeMaster.ConstructionTypeDef.Community);
                 strSQL.Append("       AND (A.SOURCECODE, A.COMPANYCODE) IN (SELECT SUMTBL.SOURCECODE, SUMTBL.COMPANYCODE");
@@ -230,6 +231,8 @@
 
                 strSQL.Append(" AND NOT EXISTS (SELECT * FROM purchaseorderdetail AS C, purchaseorder AS D");
                 strSQL.Append(" WHERE C.ConstructionCode = A.SourceCode");
+                strSQL.Append(" AND C.SourceLineCnt = A.LineCount");
+                strSQL.AppendFormat(" And C.GroupCount = {0}", (int)PurchaseOrderDetail.GroupCountDef.Detail);
                 strSQL.Append(" AND D.ConstructionCode = C.ConstructionCode");
                 strSQL.Append(" AND D.SeqNo = C.SeqNo");
                 strSQL.Append(" AND D.CompanyCode = A.CompanyCode");
@@ -241,7 +244,7 @@
                 strSQL.Append(", A.FIRSTSTRING");
                 strSQL.Append(", A.SECONDSTRING");
                 strSQL.Append(", A.COMPANYCODE AS COMPANYCODE");
-                strSQL.Append(", A.COMPANYNAME");
+                strSQL.Append(", H.COMPANYNAME");
 
                 strSQL.Append(", Case ifnull(F.OrderPrice, 0)");
 	            strSQL.Append(" When 0 Then A.EXECUTIONAMOUNT");
@@ -276,6 +279,8 @@
                 strSQL.Append(" LEFT JOIN PROCESSAPPROVALDETAIL G ON G.CONSTRUCTIONCODE = E.CONSTRUCTIONCODE");
                 strSQL.AppendFormat(" AND G.APPROVALCODE = {0} AND G.LINKCODE = E.SEQNO", (int)ClsExcute.ApprovalListNo.PurchaseOrderEntryApproval);
 
+                strSQL.Append(" LEFT JOIN subcontractormaster H ON H.CompanyCode = F.CompanyCode");
+
                 strSQL.Append(" LEFT JOIN PROCESSAPPROVAL C ON C.CONSTRUCTIONCODE = G.CONSTRUCTIONCODE");
                 strSQL.AppendFormat(" AND C.APPROVALCODE = {0}", (int)ClsExcute.ApprovalListNo.PurchaseOrderEntryApproval);
                 strSQL.Append(" AND C.ORDERNO = G.ORDERNO AND C.SEQNO = 1");
@@ -724,6 +729,8 @@
 
                 int TargetCode = ClsProcessExist.GetParentConstrCode(m_ConstructionCode);
 
+                DetailDB.connect(); DetailDB.beginTran();
+
                 StringBuilder strUpdate = new StringBuilder();
                 // まず作成対象外を元にもどす
                 if (strDispAllData.ToString().Length > 0)
@@ -734,7 +741,7 @@
                     strUpdate.AppendFormat(" AND PURCHASEORDERFLG = {0}", (int)ConstructionLedgerDetail.PurOrderFlgDef.NotMakingData);
                     strUpdate.AppendFormat(" AND LINECOUNT IN ({0})", strDispAllData.ToString());
 
-                    DetailDB.ExecuteNonQuery(strUpdate.ToString());
+                    DetailDB.ExecuteNonQuery(strUpdate.ToString(), false);
                 }
 
                 // 次に作成対象外に設定されたものを更新する
@@ -746,8 +753,12 @@
                     strUpdate.AppendFormat(" AND GROUPCOUNT = {0}", (int)FrmConstructionLedger.DataGroup.ConstructionCosts);
                     strUpdate.AppendFormat(" AND LINECOUNT IN ({0})", strNotMake.ToString());
 
-                    DetailDB.ExecuteNonQuery(strUpdate.ToString());
+                    if (!DetailDB.ExecuteNonQuery(strUpdate.ToString(), false))
+                    {
+                        DetailDB.rollback();
+                    }
                 }
+                DetailDB.commit();
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntry.Designer.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntry.Designer.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntry.Designer.cs	(revision 301)
@@ -148,6 +148,9 @@
             this.Column8 = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.Column11 = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.Column12 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.ColDataFlg = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.label15 = new System.Windows.Forms.Label();
             this.TabCollections = new System.Windows.Forms.TabControl();
             this.btnOtherProc = new System.Windows.Forms.Button();
@@ -255,9 +258,9 @@
             this.lblFixComment.ForeColor = System.Drawing.Color.Red;
             this.lblFixComment.Location = new System.Drawing.Point(820, 88);
             this.lblFixComment.Name = "lblFixComment";
-            this.lblFixComment.Size = new System.Drawing.Size(452, 16);
+            this.lblFixComment.Size = new System.Drawing.Size(435, 16);
             this.lblFixComment.TabIndex = 98;
-            this.lblFixComment.Text = "※金額変更時の法定福利費は8.0%で手計算してください。";
+            this.lblFixComment.Text = "※金額変更時の法定福利費は8.0%で自動計算されます。";
             this.lblFixComment.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
             // 
             // lblLabel01
@@ -1413,7 +1416,10 @@
             this.Column7,
             this.Column8,
             this.Column11,
-            this.Column12});
+            this.Column12,
+            this.Column1,
+            this.Column2,
+            this.ColDataFlg});
             this.dgvAllDisplay.EnableHeadersVisualStyles = false;
             this.dgvAllDisplay.Location = new System.Drawing.Point(8, 20);
             this.dgvAllDisplay.Name = "dgvAllDisplay";
@@ -1533,6 +1539,24 @@
             this.Column12.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
             this.Column12.Width = 150;
             // 
+            // Column1
+            // 
+            this.Column1.HeaderText = "予算書金額";
+            this.Column1.Name = "Column1";
+            this.Column1.Visible = false;
+            // 
+            // Column2
+            // 
+            this.Column2.HeaderText = "前回入力値";
+            this.Column2.Name = "Column2";
+            this.Column2.Visible = false;
+            // 
+            // ColDataFlg
+            // 
+            this.ColDataFlg.HeaderText = "計算対象フラグ";
+            this.ColDataFlg.Name = "ColDataFlg";
+            this.ColDataFlg.Visible = false;
+            // 
             // label15
             // 
             this.label15.BackColor = System.Drawing.Color.Cyan;
@@ -1753,6 +1777,7 @@
         private System.Windows.Forms.ComboBox comboBox2;
         private System.Windows.Forms.Button btnPageDelete;
         private System.Windows.Forms.Button btnChangeCompany;
+        private System.Windows.Forms.Label lblFixComment;
         private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
         private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
         private System.Windows.Forms.DataGridViewTextBoxColumn Column14;
@@ -1763,6 +1788,8 @@
         private System.Windows.Forms.DataGridViewTextBoxColumn Column8;
         private System.Windows.Forms.DataGridViewTextBoxColumn Column11;
         private System.Windows.Forms.DataGridViewTextBoxColumn Column12;
-        private System.Windows.Forms.Label lblFixComment;
+        private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
+        private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
+        private System.Windows.Forms.DataGridViewTextBoxColumn ColDataFlg;
     }
 }
\ No newline at end of file
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntry.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntry.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntry.cs	(revision 301)
@@ -91,6 +91,18 @@
             /// 工事台帳行
             /// </summary>
             LedgerLine,
+            /// <summary>
+            /// 予算書金額
+            /// </summary>
+            BudgetValue,
+            /// <summary>
+            /// 前回入力値
+            /// </summary>
+            PreviousValue,
+            /// <summary>
+            /// データタイプフラグ
+            /// </summary>
+            DataType,
         }
         #endregion
 
@@ -476,6 +488,15 @@
         /// </summary>
         private List<KeyValuePair<int, int>> m_ChangeCompany = new List<KeyValuePair<int, int>>();
 
+        /// <summary>
+        /// 法定福利費
+        /// </summary>
+        double m_dRate = (CommonMotions.SystemMasterData.StatutoryWelfareRate / 100);
+
+        /// <summary>
+        /// 承認済みロックフラグ
+        /// </summary>
+        bool m_bApprovalLock = false;
         #endregion
 
         #region プロパティ
@@ -951,9 +972,11 @@
         }
         #endregion
 
-        // 編集前値
+        // 明細グリッド編集前値
         int m_BeforeDetailColumnCount = -1;
         int m_BeforeDetailRowCount = -1;
+        object m_objInData = new object();
+        bool m_InDataChange = false;
         #region セル入力前処理
         /// <summary>
         /// 明細グリッドIMEのコントロール
@@ -998,6 +1021,18 @@
                 m_BeforeDetailColumnCount = e.ColumnIndex;
                 m_BeforeDetailRowCount = e.RowIndex;
 
+                // 現在入力値取得
+                switch (e.ColumnIndex)
+                {
+                    case (int)DispDetailGridColumn.Quantity:            // 数量
+                    case (int)DispDetailGridColumn.UnitPrice:           // 単価
+                    case (int)DispDetailGridColumn.PriceValue:          // 金額
+                        m_objInData = dgv[e.ColumnIndex, e.RowIndex].Value;
+                        break;
+                    default:
+                        break;
+                }
+                m_InDataChange = false;
             }
             catch (Exception ex)
             {
@@ -1016,10 +1051,15 @@
         {
             try
             {
+                // 承認済みは処理しない
+                if (m_bApprovalLock) return;
+                // 値に変化が無ければ処理しない
+                if (!m_InDataChange) return;
+
                 DataGridView dgv = (DataGridView)sender;
 
                 // 明細グリッド行計算処理
-                CalculateDetailGridRow(dgv);
+                if (!CalculateDetailGridRow(dgv)) return;
 
                 // 明細グリッド合計計算処理
                 CalculateDetailGridTotal(dgv);
@@ -1236,14 +1276,29 @@
         private void dgvAllDisplay_CellValueChanged(object sender, DataGridViewCellEventArgs e)
         {
             // 入力があった位置以外はフラグを立てない
-            if (m_BeforeDetailColumnCount == e.ColumnIndex && m_BeforeDetailRowCount == e.RowIndex)
+            if (m_BeforeDetailColumnCount != e.ColumnIndex || m_BeforeDetailRowCount != e.RowIndex)
+                return;
+
+            DataGridView dgv = (DataGridView)sender;
+
+            // 現在入力値取得
+            switch (e.ColumnIndex)
             {
-                m_bChengeAns = true;
+                case (int)DispDetailGridColumn.Quantity:            // 数量
+                case (int)DispDetailGridColumn.UnitPrice:           // 単価
+                case (int)DispDetailGridColumn.PriceValue:          // 金額
+                    if (m_objInData == dgv[e.ColumnIndex, e.RowIndex].Value) return;
+                    break;
+                default:
+                    break;
             }
+
+            m_bChengeAns = true;
+            m_InDataChange = true;
         }
         #endregion
 
-        // 編集前値
+        // 条件グリッド編集前値
         int m_BeforeTermsColumnCount = -1;
         int m_BeforeTermsRowCount = -1;
         #region 条件グリッドIMEのコントロール
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntry.resx
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntry.resx	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntry.resx	(revision 301)
@@ -138,4 +138,13 @@
   <metadata name="Column12.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
+  <metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="ColDataFlg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
 </root>
\ No newline at end of file
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntryAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntryAuxiliary.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/FrmPurchaseOrderEntryAuxiliary.cs	(revision 301)
@@ -65,7 +65,7 @@
             m_DspLabelCtrl[(int)DspLblCtrlName.CompleteDate] = label11;
         
             // ここで固定文字の表示
-            lblFixComment.Text = string.Format("※金額変更時の{0}は{1}％で手計算してください。"
+            lblFixComment.Text = string.Format("※金額変更時の{0}は{1}％で自動計算されます。"
                                                                 ,s_StatutoryWelfareName
                                                                 , CommonMotions.SystemMasterData.StatutoryWelfareRate.ToString("0.0"));
         }
@@ -659,6 +659,12 @@
                     TotalPrice += DetailRec.ExecutionAmount;
                     // 工事台帳行
                     CurRow.Cells[(int)DispDetailGridColumn.LedgerLine].Value = DetailRec.LineCount;
+                    // 予算書金額
+                    CurRow.Cells[(int)DispDetailGridColumn.BudgetValue].Value = DetailRec.ExecutionAmount;
+                    // 前回入力値金額
+                    CurRow.Cells[(int)DispDetailGridColumn.PreviousValue].Value = DetailRec.ExecutionAmount;
+                    // データタイプ
+                    CurRow.Cells[(int)DispDetailGridColumn.DataType].Value = (int)PurchaseOrderDetail.DataTypeFlagDef.CommonData;
 
                     Linecnt++;
                 }
@@ -704,10 +710,8 @@
             DataGridView dgv = inputpage.Group1DataGridView;
             try
             {
-                // 法定福利費のセット 間違えて1/8にしていたため修正
-                //int WelfareValue = CommonMotions.cnvRound(TotalPrice / CommonMotions.SystemMasterData.StatutoryWelfareRate);
-                double dRate = (CommonMotions.SystemMasterData.StatutoryWelfareRate / 100);
-                int WelfareValue = CommonMotions.cnvRound(TotalPrice * dRate);
+                // 法定福利費のセット
+                int WelfareValue = CommonMotions.cnvRound(TotalPrice * m_dRate);
 
                 DataGridViewRow CurRow = dgv.Rows[Linecnt];
                 // 番号
@@ -730,7 +734,12 @@
                 CurRow.Cells[(int)DispDetailGridColumn.PriceValue].Value = WelfareValue.ToString("#,0");
                 // 元工事番号
                 CurRow.Cells[(int)DispDetailGridColumn.SourceCode].Value = 0;
+                // データタイプ
+                CurRow.Cells[(int)DispDetailGridColumn.DataType].Value = (int)PurchaseOrderDetail.DataTypeFlagDef.StatutoryWelfare;
 
+                // 法定福利費は計算のみなので行ロック
+                CurRow.ReadOnly = true;
+
                 // 元の工事金額より福利費を引く
                 //int SubtractionValue = CommonMotions.cnvRound(WelfareValue / Linecnt);
                 for (int i = 0; i < Linecnt; i++)
@@ -737,7 +746,7 @@
                 {
                     CurRow = dgv.Rows[i];
                     double work = CommonMotions.cnvInt(CurRow.Cells[(int)DispDetailGridColumn.PriceValue].Value);
-                    CurRow.Cells[(int)DispDetailGridColumn.PriceValue].Value = CommonMotions.cnvRound(work * (1 - dRate)).ToString("#,0");
+                    CurRow.Cells[(int)DispDetailGridColumn.PriceValue].Value = CommonMotions.cnvRound(work * (1 - m_dRate)).ToString("#,0");
                 }
 
                 return true;
@@ -784,14 +793,29 @@
                 this.TabCollections.TabPages.RemoveAt(0);
 
                 int icnt = 0;
+                ArrayList DetailData = new ArrayList();
                 foreach (PurchaseOrder OrderRec in OrderList)
                 {
-                    List<PurchaseOrderDetail> DetailData = new List<PurchaseOrderDetail>();
                     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;
+                    strSQL.Append("Select");
+                    strSQL.Append(" A.*");
+                    strSQL.Append(", B.ExecutionAmount");
+                    strSQL.Append(" From");
+                    strSQL.Append(" purchaseorderdetail As A");
 
+                    strSQL.Append(" Left Join constructionledgerdetail As B");
+                    strSQL.Append("   On B.SourceCode = A.ConstructionCode");
+                    strSQL.Append("   And B.ConstructionCode = A.SourceCode");
+                    strSQL.Append("   And B.LineCount = A.SourceLineCnt");
+                    
+                    strSQL.Append(DetailDB.CreatePrimarykeyString(OrderRec.ConstructionCode, OrderRec.SeqNo, 0, 0, "A."));
+                    strSQL.AppendFormat(" And A.GroupCount in ({0}, {1})", (int)PurchaseOrderDetail.GroupCountDef.Detail
+                                                                        , (int)PurchaseOrderDetail.GroupCountDef.StatutoryWelfare);
+
+                    strSQL.Append(" ORDER BY A.GroupCount ASC, A.LineCount ASC");
+                    DetailData.Clear();
+                    if (!DetailDB.ExecuteReader(strSQL.ToString(), ref DetailData)) continue;
+
                     // ページ追加
                     PurchaseOrderInputPage inputpage = new PurchaseOrderInputPage();
                     CreateNewPage(ref inputpage, icnt, OrderRec.OrderSheetType);
@@ -803,7 +827,7 @@
                     // ページデータをセットする
                     SetPurchaseOrderPage(ref inputpage, OrderRec, icnt);
                     // 明細データをセットする
-                    SetPurchaseOrderDetail(ref inputpage, DetailData, icnt);
+                    SetPurchaseOrderDetail(ref inputpage, DetailData, icnt, DetailDB);
                     icnt++;
                 }
 
@@ -939,15 +963,22 @@
         /// 注文書明細データよりデータをセットする
         /// </summary>
         /// <returns></returns>
-        private void SetPurchaseOrderDetail(ref PurchaseOrderInputPage inputpage, List<PurchaseOrderDetail> DetailList, int PageCount)
+        private void SetPurchaseOrderDetail(ref PurchaseOrderInputPage inputpage
+                                            , ArrayList DetailList
+                                            , int PageCount
+                                            , IOPurchaseOrderDetail DetailDB)
         {
             try
             {
+                int DetailFeildCnt = Enum.GetNames(typeof(IOPurchaseOrderDetail.TableColumn)).Length;
                 // 明細グリッド表示
                 int iRow = 0;
                 double PriceValueValue = 0;
-                foreach (PurchaseOrderDetail DetailRec in DetailList)
+                PurchaseOrderDetail DetailRec = new PurchaseOrderDetail();
+                foreach (object[] ObjRec in DetailList)
                 {
+                    DetailDB.Reader2Struct(ObjRec, ref DetailRec);
+
                     // 明細データのみを対象にする
                     if (DetailRec.GroupCount != (int)PurchaseOrderDetail.GroupCountDef.Detail
                         && DetailRec.GroupCount != (int)PurchaseOrderDetail.GroupCountDef.StatutoryWelfare)
@@ -966,10 +997,19 @@
                     GetRow.Cells[(int)DispDetailGridColumn.PriceValue].Value = DetailRec.OrdersLinePrice.ToString("#,0");       // 金額
                     GetRow.Cells[(int)DispDetailGridColumn.SourceCode].Value = DetailRec.SourceCode;                            // 元工事番号
                     GetRow.Cells[(int)DispDetailGridColumn.LedgerLine].Value = DetailRec.SourceLineCnt;                         // 元台帳行番号
+                    GetRow.Cells[(int)DispDetailGridColumn.DataType].Value = DetailRec.DataTypeFlag;                            // データタイプ
 
+                    GetRow.Cells[(int)DispDetailGridColumn.BudgetValue].Value = CommonMotions.cnvInt(ObjRec[DetailFeildCnt]);   // 予算書金額
+                    GetRow.Cells[(int)DispDetailGridColumn.PreviousValue].Value = CommonMotions.cnvDouble(ObjRec[DetailFeildCnt])
+                                                                                  * (1.0 - m_dRate);                            // 前回入力値金額
+
                     // 金額集計
                     PriceValueValue += DetailRec.OrdersLinePrice;
 
+                    // 法定福利費は行ロック
+                    if (DetailRec.DataTypeFlag == (int)PurchaseOrderDetail.DataTypeFlagDef.StatutoryWelfare)
+                        GetRow.ReadOnly = true;
+                        
                     iRow++;
                 }
                 // グリッド合計表示
@@ -978,8 +1018,10 @@
                 // 条件グリッド
                 iRow = Group4GridStaticString.Length;
 
-                foreach (PurchaseOrderDetail DetailRec in DetailList)
+                foreach (object[] ObjRec in DetailList)
                 {
+                    DetailDB.Reader2Struct(ObjRec, ref DetailRec);
+
                     DataGridViewRow GetRow = inputpage.Group4DataGridView.Rows[iRow];
                     // 条件データのみを対象にする
                     if (DetailRec.GroupCount == (int)PurchaseOrderDetail.GroupCountDef.Detail
@@ -1001,7 +1043,7 @@
         /// <summary>
         /// 台帳発注金額テーブル
         /// </summary>
-        private List<KeyValuePair<int, int>> LedgerOrderPrice = new List<KeyValuePair<int, int>>();
+        private List<KeyValuePair<int, int>> m_LedgerOrderPrice = new List<KeyValuePair<int, int>>();
         #endregion
 
         #region 台帳発注金額テーブル作成
@@ -1013,11 +1055,14 @@
             IOConstructionLedgerDetail LedgerDDB = new IOConstructionLedgerDetail();
             try
             {
-                LedgerOrderPrice.Clear();
+                m_LedgerOrderPrice.Clear();
 
                 StringBuilder strSQL = new StringBuilder();
-                strSQL.Append("SELECT COMPANYCODE, SUM(EXECUTIONAMOUNT) FROM CONSTRUCTIONLEDGERDETAIL");
-                strSQL.AppendFormat(" WHERE CONSTRUCTIONCODE = {0}", m_ConstructionCode);
+                strSQL.Append("SELECT");
+                strSQL.Append(" COMPANYCODE");
+                strSQL.Append(", SUM(EXECUTIONAMOUNT)");
+                strSQL.Append(" FROM CONSTRUCTIONLEDGERDETAIL");
+                strSQL.AppendFormat(" WHERE SOURCECODE = {0}", m_ConstructionCode);
                 strSQL.AppendFormat(" AND GROUPCOUNT = {0}", (int)FrmConstructionLedger.DataGroup.ConstructionCosts);
                 strSQL.AppendFormat(" AND PURCHASEORDERFLG = {0}", (int)ConstructionLedgerDetail.PurOrderFlgDef.Making);
                 strSQL.Append(" GROUP BY COMPANYCODE ORDER BY COMPANYCODE");
@@ -1025,7 +1070,7 @@
                 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])));
+                    m_LedgerOrderPrice.Add(new KeyValuePair<int, int>(CommonMotions.cnvInt(objRec[0]), CommonMotions.cnvInt(objRec[1])));
                 }
             }
             catch (System.Exception ex)
@@ -1050,7 +1095,7 @@
             try
             {
                 int iRet = 0;
-                foreach (KeyValuePair<int, int> CurValue in LedgerOrderPrice)
+                foreach (KeyValuePair<int, int> CurValue in m_LedgerOrderPrice)
                 {
                     if (CompanyCode == CurValue.Key)
                     {
@@ -1212,19 +1257,21 @@
                     {
                         OrderDB.rollback();
                         DetailDB.rollback();
+                        LDetailDB.rollback();
                         return false;
                     }
 
                     // 注文書明細データ登録処理
-                    if (!EntryPurchaseOrderDetail(DetailDB, DataTab, SeqCnt))
+                    if (!EntryPurchaseOrderDetail(DetailDB, LDetailDB, DataTab, SeqCnt))
                     {
                         OrderDB.rollback();
                         DetailDB.rollback();
+                        LDetailDB.rollback();
                         return false;
                     }
 
                     // 工事台帳の注文書作成フラグ更新
-                    if (!UpdateLedgerDetail(LDetailDB, DataTab, SeqCnt))
+                    if (!UpdateLedgerDetail(LDetailDB, DataTab))
                     {
                         OrderDB.rollback();
                         DetailDB.rollback();
@@ -1612,7 +1659,10 @@
         /// 注文書明細データの登録処理
         /// </summary>
         /// <returns></returns>
-        private bool EntryPurchaseOrderDetail(IOPurchaseOrderDetail DetailDB, PurchaseOrderInputPage DataTab, int SeqNo)
+        private bool EntryPurchaseOrderDetail(IOPurchaseOrderDetail DetailDB
+                                                ,IOConstructionLedgerDetail LDetailDB
+                                                , PurchaseOrderInputPage DataTab
+                                                , int SeqNo)
         {
             try
             {
@@ -1631,6 +1681,16 @@
                         CommonMotions.cnvInt(GetRow.Cells[(int)DispDetailGridColumn.Quantity].Value) == 0 &&
                         CommonMotions.cnvDouble(GetRow.Cells[(int)DispDetailGridColumn.PriceValue].Value) == 0) continue;
 
+                    // 業者変更時は台帳データを新規作成して行番号を取得する
+                    if (DataTab.CompanyChange
+                        && CommonMotions.cnvInt(GetRow.Cells[(int)DispDetailGridColumn.GroupNo].Value) == (int)PurchaseOrderDetail.DataTypeFlagDef.CommonData)
+                    {
+                        // 元台帳行番号変更
+                        int nSourceLineCnt = 0;
+                        if (!CreateRowLedgerDetail(LDetailDB, DataTab, GetRow, ref nSourceLineCnt)) return false;
+                        GetRow.Cells[(int)DispDetailGridColumn.LedgerLine].Value = nSourceLineCnt;
+                    }
+
                     PurchaseOrderDetail DatailRec = new PurchaseOrderDetail();
                     DatailRec.ConstructionCode = m_ConstructionCode;	                                                            // 工事番号
                     DatailRec.SeqNo = SeqNo;                                                                                        // 注文書枝番
@@ -1646,9 +1706,14 @@
                     DatailRec.OrdersLinePrice = CommonMotions.cnvDouble(GetRow.Cells[(int)DispDetailGridColumn.PriceValue].Value);  // 金額
                     DatailRec.SourceCode = CommonMotions.cnvInt(GetRow.Cells[(int)DispDetailGridColumn.SourceCode].Value);          // 元工事番号
                     DatailRec.SourceLineCnt = CommonMotions.cnvInt(GetRow.Cells[(int)DispDetailGridColumn.LedgerLine].Value);       // 元台帳行番号
+                    DatailRec.DataTypeFlag = CommonMotions.cnvInt(GetRow.Cells[(int)DispDetailGridColumn.DataType].Value);          // データタイプ
 
                     // データ書込み
-                    if (!DetailDB.InsertAction(DatailRec, false)) return false;
+                    if (!DetailDB.InsertAction(DatailRec, false))
+                    {
+                        LogicalErrorMessage("注文書明細データ：明細登録に失敗しました。", "登録エラー", CommonMotions.GetMethodName());
+                        return false;
+                    }
                 }
 
                 // 簡易版と正規版ではグループ番号が違う
@@ -1679,7 +1744,7 @@
                     // データ書込み
                     if (!DetailDB.InsertAction(DatailRec, false))
                     {
-                        LogicalErrorMessage("注文書明細データ：登録に失敗しました。", "登録エラー", CommonMotions.GetMethodName());
+                        LogicalErrorMessage("注文書明細データ：条件登録に失敗しました。", "登録エラー", CommonMotions.GetMethodName());
                         return false;
                     }
                 }
@@ -1691,9 +1756,91 @@
                 logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
                 return false;
             }
-            finally
+        }
+        #endregion
+
+        #region 業者変更時新規台帳行データ作成
+        /// <summary>
+        /// 業者変更時新規台帳行データ作成
+        /// </summary>
+        /// <returns></returns>
+        private bool CreateRowLedgerDetail(IOConstructionLedgerDetail LDetailDB
+                                            , PurchaseOrderInputPage DataTab
+                                            , DataGridViewRow GetRow
+                                            , ref int nLineCnt)
+        {
+            try
             {
+                StringBuilder strSQL = new StringBuilder();
+
+                // 台帳の追加行位置を取得する
+                int ConstrCode = CommonMotions.cnvInt(GetRow.Cells[(int)DispDetailGridColumn.SourceCode].Value);
+                int GrpCnt = (int)FrmConstructionLedger.DataGroup.ConstructionCosts;
+                int LedgerLineCnt = CommonMotions.cnvInt(GetRow.Cells[(int)DispDetailGridColumn.LedgerLine].Value);
+                
+                strSQL.Append(LDetailDB.CreatePrimarykeyString(ConstrCode, GrpCnt));
+                nLineCnt = LDetailDB.SelectMaxLineCount(strSQL.ToString(), false) + 1;
+
+                strSQL.Clear();
+                strSQL.Append("Insert INTO ConstructionLedgerDetail");
+                strSQL.Append(" SELECT");
+                strSQL.Append(" A.ConstructionCode");                       // 工事番号
+                strSQL.Append(", A.GroupCount");                            // グループ番号
+                strSQL.AppendFormat(", {0}", nLineCnt);                     // 行番号
+                strSQL.Append(", A.ComponentCode");                         // 構成キー
+                strSQL.Append(", A.ItemCode");		                        // 工種キー
+                strSQL.Append(", A.FirstString");                           // 項目名称
+                strSQL.Append(", A.SecondString");                          // 工事内容
+                strSQL.Append(", A.CompanyType");                           // 協力会社コードタイプ
+                strSQL.AppendFormat(", {0}",DataTab.OrderCompanyCode);      // 協力会社コード
+                strSQL.Append(", B.CompanyName");                           // 協力会社名称
+                strSQL.Append(", A.EstimatePrice");                         // 予算（見積）金額
+                strSQL.Append(", A.ExecutionAmount");                       // 実行金額
+                strSQL.Append(", A.AmountConfigRate");                      // 金額構成率
+                strSQL.Append(", A.PaymentBurden");                         // 支払補填額
+                strSQL.Append(", A.FixDataFlg");                            // 固定データフラグ
+                strSQL.Append(", A.IndependentFlg");                        // 独立データフラグ
+                strSQL.Append(", A.FluctuationFlg");                        // 増減データフラグ
+                strSQL.Append(", A.SalaryFlg");                             // 給与振分区分
+                strSQL.Append(", A.SalaryDays");                            // 給与振分日数
+                strSQL.Append(", A.OperatingFlg");                          // 担当中フラグ
+                strSQL.Append(", A.SourceCode");                            // 元工事番号
+                strSQL.Append(", A.JoinTitleFlg");                          // 工事名称タイトル
+                strSQL.Append(", A.SalaryOnRegist");                        // 登録時月額給与
+                strSQL.AppendFormat(", {0}", (int)ConstructionLedgerDetail.PurOrderFlgDef.Making);  // 注文書発行フラグ
+                strSQL.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", DateTime.Now);
+                strSQL.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", DateTime.Now);
+                strSQL.Append(" FROM ConstructionLedgerDetail As A");
+                strSQL.Append(" Left Join subcontractormaster As B On B.CompanyCode = A.CompanyCode");
+
+                strSQL.Append(LDetailDB.CreatePrimarykeyString(ConstrCode, GrpCnt, LedgerLineCnt));
+
+                if (!LDetailDB.ExecuteNonQuery(strSQL.ToString(), false))
+                {
+                    LogicalErrorMessage("工事詳細台帳データ：新規行登録に失敗しました。", "登録エラー", CommonMotions.GetMethodName());
+                    return false;
+                }
+
+                // 変更前業者行更新
+                strSQL.Clear();
+                strSQL.Append(LDetailDB.CreatePrimarykeyString(ConstrCode, GrpCnt, LedgerLineCnt));
+                if (!LDetailDB.UpdateFeild(strSQL.ToString()
+                                            , (int)IOConstructionLedgerDetail.TableColumn.PurchaseOrderFlg
+                                            , (int)ConstructionLedgerDetail.PurOrderFlgDef.ChangeOld
+                                            , false))
+                {
+                    LogicalErrorMessage("注文書データ：業者変更フラグ更新に失敗しました。", "更新エラー", CommonMotions.GetMethodName());
+                    return false;
+                }
+
+
+                return true;
             }
+            catch (System.Exception ex)
+            {
+                logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
+                return false;
+            }
         }
         #endregion
 
@@ -1702,7 +1849,7 @@
         /// 工事台帳更新処理
         /// </summary>
         /// <returns></returns>
-        private bool UpdateLedgerDetail(IOConstructionLedgerDetail LDetailDB, PurchaseOrderInputPage DataTab, int SeqNo)
+        private bool UpdateLedgerDetail(IOConstructionLedgerDetail LDetailDB, PurchaseOrderInputPage DataTab)
         {
             try
             {
@@ -1709,21 +1856,14 @@
                 int QuantityVal = 0;
                 int PriceVal = 0;
                 int LedgerLine = 0;
-                bool ChangeCompany = false;
-                int BeforeCode = 0;
+                int TargetCode = 0;
                 StringBuilder strSQL = new StringBuilder();
-                int TargetCode = ClsProcessExist.GetParentConstrCode(m_ConstructionCode);
-                int TargetField = 0;
 
-                // 協力会社の変更チェック
-                ChangeCompany = ChangeCompanyTab(DataTab, ref  BeforeCode);
-
-                // 変更がない場合は処理しない
-                if (!ChangeCompany) return true;
-
                 DataGridView dgv = DataTab.Group1DataGridView;
                 foreach (DataGridViewRow CurRow in dgv.Rows)
                 {
+                    // 台帳工事番号
+                    TargetCode = CommonMotions.cnvInt(CurRow.Cells[(int)DispDetailGridColumn.SourceCode].Value);
                     // 数量
                     QuantityVal = CommonMotions.cnvInt(CurRow.Cells[(int)DispDetailGridColumn.Quantity].Value);
                     // 金額
@@ -1734,30 +1874,7 @@
                     if (QuantityVal == 0 && PriceVal == 0) continue;
                     if (LedgerLine == 0) continue;
 
-                    // ----- 変更がある場合は協力会社を対象外に変更し行追加
-                    // 協力会社名変更
-                    TargetField = (int)IOConstructionLedgerDetail.TableColumn.CompanyName;
-                    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.AppendFormat(" AND LINECOUNT = {0}", LedgerLine);
-                    if (!LDetailDB.UpdateFeild(strSQL.ToString(), TargetField, DataTab.EntryTab.Text, false))
-                    {
-                        LogicalErrorMessage("注文書データ：協力会社名称変更に失敗しました。", "更新エラー", CommonMotions.GetMethodName());
-                        return false;
-                    }
-                    // 協力会社コード変更
-                    TargetField = (int)IOConstructionLedgerDetail.TableColumn.CompanyCode;
-                    if (!LDetailDB.UpdateFeild(strSQL.ToString(), TargetField, DataTab.OrderCompanyCode, false))
-                    {
-                        LogicalErrorMessage("注文書データ：協力会社コード変更に失敗しました。", "更新エラー", CommonMotions.GetMethodName());
-                        return false;
-                    }
-
                     // 注文書作成フラグON
-                    TargetField = (int)IOConstructionLedgerDetail.TableColumn.PurchaseOrderFlg;
                     strSQL.Clear();
                     strSQL.Append(LDetailDB.CreatePrimarykeyString(TargetCode));
                     strSQL.AppendFormat(" AND SOURCECODE = {0}", m_ConstructionCode);
@@ -1764,7 +1881,10 @@
                     strSQL.AppendFormat(" AND GROUPCOUNT = {0}", (int)FrmConstructionLedger.DataGroup.ConstructionCosts);
                     strSQL.AppendFormat(" AND COMPANYCODE = {0}", DataTab.OrderCompanyCode);
                     strSQL.AppendFormat(" AND LINECOUNT = {0}", LedgerLine);
-                    if (!LDetailDB.UpdateFeild(strSQL.ToString(), TargetField, (int)ConstructionLedgerDetail.PurOrderFlgDef.Making, false))
+                    if (!LDetailDB.UpdateFeild(strSQL.ToString()
+                                                , (int)IOConstructionLedgerDetail.TableColumn.PurchaseOrderFlg
+                                                , (int)ConstructionLedgerDetail.PurOrderFlgDef.Making
+                                                , false))
                     {
                         LogicalErrorMessage("注文書データ：注文書作成フラグ更新に失敗しました。", "更新エラー", CommonMotions.GetMethodName());
                         return false;
@@ -1771,8 +1891,6 @@
                     }
                 }
 
-                LDetailDB.commit();
-
                 return true;
             }
             catch (System.Exception ex)
@@ -1999,6 +2117,8 @@
                     btnApproval.ForeColor = Color.Black;
                     // 承認済みの場合は入力できない
                     DisplayReadOnly();
+
+                    m_bApprovalLock = true;
                 }
 
                 // 承認件数の表示
@@ -2102,7 +2222,7 @@
         /// 明細グリッド行計算処理
         /// </summary>
         /// <param name="dgv"></param>
-        private void CalculateDetailGridRow(DataGridView dgv)
+        private bool CalculateDetailGridRow(DataGridView dgv)
         {
             try
             {
@@ -2109,32 +2229,45 @@
                 DataGridViewRow CurRow = dgv.CurrentRow;
                 DataGridViewCell CurCell = dgv.CurrentCell;
 
-                bool bCalculate = false;
-                switch (CurCell.ColumnIndex)
+                double QuantityCount = CommonMotions.cnvDouble(CurRow.Cells[(int)DispDetailGridColumn.Quantity].Value);
+                double UnitPriceValue = CommonMotions.cnvDouble(CurRow.Cells[(int)DispDetailGridColumn.UnitPrice].Value);
+                double PriceValue = CommonMotions.cnvDouble(CurRow.Cells[(int)DispDetailGridColumn.PriceValue].Value);
+
+                // 明細以外は処理しない
+                int nDataType = CommonMotions.cnvInt(CurRow.Cells[(int)DispDetailGridColumn.DataType].Value);
+                if (nDataType != (int)PurchaseOrderDetail.DataTypeFlagDef.CommonData) return false;
+
+                // 対象以外は計算しない
+                if (CurCell.ColumnIndex != (int)DispDetailGridColumn.Quantity               // 数量
+                    && CurCell.ColumnIndex != (int)DispDetailGridColumn.UnitPrice           // 単価
+                    && CurCell.ColumnIndex != (int)DispDetailGridColumn.PriceValue)         // 金額
                 {
-                    case (int)DispDetailGridColumn.Quantity:            // 数量
-                    case (int)DispDetailGridColumn.UnitPrice:           // 単価
-                    case (int)DispDetailGridColumn.PriceValue:          // 金額
-                        bCalculate = true;
-                        break;
+                    return false;
                 }
-                // 対象以外は計算しない
-                if (!bCalculate) return;
-                double QuantityCount = CommonMotions.cnvDouble(CurRow.Cells[(int)DispDetailGridColumn.Quantity].Value);
-                double UnitPriceValue = CommonMotions.cnvDouble(CurRow.Cells[(int)DispDetailGridColumn.UnitPrice].Value);
-                double PriceValueValue = CommonMotions.cnvDouble(CurRow.Cells[(int)DispDetailGridColumn.PriceValue].Value);
+
                 // 単価があった場合は計算する
                 if (UnitPriceValue != 0)
                 {
-                    PriceValueValue = QuantityCount * UnitPriceValue;
+                    PriceValue = QuantityCount * UnitPriceValue;
                 }
+
+                // 入力値→前回入力値セット
+                CurRow.Cells[(int)DispDetailGridColumn.PreviousValue].Value = PriceValue;
+
+                // 法定福利費を引いた値をセットする
+                PriceValue = CommonMotions.cnvRound(PriceValue * (1.0 - m_dRate));
+
+                // 値のセット
                 CurRow.Cells[(int)DispDetailGridColumn.Quantity].Value = QuantityCount.ToString("#,#");
                 CurRow.Cells[(int)DispDetailGridColumn.UnitPrice].Value = UnitPriceValue.ToString("#,#");
-                CurRow.Cells[(int)DispDetailGridColumn.PriceValue].Value = PriceValueValue.ToString("#,#");
+                CurRow.Cells[(int)DispDetailGridColumn.PriceValue].Value = PriceValue.ToString("#,#");
+
+                return true;
             }
             catch (Exception ex)
             {
                 logger.ErrorFormat("システムエラー：{0}：{1}", CommonMotions.GetMethodName(), ex.Message);
+                return false;
             }
         }
         #endregion
@@ -2148,18 +2281,44 @@
         {
             try
             {
+                // 法定福利費行
+                int nStatutoryWelfareRow = -1;
                 // 合計金額を集計する
-                double PriceValueValue = 0;
+                double PriceValue = 0;
+                double CalcBaseValue = 0;
+                double wrkValue = 0;
                 foreach (DataGridViewRow CurRow in dgv.Rows)
                 {
+                    // 法定福利費以外を対象にする
+                    int nDataType = CommonMotions.cnvInt(CurRow.Cells[(int)DispDetailGridColumn.DataType].Value);
+                    if (nDataType == (int)PurchaseOrderDetail.DataTypeFlagDef.StatutoryWelfare)
+                    {
+                        // 法定福利費行取得
+                        nStatutoryWelfareRow = CurRow.Index;
+                        continue;
+                    }
+
                     // 金額を取得
-                    PriceValueValue += CommonMotions.cnvDouble(CurRow.Cells[(int)DispDetailGridColumn.PriceValue].Value);
+                    wrkValue = CommonMotions.cnvDouble(CurRow.Cells[(int)DispDetailGridColumn.PriceValue].Value);
+                    PriceValue += wrkValue;
+
+                    // 法定福利費計算ベース金額取得
+                    if (wrkValue != 0) CalcBaseValue += (wrkValue / (1.0 - m_dRate));
                 }
+
+                // 法定福利費をセットする
+                if (nStatutoryWelfareRow < 0) return;
+                DataGridViewRow SWRow = dgv.Rows[nStatutoryWelfareRow];
+
+                double dStatutoryWelfareVal = CommonMotions.cnvRound(CalcBaseValue * m_dRate);
+                SWRow.Cells[(int)DispDetailGridColumn.PriceValue].Value = dStatutoryWelfareVal.ToString("#,0");
+
                 int TabCnt = TabCollections.SelectedIndex;
                 PurchaseOrderInputPage CurPage = m_TabPageList[TabCnt];
 
                 // 合計欄の表示
-                CurPage.Group1Label.Text = PriceValueValue.ToString("#,0");
+                PriceValue+=dStatutoryWelfareVal;
+                CurPage.Group1Label.Text = PriceValue.ToString("#,0");
                 // 発注金額更新(発注金額は変更しない 2017/03/17)
                 //CurPage.PageValueItem[(int)PageValue.OrderPrice].Text = PriceValueValue.ToString("#,0");
 
@@ -2167,9 +2326,9 @@
                 if (radioButton2.Checked)
                 {
                     // 前払い金金額
-                    CurPage.Group3TextBox[(int)Group3TextBox.PrePaymentsPrice].Text = (PriceValueValue * s_PreviousRatio).ToString("#,0");
+                    CurPage.Group3TextBox[(int)Group3TextBox.PrePaymentsPrice].Text = (PriceValue * s_PreviousRatio).ToString("#,0");
                     // 完成払い金額
-                    CurPage.Group3TextBox[(int)Group3TextBox.CompletionPaymentPrice].Text = (PriceValueValue * s_CompleteRatio).ToString("#,0");
+                    CurPage.Group3TextBox[(int)Group3TextBox.CompletionPaymentPrice].Text = (PriceValue * s_CompleteRatio).ToString("#,0");
                 }
             }
             catch (Exception ex)
@@ -2807,6 +2966,8 @@
                 // 協力会社変更リストへ追加
                 m_ChangeCompany.Add(new KeyValuePair<int, int>(DataTab.OrderCompanyCode, selRec.CompanyCode));
 
+                // 変更フラグON
+                DataTab.CompanyChange = true;
                 // 協力会社コード
                 DataTab.OrderCompanyCode = selRec.CompanyCode;
                 // 協力会社名セット
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/ProcessControl.cs	(revision 301)
@@ -288,10 +288,10 @@
                 }
 
                 // データ変更有時はデータ登録
-                if (m_bChengeAns)
-                {
-                    if (!DataEntryProcess()) return;
-                }
+                //if (m_bChengeAns)
+                //{
+                //    if (!DataEntryProcess()) return;
+                //}
 
                 // 増減工事はサブフォームを表示する
                 int SelConstrCode = m_ConstructionCode;
@@ -318,6 +318,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -351,10 +354,10 @@
                 }
 
                 // データ変更有時はデータ登録
-                if (m_bChengeAns)
-                {
-                    if (!DataEntryProcess()) return;
-                }
+                //if (m_bChengeAns)
+                //{
+                //    if (!DataEntryProcess()) return;
+                //}
 
                 // 増減工事はサブフォームを表示する
                 int SelConstrCode = m_ConstructionCode;
@@ -380,6 +383,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -413,10 +419,10 @@
                 }
 
                 // データ変更有時はデータ登録
-                if (m_bChengeAns)
-                {
-                    if (!DataEntryProcess()) return;
-                }
+                //if (m_bChengeAns)
+                //{
+                //    if (!DataEntryProcess()) return;
+                //}
 
                 // 増減工事はサブフォームを表示する
                 int SelConstrCode = m_ConstructionCode;
@@ -442,6 +448,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -475,10 +484,10 @@
                 }
 
                 // データ変更有時はデータ登録
-                if (m_bChengeAns)
-                {
-                    if (!DataEntryProcess()) return;
-                }
+                //if (m_bChengeAns)
+                //{
+                //    if (!DataEntryProcess()) return;
+                //}
 
                 // 増減工事はサブフォームを表示する
                 int SelConstrCode = m_ConstructionCode;
@@ -504,6 +513,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -537,10 +549,10 @@
                 }
 
                 // データ変更有時はデータ登録
-                if (m_bChengeAns)
-                {
-                    if (!DataEntryProcess()) return;
-                }
+                //if (m_bChengeAns)
+                //{
+                //    if (!DataEntryProcess()) return;
+                //}
 
                 // 増減工事はサブフォームを表示する
                 int SelConstrCode = m_ConstructionCode;
@@ -566,6 +578,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -599,10 +614,10 @@
                 }
 
                 // データ変更有時はデータ登録
-                if (m_bChengeAns)
-                {
-                    if (!DataEntryProcess()) return;
-                }
+                //if (m_bChengeAns)
+                //{
+                //    if (!DataEntryProcess()) return;
+                //}
 
                 // 増減工事はサブフォームを表示する
                 int SelConstrCode = m_ConstructionCode;
@@ -627,6 +642,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -660,10 +678,10 @@
                 }
 
                 // データ変更有時はデータ登録
-                if (m_bChengeAns)
-                {
-                    if (!DataEntryProcess()) return;
-                }
+                //if (m_bChengeAns)
+                //{
+                //    if (!DataEntryProcess()) return;
+                //}
 
                 // 増減工事はサブフォームを表示する
                 int SelConstrCode = m_ConstructionCode;
@@ -690,6 +708,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -723,10 +744,10 @@
                 }
 
                 // データ変更有時はデータ登録
-                if (m_bChengeAns)
-                {
-                    if (!DataEntryProcess()) return;
-                }
+                //if (m_bChengeAns)
+                //{
+                //    if (!DataEntryProcess()) return;
+                //}
 
                 // 増減工事はサブフォームを表示する
                 int SelConstrCode = m_ConstructionCode;
@@ -753,6 +774,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -785,10 +809,10 @@
                 }
 
                 // データ変更有時はデータ登録
-                if (m_bChengeAns)
-                {
-                    if (!DataEntryProcess()) return;
-                }
+                //if (m_bChengeAns)
+                //{
+                //    if (!DataEntryProcess()) return;
+                //}
 
                 // 工事詳細台帳入力起動
                 frm = new FrmConstructionLedger();
@@ -802,6 +826,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -830,10 +857,10 @@
                 }
 
                 // データ変更有時はデータ登録
-                if (m_bChengeAns)
-                {
-                    if (!DataEntryProcess()) return;
-                }
+                //if (m_bChengeAns)
+                //{
+                //    if (!DataEntryProcess()) return;
+                //}
 
                 // 交通費及び購入品等入力起動
                 frm = new FrmTAndPCosts();
@@ -848,6 +875,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/PurchaseOrderInputPage.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/PurchaseOrderInputPage.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderEntry/PurchaseOrderInputPage.cs	(revision 301)
@@ -25,6 +25,11 @@
         /// </summary>
         private int                             m_SeqNo = 0;
 
+        /// <summary>
+        /// 業者変更フラグ
+        /// </summary>
+        private bool                            m_CompanyChange = false;
+
         #region ベースタブ
         /// <summary>
         /// タブページ
@@ -193,6 +198,14 @@
             get { return m_SeqNo; }
             set { m_SeqNo = value; }
         }
+        /// <summary>
+        /// 業者変更フラグ
+        /// </summary>
+        public bool CompanyChange
+        {
+            get { return m_CompanyChange; }
+            set { m_CompanyChange = value; }
+        }
 
         #region ベースタブ
         /// <summary>
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderPrint/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderPrint/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderPrint/ProcessControl.cs	(revision 301)
@@ -318,6 +318,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -380,6 +383,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -442,6 +448,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -504,6 +513,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -566,6 +578,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -627,6 +642,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -690,6 +708,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -753,6 +774,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -802,6 +826,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -848,6 +875,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestInput/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestInput/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestInput/ProcessControl.cs	(revision 301)
@@ -317,6 +317,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -361,6 +364,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -405,6 +411,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -449,6 +458,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -493,6 +505,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -536,6 +551,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -580,6 +598,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -624,6 +645,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -668,6 +692,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -712,6 +739,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -756,6 +786,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmRequestPrintClosed);
                 frm.ShowDialog();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/FrmRequestSummaryList.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/FrmRequestSummaryList.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/FrmRequestSummaryList.cs	(revision 301)
@@ -406,14 +406,19 @@
         /// <summary>
         /// ���F�ꗗ��ʂ��̃p�����^�Ώی�
         /// </summary>
-        private int m_ParaTargetDate = 0;
+        private int m_ParaTargetMonth = 0;
 
         /// <summary>
         /// �x���S���҃R�[�h
         /// </summary>
         private int m_PaymentPersonCode = 0;
-        
+
         /// <summary>
+        /// ��t��
+        /// </summary>
+        private DateTime m_OrderDate = DateTime.MinValue;
+
+        /// <summary>
         /// �\�����̃f�[�^����
         /// </summary>
         private int m_Select_DataCount = 0;
@@ -463,10 +468,10 @@
         /// <summary>
         /// ���F�ꗗ��ʂ��̃p�����^�Ώی�
         /// </summary>
-        public int ParaTargetDate
+        public int ParaTargetMonth
         {
-            get { return m_ParaTargetDate; }
-            set { m_ParaTargetDate = value; }
+            get { return m_ParaTargetMonth; }
+            set { m_ParaTargetMonth = value; }
         }
         #endregion
 
@@ -481,6 +486,17 @@
         }
         #endregion
 
+        #region ��t��
+        /// <summary>
+        /// ��t��
+        /// </summary>
+        public DateTime OrderDate
+        {
+            get { return m_OrderDate; }
+            set { m_OrderDate = value; }
+        }
+        #endregion
+
         #region �N���t���O
         /// <summary>
         /// �N���t���O
@@ -586,27 +602,6 @@
                 // �Ώی��R���{�{�b�N�X�Z�b�g
                 LoadTargetMonth(ref m_Payday);
 
-                // �S���ҏ��F���̎擾
-                //if (ClsExcute.ProcControlPara.Count > 0)
-                //{
-                //    int cnt = ClsExcute.ProcControlPara.Count - 1;
-                //    if ((ClsExcute.ProcControlPara[cnt].ArrayParameter != null)
-                //        && (ClsExcute.ProcControlPara[cnt].ArrayParameter.Count > 0))
-                //    {
-                //        ArrayList obj = ClsExcute.ProcControlPara[cnt].ArrayParameter[0];
-                //        if ((obj[0] is PaymentApprovalInfo) == true)
-                //        {
-                //            m_PaInfo = (PaymentApprovalInfo)obj[0];
-                //            PersonCode = m_PaInfo.ApprovalPerson;
-                //            DepCode = GetDepartment(PersonCode);
-                //        }
-                //        else
-                //        {
-                //            m_PaInfo = null;
-                //        }
-                //    }
-                //}
-
                 int DepCode = 0;
                 int PersonCode = 0;
                 // �p�����[�^�����Z�b�g
@@ -665,10 +660,10 @@
                     int DepartmentCode = CommonMotions.LoginUserData.DepartmentCode;
                     // �Č��ɑ΂��Đ\��������Ă��邩���m�F����
                     bool Pettition = false;
-                    if ((m_PaInfo is PaymentApprovalInfo))
+                    if (!m_FirstFlg)
                     {
                         //Pettition = ClsApprovalPermission.CheckPersonPetition2(m_PaInfo.ApprovalPerson, ApprovalCode, m_PaInfo.ApprovalDate, (int)CommonDefine.s_Default_OrderNo);
-                        Pettition = ClsApprovalPermission.CheckPersonPetition(m_PaInfo.ApprovalPerson, ApprovalCode, m_PaInfo.ApprovalDate, (int)CommonDefine.s_Default_OrderNo);
+                        Pettition = ClsApprovalPermission.CheckPersonPetition(m_PaymentPersonCode, ApprovalCode, m_OrderDate, (int)CommonDefine.s_Default_OrderNo);
                     }
                     // ���O�C���҂����F�҂����m�F����
                     bool Approvaler = ClsApprovalPermission.CheckUserForApprover(ApprovalCode, DepartmentCode);
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/FrmRequestSummaryListAuxiliary.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/FrmRequestSummaryListAuxiliary.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/FrmRequestSummaryListAuxiliary.cs	(revision 301)
@@ -3417,7 +3417,7 @@
                 // �f�[�^�擾�@���v�E���v���v�Z����ׁA�S�Ẵf�[�^���擾����
                 if (!IoBd.ExecuteReader(sql.ToString(), ref arData)) return;
 
-                if (m_PaInfo == null)
+                if (!m_FirstFlg)
                 {
                     if (arData.Count < 1)
                     {
@@ -3424,7 +3424,7 @@
                         bNewData = true;
                         // ���j���[��ʂ���̑J�ڎ��Ƀf�[�^�������ꍇ�͐V�K�擾
                         sql.Clear();
-                        CreateSQLType2Newly(m_PaInfo, ref sql);
+                        CreateSQLType2Newly(ref sql);
                         SetSQLOrder(ref sql);
                         if (!IoBd.ExecuteReader(sql.ToString(), ref arData)) return;
                     }
@@ -4158,7 +4158,7 @@
         /// </summary>
         /// <param name="PaInfo"></param>
         /// <param name="sql"></param>
-        private void CreateSQLType2Newly(PaymentApprovalInfo PaInfo, ref StringBuilder sql)
+        private void CreateSQLType2Newly(ref StringBuilder sql)
         {
             try
             {
Index: branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/ProcessControl.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/ProcessControl.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/Request/RequestSummaryList/ProcessControl.cs	(revision 301)
@@ -341,6 +341,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBaseInfoClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -403,6 +406,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateInputClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -465,6 +471,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimatePrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -527,6 +536,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmEstimateBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -589,6 +601,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionBudgetClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -650,6 +665,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmNewOrContinueCopyClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -713,6 +731,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderEntryClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -776,6 +797,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmPurchaseOrderPrintClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -825,6 +849,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmConstructionLedgerClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
@@ -871,6 +898,9 @@
                 // クロースドハンドラをこちらで定義する
                 frm.FormClosed += new FormClosedEventHandler(FrmTAndPCostsClosed);
                 frm.Show();
+
+                // フォームをずらす
+                frm.Location = CommonMotions.SetFormPosion(this.Location);
             }
             catch (Exception ex)
             {
Index: branches/src/ProcessManagement/ProcessManagement/Properties/AssemblyInfo.cs
===================================================================
--- branches/src/ProcessManagement/ProcessManagement/Properties/AssemblyInfo.cs	(revision 300)
+++ branches/src/ProcessManagement/ProcessManagement/Properties/AssemblyInfo.cs	(revision 301)
@@ -32,7 +32,7 @@
 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を 
 // 既定値にすることができます:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.1.12")]
-[assembly: AssemblyFileVersion("1.0.1.12")]
+[assembly: AssemblyVersion("1.0.1.14")]
+[assembly: AssemblyFileVersion("1.0.1.14")]
 // Log4netを使用する
 [assembly: log4net.Config.XmlConfigurator(ConfigFile = @"log4net.config", Watch = true)]
\ No newline at end of file
