|
@@ -82,6 +82,8 @@ type
|
|
|
FMemoCol: Integer;
|
|
|
FLevelCol: Integer;
|
|
|
|
|
|
+ procedure CheckFixedIDNodes;
|
|
|
+
|
|
|
procedure BeginImport; override;
|
|
|
procedure EndImport; override;
|
|
|
|
|
@@ -171,7 +173,7 @@ type
|
|
|
implementation
|
|
|
|
|
|
uses Variants, CacheTree, SysUtils, UtilMethods, sdDataSet, BillsDm,
|
|
|
- DealBillsDm, SheetSelectFrm, ADODB, Math;
|
|
|
+ DealBillsDm, SheetSelectFrm, ADODB, Math, ConstUnit;
|
|
|
|
|
|
{ TExcelImport }
|
|
|
|
|
@@ -361,6 +363,10 @@ procedure TBillsEdtExcelImport.EndImport;
|
|
|
begin
|
|
|
// For Test
|
|
|
// FCacheTree.SaveTreeToFile('E:\Tree.txt');
|
|
|
+
|
|
|
+ if FWithLevelCode then
|
|
|
+ CheckFixedIDNodes;
|
|
|
+
|
|
|
FFixedIDNodes.Free;
|
|
|
FBaseTree.Free;
|
|
|
FProjectData.BillsData.EnableEvents;
|
|
@@ -598,6 +604,64 @@ begin
|
|
|
UpdateProgressPosition(100, 100);
|
|
|
end;
|
|
|
|
|
|
+procedure TBillsEdtExcelImport.CheckFixedIDNodes;
|
|
|
+
|
|
|
+ function GetHintStr(ANode: TBillsCacheNode): string;
|
|
|
+ begin
|
|
|
+ Result := '';
|
|
|
+ if ANode.Code <> '' then
|
|
|
+ Result := Result + '编号:' + ANode.Code + ';';
|
|
|
+ if ANode.Name <> '' then
|
|
|
+ Result := Result + '名称:' + ANode.Name + ';';
|
|
|
+ end;
|
|
|
+
|
|
|
+ function GetInvalidModel(ANoPM: Boolean; ACount: Integer): string;
|
|
|
+ begin
|
|
|
+ if ANoPM then
|
|
|
+ begin
|
|
|
+ if ACount > 1 then
|
|
|
+ Result := '价差功能,部分报表'
|
|
|
+ else
|
|
|
+ Result := '价差功能'
|
|
|
+ end
|
|
|
+ else
|
|
|
+ Result := '部分报表';
|
|
|
+ Result := Result + '将不可使用' + #13#10 + '如有疑问,请联系纵横客服,企业QQ:800003850 电话:(0756)3850888';
|
|
|
+ end;
|
|
|
+
|
|
|
+var
|
|
|
+ sgs: TStrings;
|
|
|
+ iBase: Integer;
|
|
|
+ vBase, vImport: TBillsCacheNode;
|
|
|
+ sHint: string;
|
|
|
+ bNoPM: Boolean;
|
|
|
+begin
|
|
|
+ bNoPM := False;
|
|
|
+ sgs := TStringList.Create;
|
|
|
+ try
|
|
|
+ sgs.Add('缺少如下固定清单节点:');
|
|
|
+ for iBase := 0 to FBaseTree.FixedIDNodes.Count - 1 do
|
|
|
+ begin
|
|
|
+ vBase := TBillsCacheNode(FBaseTree.FixedIDNodes.Items[iBase]);
|
|
|
+
|
|
|
+ vImport := FCacheTree.FindFixedIDNode(vBase.ID);
|
|
|
+ if not Assigned(vImport) then
|
|
|
+ begin
|
|
|
+ sgs.Add(GetHintStr(vBase));
|
|
|
+ if vBase.ID = iPriceMarginID then
|
|
|
+ bNoPM := True;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+ finally
|
|
|
+ if sgs.Count > 1 then
|
|
|
+ begin
|
|
|
+ sgs.Add(GetInvalidModel(bNoPM, sgs.Count - 1));
|
|
|
+ WarningMessage(sgs.Text);
|
|
|
+ end;
|
|
|
+ sgs.Free;
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
{ TBillsPriceExcelImport }
|
|
|
|
|
|
procedure TBillsPriceExcelImport.BeginImport;
|