|
@@ -168,7 +168,7 @@ procedure TBillsCompileData.sdvBillsCompileGetText(var Text: String;
|
|
|
if (Pos('Price', AColumn.FieldName) > 0) or
|
|
|
(Pos('Quantity', AColumn.FieldName) > 0) then
|
|
|
begin
|
|
|
- if Assigned(AValue) and (AValue.AsFloat = 0) then
|
|
|
+ if not Assigned(AValue) or (AValue.AsFloat = 0) then
|
|
|
Text := '';
|
|
|
end;
|
|
|
end;
|
|
@@ -276,33 +276,6 @@ end;
|
|
|
procedure TBillsCompileData.sdvBillsCompileBeforeValueChange(
|
|
|
AValue: TsdValue; const NewValue: Variant; var Allow: Boolean);
|
|
|
begin
|
|
|
- // 清单编号和项目节编号不可同时存在
|
|
|
- if SameText(AValue.FieldName, 'Code') then
|
|
|
- begin
|
|
|
- if AValue.Owner.ValueByName('B_Code').AsString <> '' then
|
|
|
- DataSetErrorMessage(Allow, '已存在清单编号,不可输入项目节编号!');
|
|
|
- end
|
|
|
- else if SameText(AValue.FieldName, 'B_Code') then
|
|
|
- begin
|
|
|
- if AValue.Owner.ValueByName('Code').AsString <> '' then
|
|
|
- DataSetErrorMessage(Allow, '已存在项目节编号,不可输入清单编号!');
|
|
|
- end
|
|
|
- //
|
|
|
- else if SameText(AValue.FieldName, 'Price') then
|
|
|
- begin
|
|
|
- if AValue.Owner.ValueByName('AddGatherTotalPrice').AsFloat <> 0 then
|
|
|
- DataSetErrorMessage(Allow, '该清单已经开始计量,不可修改单价!');
|
|
|
- end
|
|
|
- // 变更清单不可修改0号台账数据
|
|
|
- else if SameText(AValue.FieldName, 'OrgQuantity') or
|
|
|
- SameText(AValue.FieldName, 'MisQuantity') or
|
|
|
- SameText(AValue.FieldName, 'OthQuantity') then
|
|
|
- begin
|
|
|
- if AValue.Owner.ValueByName('IsMeasureAdd').AsBoolean then
|
|
|
- DataSetErrorMessage(Allow, '变更清单不可填写0号台账数量与金额');
|
|
|
- end;
|
|
|
- if not Allow then Exit;
|
|
|
-
|
|
|
if SameText(AValue.FieldName, 'OrgQuantity') or
|
|
|
SameText(AValue.FieldName, 'MisQuantity') or
|
|
|
SameText(AValue.FieldName, 'OthQuantity') or
|
|
@@ -596,6 +569,7 @@ procedure TBillsCompileData.sdvBillsCompileSetText(var Text: String;
|
|
|
procedure SetPrice;
|
|
|
begin
|
|
|
Text := FloatToStr(PriceRoundTo(StrToFloatDef(Text, 0)));
|
|
|
+ ARecord.ValueByName('CalcType').AsInteger := 0;
|
|
|
end;
|
|
|
|
|
|
procedure DoCurChanged;
|
|
@@ -674,6 +648,36 @@ procedure TBillsCompileData.sdvBillsCompileSetText(var Text: String;
|
|
|
if not Allow then Exit;
|
|
|
end;
|
|
|
|
|
|
+ // 清单编号和项目节编号不可同时存在
|
|
|
+ if SameText(AValue.FieldName, 'Code') then
|
|
|
+ begin
|
|
|
+ if AValue.Owner.ValueByName('B_Code').AsString <> '' then
|
|
|
+ SetTextErrorHint('已存在清单编号,不可输入项目节编号!');
|
|
|
+ end
|
|
|
+ else if SameText(AValue.FieldName, 'B_Code') then
|
|
|
+ begin
|
|
|
+ if AValue.Owner.ValueByName('Code').AsString <> '' then
|
|
|
+ SetTextErrorHint('已存在项目节编号,不可输入清单编号!');
|
|
|
+ end
|
|
|
+ //
|
|
|
+ else if SameText(AValue.FieldName, 'Price') then
|
|
|
+ begin
|
|
|
+ if AValue.Owner.ValueByName('AddGatherTotalPrice').AsFloat <> 0 then
|
|
|
+ SetTextErrorHint('该清单已经开始计量,不可修改单价!');
|
|
|
+ end
|
|
|
+ // 变更清单不可修改0号台账数据
|
|
|
+ else if SameText(AValue.FieldName, 'OrgQuantity') or
|
|
|
+ SameText(AValue.FieldName, 'OrgTotalPrice') or
|
|
|
+ SameText(AValue.FieldName, 'MisQuantity') or
|
|
|
+ SameText(AValue.FieldName, 'MisTotalPrice') or
|
|
|
+ SameText(AValue.FieldName, 'OthQuantity') or
|
|
|
+ SameText(AValue.FieldName, 'OthTotalPrice') then
|
|
|
+ begin
|
|
|
+ if AValue.Owner.ValueByName('IsMeasureAdd').AsBoolean then
|
|
|
+ SetTextErrorHint('变更清单不可填写0号台账数量与金额');
|
|
|
+ end;
|
|
|
+ if not Allow then Exit;
|
|
|
+
|
|
|
if SameText('Code', AColumn.FieldName) or
|
|
|
SameText('B_Code', AColumn.FieldName) or
|
|
|
SameText('Name', AColumn.FieldName) or
|