|
@@ -5,9 +5,11 @@ interface
|
|
|
uses
|
|
|
ZjGrid,
|
|
|
SysUtils, Classes, DB, DBClient, ADODB, sdIDTree, sdDB, Provider,
|
|
|
- Windows;
|
|
|
+ Windows, BillsTree;
|
|
|
|
|
|
type
|
|
|
+ TZJJLType = (ztFx, ztGcl);
|
|
|
+
|
|
|
TZJJLNode = class
|
|
|
private
|
|
|
FBillsID: Integer;
|
|
@@ -75,6 +77,9 @@ type
|
|
|
var Allow: Boolean);
|
|
|
procedure DetailGridCellTextChanged(Sender: TObject; Col, Row: Integer);
|
|
|
|
|
|
+ // 向父项检测,直至提取到图册号为止
|
|
|
+ function GetDrawingCode(ANode: TsdIDTreeNode): string;
|
|
|
+
|
|
|
function GetMainBillsTree: TsdIDTree;
|
|
|
public
|
|
|
constructor Create(APhaseData: TObject);
|
|
@@ -396,7 +401,7 @@ begin
|
|
|
Result.PegName := GetPegName(vPeg);
|
|
|
Result.FBFXName := GetFBFXName(vNode, vPeg);
|
|
|
Result.UnitName := GetFieldStrDef(vNode, 'Name', '');
|
|
|
- Result.DrawingCode := GetFieldStrDef(vNode, 'DrawingCode', '');
|
|
|
+ Result.DrawingCode := GetDrawingCode(vNode);
|
|
|
end;
|
|
|
|
|
|
procedure TZJJLData.DetailGridCellTextChanged(Sender: TObject; Col,
|
|
@@ -492,13 +497,15 @@ begin
|
|
|
if not Assigned(ZJJLNode) then
|
|
|
begin
|
|
|
cdsZJJLCode.AsString := GetNewCode;
|
|
|
- cdsZJJLBillsCode.AsString := ANode.Rec.ValueByName('Code').AsString;
|
|
|
+ if AType = Ord(ztFx) then
|
|
|
+ cdsZJJLBillsCode.AsString := ANode.Rec.ValueByName('Code').AsString
|
|
|
+ else if AType = Ord(ztGcl) then
|
|
|
+ cdsZJJLBillsCode.AsString := ANode.Rec.ValueByName('B_Code').AsString;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
- cdsZJJLCode.AsString := ZJJLNode.FCode;
|
|
|
+ cdsZJJLCode.AsString := GetNewCode;
|
|
|
cdsZJJLCertificateCode.AsString := ZJJLNode.FCertificateCode;
|
|
|
- cdsZJJLBillsCode.AsString := ZJJLNode.FBillsCode;
|
|
|
cdsZJJLFormulaMemo.AsString := ZJJLNode.FFormulaMemo;
|
|
|
cdsZJJLRelaFile.AsString := ZJJLNode.FRelaFile;
|
|
|
end;
|
|
@@ -522,8 +529,8 @@ begin
|
|
|
if Assigned(vNode.Parent) then
|
|
|
Result.PegName := vNode.Parent.Rec.ValueByName('Name').AsString;
|
|
|
Result.FBFXName := '';
|
|
|
- Result.UnitName := '';
|
|
|
- Result.DrawingCode := vNode.Rec.ValueByName('DrawingCode').AsString;
|
|
|
+ Result.UnitName := vNode.Rec.ValueByName('Name').AsString;
|
|
|
+ Result.DrawingCode := GetDrawingCode(vNode);
|
|
|
end;
|
|
|
|
|
|
function TZJJLData.GetInfoRec(ABillsID, AType: Integer): TZJJLInfoRec;
|
|
@@ -545,4 +552,18 @@ begin
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
+function TZJJLData.GetDrawingCode(ANode: TsdIDTreeNode): string;
|
|
|
+var
|
|
|
+ vNode: TBillsIDTreeNode;
|
|
|
+begin
|
|
|
+ Result := '';
|
|
|
+ vNode := TBillsIDTreeNode(ANode);
|
|
|
+ while (Result = '') and Assigned(vNode) do
|
|
|
+ begin
|
|
|
+ if Assigned(vNode.Rec) then
|
|
|
+ Result := vNode.Rec.DrawingCode.AsString;
|
|
|
+ vNode := TBillsIDTreeNode(vNode.Parent);
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
end.
|