فهرست منبع

Task 中间计量,界面调整,取值调整

MaiXinRong 9 سال پیش
والد
کامیت
2f47234227
2فایلهای تغییر یافته به همراه36 افزوده شده و 15 حذف شده
  1. 28 7
      DataModules/ZJJLDm.pas
  2. 8 8
      Frames/ZJJLFme.dfm

+ 28 - 7
DataModules/ZJJLDm.pas

@@ -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.

+ 8 - 8
Frames/ZJJLFme.dfm

@@ -214,7 +214,7 @@ object ZJJLFrame: TZJJLFrame
   object zaZJJL: TZjGridDBA
     Columns = <
       item
-        Title.Caption = #20013#38388#35745#37327#34920#21495
+        Title.Caption = #32534#21495
         Title.CaptionAcrossCols = '1'
         Title.Font.Charset = GB2312_CHARSET
         Title.Font.Color = clWindowText
@@ -227,11 +227,11 @@ object ZJJLFrame: TZJJLFrame
         Font.Height = -12
         Font.Name = #23435#20307
         Font.Style = []
-        FieldName = 'Code'
-        ReadOnly = False
+        FieldName = 'BillsCode'
+        ReadOnly = True
       end
       item
-        Title.Caption = #20132#24037#35777#20070'/'#20973#35777#21495
+        Title.Caption = #20013#38388#35745#37327#34920#21495
         Title.CaptionAcrossCols = '1'
         Title.Font.Charset = GB2312_CHARSET
         Title.Font.Color = clWindowText
@@ -244,11 +244,11 @@ object ZJJLFrame: TZJJLFrame
         Font.Height = -12
         Font.Name = #23435#20307
         Font.Style = []
-        FieldName = 'CertificateCode'
+        FieldName = 'Code'
         ReadOnly = False
       end
       item
-        Title.Caption = #39033#30446#33410#32534#21495
+        Title.Caption = #20132#24037#35777#20070'/'#20973#35777#21495
         Title.CaptionAcrossCols = '1'
         Title.Font.Charset = GB2312_CHARSET
         Title.Font.Color = clWindowText
@@ -261,8 +261,8 @@ object ZJJLFrame: TZJJLFrame
         Font.Height = -12
         Font.Name = #23435#20307
         Font.Style = []
-        FieldName = 'BillsCode'
-        ReadOnly = True
+        FieldName = 'CertificateCode'
+        ReadOnly = False
       end>
     Grid = zgZJJL
     ExtendRowCount = 0