|
@@ -0,0 +1,141 @@
|
|
|
|
+unit SignReports;
|
|
|
|
+
|
|
|
|
+interface
|
|
|
|
+
|
|
|
|
+uses
|
|
|
|
+ Classes, CslJson;
|
|
|
|
+
|
|
|
|
+type
|
|
|
|
+ TSignReport = class
|
|
|
|
+ private
|
|
|
|
+ FPhaseNo: Integer;
|
|
|
|
+ FName: string;
|
|
|
|
+ FOwnerID: Integer;
|
|
|
|
+ public
|
|
|
|
+ constructor Create(APhaseNo: Integer; const AName: string; AOwnerID: Integer);
|
|
|
|
+
|
|
|
|
+ property PhaseNo: Integer read FPhaseNo;
|
|
|
|
+ property Name: string read FName;
|
|
|
|
+ property OwnerID: Integer read FOwnerID;
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
+ TSignReports = class
|
|
|
|
+ private
|
|
|
|
+ FList: TList;
|
|
|
|
+
|
|
|
|
+ procedure LoadSignReport(AStr: string);
|
|
|
|
+ procedure LoadSignReports(AInfos: TStrings);
|
|
|
|
+ public
|
|
|
|
+ constructor Create;
|
|
|
|
+ destructor Destroy; override;
|
|
|
|
+
|
|
|
|
+ function AddSignReport(APhaseNo: Integer; const AName: string; AOwnerID: Integer): TSignReport;
|
|
|
|
+ function LoadAllSignReports(const AUrl: string; AProjWebID, APhaseNo: string): Boolean;
|
|
|
|
+
|
|
|
|
+ function FindSignReport(APhaseNo: Integer; const AName: string): TSignReport;
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
+implementation
|
|
|
|
+
|
|
|
|
+uses
|
|
|
|
+ PHPWebDm, UtilMethods, ZhAPI, SysUtils;
|
|
|
|
+
|
|
|
|
+{ TSignReports }
|
|
|
|
+
|
|
|
|
+function TSignReports.AddSignReport(APhaseNo: Integer; const AName: string;
|
|
|
|
+ AOwnerID: Integer): TSignReport;
|
|
|
|
+var
|
|
|
|
+ vSignReport: TSignReport;
|
|
|
|
+begin
|
|
|
|
+ vSignReport := TSignReport.Create(APhaseNo, AName, AOwnerID);
|
|
|
|
+ FList.Add(vSignReport);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+constructor TSignReports.Create;
|
|
|
|
+begin
|
|
|
|
+ FList := TList.Create;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+destructor TSignReports.Destroy;
|
|
|
|
+begin
|
|
|
|
+ FList.Free;
|
|
|
|
+ inherited;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TSignReports.FindSignReport(APhaseNo: Integer;
|
|
|
|
+ const AName: string): TSignReport;
|
|
|
|
+var
|
|
|
|
+ i: Integer;
|
|
|
|
+ vSignReport: TSignReport;
|
|
|
|
+begin
|
|
|
|
+ Result := nil;
|
|
|
|
+ for i := 0 to FList.Count - 1 do
|
|
|
|
+ begin
|
|
|
|
+ vSignReport := TSignReport(FList.Items[i]);
|
|
|
|
+ if (vSignReport.PhaseNo = APhaseNo) and (vSignReport.Name = AName) then
|
|
|
|
+ begin
|
|
|
|
+ Result := vSignReport;
|
|
|
|
+ Break;
|
|
|
|
+ end;
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TSignReports.LoadAllSignReports(const AUrl: string; AProjWebID,
|
|
|
|
+ APhaseNo: string): Boolean;
|
|
|
|
+var
|
|
|
|
+ iResult: Integer;
|
|
|
|
+ sgsUrlResult: TStrings;
|
|
|
|
+begin
|
|
|
|
+ sgsUrlResult := TStringList.Create;
|
|
|
|
+ try
|
|
|
|
+ iResult := PHPWeb.UrlGet(AUrl, nil, sgsUrlResult);
|
|
|
|
+ case iResult of
|
|
|
|
+ 1: LoadSignReports(sgsUrlResult);
|
|
|
|
+ 0: WarningMessage('网络错误:' + sgsUrlResult[0]);
|
|
|
|
+ -1: WarningMessage('网络错误:无法连接到云端');
|
|
|
|
+ end;
|
|
|
|
+ Result := iResult = 1;
|
|
|
|
+ finally
|
|
|
|
+ sgsUrlResult.Free;
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TSignReports.LoadSignReport(AStr: string);
|
|
|
|
+var
|
|
|
|
+ vJ: TCslJson;
|
|
|
|
+ sPhaseNo, sName, sOwnerID: string;
|
|
|
|
+ iPhaseNo, iOwnerID: Integer;
|
|
|
|
+begin
|
|
|
|
+ vJ := TCslJson.Create;
|
|
|
|
+ try
|
|
|
|
+ vJ.Text := AStr;
|
|
|
|
+ sPhaseNo := vJ.Value['phaseno'];
|
|
|
|
+ sName := vJ.Value['name'];
|
|
|
|
+ sOwnerID := vJ.Value['ownuid'];
|
|
|
|
+ if (sPhaseNo <> '') and TryStrToInt(sPhaseNo, iPhaseNo) and (sName <> '') and (sOwnerID <> '') and TryStrToInt(sOwnerID, iOwnerID) then
|
|
|
|
+ AddSignReport(iPhaseNo, sName, iOwnerID);
|
|
|
|
+ finally
|
|
|
|
+ vJ.Free;
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TSignReports.LoadSignReports(AInfos: TStrings);
|
|
|
|
+var
|
|
|
|
+ i: Integer;
|
|
|
|
+begin
|
|
|
|
+ ClearObjects(FList);
|
|
|
|
+ for i := 0 to AInfos.Count - 1 do
|
|
|
|
+ LoadSignReport(AInfos[i]);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+{ TSignReport }
|
|
|
|
+
|
|
|
|
+constructor TSignReport.Create(APhaseNo: Integer; const AName: string;
|
|
|
|
+ AOwnerID: Integer);
|
|
|
|
+begin
|
|
|
|
+ FPhaseNo := APhaseNo;
|
|
|
|
+ FName := AName;
|
|
|
|
+ FOwnerID := AOwnerID;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+end.
|