📄 allmenuadd.pas
字号:
unit allmenuadd;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, dxCntner, dxEditor,
dxExEdtr, dxEdLib;
type
Tfrmallmenuadd = class(TForm)
Panel1: TPanel;
EdID: TEdit;
ZTDJ: TComboBox;
DateTimePicker1: TDateTimePicker;
Label1: TLabel;
Label4: TLabel;
Label5: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
dxCurrencyEdit1: TdxCurrencyEdit;
Label6: TLabel;
Label7: TLabel;
CDJLX: TComboBox;
procedure FormShow(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure EdIDKeyPress(Sender: TObject; var Key: Char);
procedure EdIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ZTDJKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CDJLXKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure dxCurrencyEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DateTimePicker1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
function zhid:Integer;
function list:string;
{ Public declarations }
end;
var
frmallmenuadd: Tfrmallmenuadd;
implementation
uses UDM;
{$R *.dfm}
function Tfrmallmenuadd.list;
var
counter:Integer;
id:string;
begin
with DM.T_COUNTER do
begin
Filter:='id=''B''';
Filtered:=true;
open;
counter:=fieldbyname('countervalues').AsInteger;
inc(counter);
edit;
fieldbyname('countervalues').AsInteger:=counter;
post;
close;
end;
id:='000'+inttostr(counter);
id:=copy(id,length(id)-3,4);
id:=formatdatetime('yyyy',now)+id;
Result:=id;
end;
function Tfrmallmenuadd.zhid;
begin
with dm.ADOTY do
begin
Close;
SQL.Clear;
SQL.Add('select isnull(max(libnumber),0)+1 from libnumber');
Prepared;
Open;
end;
Result:=dm.ADOTY.Fields[0].AsInteger;
end;
procedure Tfrmallmenuadd.FormShow(Sender: TObject);
begin
CDJLX.Text:='';
EDID.Text:='';
ZTDJ.Text:='';
DateTimePicker1.Date:=Date;
DM.ADOZTDJ.Open;
dm.ADOTEMP.Open;
dm.ADOCODE.Open;
WITH DM.ADOZTDJ DO
begin
Close;
SQL.Clear;
SQL.Add('select * from meun_zt');
Prepared;
Open;
end;
ZTDJ.Items.Clear;
while not dm.ADOZTDJ.Eof do
begin
ZTDJ.Items.Append(dm.ADOZTDJ.fieldbyname('djzt').AsString);
DM.ADOZTDJ.Next;
end;
WITH DM.ADOLX do
begin
Close;
SQL.Clear;
SQL.Add('select * from typeunit');
Prepared;
Open;
end;
CDJLX.Items.Clear;
while not dm.ADOLX.Eof do
begin
CDJLX.Items.Append(dm.ADOLX.fieldbyname('typename').AsString);
dm.ADOLX.Next;
end;
end;
procedure Tfrmallmenuadd.BitBtn2Click(Sender: TObject);
begin
Close;
end;
procedure Tfrmallmenuadd.BitBtn1Click(Sender: TObject);
begin
if (EdID.Text='') and (CDJLX.Text='') then
begin
MessageBox(Handle,'单据号码,单据类型不能为空','系统提示',MB_ICONINFORMATION+MB_OK);
Exit;
end
else
if dm.ADOTEMP.Locate('numberid;numbertype;SXDM',VarArrayOf([EdID.Text,CDJLX.Text,DM.HDM]),[]) then
begin
if dm.ADOCODE.Locate('numberid;numbertype;SXDM',VarArrayOf([EdID.Text,CDJLX.Text,DM.HDM]),[]) then
begin
MessageBox(Handle,'数据重复,请重新选择单据','系统提示',MB_ICONINFORMATION+MB_OK);
Exit;
end
else
dm.ADOCon1.BeginTrans;
try
//同时增加一个数据
DM.ADOCODE.Append;
dm.ADOCODElibnumber.Value:=zhid;
dm.ADOCODElist.Value:=list;
dm.ADOCODEnumberid.Value:=EdID.Text;
dm.ADOCODEnumbertype.Value:=CDJLX.Text;
dm.ADOCODEhxbz.Value:='1';
dm.ADOCODErq.Value:=DateTimePicker1.Date;
dm.ADOCODElypername.AsString:=dm.ADOLOGIN.fieldbyname('username').AsString;
DM.ADOCODEJINE.Value:=dxCurrencyEdit1.Value;
dm.ADOCODEA.Value:=True;
dm.ADOCODEB.Value:=True;
dm.ADOCODElibnumberplace.Value:=dm.HMC;
dm.ADOCODEzt.Value:=ZTDJ.Text;
dm.ADOCODEsxdm.Value:=dm.HDM;
dm.ADOCODE.Post;
with dm.ADOTP do
begin
Close;
SQL.Clear;
SQL.add('delete from libnumber');
SQL.Add('where numberid=:id and numbertype=:type and libnumberplace=:place and sxdm=:dm');
Parameters.ParamByName('id').Value:=EdID.Text;
Parameters.ParamByName('type').Value:=CDJLX.Text;
Parameters.ParamByName('place').Value:=dm.HMC;
Parameters.ParamByName('dm').Value:=dm.HDM;
execsql;
end;
dm.ADOCon1.CommitTrans;
EdID.Text:=''; ZTDJ.Text:=''; CDJLX.Text:=''; dxCurrencyEdit1.Value:=0.00;
DM.ADOTEMP.Close;
DM.ADOTEMP.Open;
MessageBox(Handle,'数据成功录入','系统提示',MB_ICONINFORMATION+MB_OK);
except
messagebox(handle,'系统录入失败','系统提示',MB_ICONINFORMATION+MB_OK);
dm.ADOCon1.RollbackTrans;
end;
end
else
MessageBox(handlE,'没有此单据,确定后重新定义','系统提示',MB_ICONINFORMATION+MB_OK);
Exit;
end;
procedure Tfrmallmenuadd.EdIDKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8]) then
key:=#0;
end;
procedure Tfrmallmenuadd.EdIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
i:Integer;
begin
with DM.ADOTY do
begin
Close;
SQL.Clear;
SQL.add('select numberid,numbertype,sxdm from libnumber');
SQL.Add('where numberid=:id and sxdm=:dm');
Parameters.ParamByName('id').Value:=EdID.Text;
Parameters.ParamByName('dm').Value:=dm.HDM;
Prepared;
Open;
end;
CDJLX.Text:=DM.ADOTY.Fields[1].AsString;
DM.ADOTY.Close;
with dm.ADOTP do
begin
Close;
SQL.Clear;
SQL.Add('select count(numberid) from libnumber');
SQL.Add('where numberid=:id and numbertype=:type');
SQL.Add('group by numberid');
Parameters.ParamByName('id').Value:=Edid.Text;
Parameters.ParamByName('type').Value:=CDJlx.Text;
Prepared;
Open;
end;
i:=dm.ADOTP.Fields[0].AsInteger;
if (i>1) and (i<=2) then
begin
ShowMessage('此单据其他吧台也有,请慎重核销!');
end;
DM.ADOTP.Close;
if Key=$0D then
ZTDJ.SetFocus;
end;
procedure Tfrmallmenuadd.ZTDJKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=$0D then
CDJLX.SetFocus;
end;
procedure Tfrmallmenuadd.CDJLXKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=$0D then
dxCurrencyEdit1.SetFocus;
end;
procedure Tfrmallmenuadd.dxCurrencyEdit1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key=$0D then
DateTimePicker1.SetFocus;
end;
procedure Tfrmallmenuadd.DateTimePicker1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key=13 then
BitBtn1Click(Sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -