📄 unitorderbill_edit.pas
字号:
unit UnitOrderBill_Edit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGrid, StdCtrls, RzButton, pngimage, ExtCtrls,
wwdblook, Mask, wwdbedit, wwdbdatetimepicker,ADODB, cxDBLookupComboBox,
cxCalc, DBCtrls, cxContainer, cxTextEdit, cxMaskEdit, cxDropDownEdit,
cxLookupEdit, cxDBLookupEdit, cxCurrencyEdit, Grids, Wwdbigrd, Wwdbgrid,
DBGrids, RzDBGrid;
type
TFrmOrderBill_Edit = class(TForm)
Panel2: TPanel;
Image1: TImage;
BtnOK: TRzBitBtn;
BtnNo: TRzBitBtn;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
cxGrid2: TcxGrid;
cxGridDBTableView1: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
wwDBEdit4: TwwDBEdit;
Label5: TLabel;
wwDBLookupCombo2: TwwDBLookupCombo;
Label2: TLabel;
cxGridDBTableView1ProductName: TcxGridDBColumn;
cxGridDBTableView1Spec: TcxGridDBColumn;
cxGridDBTableView1Amount: TcxGridDBColumn;
cxGridDBTableView1TotalWeight: TcxGridDBColumn;
cxGridDBTableView1TotalPrice: TcxGridDBColumn;
Label154: TLabel;
wwDBDateTimePicker1: TwwDBDateTimePicker;
Label1: TLabel;
wwDBLookupCombo1: TwwDBLookupCombo;
cxGridDBTableView1Column1: TcxGridDBColumn;
BtnAdd: TRzBitBtn;
RzBitBtn213: TRzBitBtn;
RzBitBtn121: TRzBitBtn;
GroupBox3: TGroupBox;
Label3: TLabel;
Label4: TLabel;
wwDBEdit1: TwwDBEdit;
wwDBEdit2: TwwDBEdit;
DBGrid1: TDBGrid;
RzDBGrid1: TRzDBGrid;
procedure BtnNoClick(Sender: TObject);
procedure BtnOKClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure cxGridDBTableView1ProductNamePropertiesCloseUp(
Sender: TObject);
procedure BtnAddClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure wwDBLookupCombo2CloseUp(Sender: TObject; LookupTable,
FillTable: TDataSet; modified: Boolean);
procedure RzBitBtn121Click(Sender: TObject);
procedure RzBitBtn213Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure wwDBLookupCombo2Change(Sender: TObject);
procedure wwDBLookupCombo2KeyPress(Sender: TObject; var Key: Char);
procedure wwDBDateTimePicker1KeyPress(Sender: TObject; var Key: Char);
procedure wwDBLookupCombo1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure RzDBGrid1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmOrderBill_Edit: TFrmOrderBill_Edit;
implementation
uses DMUnit, UnitOrderBill_Add, UnitOrderBill;
{$R *.dfm}
procedure TFrmOrderBill_Edit.BtnNoClick(Sender: TObject);
begin
Close;
end;
procedure TFrmOrderBill_Edit.BtnOKClick(Sender: TObject);
Var
i:Integer;
TotalPrice:Currency;
TotalWeight:double;
begin
IF DM.ADOQueryOrderBill.State in [dsInsert,dsEdit] then
DM.ADOQueryOrderBill.Post;
IF DM.ADOTableBillDetail.State in [dsInsert,dsEdit] then
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;
//=============查询上一次的欠款情况,并打印出来===========
DM.ADOQueryLackMoney.SQL.Clear;
DM.ADOQueryLackMoney.SQL.Add(' Select * From ClientName where ClientName='''+DM.ADOQueryOrderBill.FieldByName('OrderClient').AsString+'''');
DM.ADOQueryLackMoney.Active:=True;
DM.RMGridReportBillDetail.LoadFromFile('Report/BillDetail.rls');
DM.RMGridReportBillDetail.ShowReport;
Close;
end;
procedure TFrmOrderBill_Edit.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
IF (DM.ADOQueryOrderBill.State in [dsInsert,dsEdit]) or (DM.ADOTableBillDetail.State in [dsInsert,dsEdit]) then
Begin
if Messagebox(handle,'本信息已修改,您确定要放弃修改吗?','询问',MB_YESNO+MB_ICONQUESTION)=IDYES then
Begin
CanClose:=true;
IF DM.ADOQueryOrderBill.State in [dsInsert,dsEdit] then DM.ADOQueryOrderBill.Cancel;
IF DM.ADOTableBillDetail.State in [dsInsert,dsEdit] then DM.ADOTableBillDetail.Cancel;
end
else
CanClose:=false;
End;
end;
procedure TFrmOrderBill_Edit.cxGridDBTableView1ProductNamePropertiesCloseUp(
Sender: TObject);
begin
//ShowMessage(DM.ADOTableBillDetail.FieldValues['ProductName']);
//DM.ADOQueryClientPrice.Locate('ProductName',DM.ADOTableBillDetail.FieldByName('ProductName').AsString,[]);
//ShowMessage(DM.ADOQueryClientPrice.FieldValues['ProductName']);
// DM.ADOTableBillDetail.FieldByName('Price').AsCurrency:=DM.ADOQueryClientPrice.FieldValues['ClientPrice'];
end;
procedure TFrmOrderBill_Edit.BtnAddClick(Sender: TObject);
begin
if wwDBLookupCombo2.Text='' then
Begin
Application.MessageBox('客户名称不能为空,请选择后进行录入!','提醒',MB_IconInformation);
wwDBLookupCombo2.SetFocus;
Exit;
End;
DM.ADOQueryClientPrice.Filter:=' ClientName='''+wwDBLookupCombo2.Text+'''';
DM.ADOQueryClientPrice.Filtered:=True;
IF DM.ADOQueryOrderBill.State in [dsInsert,dsEdit] then
DM.ADOQueryOrderBill.Post;
DM.ADOTableBillDetail.Append;
DM.ADOTableBillDetail.FieldByName('OrderBill_ID').AsString:=DM.ADOQueryOrderBill.FieldValues['id'];
FrmOrderBill_Add.showModal;
end;
procedure TFrmOrderBill_Edit.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if DM.ADOTableBillDetail.RecordCount=0 then DM.ADOQueryOrderBill.Delete;
end;
procedure TFrmOrderBill_Edit.wwDBLookupCombo2CloseUp(Sender: TObject;
LookupTable, FillTable: TDataSet; modified: Boolean);
begin
if DM.ADOTableBillDetail.RecordCount>0 then
Begin
Application.MessageBox('已有明细记录,不能修改客户名称;请删除后再进行修改客户名称!','提醒',MB_IconInformation);
DM.ADOQueryOrderBill.Cancel;
End;
end;
procedure TFrmOrderBill_Edit.RzBitBtn121Click(Sender: TObject);
begin
if DM.ADOTableBillDetail.RecordCount>0 then
Begin
DM.ADOQueryClientPrice.Filter:=' ClientName='''+wwDBLookupCombo2.Text+'''';
DM.ADOQueryClientPrice.Filtered:=True;
IF DM.ADOQueryOrderBill.State in [dsInsert,dsEdit] then
DM.ADOQueryOrderBill.Post;
FrmOrderBill_Add.showModal;
End;
end;
procedure TFrmOrderBill_Edit.RzBitBtn213Click(Sender: TObject);
Var
i:Integer;
TotalPrice:Currency;
TotalWeight:double;
begin
if DM.ADOTableBillDetail.RecordCount>0 then
if Messagebox(handle,'您确认要删除本条信息吗?','询问',MB_YESNO+MB_ICONQUESTION)=IDYES then
Begin
DM.ADOTableBillDetail.Delete;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -