📄 dfm_sale.pas
字号:
unit dfm_sale;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, Grids, DBGrids, Buttons, DB, ADODB,
Mask,StrUtils, DBCtrls, DBGridEh, ppCtrls, ppPrnabl, ppClass, ppDB,
ppBands, ppCache, ppProd, ppReport, ppComm, ppRelatv, ppDBPipe, ppModule,
raCodMod, TFlatSpinEditUnit, TFlatEditUnit, ppTypes, ppVar, DBCtrlsEh,
TFlatPanelUnit;
type
Tdfmsale = class(TForm)
Panel1: TPanel;
StatusBar1: TStatusBar;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
Atblsaledet: TADOTable;
DataSource1: TDataSource;
SpeedButton3: TSpeedButton;
CheckBox1: TCheckBox;
Atbldefault: TADOTable;
DataSource2: TDataSource;
Atblstemp: TADOTable;
DataSource3: TDataSource;
DataSource4: TDataSource;
Atblstore: TADOTable;
AQryware: TADOQuery;
DataSource5: TDataSource;
DataSource6: TDataSource;
Atblman: TADOTable;
DataSource7: TDataSource;
Aqrysum: TADOQuery;
Panel4: TPanel;
Label12: TLabel;
Label13: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
DataSource8: TDataSource;
Aqryid: TADOQuery;
SpeedButton6: TSpeedButton;
Aqryapp: TADOQuery;
Aqrylose: TADOQuery;
Aqrydel: TADOQuery;
SpeedButton7: TSpeedButton;
DBGridEh1: TDBGridEh;
ppDBPipeline1: TppDBPipeline;
ppReport1: TppReport;
ppHeaderBand1: TppHeaderBand;
ppLabel1: TppLabel;
ppLabel3: TppLabel;
ppLabel4: TppLabel;
ppLabel5: TppLabel;
ppLabel6: TppLabel;
ppLabel7: TppLabel;
ppLabel8: TppLabel;
ppDBText7: TppDBText;
ppDBText8: TppDBText;
ppDBText9: TppDBText;
ppDetailBand1: TppDetailBand;
ppDBText1: TppDBText;
ppDBText2: TppDBText;
ppDBText3: TppDBText;
ppDBText4: TppDBText;
ppDBText5: TppDBText;
ppDBText6: TppDBText;
ppFooterBand1: TppFooterBand;
ppGroup1: TppGroup;
ppGroupHeaderBand1: TppGroupHeaderBand;
ppGroupFooterBand1: TppGroupFooterBand;
ppLabel9: TppLabel;
ppDBCalc1: TppDBCalc;
ppDBText10: TppDBText;
ppDBPipeline2: TppDBPipeline;
atblsalepara: TADOTable;
DataSource9: TDataSource;
ppLine1: TppLine;
ppLabel2: TppLabel;
ppLine2: TppLine;
ppLabel11: TppLabel;
ppVariable1: TppVariable;
ppDBText12: TppDBText;
ppDBText13: TppDBText;
ADOTable1: TADOTable;
ppDBPipeline3: TppDBPipeline;
DataSource10: TDataSource;
ppDBText14: TppDBText;
ppDBText11: TppDBText;
Panel2: TPanel;
Label5: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
DBEditEh1: TDBEditEh;
DBComboBoxEh1: TDBComboBoxEh;
dbdatetimeediteh1: TDBDateTimeEditEh;
DBEditEh2: TDBEditEh;
Panel3: TPanel;
Label1: TLabel;
Label6: TLabel;
Label8: TLabel;
Label7: TLabel;
DBEditEh3: TDBEditEh;
StaticText2: TStaticText;
DBEditEh4: TDBEditEh;
FlatSpinEditFloat1: TFlatSpinEditFloat;
FlatSpinEditFloat2: TFlatSpinEditFloat;
FlatSpinEditFloat3: TFlatSpinEditFloat;
FlatSpinEditInteger1: TFlatSpinEditInteger;
SpeedButton4: TSpeedButton;
Atblstempcname: TWideStringField;
Atblstempbmh: TWideStringField;
Atblstemprq: TDateTimeField;
Atblstempsj: TDateTimeField;
Atblstempjyh: TWideStringField;
Atblstempyyyh: TWideStringField;
Atblstempskyh: TWideStringField;
Atblstempspbh: TWideStringField;
Atblstempsl: TIntegerField;
Atblstemplsj: TFloatField;
Atblstempsjje: TFloatField;
Atblstempzke: TFloatField;
Atblstempclabel: TWideStringField;
Atblstempzl: TFloatField;
ppVariable2: TppVariable;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
atblextend: TADOTable;
DataSource11: TDataSource;
atblslday: TADOTable;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure MaskEdit2Exit(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure qrysum;
procedure qryid;
procedure AtblstempAfterDelete(DataSet: TDataSet);
procedure AtblstempAfterPost(DataSet: TDataSet);
procedure SpeedButton2Click(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure SpeedButton7Click(Sender: TObject);
procedure MaskEdit9Exit(Sender: TObject);
procedure MaskEdit1Exit(Sender: TObject);
procedure ppVariable1Calc(Sender: TObject; var Value: Variant);
procedure ppVariable2Calc(Sender: TObject; var Value: Variant);
procedure DBEditEh3Exit(Sender: TObject);
procedure DBEditEh4Exit(Sender: TObject);
procedure FlatSpinEditFloat2Exit(Sender: TObject);
procedure DBEditEh4KeyPress(Sender: TObject; var Key: Char);
procedure DBNumberEditEh1KeyPress(Sender: TObject; var Key: Char);
procedure DBNumberEditEh2KeyPress(Sender: TObject; var Key: Char);
procedure DBEditEh1KeyPress(Sender: TObject; var Key: Char);
procedure DBComboBoxEh1KeyPress(Sender: TObject; var Key: Char);
procedure FlatSpinEditFloat2KeyPress(Sender: TObject; var Key: Char);
procedure AtblstempBeforePost(DataSet: TDataSet);
procedure DBEditEh3KeyPress(Sender: TObject; var Key: Char);
procedure FlatSpinEditFloat2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure AtblstempBeforeDelete(DataSet: TDataSet);
procedure DBEdit1Exit(Sender: TObject);
procedure DBEdit1KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit2Exit(Sender: TObject);
procedure DBEdit2KeyPress(Sender: TObject; var Key: Char);
procedure DBEditEh4Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
dfmsale: Tdfmsale;
vbmh,vlabel,vdate,vjyh,vyyyh,vzl:string;
vkey:word;
implementation
uses dbmRainbowMis, chHeadUnit, dfm_total, dfm_reprint;
{$R *.dfm}
procedure Tdfmsale.FormCreate(Sender: TObject);
begin
Atbldefault.Active := true;
Atblstemp.Active :=true;
atblman.Active :=true;
atblsalepara.Active :=true;
ADOTable1.Open;
atblextend.Open;
if TCustomADODataSet(Atblstemp).RecordCount>0 then
begin
// DBEditEh2.Text := Atblstemp['jyh'];
qrysum;
end
else
begin
Atblstemp.Append;
DBEditEh1.Text:=atblsalepara['bmh'];
DBComboBoxEh1.Text:=Atbldefault['clabel'];
DBDateTimeEditEh1.value:=date();
dbedit2.Text := '1.00';
qryid;
end;
vbmh:=atblsalepara['bmh'];
vlabel:=Atbldefault['clabel'];
vdate:=DBDateTimeEditEh1.value;
end;
procedure Tdfmsale.FormShow(Sender: TObject);
begin
{ MaskEdit2.SetFocus ; }
DBEditEh3.SetFocus;
StatusBar1.Panels[0].Text :='现在用户:'+ g_uInfo.fuserid+' '+g_uInfo.fusername;
end;
procedure Tdfmsale.SpeedButton3Click(Sender: TObject);
begin
Atblstemp.Post;
Label9.Caption:='小 计:';
FlatSpinEditFloat2.Value :=0;
FlatSpinEditFloat3.Value :=0;
end;
procedure Tdfmsale.FormKeyPress(Sender: TObject; var Key: Char);
begin
// chHeadUnit.tabventer(dfmsale,Key);
end;
procedure Tdfmsale.MaskEdit2Exit(Sender: TObject);
begin
if atblman.Locate('freno',trim(DBEditEh3.Text),[loPartialKey]) then
StaticText2.caption :=atblman['fname']
else
StaticText2.caption :='无此员工号';
end;
procedure Tdfmsale.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Atblstemp.RecordCount=0 then
begin
Atbldefault.Active := false;
atblman.Active := false;
Atblstemp.Active :=false;
atblsalepara.Close;
ADOTable1.Close;
atblextend.Close;
end
else
begin
Application.MessageBox('还有未结帐的销售单,不能退出!','系统提示',MB_ICONERROR + MB_OK);
abort;
end;
{ if Application.MessageBox('你确信数据已保存,要退出系统吗?','系统提示',MB_ICONERROR + MB_OKCANCEL)
= IDOK then
begin
Atbldefault.Active := false;
atblman.Active := false;
Atblstemp.Active :=false;
atblsalepara.Close;
ADOTable1.Close;
atblextend.Close;
end
else
abort;}
end;
procedure Tdfmsale.SpeedButton4Click(Sender: TObject);
begin
if Atblstemp.RecordCount <> 0 then
begin
if trim(DBEditEh4.Text) = '' then
begin
Atblstemp.cancel;
Atblstemp.last;
dbedit1.Enabled:=true;
dbedit1.SetFocus ;
end
else
begin
dbedit1.Enabled:=true;
dbedit1.SetFocus ;
end;
end
else
begin
dbedit1.Enabled:=true;
dbedit1.SetFocus ;
end;
end;
procedure Tdfmsale.SpeedButton1Click(Sender: TObject);
begin
if Atblstemp.RecordCount <> 0 then
begin
Atblsaledet.Open;
if Atblsaledet.Locate('jyh',trim(DBEditEh2.Text), [loPartialKey]) then
application.MessageBox ('此凭证号已存在,请重新输入!','出错提示',0)
else
begin
if trim(DBEditEh4.Text) = '' then
Atblstemp.cancel;
// Panel4.Visible := true;
FlatSpinEditFloat2.Enabled :=true ;
FlatSpinEditFloat2.SetFocus;
end;
Atblsaledet.Close;
end;
end;
procedure Tdfmsale.qrysum;
begin
Aqrysum.Close;
Aqrysum.Open ;
FlatSpinEditFloat1.value:=Aqrysum['sssje'];
FlatSpinEditInteger1.value:=Aqrysum['ssl'];
end;
procedure Tdfmsale.AtblstempAfterDelete(DataSet: TDataSet);
begin
if Atblstemp.RecordCount = 0 then
begin
DBEditEh1.Text:=atblsalepara['bmh'];
DBComboBoxEh1.Text:=Atbldefault['clabel'];
DBDateTimeEditEh1.value:=date();
dbedit2.text:= '1.00';
qryid;
end
else
qrysum;
end;
procedure Tdfmsale.AtblstempAfterPost(DataSet: TDataSet);
begin
vbmh:=DBEditEh1.Text ;
vlabel:=DBComboBoxEh1.Text;
vdate:=dbdatetimeediteh1.Value ;
vjyh:= DBEditEh2.Text;
vyyyh:= DBEditEh3.Text;
vzl:=dbedit2.Text;
Atblstemp.Append;
DBEditEh1.Text:=vbmh ;
DBComboBoxEh1.Text:=vlabel;
dbdatetimeediteh1.Value:= vdate;
DBEditEh2.Text:=vjyh;
DBEditEh3.Text:=vyyyh;
// dbedit2.Text :=vzl;
dbedit2.Text :='1';
qrysum;
end;
procedure Tdfmsale.qryid;
begin
with aqryid do
begin
Close ;
Parameters.ParamByName('vdate').Value := formatdatetime('yyyy,mm,dd',DBDateTimeEditEh1.value) ;
open;
end;
if TCustomADODataSet(aqryid).RecordCount>0 then
begin
aqryid.last ;
DBEditEh2.Text := formatdatetime('yyyymmdd',DBDateTimeEditEh1.value)+'-'+inttostr(strtoint(RightStr(aqryid['jyh'],4))+1);
end
else
DBEditEh2.Text := formatdatetime('yyyymmdd',DBDateTimeEditEh1.value)+'-1000';
end;
procedure Tdfmsale.SpeedButton2Click(Sender: TObject);
begin
If Application.FindComponent('dfmtotal')=Nil Then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -