📄 uselllr.pas
字号:
unit Uselllr;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, RzPanel, RzButton, RzDBSpin, RzDBEdit, DBCtrls, Mask,
RzEdit, StdCtrls, DB, ADODB, DBGridEh, DBCtrlsEh, DBLookupEh;
type
TFselllr = class(TForm)
buymemo: TRzDBMemo;
lbl3: TLabel;
lbl8: TLabel;
RzBitBtn1: TRzBitBtn;
RzBitBtn2: TRzBitBtn;
RzStatusBar1: TRzStatusBar;
RzToolbar1: TRzToolbar;
RzSpacer1: TRzSpacer;
img3: TImage;
spinsell: TADOStoredProc;
spupsell: TADOStoredProc;
dblkcbbemname: TDBLookupComboBox;
dbclname: TDBLookupComboboxEh;
lbl4: TLabel;
dblkcbbbuyname: TDBLookupComboBox;
lbl5: TLabel;
lbl7: TLabel;
bysl: TRzDBSpinEdit;
dswpb: TDataSource;
qrywpb: TADOQuery;
qrywpbbwid: TAutoIncField;
qrywpbbwname: TStringField;
qrywpbclid: TIntegerField;
qrywpbbwunit: TStringField;
qrywpbbwprice: TBCDField;
qrywpbbwmemo: TStringField;
spwpkcsl: TADOStoredProc;
procedure RzBitBtn2Click(Sender: TObject);
procedure RzBitBtn1Click(Sender: TObject);
procedure dbclnameCloseUp(Sender: TObject; Accept: Boolean);
procedure dblkcbbbuynameCloseUp(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure img3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Fselllr: TFselllr;
dqkc:Integer;//库存数量
yldz:Integer;//如果是修改的话保存原来的值
implementation
uses Usell, Udate, Umain, Uwpbxx, Usrfsz;
{$R *.dfm}
procedure TFselllr.RzBitBtn2Click(Sender: TObject);
begin
if fdate.qryview_sell.Modified=False then close;
if pd=1 then begin
if MessageDlg('不保存当前的信息吗?',mtInformation,[mbYes,mbno],0)=IDYES then begin
fdate.qryview_sell.Cancel;
close;
end
else
RzBitBtn1.Click;
end
else if pd=2 then begin
if MessageDlg('不保存当前所做的修改吗?',mtInformation,[mbYes,mbno],0)=idyes then begin
fdate.qryview_sell.Cancel;
close;
end
else
RzBitBtn1.Click;
end
else
Close;
end;
procedure TFselllr.RzBitBtn1Click(Sender: TObject);
begin
if pd=3 then Exit;
if dblkcbbemname.Text='' then begin
MessageDlg('请选择领料员的名称!',mtError,[mbyes],0);
dblkcbbemname.SetFocus;
Exit;
end;
if dblkcbbbuyname.Text='' then begin
MessageDlg('请选择物品的名称!',mtError,[mbyes],0);
dblkcbbbuyname.SetFocus;
Exit;
end;
if bysl.Value<=0 then begin
MessageDlg('请输入需领物品的数量!',mtError,[mbyes],0);
bysl.SetFocus;
Exit;
end;
if pd=1 then begin
if bysl.Value>dqkc then begin
MessageDlg('领料数量大于当前该库存物品的数量!',mtError,[mbyes],0);
bysl.SetFocus;
Exit;
end;
end;
if pd=2 then begin //如果是修改的话得到当前的库存数量
with spwpkcsl do begin
Close;
Parameters.ParamByName('@bwid').Value:=dblkcbbbuyname.KeyValue;
ExecProc;
end;
dqkc:=spwpkcsl.Parameters.ParamByName('@kcsl').Value;
end;
if pd=1 then begin
with spinsell do begin
Close;
Parameters.ParamByName('@bwid').Value:=dblkcbbbuyname.KeyValue;
Parameters.ParamByName('@czid').Value:=1;
Parameters.ParamByName('@llid').Value:=dblkcbbemname.KeyValue;
Parameters.ParamByName('@sequanty').Value:=bysl.Value;
Parameters.ParamByName('@sememo').Value:=buymemo.Text;
ExecProc;
ShowMessage(Parameters.parambyname('@msg').Value);
end;
end
else if pd=2 then begin
if bysl.Value>(dqkc+yldz) then begin
MessageBeep(0);MessageDlg('领料数量为大于当前库存数量!',mtError,[mbyes],0);
bysl.SetFocus;Exit;
end;
with spupsell do begin
Close;
Parameters.ParamByName('@bwid').Value:=dblkcbbbuyname.KeyValue;
Parameters.ParamByName('@llid').Value:=dblkcbbemname.KeyValue;
Parameters.ParamByName('@sequanty').Value:=bysl.Value;
Parameters.ParamByName('@sememo').Value:=buymemo.Text;
Parameters.ParamByName('@seid').Value:=fdate.qryview_sellseid.Value;
ExecProc;
ShowMessage(Parameters.parambyname('@msg').Value);
end;
end;
pd:=3;
Fsell.ashow.Execute;
Fmain.Timer1.Enabled:=True;//调用判断看当前的库存数量是否小于用户的设置量
end;
procedure TFselllr.dbclnameCloseUp(Sender: TObject; Accept: Boolean);
begin
if dbclname.Text='' then begin
with qrywpb do begin
Close;SQL.Clear;SQL.Add('select * from tbwpb');
Open;
end;
end;
if dbclname.Text<>'' then begin
with qrywpb do begin
Close;SQL.Clear;SQL.Add('select * from tbwpb where clid='''+inttostr(dbclname.KeyValue)+'''');
Open;
end;
end;
end;
procedure TFselllr.dblkcbbbuynameCloseUp(Sender: TObject);
begin
if dblkcbbbuyname.Text<>'' then begin
with spwpkcsl do begin
Close;
Parameters.ParamByName('@bwid').Value:=dblkcbbbuyname.KeyValue;
ExecProc;
end;
dqkc:=spwpkcsl.Parameters.ParamByName('@kcsl').Value;
if pd=1 then begin
if dqkc=0 then begin
MessageDlg('该物品已经没有库存了!',mtError,[mbyes],0);
bysl.Max:=0;
bysl.ReadOnly:=True;
end
else begin
bysl.Max:=dqkc;
bysl.ReadOnly:=False;
ShowMessage('目前['+''+dblkcbbbuyname.Text+''+']共有['+''+inttostr(dqkc)+''+']的库存');
end;
end;
end
else
Exit;
end;
procedure TFselllr.FormShow(Sender: TObject);
begin
qrywpb.Close;
qrywpb.Open;
Fwpbxx.qryclass.Close;
Fwpbxx.qryclass.Open;
fdate.qryempty.Close;
fdate.qryempty.Open;
yldz:=fdate.qryview_sellsequanty.Value;
end;
procedure TFselllr.img3Click(Sender: TObject);
begin
RzBitBtn2.Click;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -