📄 unitstructls.pas
字号:
unit Unitstructls;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, dxCntner, dxEditor, dxExEdtr,
dxEdLib;
type
TFormstructls = class(TForm)
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edid: TEdit;
Czt: TComboBox;
Clx: TComboBox;
dxCurrencyEdit1: TdxCurrencyEdit;
DateTimePicker1: TDateTimePicker;
Cdd: TComboBox;
Label6: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure EdidKeyPress(Sender: TObject; var Key: Char);
procedure EdidKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CztKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ClxKeyDown(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
function zhid:Integer;
function list:string;
{ Private declarations }
public
{ Public declarations }
end;
var
Formstructls: TFormstructls;
implementation
uses UDM;
{$R *.dfm}
function TFormstructls.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 TFormstructls.zhid;
begin
with dm.qrytemp do
begin
Close;
SQL.Clear;
SQL.Add('select isnull(max(libnumber),0)+1 from libnumber');
Prepared;
Open;
end;
Result:=dm.qrytemp.Fields[0].AsInteger;
end;
procedure TFormstructls.Button1Click(Sender: TObject);
begin
if (Edid.Text='') and (Czt.Text='') then
begin
MessageBox(Handle,'单据号码不能为空','系统提示',MB_ICONINFORMATION+MB_OKCANCEL);
Exit;
end;
if dm.ADOlibnumber.Locate('numberid;numbertype;libnumberplace',VarArrayOf([Edid.Text,Clx.Text,dm.NAME]),[]) then
begin
if not dm.ADOlibnumberls.Locate('numberid;numbertype;libnumberplace',VarArrayOf([Edid.Text,Clx.Text,dm.NAME]),[]) then
begin
try
dm.con1.BeginTrans;
//同时增加一个数据
DM.ADOlibnumberls.Append;
dm.ADOlibnumberlslibnumber.Value:=zhid;
dm.ADOlibnumberlslist.Value:=list;
dm.ADOlibnumberlsnumberid.Value:=EdID.Text;
dm.ADOlibnumberlsnumbertype.Value:=Clx.Text;
dm.ADOlibnumberlshxbz.Value:='1';
dm.ADOlibnumberlsrq.Value:=DateTimePicker1.Date;
dm.ADOlibnumberlslypername.AsString:=dm.hname;
DM.ADOlibnumberlsJINE.Value:=dxCurrencyEdit1.Value;
dm.ADOlibnumberlsA.Value:=True;
dm.ADOlibnumberlsB.Value:=True;
dm.ADOlibnumberlslibnumberplace.Value:=DM.NAME;
dm.ADOlibnumberlszt.Value:=Czt.Text;
dm.ADOlibnumberlssxdm.Value:=dm.hdm;
dm.ADOlibnumberls.Post;
with dm.qrytemp 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:=Clx.Text;
Parameters.ParamByName('place').Value:=DM.NAME;
Parameters.ParamByName('dm').Value:=dm.hdm;
execsql;
end;
dm.con1.CommitTrans;
DM.ADOlibnumber.Close;
dm.ADOlibnumber.Open;
except
dm.con1.RollbackTrans;
end;
end
else
ShowMessage('数据重不能录入');
end
else
begin
MessageBox(Handle,'未发现领用单据,请确认后在领用','系统提示',MB_ICONINFORMATION+MB_OKCANCEL);
end;
ShowMessage('数据保存成功,请选择下一个单据!');
Edid.Text:='';
Clx.Text:='';
Czt.Text:='';
DateTimePicker1.Date:=Date;
dxCurrencyEdit1.Value:=0;
end;
procedure TFormstructls.FormShow(Sender: TObject);
begin
dm.ADOlibnumber.Open;
Edid.Text:='';
Clx.Text:='';
Czt.Text:='';
Cdd.Text:='';
DateTimePicker1.Date:=Date;
with dm.qrytemp do
begin
Close;
SQL.Clear;
SQL.Add('select djzt from meun_zt');
Prepared;
Open;
end;
Czt.Items.Clear;
while not dm.qrytemp.Eof do
begin
Czt.Items.Append(dm.qrytemp.Fields[0].AsString);
DM.qrytemp.Next;
end;
with dm.qrytemp do
begin
Close;
SQL.Clear;
SQL.Add('select typename from typeunit');
Prepared;
Open;
end;
Clx.Items.Clear;
while not dm.qrytemp.Eof do
begin
Clx.Items.Append(dm.qrytemp.Fields[0].AsString);
DM.qrytemp.Next;
end;
with dm.qrytemp do
begin
Close;
SQL.Clear;
SQL.Add('select placename from ly_place');
Prepared;
Open;
end;
Cdd.Items.Clear;
while not dm.qrytemp.Eof do
begin
Cdd.Items.Append(dm.qrytemp.Fields[0].AsString);
DM.qrytemp.Next;
end;
end;
procedure TFormstructls.Button2Click(Sender: TObject);
begin
CLOSE;
end;
procedure TFormstructls.EdidKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8]) then
key:=#0;
end;
procedure TFormstructls.EdidKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
i:Integer;
begin
with dm.qrytemp do
begin
close;
SQL.Clear;
SQL.Add('select numberid,numbertype from libnumber');
SQL.Add('where numberid=:id');
Parameters.ParamByName('id').Value:=Edid.Text;
Prepared;
Open;
end;
Clx.Text:=DM.qrytemp.Fields[1].AsString;
with dm.qrytemp 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:=Clx.Text;
Prepared;
Open;
end;
i:=dm.qrytemp.Fields[0].AsInteger;
if (i>1) and (i<=2) then
begin
ShowMessage('此单据其他吧台也有,请确认此单据所在的吧台,在进行核销');
end;
if Key=$0D then
Czt.SetFocus;
end;
procedure TFormstructls.CztKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=$0D then
Clx.SetFocus;
end;
procedure TFormstructls.ClxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=$0D then
dxCurrencyEdit1.SetFocus;
end;
procedure TFormstructls.dxCurrencyEdit1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key=$0D then
DateTimePicker1.SetFocus;
end;
procedure TFormstructls.DateTimePicker1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=13 then
Button1Click(Sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -