Browse Source

1. 查找定位,开放项目节编号可以查找定位
2. 查找定位,新增查找附件功能
3. 清单汇总,同步清单功能,改为同步0号台账数量

MaiXinRong 7 years ago
parent
commit
297a16e3b3

+ 2 - 1
DataModules/BillsGatherDm.pas

@@ -409,7 +409,8 @@ function TBillsGatherData.GetAllBillsJson: string;
     Result.S['lname'] := Rec.ValueByName('Name').AsString;
     Result.S['unit'] := Rec.ValueByName('Units').AsString;
     Result.D['unitprice'] := Rec.ValueByName('Price').AsFloat;
-    Result.D['amount'] := Rec.ValueByName('DealQuantity').AsFloat;
+    //Result.D['amount'] := Rec.ValueByName('DealQuantity').AsFloat;
+    Result.D['amount'] := Rec.ValueByName('Quantity').AsFloat;
   end;
 
 var

+ 18 - 3
DataModules/SearchDm.dfm

@@ -51,21 +51,33 @@ object SearchData: TSearchData
       item
         Name = 'CompleteRate'
         DataType = ftFloat
+      end
+      item
+        Name = 'SerialNo'
+        DataType = ftInteger
+      end>
+    IndexDefs = <
+      item
+        Name = 'DEFAULT_ORDER'
+      end
+      item
+        Name = 'CHANGEINDEX'
       end>
-    IndexDefs = <>
+    IndexFieldNames = 'SerialNo'
     Params = <>
     StoreDefs = True
     Left = 64
     Top = 32
     Data = {
-      F00000009619E0BD01000000180000000A000000000003000000F00002494404
+      010100009619E0BD01000000180000000B000000000003000000010102494404
       0001000000000004436F64650100490000000100055749445448020002003200
       06425F436F64650100490000000100055749445448020002001400044E616D65
       02004A000000010005574944544802000200900105556E69747301004A000000
       0100055749445448020002002800055072696365080004000000000008517561
       6E7469747908000400000000000D43757251635175616E746974790800040000
       000000114164644761746865725175616E7469747908000400000000000C436F
-      6D706C6574655261746508000400000000000000}
+      6D706C6574655261746508000400000000000853657269616C4E6F0400010000
+      0000000000}
     object cdsSearchID: TIntegerField
       FieldName = 'ID'
     end
@@ -102,5 +114,8 @@ object SearchData: TSearchData
     object cdsSearchCompleteRate: TFloatField
       FieldName = 'CompleteRate'
     end
+    object cdsSearchSerialNo: TIntegerField
+      FieldName = 'SerialNo'
+    end
   end
 end

+ 43 - 1
DataModules/SearchDm.pas

@@ -20,6 +20,7 @@ type
     cdsSearchCurQcQuantity: TFloatField;
     cdsSearchPrice: TFloatField;
     cdsSearchCompleteRate: TFloatField;
+    cdsSearchSerialNo: TIntegerField;
     procedure cdsSearchQuantityGetText(Sender: TField; var Text: String;
       DisplayText: Boolean);
   private
@@ -33,6 +34,7 @@ type
     procedure SearchKeyword(const AKeyword: string);
     procedure SearchOverRange;
     procedure SearchBelowRange;
+    procedure SearchRelaFile;
 
     procedure LocateCurrent(ALocateType: TLocateType);
 
@@ -140,7 +142,8 @@ begin
       begin
         vNode := TMeasureBillsIDTreeNode(BillsMeasureTree.Items[iNode]);
         if (Pos(AKeyword, vNode.Rec.B_Code.AsString) > 0) or
-            (Pos(AKeyword, vNode.Rec.Name.AsString) > 0) then
+            (Pos(AKeyword, vNode.Rec.Name.AsString) > 0) or
+            (Pos(AKeyword, vNode.Rec.Code.AsString) > 0) then
           AddSearchResult(vNode);
       end;
     end;
@@ -212,4 +215,43 @@ begin
   end;
 end;
 
+procedure TSearchData.SearchRelaFile;
+
+  function HasRelaFile(vNode: TMeasureBillsIDTreeNode): Boolean;
+  var
+    i: Integer;
+  begin
+    Result := False;
+    with TProjectData(FProjectData) do
+      for i := 0 to AttachmentData.Count - 1 do
+      begin
+        if (AttachmentData[i].BillID = vNode.Rec.ID.AsInteger) and (AttachmentData[i].Phase = PhaseIndex) then
+        begin
+          Result := True;
+          Break;
+        end;
+      end;
+  end;
+
+var
+  i: Integer;
+  vNode: TMeasureBillsIDTreeNode;
+begin
+  cdsSearch.DisableControls;
+  try
+    cdsSearch.EmptyDataSet;
+    with TProjectData(FProjectData).BillsMeasureData do
+    begin
+      for i := 0 to BillsMeasureTree.Count - 1 do
+      begin
+        vNode := TMeasureBillsIDTreeNode(BillsMeasureTree.Items[i]);
+        if vNode.Rec.HasAttachment.AsBoolean or HasRelaFile(vNode) then
+          AddSearchResult(vNode);
+      end;
+    end;
+  finally
+    cdsSearch.EnableControls;
+  end;
+end;
+
 end.

+ 11 - 3
Frames/SearchFme.dfm

@@ -100,6 +100,16 @@ object SearchFrame: TSearchFrame
           TabOrder = 2
           OnClick = rbCommonClick
         end
+        object rbRelaFile: TRadioButton
+          Tag = 1
+          Left = 181
+          Top = 15
+          Width = 45
+          Height = 17
+          Caption = #38468#20214
+          TabOrder = 3
+          OnClick = rbCommonClick
+        end
       end
     end
     object pnlSearchKey: TPanel
@@ -145,7 +155,7 @@ object SearchFrame: TSearchFrame
         Height = 424
         Options = [goRangeSelect, goRowSizing, goColSizing, goCellNotMaintainData, goFixedRowShowNo, goFixedColShowNo, goAlwaysShowSelection]
         OptionsEx = []
-        ColCount = 8
+        ColCount = 9
         RowCount = 4
         ShowGridLine = False
         DefaultColWidth = 73
@@ -177,8 +187,6 @@ object SearchFrame: TSearchFrame
         Font.Name = #23435#20307
         Font.Style = []
         FieldName = 'Code'
-        Width = 80
-        Visible = False
         ReadOnly = True
       end
       item

+ 6 - 3
Frames/SearchFme.pas

@@ -23,6 +23,7 @@ type
     pnlSearchResult: TPanel;
     zgSearchResult: TZJGrid;
     rbBelowRange: TRadioButton;
+    rbRelaFile: TRadioButton;
     procedure rbCommonClick(Sender: TObject);
     procedure btnSearchClick(Sender: TObject);
     procedure zgSearchResultMouseDown(Sender: TObject;
@@ -59,10 +60,10 @@ end;
 procedure TSearchFrame.rbCommonClick(Sender: TObject);
 begin
   edtKeyword.Enabled := rbCommon.Checked;
-  if rbCommon.Checked then
+  {if rbCommon.Checked then
     zaSearchResult.Column('Code').Width := 80
   else
-    zaSearchResult.Column('Code').Width := 0;
+    zaSearchResult.Column('Code').Width := 0;}
 end;
 
 procedure TSearchFrame.btnSearchClick(Sender: TObject);
@@ -72,7 +73,9 @@ begin
   else if rbOverRange.Checked then
     FSearchData.SearchOverRange
   else if rbBelowRange.Checked then
-    FSearchData.SearchBelowRange;
+    FSearchData.SearchBelowRange
+  else if rbRelaFile.Checked then
+    FSearchData.SearchRelaFile;
 end;
 
 procedure TSearchFrame.zgSearchResultMouseDown(Sender: TObject;

+ 7 - 2
Units/mDataRecord.pas

@@ -96,6 +96,8 @@ type
     FHasBookMark: TsdValue;
     FMarkMemo: TsdValue;
 
+    FPM_AddTotalPrice: TsdValue;
+
     FDealCode: TsdValue;
     FDealCompany: TsdValue;
     FDealType: TsdValue;
@@ -107,8 +109,7 @@ type
     FCacheMisTP: Double;
     FCacheOrgTP: Double;
     FCacheOthTP: Double;
-
-    FPM_AddTotalPrice: TsdValue;
+    FHasAttachment: TsdValue;
   protected
     procedure DoAfterAddFields; override;
   public
@@ -188,6 +189,8 @@ type
     property HasBookMark: TsdValue read FHasBookMark;
     property MarkMemo: TsdValue read FMarkMemo;
 
+    property HasAttachment: TsdValue read FHasAttachment;
+
     property DealCode: TsdValue read FDealCode;
     property DealCompany: TsdValue read FDealCompany;
     property DealType: TsdValue read FDealType;
@@ -584,6 +587,8 @@ begin
   FHasBookMark := ValueByName('HasBookMark');
   FMarkMemo := ValueByName('MarkMemo');
 
+  FHasAttachment := ValueByName('HasAttachment');
+
   FDealCode := ValueByName('DealCode');
   FDealCompany := ValueByName('DealCompany');
   FDealType := ValueByName('DealType');