?? dcunt.pas
字號(hào):
unit dcunt;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, StdCtrls, Buttons, Grids, ExtCtrls, BaseGrid, AdvGrid;
type
Tdcfrm = class(TForm)
Bevel1: TBevel;
Label4: TLabel;
Label3: TLabel;
Label6: TLabel;
Label5: TLabel;
Edit1: TEdit;
Label1: TLabel;
Label8: TLabel;
Edit2: TEdit;
Label9: TLabel;
Label7: TLabel;
ComboBox1: TComboBox;
Edit3: TEdit;
BitBtn2: TBitBtn;
AdvStringGrid1: TAdvStringGrid;
Timer1: TTimer;
Label13: TLabel;
Label12: TLabel;
Label10: TLabel;
Label11: TLabel;
Edit4: TEdit;
Label14: TLabel;
BitBtn1: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
Label2: TLabel;
procedure BitBtn4Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn1Click(Sender: TObject);
procedure Edit1Enter(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure ComboBox1Enter(Sender: TObject);
procedure ComboBox1Exit(Sender: TObject);
procedure Edit3Enter(Sender: TObject);
procedure Edit3Exit(Sender: TObject);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn3Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Edit2Enter(Sender: TObject);
procedure Edit2Exit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
dcfrm: Tdcfrm;
implementation
uses data,maind, mainunt,datam;
{$R *.dfm}
var
dcno:integer;
procedure Tdcfrm.BitBtn4Click(Sender: TObject);
begin
close;
end;
procedure Tdcfrm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
Perform(CM_DialogKey,Vk_TAB,0);
key:=#0;
end;
end;
procedure Tdcfrm.FormActivate(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:=main.Edit8.Text;
advstringgrid1.Cells[0,0]:='';
edit1.SetFocus;
label4.Caption:=formatdatetime('yyyy-mm-dd',date);
Label6.caption:=create_moveout_no('moveoutm');
advstringgrid1.Cells[1,0]:='貨物條形碼';
advstringgrid1.Cells[2,0]:='標(biāo)準(zhǔn)零售價(jià)';
advstringgrid1.Cells[3,0]:='調(diào)出數(shù)量';
advstringgrid1.Cells[4,0]:='金額';
dcno:=1;
end;
procedure Tdcfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
dcfrm:=nil;
dcfrm.Free;
end;
procedure Tdcfrm.BitBtn1Click(Sender: TObject);
var
i:integer;
begin
timer1.Enabled:=false;
try
dataman.ADOCon.BeginTrans;
//更新出貨單據(jù)表
with dataman.dcQuery do
begin
close;
sql.Clear;
sql.Add('insert into moveoutm');
sql.Add('values(:dj,:yf,:js,:je,:jsj,:jsr)');
parameters.ParamByName('dj').Value:=trim(label6.Caption);
parameters.ParamByName('yf').Value:=trim(combobox1.text);
parameters.ParamByName('js').Value:=strtoint(trim(label12.Caption));
parameters.ParamByName('je').Value:=strtofloat(trim(label11.Caption));
parameters.ParamByName('jsj').Value:=date();
parameters.ParamByName('jsr').Value:=trim(edit4.Text);
prepared;
execsql;
//end;
//更新出貨明細(xì)表
close;
for i:=1 to dcno do
begin
if trim(advstringgrid1.Cells[1,i])='' then break;
sql.Clear;
sql.Add('insert into moveout');
sql.Add('values(:dj,:ht,:djq,:shl,:je)');
parameters.ParamByName('dj').Value:=trim(label6.Caption);
parameters.ParamByName('ht').Value:=trim(advstringgrid1.Cells[1,i]);
parameters.ParamByName('djq').Value:=strtofloat(trim(advstringgrid1.Cells[2,i]));
parameters.ParamByName('shl').Value:=strtoint(trim(advstringgrid1.Cells[3,i]));
parameters.ParamByName('je').Value:=strtofloat(trim(advstringgrid1.Cells[4,i]));
prepared;
execsql;
//更新庫存
sql.Clear;
sql.Add('update kc set 庫存數(shù)量=庫存數(shù)量-:tno where 貨物條形碼='''+trim(advstringgrid1.Cells[1,i])+'''');
parameters.ParamByName('tno').Value:=strtoint(advstringgrid1.Cells[3,i]);
execsql;
end; //結(jié)束循環(huán)
end;
dataman.ADOCon.CommitTrans;
showmessage('出貨單據(jù)號(hào)'+trim(label6.Caption)+'存盤成功!');
except
dataman.ADOCon.RollbackTrans;
showmessage('出貨單據(jù)號(hào)'+trim(label6.Caption)+'存盤失敗!');
end;
end;
procedure Tdcfrm.Edit1Enter(Sender: TObject);
begin
Edit1.Color:=clSkyBlue;
end;
procedure Tdcfrm.Edit1Exit(Sender: TObject);
begin
Edit1.color:=clWindow;
if (length(edit1.Text)<>15) and (edit1.Text<>'') then
begin
messagedlg('對(duì)不起!條形碼不等于15位',mtError,[mbOk],0);
edit1.SetFocus;
exit;
end;
if edit1.Text<>'' then
begin
with dataman.dcQuery do
begin
sql.Clear;
sql.Add('select 庫存數(shù)量,單價(jià) from kc where 貨物條形碼 ='''+edit1.text+'''');
open;
if IsEmpty then
begin
showmessage('對(duì)不起!庫里沒有此貨,請(qǐng)核實(shí)數(shù)據(jù)!');
edit1.SetFocus;
exit;
end
else
begin
if fields[0].Value=0 then
begin
showmessage('庫存量為零!');
exit;
end ;
edit3.Text:=floattostr(Fields[1].Value);
end;
end;
end;
end;
procedure Tdcfrm.ComboBox1Enter(Sender: TObject);
begin
ComboBox1.Color:=clSkyBlue;
end;
procedure Tdcfrm.ComboBox1Exit(Sender: TObject);
begin
ComboBox1.color:=clWindow;
end;
procedure Tdcfrm.Edit3Enter(Sender: TObject);
begin
Edit3.Color:=clSkyBlue;
end;
procedure Tdcfrm.Edit3Exit(Sender: TObject);
begin
Edit3.color:=clWindow;
end;
procedure Tdcfrm.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9',#8] )then
begin
key:=#0;
// MessageBeep(-1);
end;
end;
procedure Tdcfrm.BitBtn3Click(Sender: TObject);
var
fd:textfile;
dcfile,dc:string;
i:integer;
begin
try
dcfile:=ExtractFilePath(Application.ExeName)+'dcout.txt';
AssignFile(fd,dcfile);
Rewrite(fd);
write(fd,chr(27)+chr(64));
dc:=stringOfChar(' ',(32-Length('牧羊人服飾'+ini_load_shopname('打印參數(shù)','和祥店')+'調(diào)出清單')) div 2)+'牧羊人服飾'+ini_load_shopname('打印參數(shù)','和祥店')+'調(diào)出清單';
write(fd,dc+chr(10));
write(fd,(formatdatetime('yyyy"年"mm"月"dd"日" hh"點(diǎn)"mm"分" ampm',now)+chr(10)):18);
write(fd,('源分店:'+trim(combobox1.Text)):14);
write(fd,('單據(jù)號(hào):'+trim(label6.caption)):16);
write(fd,('經(jīng)手人:'+trim(edit4.Text)):16);
writeln(fd,'--------------------------------');
// 12345678901234567890123456789012
write(fd,'商品條形碼 零售價(jià) 數(shù)量 金額'+chr(10));
write(fd,'--------------------------------');
for i:=1 to dcno do
begin
if advstringgrid1.Cells[1,i]='' then break;
write(fd,trim(advstringgrid1.cells[1,i]):15);
write(fd,trim(advstringgrid1.cells[2,i]):5);
write(fd,trim(advstringgrid1.cells[3,i]):5);
write(fd,trim(advstringgrid1.cells[4,i]):5);
write(fd,chr(10));
end;
Writeln(fd,' ');
write(fd,'-------------------------------');
Writeln(fd,('調(diào)出總數(shù):'+trim(label12.Caption)):16);
Writeln(fd,('調(diào)出總金額:'+trim(label11.Caption)):16);
Writeln(fd,' ');
Writeln(fd,' ');
Writeln(fd,' ');
Writeln(fd,' ');
Writeln(fd,' ');
CloseFile(fd);
PrintFile(dcfile);
except
abort;
end;
end;
procedure Tdcfrm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9',#8] )then
begin
key:=#0;
end;
end;
procedure Tdcfrm.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9',#8] )then
begin
key:=#0;
end;
end;
procedure Tdcfrm.BitBtn2Click(Sender: TObject);
var
i:integer;
begin
if (edit1.Text='') or (edit2.Text='') or (edit3.Text='') then
begin
showmessage('請(qǐng)輸入完整的信息!');
edit1.SetFocus;
end
else
begin
for i:=1 to advstringgrid1.RowCount do
begin
if trim(edit1.Text)=trim(advstringgrid1.Cells[1,i]) then
begin
advstringgrid1.Cells[3,i]:=inttostr(strtoint(trim(advstringgrid1.Cells[3,i]))+strtoint(trim(edit2.Text)));
edit1.Text:='';
edit1.SetFocus;
edit3.Text:='';
break;
exit;
end;
end;
for i:=advstringgrid1.RowCount downto 1 do
begin
if trim(edit1.Text)<>trim(advstringgrid1.cells[1,i]) then
begin
advstringgrid1.Cells[0,dcno]:=inttostr(dcno);
advstringgrid1.Cells[1,dcno]:=trim(edit1.Text);
advstringgrid1.Cells[2,dcno]:=trim(edit3.Text);
advstringgrid1.Cells[3,dcno]:=trim(edit2.Text);
dcno:=dcno+1;
advstringgrid1.RowCount:=dcno;
edit1.Text:='';
edit1.SetFocus;
edit3.Text:='';
break;
exit;
end;
break;
end;
end;
end;
procedure Tdcfrm.Timer1Timer(Sender: TObject);
var
j,quality:integer;
totalth:real;
begin
totalth:=0;
quality:=0;
for j:=1 to advstringgrid1.RowCount do
begin
if advstringgrid1.Cells[1,j]='' then break;
advstringgrid1.Cells[4,j]:=floattostr(strtofloatdef(trim(advstringgrid1.Cells[2,j]),0)*strtointdef(trim(advstringgrid1.Cells[3,j]),0));
totalth:=strtofloatdef(trim(advstringgrid1.cells[4,j]),0)+totalth;
label11.Caption:=floattostr(totalth);
quality:=strtoint(trim(advstringgrid1.cells[3,j]))+quality;
label12.Caption:=inttostr(quality);
end;
end;
procedure Tdcfrm.Edit2Enter(Sender: TObject);
begin
Edit2.Color:=clSkyBlue;
end;
procedure Tdcfrm.Edit2Exit(Sender: TObject);
begin
Edit2.color:=clWindow;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -