📄 ztbb.pas
字号:
unit ZTBB;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, frxClass, ComCtrls, dxCntner, dxEditor, dxExEdtr, dxEdLib,
StdCtrls, ExtCtrls;
type
TFRMZTBB = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Edid: TEdit;
Czt: TComboBox;
Label2: TLabel;
Clx: TComboBox;
dxCurrencyEdit1: TdxCurrencyEdit;
DateTimePicker1: TDateTimePicker;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
function zhid:Integer;
function list:string;
{ Private declarations }
public
{ Public declarations }
end;
var
FRMZTBB: TFRMZTBB;
implementation
USES UDM;
{$R *.dfm}
function TFRMZTBB.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 TFRMZTBB.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 TFRMZTBB.Button2Click(Sender: TObject);
begin
close;
end;
procedure TFRMZTBB.FormShow(Sender: TObject);
begin
DateTimePicker1.Date:=Date;
Czt.Text:='';
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;
end;
procedure TFRMZTBB.Button1Click(Sender: TObject);
begin
if (Edid.Text='') and (Czt.Text='') then
begin
MessageBox(Handle,'单据号码不能为空','系统提示',MB_ICONINFORMATION+MB_OKCANCEL);
Exit;
end;
if not dm.ADOlibnumberls.Locate('numberid;numbertype',VarArrayOf([Edid.Text,Clx.Text]),[]) 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.ADOlibnumber.fieldbyname('libnumberplace').AsString;
dm.ADOlibnumberlszt.Value:=Czt.Text;
dm.ADOlibnumberlssxdm.Value:=dm.ADOlibnumber.fieldbyname('sxdm').AsString;
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.ADOlibnumber.fieldbyname('libnumberplace').AsString;
Parameters.ParamByName('dm').Value:=dm.ADOlibnumber.fieldbyname('sxdm').AsString;
execsql;
end;
dm.con1.CommitTrans;
except
dm.con1.RollbackTrans;
end;
end
else
begin
ShowMessage('数据重不能录入');
end;
DM.ADOlibnumber.Close;
dm.ADOlibnumber.Open;
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -