📄 unitorderbill_add.pas
字号:
unit UnitOrderBill_Add;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, wwdblook, StdCtrls, Mask, wwdbedit, pngimage, ExtCtrls, RzButton,ADODB,DB;
type
TFrmOrderBill_Add = class(TForm)
Label3: TLabel;
Label5: TLabel;
BtnOK: TRzBitBtn;
BtnNo: TRzBitBtn;
Panel2: TPanel;
Label1: TLabel;
Image1: TImage;
EditSpec: TwwDBEdit;
ComboProductName: TwwDBLookupCombo;
BtnSaveAdd: TRzBitBtn;
Label2: TLabel;
EditAmount: TwwDBEdit;
procedure BtnNoClick(Sender: TObject);
procedure BtnOKClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure BtnSaveAddClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmOrderBill_Add: TFrmOrderBill_Add;
implementation
uses DMUnit;
{$R *.dfm}
procedure TFrmOrderBill_Add.BtnNoClick(Sender: TObject);
begin
Close;
end;
procedure TFrmOrderBill_Add.BtnOKClick(Sender: TObject);
Var
i:Integer;
TotalPrice:Currency;
TotalWeight:double;
begin
if ComboProductName.Text='' then
Begin
Application.MessageBox('产品名称不能为空,请选择!','提醒',MB_IconInformation);
ComboProductName.SetFocus;
Exit;
End;
if EditSpec.Text='' then
Begin
Application.MessageBox('产品规格不能为空,请输入!','提醒',MB_IconInformation);
EditSpec.SetFocus;
Exit;
End;
if EditAmount.Text='' then
Begin
Application.MessageBox('数量不能为空,请选择!','提醒',MB_IconInformation);
EditAmount.SetFocus;
Exit;
End;
if DM.ADOTableBillDetail.State in[dsInsert,dsEdit] then
Begin
DM.ADOTableBillDetail.FieldByName('Price').AsCurrency:=DM.ADOQueryClientPrice.FieldValues['ClientPrice'];
DM.ADOTableBillDetail.FieldByName('TotalPrice').AsCurrency:=DM.ADOQueryClientPrice.FieldValues['ClientPrice']*StrToFloat(EditSpec.Text)*StrToFloat(EditAmount.Text);
DM.ADOTableBillDetail.FieldByName('TotalWeight').AsFloat:=StrToFloat(EditSpec.Text)*StrToFloat(EditAmount.Text);
DM.ADOTableBillDetail.Post;
//===============更新总重量===========================
TotalPrice:=0;
TotalWeight:=0;
DM.ADOTableBillDetail.First;
For i:=1 to DM.ADOTableBillDetail.RecordCount do
Begin
TotalPrice:=TotalPrice+DM.ADOTableBillDetail.FieldByName('TotalPrice').AsCurrency;
TotalWeight:=TotalWeight+DM.ADOTableBillDetail.FieldByName('TotalWeight').AsFloat;
DM.ADOTableBillDetail.Next;
Next;
End;
DM.ADOQueryOrderBill.Edit;
DM.ADOQueryOrderBill.FieldByName('TotalPrice1').AsCurrency:=TotalPrice;
DM.ADOQueryOrderBill.FieldByName('TotalWeight').AsFloat:=TotalWeight;
DM.ADOQueryOrderBill.Post;
End;
Close;
end;
procedure TFrmOrderBill_Add.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if DM.ADOTableBillDetail.State in[dsEdit,dsInsert] then
begin
if Messagebox(handle,'本信息已修改,您确定要放弃修改吗?','询问',MB_YESNO+MB_ICONQUESTION)=IDYES then
Begin
CanClose:=true;
DM.ADOTableBillDetail.Cancel;
end
else
CanClose:=false;
end;
end;
procedure TFrmOrderBill_Add.BtnSaveAddClick(Sender: TObject);
Var
i:Integer;
TotalPrice:Currency;
TotalWeight:double;
begin
if ComboProductName.Text='' then
Begin
Application.MessageBox('产品名称不能为空,请选择!','提醒',MB_IconInformation);
ComboProductName.SetFocus;
Exit;
End;
if EditSpec.Text='' then
Begin
Application.MessageBox('产品规格不能为空,请输入!','提醒',MB_IconInformation);
EditSpec.SetFocus;
Exit;
End;
if EditAmount.Text='' then
Begin
Application.MessageBox('数量不能为空,请选择!','提醒',MB_IconInformation);
EditAmount.SetFocus;
Exit;
End;
if DM.ADOTableBillDetail.State in[dsInsert,dsEdit] then
Begin
DM.ADOTableBillDetail.FieldByName('Price').AsCurrency:=DM.ADOQueryClientPrice.FieldValues['ClientPrice'];
DM.ADOTableBillDetail.FieldByName('TotalPrice').AsCurrency:=DM.ADOQueryClientPrice.FieldValues['ClientPrice']*StrToFloat(EditSpec.Text)*StrToFloat(EditAmount.Text);
DM.ADOTableBillDetail.FieldByName('TotalWeight').AsFloat:=StrToFloat(EditSpec.Text)*StrToFloat(EditAmount.Text);
DM.ADOTableBillDetail.Post;
//===============更新总重量===========================
TotalPrice:=0;
TotalWeight:=0;
DM.ADOTableBillDetail.First;
For i:=1 to DM.ADOTableBillDetail.RecordCount do
Begin
TotalPrice:=TotalPrice+DM.ADOTableBillDetail.FieldByName('TotalPrice').AsCurrency;
TotalWeight:=TotalWeight+DM.ADOTableBillDetail.FieldByName('TotalWeight').AsFloat;
DM.ADOTableBillDetail.Next;
Next;
End;
DM.ADOQueryOrderBill.Edit;
DM.ADOQueryOrderBill.FieldByName('TotalPrice1').AsCurrency:=TotalPrice;
DM.ADOQueryOrderBill.FieldByName('TotalWeight').AsFloat:=TotalWeight;
DM.ADOQueryOrderBill.Post;
End;
DM.ADOTableBillDetail.Append;
DM.ADOTableBillDetail.FieldByName('OrderBill_ID').AsString:=DM.ADOQueryOrderBill.FieldValues['id'];
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -