MaiXinRong 4 éve
szülő
commit
39fe140b26
4 módosított fájl, 111 hozzáadás és 5753 törlés
  1. 0 5751
      Forms/MainFrm.$$$
  2. 15 0
      Forms/MainFrm.dfm
  3. 14 0
      Forms/MainFrm.pas
  4. 82 2
      Units/ProjectData.pas

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 5751
Forms/MainFrm.$$$


+ 15 - 0
Forms/MainFrm.dfm

@@ -445,6 +445,11 @@ object MainForm: TMainForm
         item
         item
           Item = dxbtnExportBillsPosExcelData
           Item = dxbtnExportBillsPosExcelData
           Visible = True
           Visible = True
+        end
+        item
+          BeginGroup = True
+          Item = dxbtnRepairMainData
+          Visible = True
         end>
         end>
     end
     end
     object dxsiEdit: TdxBarSubItem
     object dxsiEdit: TdxBarSubItem
@@ -1292,6 +1297,10 @@ object MainForm: TMainForm
       Action = actnImportPhaseData
       Action = actnImportPhaseData
       Category = 2
       Category = 2
     end
     end
+    object dxbtnRepairMainData: TdxBarButton
+      Action = actnRepairMainData
+      Category = 2
+    end
   end
   end
   object Images: TImageList
   object Images: TImageList
     DrawingStyle = dsTransparent
     DrawingStyle = dsTransparent
@@ -3506,6 +3515,12 @@ object MainForm: TMainForm
       OnExecute = actnImportPhaseDataExecute
       OnExecute = actnImportPhaseDataExecute
       OnUpdate = actnImportPhaseDataUpdate
       OnUpdate = actnImportPhaseDataUpdate
     end
     end
+    object actnRepairMainData: TAction
+      Category = 'File'
+      Caption = #20462#22797#20027#34920
+      OnExecute = actnRepairMainDataExecute
+      OnUpdate = actnRepairMainDataUpdate
+    end
   end
   end
   object dxpmTabSet: TdxBarPopupMenu
   object dxpmTabSet: TdxBarPopupMenu
     BarManager = dxBarManager
     BarManager = dxBarManager

+ 14 - 0
Forms/MainFrm.pas

@@ -197,6 +197,8 @@ type
     ilstExpend: TImageList;
     ilstExpend: TImageList;
     dxbtnImportPhaseData: TdxBarButton;
     dxbtnImportPhaseData: TdxBarButton;
     actnImportPhaseData: TAction;
     actnImportPhaseData: TAction;
+    dxbtnRepairMainData: TdxBarButton;
+    actnRepairMainData: TAction;
     procedure FormCreate(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
     procedure jtsProjectsChange(Sender: TObject; NewTab: Integer;
     procedure jtsProjectsChange(Sender: TObject; NewTab: Integer;
@@ -254,6 +256,8 @@ type
     procedure actnImportSubTenderGatherGclExcelExecute(Sender: TObject);
     procedure actnImportSubTenderGatherGclExcelExecute(Sender: TObject);
     procedure actnImportPhaseDataUpdate(Sender: TObject);
     procedure actnImportPhaseDataUpdate(Sender: TObject);
     procedure actnImportPhaseDataExecute(Sender: TObject);
     procedure actnImportPhaseDataExecute(Sender: TObject);
+    procedure actnRepairMainDataUpdate(Sender: TObject);
+    procedure actnRepairMainDataExecute(Sender: TObject);
   private
   private
     FProjectManagerFrame: TProjectManagerFrame;
     FProjectManagerFrame: TProjectManagerFrame;
     FProjectFrames: TList;
     FProjectFrames: TList;
@@ -1062,4 +1066,14 @@ begin
     CurProjectFrame.ProjectData.ImportPhaseData(sFileName);
     CurProjectFrame.ProjectData.ImportPhaseData(sFileName);
 end;
 end;
 
 
+procedure TMainForm.actnRepairMainDataUpdate(Sender: TObject);
+begin
+  TAction(Sender).Visible := _IsDebugView and Assigned(CurProjectFrame);
+end;
+
+procedure TMainForm.actnRepairMainDataExecute(Sender: TObject);
+begin
+  CurProjectFrame.ProjectData.repairMainData;
+end;
+
 end.
 end.

+ 82 - 2
Units/ProjectData.pas

@@ -161,6 +161,8 @@ type
     procedure OpenForImportMtf(const AFileName: string; APhaseIndex: Integer = -1; AStageIndex: Integer = -1);
     procedure OpenForImportMtf(const AFileName: string; APhaseIndex: Integer = -1; AStageIndex: Integer = -1);
     //-----------------------  End ---ºǫ́´ò¿ª ------------------------
     //-----------------------  End ---ºǫ́´ò¿ª ------------------------
 
 
+    procedure RepairMainData;
+
     procedure SaveDebugFile(const AFileName: string);
     procedure SaveDebugFile(const AFileName: string);
     procedure SaveTempDataBaseFile(const AFileName: string);
     procedure SaveTempDataBaseFile(const AFileName: string);
 
 
@@ -295,7 +297,7 @@ uses
   mProgressProFrm, mDataRecord, ConditionalDefines, DbTreeImport,
   mProgressProFrm, mDataRecord, ConditionalDefines, DbTreeImport,
   StrUtils, sdProvider, CalcDecimal, Math, CslJson, OrderCheckerFme,
   StrUtils, sdProvider, CalcDecimal, Math, CslJson, OrderCheckerFme,
   stgSubGatherFile, Forms, ProgressHintFrm, BillsTree, Controls,
   stgSubGatherFile, Forms, ProgressHintFrm, BillsTree, Controls,
-  stgGclSubGatherFile, rmfImportFrm;
+  stgGclSubGatherFile, rmfImportFrm, DataBaseTables;
 
 
 { TProjectData }
 { TProjectData }
 
 
@@ -2533,7 +2535,7 @@ begin
 end;
 end;
 
 
 procedure TProjectData.LoadWebSwitchChange;
 procedure TProjectData.LoadWebSwitchChange;
-var                
+var
   sgs: TStrings;
   sgs: TStrings;
   iResult: Integer;
   iResult: Integer;
   sResult: string;
   sResult: string;
@@ -2552,4 +2554,82 @@ begin
   end;
   end;
 end;
 end;
 
 
+procedure TProjectData.RepairMainData;
+
+  procedure UpdateSourceFile(const AFileName: string);
+  var
+    vCon: TADOConnection;
+    vUpdate: TUpdateProjectDB;
+  begin
+    vCon := TADOConnection.Create(nil);
+    vCon.LoginPrompt := False;
+    try
+      vCon.ConnectionString := Format(SAdoConnectStr, [AFileName]);
+      vUpdate := TUpdateProjectDB.Create;
+      vUpdate.ForceUpdate(vCon);
+    finally
+      vUpdate.Free;
+      vCon.Free;
+    end;
+  end;
+
+  procedure ExecuteSql1(ACon: TCommonConnection; const ASql: string);
+  var
+    FQuery: TADOQuery;
+  begin
+    FQuery := TADOQuery.Create(nil);
+    try
+      FQuery.Connection := ACon.Connection;
+      FQuery.SQL.Clear;
+      FQuery.SQL.Add(ASql);
+      FQuery.ExecSQL;
+    finally
+      FQuery.Free;
+    end;
+  end;
+
+  procedure CopyData(const ATable, AFile: String; ACon: TCommonConnection);
+  var
+    sSql: string;
+  begin
+    sSql := Format('Insert Into %s Select * From %s In ''%s''', [ATable, ATable, AFile]);
+    ExecuteSql1(ACon, sSql);
+  end;
+
+var
+  sFile, sTemp: String;
+  vTempCon: TCommonConnection;
+begin
+  sFile := FDebugDir + '\Main.mdb';
+  CopyFileOrFolder(GetEmptyDataBaseFileName, sFile);
+  UpdateSourceFile(sFile);
+
+  sTemp := FDebugDir + '\Temp.dat';
+  SaveDebugFile(sTemp);
+  
+  vTempCon := TCommonConnection.Create;
+  try
+    vTempCon.Open(sFile);
+
+    CopyData(SBills, sTemp, vTempCon);
+    CopyData(SProjProperties, sTemp, vTempCon);
+    CopyData(SDealPayment, sTemp, vTempCon);
+    CopyData(SBGL, sTemp, vTempCon);
+    CopyData(SBGBills, sTemp, vTempCon);
+    CopyData(SStaff, sTemp, vTempCon);
+    CopyData(SDealBills, sTemp, vTempCon);
+    CopyData(SMainDataList, sTemp, vTempCon);
+    CopyData(SDealPayFinal, sTemp, vTempCon);
+    CopyData(SProjectGL, sTemp, vTempCon);
+    CopyData(SGLPrice, sTemp, vTempCon);
+    CopyData(SDetailGL, sTemp, vTempCon);
+    CopyData(SOtherMeasureOnce, sTemp, vTempCon);
+    CopyData(SOtherMeasurePhase, sTemp, vTempCon);
+    CopyData(SOMPhaseDetail, sTemp, vTempCon);
+    CopyData(SAttachmentInfo, sTemp, vTempCon);
+  finally
+    vTempCon.Close;
+  end;
+end;
+
 end.
 end.