Browse Source

1. 部分用户,网页触发登陆软件,报错问题
2. 变更管理相关
3. debug-view测试版本下,导入计量数据

MaiXinRong 5 years ago
parent
commit
06f9e611c0

+ 3 - 2
Forms/LoginFrm.pas

@@ -17,7 +17,8 @@ uses
   cxTextEdit, cxButtons, cxControls, cxEdit,
   cxTextEdit, cxButtons, cxControls, cxEdit,
   cxMaskEdit, cxDropDownEdit, HookEdit, cxContainer, XPMenu, cslLabel,
   cxMaskEdit, cxDropDownEdit, HookEdit, cxContainer, XPMenu, cslLabel,
   IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
   IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
-  CslButton, OleCtrls, SHDocVw, DB, ADODB, Menus;
+  CslButton, OleCtrls, SHDocVw, DB, ADODB, Menus,
+  UtilMethods;
   
   
 
 
 type
 type
@@ -281,7 +282,7 @@ var s: string;
 begin
 begin
   FUsersCon := TADOConnection.Create(nil);
   FUsersCon := TADOConnection.Create(nil);
   FUsersCon.LoginPrompt := False;
   FUsersCon.LoginPrompt := False;
-  s := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CloudUser.dat;Persist Security Info=False';
+  s := Format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%sCloudUser.dat;Persist Security Info=False', [GetAppFilePath]);
   FUsersCon.ConnectionString := s;
   FUsersCon.ConnectionString := s;
   FUsersQry := TADOQuery.Create(nil);
   FUsersQry := TADOQuery.Create(nil);
   FUsersQry.Connection := FUsersCon;
   FUsersQry.Connection := FUsersCon;

+ 14 - 0
Forms/MainFrm.dfm

@@ -435,6 +435,10 @@ object MainForm: TMainForm
           Visible = True
           Visible = True
         end
         end
         item
         item
+          Item = dxbtnImportPhaseData
+          Visible = True
+        end
+        item
           Item = dxbtnExportBillsJson
           Item = dxbtnExportBillsJson
           Visible = True
           Visible = True
         end
         end
@@ -1284,6 +1288,10 @@ object MainForm: TMainForm
       Hint = #23548#20986#26631#20934#28165#21333'json'#25968#25454
       Hint = #23548#20986#26631#20934#28165#21333'json'#25968#25454
       Visible = ivAlways
       Visible = ivAlways
     end
     end
+    object dxbtnImportPhaseData: TdxBarButton
+      Action = actnImportPhaseData
+      Category = 2
+    end
   end
   end
   object Images: TImageList
   object Images: TImageList
     DrawingStyle = dsTransparent
     DrawingStyle = dsTransparent
@@ -3492,6 +3500,12 @@ object MainForm: TMainForm
       OnExecute = actnImportSubTenderGatherGclExcelExecute
       OnExecute = actnImportSubTenderGatherGclExcelExecute
       OnUpdate = actnImportSubTenderGatherUpdate
       OnUpdate = actnImportSubTenderGatherUpdate
     end
     end
+    object actnImportPhaseData: TAction
+      Category = 'File'
+      Caption = #23548#20837#35745#37327#25968#25454
+      OnExecute = actnImportPhaseDataExecute
+      OnUpdate = actnImportPhaseDataUpdate
+    end
   end
   end
   object dxpmTabSet: TdxBarPopupMenu
   object dxpmTabSet: TdxBarPopupMenu
     BarManager = dxBarManager
     BarManager = dxBarManager

+ 17 - 0
Forms/MainFrm.pas

@@ -195,6 +195,8 @@ type
     ilstLarge: TImageList;
     ilstLarge: TImageList;
     ilstSmall: TImageList;
     ilstSmall: TImageList;
     ilstExpend: TImageList;
     ilstExpend: TImageList;
+    dxbtnImportPhaseData: TdxBarButton;
+    actnImportPhaseData: 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;
@@ -250,6 +252,8 @@ type
     procedure dxbtnGatherSubTenderGclClick(Sender: TObject);
     procedure dxbtnGatherSubTenderGclClick(Sender: TObject);
     procedure actnImportSubTenderGatherGclExecute(Sender: TObject);
     procedure actnImportSubTenderGatherGclExecute(Sender: TObject);
     procedure actnImportSubTenderGatherGclExcelExecute(Sender: TObject);
     procedure actnImportSubTenderGatherGclExcelExecute(Sender: TObject);
+    procedure actnImportPhaseDataUpdate(Sender: TObject);
+    procedure actnImportPhaseDataExecute(Sender: TObject);
   private
   private
     FProjectManagerFrame: TProjectManagerFrame;
     FProjectManagerFrame: TProjectManagerFrame;
     FProjectFrames: TList;
     FProjectFrames: TList;
@@ -1045,4 +1049,17 @@ begin
     CurProjectFrame.ProjectData.ImportSubTenderGatherGclExcel(sFileName);
     CurProjectFrame.ProjectData.ImportSubTenderGatherGclExcel(sFileName);
 end;
 end;
 
 
+procedure TMainForm.actnImportPhaseDataUpdate(Sender: TObject);
+begin
+  TAction(Sender).Visible := _IsDebugView;
+end;
+
+procedure TMainForm.actnImportPhaseDataExecute(Sender: TObject);
+var
+  sFileName: string;
+begin
+  if QuestMessage('导入计量数据,请确认前后标段一致,并在新增清单前导入,对于本期新增清单,导入数据可能有误,导入后请检查。') and SelectFile(sFileName, 'mtf') then
+    CurProjectFrame.ProjectData.ImportPhaseData(sFileName);
+end;
+
 end.
 end.

+ 4 - 2
Frames/BGLFme.pas

@@ -99,14 +99,16 @@ begin
   zaBGBills.DataSet := FBGLData.cdsBGBillsView;
   zaBGBills.DataSet := FBGLData.cdsBGBillsView;
   SetDxBtnAction(actnNew, tobtnNew);
   SetDxBtnAction(actnNew, tobtnNew);
 
 
-  if _IsCloud then
+  if _IsCloud and (TProjectData(ABGLData.ProjectData).WebChangeSwitch = 1) then
   begin
   begin
     zaBGL.Options := [aoAllowEdit, aoAllowDelete, aoAllowUpMove, aoAllowDownMove];
     zaBGL.Options := [aoAllowEdit, aoAllowDelete, aoAllowUpMove, aoAllowDownMove];
     zaBGL.ExtendRowCount := 0;
     zaBGL.ExtendRowCount := 0;
-    FBGLData.AfterCurrentBGLChanged := zgBGLCurrentChanged;
+    labTitle.Caption := ' ±ä¸üÁ±ä¸ü¹ÜÀí£©';  
+    zaBGBills.ExtendRowCount := 0;
   end
   end
   else
   else
     zaBGL.Options := [aoAllowInsert, aoAllowEdit, aoAllowDelete, aoAutoInsert, aoAllowUpMove, aoAllowDownMove];
     zaBGL.Options := [aoAllowInsert, aoAllowEdit, aoAllowDelete, aoAutoInsert, aoAllowUpMove, aoAllowDownMove];
+  FBGLData.AfterCurrentBGLChanged := zgBGLCurrentChanged;
 end;
 end;
 
 
 procedure TBGLFrame.actnNewExecute(Sender: TObject);
 procedure TBGLFrame.actnNewExecute(Sender: TObject);

+ 1 - 1
Frames/BillsGatherFme.pas

@@ -92,7 +92,7 @@ begin
   saDetailGcl.DataView := FBillsGatherData.sdvDetailGclBills;
   saDetailGcl.DataView := FBillsGatherData.sdvDetailGclBills;
   saDetailDeal.DataView := FBillsGatherData.sdvDetailDealBills;
   saDetailDeal.DataView := FBillsGatherData.sdvDetailDealBills;
   saDetailBGL.DataView := FBillsGatherData.sdvDetailBGLBills;
   saDetailBGL.DataView := FBillsGatherData.sdvDetailBGLBills;
-  pnlTop.Visible := _IsCloud;
+  pnlTop.Visible := _IsCloud and (TProjectData(FBillsGatherData.ProjectData).WebChangeSwitch = 1);
 end;
 end;
 
 
 destructor TBillsGatherFrame.Destroy;
 destructor TBillsGatherFrame.Destroy;

+ 20 - 0
Units/PhaseData.pas

@@ -56,6 +56,7 @@ type
     procedure SimpleOpen(const AProjectName: string);
     procedure SimpleOpen(const AProjectName: string);
     procedure SimpleSave;
     procedure SimpleSave;
     procedure SimpleOpen2(const AProjectName: string);
     procedure SimpleOpen2(const AProjectName: string);
+    procedure SimpleOpen3(const AProjectName: string; AStageIndex: Integer = -1);
 
 
     procedure CreateNewAuditData;
     procedure CreateNewAuditData;
     procedure CopyPreData;
     procedure CopyPreData;
@@ -342,4 +343,23 @@ begin
   TProjectData(FProjectData).AppendProjectLog('Save Phase Data --> End');
   TProjectData(FProjectData).AppendProjectLog('Save Phase Data --> End');
 end;
 end;
 
 
+procedure TPhaseData.SimpleOpen3(const AProjectName: string;
+  AStageIndex: Integer = -1);
+begin
+  FConnection.Open(AProjectName);
+  UpdatePhaseDataBase;
+  FPhaseProperty.Open;
+  CheckAuditCount;
+  if AStageIndex = -1 then
+    FStageIndex := FPhaseProperty.AuditCount
+  else if AStageIndex <= FPhaseProperty.AuditCount then
+    FStageIndex := FPhaseProperty.AuditCount
+  else
+    raise Exception.Create('ÊäÈëµÄ½ÇÉ«²»´æÔÚ');
+  FStageData.TableName := StageTableName[FStageIndex];
+  FStageData.Open(FConnection.Connection);
+  FPhasePayData.Open(FConnection.Connection);
+  FZJJLData.Open(FConnection.Connection);
+end;
+
 end.
 end.

+ 67 - 0
Units/ProjectCommands.pas

@@ -315,6 +315,24 @@ type
     property CheckType: TTenderZipCheckType read FCheckType write FCheckType;
     property CheckType: TTenderZipCheckType read FCheckType write FCheckType;
   end;
   end;
 
 
+  TmtfFileView = class
+  private
+    FTempFolder: string;
+    FSelect: TsdIDTreeNode;
+    FNewNode: TsdIDTreeNode;
+    FFileName: string;
+    FTenderFileName: string;
+
+    procedure LoadProjectInfo(AXmlNode: IXMLNode);
+    procedure LoadInfoFromXmlDocument(AXmlNode: IXMLNode);
+    procedure LoadXmlInfo;
+  public
+    constructor Create(const AFileName: string);
+    destructor Destroy; override;
+
+    property FileName: String read FFileName;
+  end;
+
 implementation
 implementation
 
 
 uses
 uses
@@ -1273,4 +1291,53 @@ begin
   inherited;
   inherited;
 end;
 end;
 
 
+{ TmtfFileView }
+
+constructor TmtfFileView.Create(const AFileName: string);
+begin
+  FFileName := AFileName;
+  FTempFolder := GenerateTempFolder(GetTempFilePath);
+
+  UnZipFile(FFileName, FTempFolder);
+  LoadXmlInfo;
+  FFileName := FTempFolder + '\' + FTenderFileName;
+end;
+
+destructor TmtfFileView.Destroy;
+begin
+  DeleteFileOrFolder(FTempFolder);
+  inherited;
+end;
+
+procedure TmtfFileView.LoadInfoFromXmlDocument(AXmlNode: IXMLNode);
+var
+  ChildNodes: IXMLNodeList;
+begin
+  ChildNodes := AXmlNode.ChildNodes;
+  LoadProjectInfo(ChildNodes.FindNode('ProjectInfo'));
+end;
+
+procedure TmtfFileView.LoadProjectInfo(AXmlNode: IXMLNode);
+begin
+  FTenderFileName := AXmlNode.Attributes['FileName'];
+end;
+
+procedure TmtfFileView.LoadXmlInfo;
+var
+  FXmlDocument: IXMLDocument;
+  XmlNode: IXMLNode;
+  FRootList: IXMLNodeList;
+begin
+  FXmlDocument := TXMLDocument.Create(nil) as IXMLDocument;
+  try
+    FXmlDocument.LoadFromFile(FTempFolder + '\Info.xml');
+    FXmlDocument.Options := [doNodeAutoCreate,doNodeAutoIndent,doAutoPrefix,doNamespaceDecl];
+    XmlNode := FXmlDocument.DocumentElement;
+    LoadInfoFromXmlDocument(XmlNode);
+  finally
+    FRootList := nil;
+    FXmlDocument := nil;
+  end;
+end;
+
 end.
 end.

+ 137 - 1
Units/ProjectData.pas

@@ -63,6 +63,7 @@ type
     FAttachmentData: TUpFiles;
     FAttachmentData: TUpFiles;
     FCheckers: TCheckers;
     FCheckers: TCheckers;
     FIsGuest: Boolean;
     FIsGuest: Boolean;
+    FWebChangeSwitch: Integer;
 
 
     {For Open}
     {For Open}
     procedure UpdateProjectDataBase;
     procedure UpdateProjectDataBase;
@@ -97,6 +98,8 @@ type
 
 
     procedure LoadCheckersData;
     procedure LoadCheckersData;
 
 
+    procedure LoadWebSwitchChange;
+
     function GetMainFileName: string;
     function GetMainFileName: string;
     procedure SetPhaseIndex(const Value: Integer);
     procedure SetPhaseIndex(const Value: Integer);
     function GetTempPath: string;
     function GetTempPath: string;
@@ -155,6 +158,7 @@ type
     procedure OpenForSumUpBase(const AFileName: string);
     procedure OpenForSumUpBase(const AFileName: string);
     {OpenForSumUpGather: BillsData, BillsMeasureTree, PhaseData(根据PhaseIndex指定打开),直接调用OpenForSignOnline}
     {OpenForSumUpGather: BillsData, BillsMeasureTree, PhaseData(根据PhaseIndex指定打开),直接调用OpenForSignOnline}
     procedure OpenForSumUpGather(const AFileName: string; APhaseIndex: Integer = -1);
     procedure OpenForSumUpGather(const AFileName: string; APhaseIndex: Integer = -1);
+    procedure OpenForImportMtf(const AFileName: string; APhaseIndex: Integer = -1; AStageIndex: Integer = -1);
     //-----------------------  End ---后台打开 ------------------------
     //-----------------------  End ---后台打开 ------------------------
 
 
     procedure SaveDebugFile(const AFileName: string);
     procedure SaveDebugFile(const AFileName: string);
@@ -211,6 +215,7 @@ type
     procedure ImportSubTenderGather(const AFileName: string);
     procedure ImportSubTenderGather(const AFileName: string);
     procedure ImportSubTenderGatherGcl(const AFileName: string);
     procedure ImportSubTenderGatherGcl(const AFileName: string);
     procedure ImportSubTenderGatherGclExcel(const AFileName: string);
     procedure ImportSubTenderGatherGclExcel(const AFileName: string);
+    procedure ImportPhaseData(const AFileName: string);
 
 
     function CheckPassword: Boolean;
     function CheckPassword: Boolean;
 
 
@@ -278,6 +283,8 @@ type
     property ProjectReadOnly: Boolean read FProjectReadOnly;
     property ProjectReadOnly: Boolean read FProjectReadOnly;
     property Checkers: TCheckers read FCheckers write SetCheckers;
     property Checkers: TCheckers read FCheckers write SetCheckers;
     property IsGuest: Boolean read GetIsGuest;
     property IsGuest: Boolean read GetIsGuest;
+
+    property WebChangeSwitch: Integer read FWebChangeSwitch;
   end;
   end;
 
 
 implementation
 implementation
@@ -288,7 +295,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;
+  stgGclSubGatherFile, rmfImportFrm;
 
 
 { TProjectData }
 { TProjectData }
 
 
@@ -343,6 +350,7 @@ begin
   FAttachmentData := TUpFiles.Create;
   FAttachmentData := TUpFiles.Create;
   FAttachmentInfoData := TAttachmentInfoData.Create(Self);
   FAttachmentInfoData := TAttachmentInfoData.Create(Self);
   FPhaseIndex := 0;
   FPhaseIndex := 0;
+  FWebChangeSwitch := -1;
 end;
 end;
 
 
 procedure TProjectData.CreateNewPhase;
 procedure TProjectData.CreateNewPhase;
@@ -519,6 +527,8 @@ begin
     FDebugDir := GetAppFilePath + 'Debug\' + FProjectName;
     FDebugDir := GetAppFilePath + 'Debug\' + FProjectName;
     CreateDirectoryInDeep(FDebugDir);
     CreateDirectoryInDeep(FDebugDir);
   end;
   end;
+  if _IsCloud then
+    LoadWebSwitchChange;
 end;
 end;
 
 
 procedure TProjectData.OpenLastPhaseData;
 procedure TProjectData.OpenLastPhaseData;
@@ -2414,4 +2424,130 @@ begin
   Result := not (UserIsAuthor(PHPWeb.UserID) or UserIsChecker(PHPWeb.UserID));
   Result := not (UserIsAuthor(PHPWeb.UserID) or UserIsChecker(PHPWeb.UserID));
 end;
 end;
 
 
+procedure TProjectData.ImportPhaseData(const AFileName: string);
+var
+  vMtfFile: TmtfFileView;
+  vProjectData: TProjectData;
+  vFails: TStringList;
+  iPhase, iStage: Integer;
+
+  procedure ClearOldData(AStageData: TStageData);
+  var
+    i: Integer;
+    vRec: TStageRecord;
+  begin
+    for i := 0 to AStageData.sddStage.RecordCount - 1 do
+    begin
+      vRec := TStageRecord(AStageData.sddStage.Records[i]);
+      vRec.DealQuantity.AsFloat := 0;
+      vRec.DealTotalPrice.AsFloat := 0;
+      vRec.DealFlag.AsInteger := 0;
+      vRec.DealFormula.AsString := '';
+      vRec.EndDealQuantity.AsFloat := vRec.PreDealQuantity.AsFloat;
+      vRec.EndDealTotalPrice.AsFloat := vRec.PreDealTotalPrice.AsFloat;
+    end;
+  end;
+
+  procedure ImportData(AProjectData: TProjectData);
+  var
+    vStageData: TStageData;
+    vBillsData: TBillsData;
+    i: Integer;
+    vRec, vOrgBillsRec, vBillsRec, vStageRec: TsdDataRecord;
+  begin
+    vStageData := AProjectData.PhaseData.StageData;
+    vBillsData := AProjectData.BillsData;
+    for i := 0 to vStageData.sddStage.RecordCount - 1 do
+    begin
+      vRec := vStageData.sddStage.Records[i];
+      vOrgBillsRec := vBillsData.sddBills.FindKey('idxID', vRec.ValueByName('BillsID').AsInteger);
+      if not vOrgBillsRec.ValueByName('IsLeaf').AsBoolean then Continue;
+
+      vBillsRec := BillsData.sddBills.Locate('ID', vRec.ValueByName('BillsID').AsInteger);
+      if Assigned(vBillsRec) and Assigned(vOrgBillsRec) and
+        (vBillsRec.ValueByName('Name').AsString = vOrgBillsRec.ValueByName('Name').AsString) then
+      begin
+        vStageRec := PhaseData.StageData.StageRecordWithAdd(vRec.ValueByName('BillsID').AsInteger);
+        vStageRec.ValueByName('DealQuantity').AsFloat := vRec.ValueByName('DealQuantity').AsFloat;
+      end
+      else
+        vFails.Add(Format('ID: %s', [vRec.ValueByName('BillsID').AsString]));
+    end;
+  end;
+
+begin
+  if not GetMtfImportInfo(iPhase, iStage) then
+    Exit;
+
+  Screen.Cursor := crHourGlass;
+  try
+    vFails := TStringList.Create;
+    vMtfFile := TmtfFileView.Create(AFileName);
+    vProjectData := TProjectData.Create;
+    vProjectData.OpenForImportMtf(vMtfFile.FileName, iPhase, iStage);
+
+    PhaseData.StageData.sddStage.BeginUpdate;
+    PhaseData.StageData.BeforeBatchOperation;
+    try
+      ClearOldData(PhaseData.StageData);
+      ImportData(vProjectData);
+      BillsMeasureData.ResetTreeNodeStageRec;
+      if vFails.Count > 0 then
+        WarningMessage('未能导入的清单:' + #13#10 + vFails.Text);
+    finally
+      PhaseData.StageData.AfterBatchOperation;
+      PhaseData.StageData.sddStage.EndUpdate;
+    end;
+  finally
+    Screen.Cursor := crDefault;
+    vProjectData.Free;
+    vMtfFile.Free;
+    vFails.Free;
+  end;
+end;
+
+procedure TProjectData.OpenForImportMtf(const AFileName: string;
+  APhaseIndex: Integer; AStageIndex: Integer);
+begin
+  FProjectID := -1;
+  UnZipFile(AFileName, TempPath);
+  FConnection.Open(MainFileName);
+  UpdateProjectDataBase;
+  FProjProperties.Open(FConnection.Connection);
+  UpdateOldData;
+  FBillsData.Open(FConnection.Connection);
+  if ProjProperties.PhaseCount > 0 then
+  begin
+    if APhaseIndex = -1 then
+      FPhaseIndex := ProjProperties.PhaseCount
+    else if (APhaseIndex <= ProjProperties.PhaseCount) and (APhaseIndex > 0) then
+      FPhaseIndex := APhaseIndex
+    else
+      raise Exception.Create('输入的期数不存在');
+    ProjProperties.PhaseIndex := FPhaseIndex;
+    FPhaseData.SimpleOpen3(Format('%sPhase%d.dat', [TempPath, FPhaseIndex]), AStageIndex);
+  end;
+  FBillsMeasureData.ResetTreeNodeStageRec;
+end;
+
+procedure TProjectData.LoadWebSwitchChange;
+var                
+  sgs: TStrings;
+  iResult: Integer;
+  sResult: string;
+begin           
+  sgs := TStringList.Create;
+  try     
+    sgs.Add(Format('id=%d', [FWebID]));
+    iResult := PHPWeb.UrlGet(PhPWeb.MeasureURL + 'change/switch', sgs, sResult);
+    case iResult of
+      1: FWebChangeSwitch := StrToIntDef(sResult, 0);
+      0: WarningMessage('网络错误:' + sResult);
+      -1: WarningMessage('网络错误:无法连接到云端');
+    end;
+  finally
+    sgs.Free;
+  end;
+end;
+
 end.
 end.

+ 3 - 3
Units/ReportManager.pas

@@ -771,7 +771,7 @@ end;
 function TMemoryReportManager.GetMemoryDataSet(
 function TMemoryReportManager.GetMemoryDataSet(
   ADataSetID: Integer; AProjectData: TProjectData): TDataSet;
   ADataSetID: Integer; AProjectData: TProjectData): TDataSet;
 begin
 begin
-  //ADataSetID := 62;
+  ADataSetID := 54;
   case ADataSetID of
   case ADataSetID of
     1: Result := FrmGridHeaderData.AssginData(AProjectData);   // 몹깊깊庫
     1: Result := FrmGridHeaderData.AssginData(AProjectData);   // 몹깊깊庫
     2: Result := FrmGclBillsBGData.AssignData(AProjectData, rmtPhaseGather, rmgtGather); // 묏넋좆헌데[굶퍅供냥]
     2: Result := FrmGclBillsBGData.AssignData(AProjectData, rmtPhaseGather, rmgtGather); // 묏넋좆헌데[굶퍅供냥]
@@ -813,8 +813,8 @@ begin
     59: Result := FrmWuJiuZqzfGatherData.AssignData(AProjectData);
     59: Result := FrmWuJiuZqzfGatherData.AssignData(AProjectData);
   end;
   end;
   // For Inner Test
   // For Inner Test
-  //if _IsDebugView then
-    //ShowTestForm(Result);
+  if _IsDebugView then
+    ShowTestForm(Result);
 end;
 end;
 
 
 function TMemoryReportManager.GetSqlResultDataSet(const ASql: string;
 function TMemoryReportManager.GetSqlResultDataSet(const ASql: string;