📄 ckd_unit.pas
字号:
unit CKD_Unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBGridEh, ImgList, Menus, TFlatSpeedButtonUnit, Grids, StdCtrls,
DBCtrls, DBCtrlsEh, DBLookupEh, Mask, Buttons, ToolWin, ComCtrls,
ExtCtrls,DB, ADODB;
type
TCKD_Form = class(TForm)
Shape1: TShape;
Shape2: TShape;
Label1: TLabel;
Shape3: TShape;
Shape4: TShape;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
CoolBar1: TCoolBar;
ScrollBox1: TScrollBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn10: TBitBtn;
BitBtn11: TBitBtn;
DBEditEh1: TDBEditEh;
DBDateTimeEditEh1: TDBDateTimeEditEh;
DBMemo1: TDBMemo;
DBGridEh1: TDBGridEh;
Label8: TLabel;
Label9: TLabel;
DBLookupComboboxEh2: TDBLookupComboboxEh;
DBLookupComboboxEh3: TDBLookupComboboxEh;
FlatSpeedButton1: TFlatSpeedButton;
FlatSpeedButton2: TFlatSpeedButton;
FlatSpeedButton3: TFlatSpeedButton;
FlatSpeedButton4: TFlatSpeedButton;
Label10: TLabel;
DBEditEh2: TDBEditEh;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
DBIL: TImageList;
DELADOQ: TADOQuery;
qryExec: TADOQuery;
qryExec1: TADOQuery;
BitBtn6: TBitBtn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure BitBtn10Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure FlatSpeedButton1Click(Sender: TObject);
procedure FlatSpeedButton2Click(Sender: TObject);
procedure FlatSpeedButton3Click(Sender: TObject);
procedure FlatSpeedButton4Click(Sender: TObject);
procedure BitBtn11Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
function BS(M:integer):integer;
procedure CKITEMADDSHOW;
{ Public declarations }
end;
var
CKD_Form: TCKD_Form;
implementation
uses DMUnit, CKITEMADD_Unit, RPTUnit, U_CheckRights;
{$R *.dfm}
procedure TCKD_Form.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
end;
procedure TCKD_Form.FormDestroy(Sender: TObject);
begin
CKD_Form:=nil;
end;
procedure TCKD_Form.BitBtn10Click(Sender: TObject);
begin
Close;
end;
procedure TCKD_Form.FormCreate(Sender: TObject);
begin
with DM.CG_ADOQ do
begin
Close;
Open;
end;
with DM.STOCK_ADOQ do
begin
Close;
Open;
end;
with DM.CKDM_ADOQ do
begin
Close;
Open;
end;
with DM.CKDP_ADOT do
begin
Close;
OPen;
end;
end;
procedure TCKD_Form.BitBtn1Click(Sender: TObject);
begin
if DM.CKDM_ADOQ.State in [DSBROWSE] then
DM.CKDM_ADOQ.Append;
BS(0);
end;
function TCKD_Form.BS(M: integer): integer;
begin
if M=0 then
begin
DBMemo1.Enabled:=True;
DBDateTimeEditEh1.Enabled:=True;
DBLookupComboboxEh2.Enabled:=True;
DBLookupComboboxEh3.Enabled:=True;
DBEditEh2.Enabled:=True;
end;
if M=1 then
begin
DBMemo1.Enabled:=false;
DBDateTimeEditEh1.Enabled:=false;
DBLookupComboboxEh2.Enabled:=false;
DBLookupComboboxEh3.Enabled:=false;
DBEditEh2.Enabled:=false;
end;
end;
procedure TCKD_Form.CKITEMADDSHOW;
begin
if Application.FindComponent('CKITEMADD_FORM')<>nil then
CKITEMADD_FORM.Show else
begin
CKITEMADD_FORM:=TCKITEMADD_FORM.Create(Application);
CKITEMADD_FORM.Show;
end;
end;
procedure TCKD_Form.N1Click(Sender: TObject);
begin
if DBEditEh2.Text='审核' then Exit;
DM.CKDP_ADOT.Append;
CKITEMADDSHOW;
end;
procedure TCKD_Form.N2Click(Sender: TObject);
begin
if DBEditEh2.Text='审核' then Exit;
DM.CKDP_ADOT.Edit;
CKITEMADDSHOW;
end;
procedure TCKD_Form.N3Click(Sender: TObject);
begin
if DBEditEh2.Text='审核' then Exit;
if DM.CKDP_ADOT.RecordCount<=0 then Exit;
if Application.MessageBox('是否确认删除该条采购明细数据?', '提示',
MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2) = IDYES then
DM.CKDP_ADOT.Delete;
end;
procedure TCKD_Form.BitBtn2Click(Sender: TObject);
begin
if DBEditEh2.Text='审核' then Exit;
if DM.CKDM_ADOQ.RecordCount<=0 then Exit;
if DM.CKDM_ADOQ.State in [DSBROWSE] then
DM.CKDM_ADOQ.Edit;
BS(0);
end;
procedure TCKD_Form.BitBtn3Click(Sender: TObject);
var
CKDNO:string;
begin
CKDNO:=DBEditEh1.Text;
if DBEditEh2.Text='审核' then Exit;
if DM.RKDM_ADOQ.RecordCount<=0 then Exit;
if Application.MessageBox('是否确认删除该条入库单数据,如果删除,将删除所有入库明细数据?', '提示',
MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2) = IDYES then
with DELADOQ do
begin
Close;
SQL.Clear;
SQL.Add('DELETE CKD_P WHERE CKD_NO='''+CKDNO+'''');
ExecSQL;
end;
DM.CKDM_ADOQ.Delete;//删除明细表数据
end;
procedure TCKD_Form.BitBtn4Click(Sender: TObject);
begin
IF (Trim(DBLookupComboboxEh2.Text)='') or (Trim(DBLookupComboboxEh3.Text)='') then Exit;
if DM.CKDM_ADOQ.State in [DSINSERT,DSEDIT] then
DM.CKDM_ADOQ.FieldByName('CKD_BS').AsString:='未审核';
DM.CKDM_ADOQ.Post;
BS(1);
end;
procedure TCKD_Form.BitBtn5Click(Sender: TObject);
begin
DM.CKDM_ADOQ.Cancel;
BS(1);
end;
procedure TCKD_Form.FlatSpeedButton1Click(Sender: TObject);
begin
DM.CKDM_ADOQ.First;
end;
procedure TCKD_Form.FlatSpeedButton2Click(Sender: TObject);
begin
DM.CKDM_ADOQ.Prior;
end;
procedure TCKD_Form.FlatSpeedButton3Click(Sender: TObject);
begin
DM.CKDM_ADOQ.Next;
end;
procedure TCKD_Form.FlatSpeedButton4Click(Sender: TObject);
begin
DM.CKDM_ADOQ.Last;
end;
procedure TCKD_Form.BitBtn11Click(Sender: TObject);
var
OutAmt:integer;
begin
if (not DM.CKDM_ADOQ.Active) and (DM.CKDM_ADOQ.RecordCount<=0) then
exit;
if (not DM.CKDP_ADOT.Active) and (DM.CKDP_ADOT.RecordCount<=0) then
exit;
if DBEditEh2.Text='审核' then
begin
ShowMessage('该笔出库单已经审核!');
Exit;
end;
//判断出库数量
if application.MessageBox('是否对该笔数据进行审核,如果审核则该笔出库数据将不能修改,同时将减少库存!','系统提示',mb_yesno)=mrno then
Exit;
try
IF DM.ADOC.InTransaction then DM.ADOC.RollbackTrans ;
DM.ADOC.BeginTrans ;
with qryExec do
begin
Close;
SQl.Clear;
SQL.Add('UPDATE CKD_M SET CKD_BS=''审核'' where CKD_NO='''+DBEditEh1.Text+'''');
ExecSQL;
end;
with DM.CKDP_ADOT do
begin
First;
while not Eof do
begin
OutAmt:=FieldByName('ITEM_NUM').AsInteger+FieldByName('ITEM_SHNUM').AsInteger;
if OutAmt>0 then
begin
qryExec.Close;
qryExec.SQL.Clear ;
qryExec.SQL.Add('select * from stock');
qryExec.SQL.Add('where RKD_ITEMNAME=:RKD_ITEMNAME order by RKD_TIME,RKD_NUM ');
qryExec.Parameters.ParamByName('RKD_ITEMNAME').Value :=trim(FieldByName('ITEM_NO').AsString);
qryExec.Open;
while not qryExec.Eof do
begin
if OutAmt<=0 then break;
if OutAmt>=qryExec.FieldByName('RKD_NUM').AsInteger then
begin
OutAmt:=OutAmt-qryExec.fieldbyName('RKD_NUM').AsInteger;
qryExec1.Close;
qryExec1.SQL.Clear ;
qryExec1.SQL.Add('Update stock set RKD_NUM=0 where RKD_NO=:RKD_NO and RKD_ITEMNAME=:RKD_ITEMNAME');
qryExec1.Parameters.ParamByName('RKD_NO').Value :=qryExec.fieldbyName('RKD_NO').AsString ;
qryExec1.Parameters.ParamByName('RKD_ITEMNAME').Value :=trim(FieldByName('ITEM_NO').AsString);
qryExec1.ExecSQL ;
end
else begin
qryExec1.Close;
qryExec1.SQL.Clear ;
qryExec1.SQL.Add('Update stock set RKD_NUM=RKD_NUM-(:RKD_NUM) where RKD_NO=:RKD_NO AND RKD_ITEMNAME=:RKD_ITEMNAME');
qryExec1.Parameters.ParamByName('RKD_NUM').Value:=OutAmt;
qryExec1.Parameters.ParamByName('RKD_NO').Value :=qryExec.fieldbyName('RKD_NO').AsString ;
qryExec1.Parameters.ParamByName('RKD_ITEMNAME').Value :=trim(FieldByName('ITEM_NO').AsString) ;
qryExec1.ExecSQL ;
OutAmt:=0;
end;
qryExec.Next;
end;
end;
Next;
end;
end;
DM.ADOC.CommitTrans ;
Except
DM.ADOC.RollbackTrans ;
end;
DM.CKDM_ADOQ.Refresh;
DM.CKDP_ADOT.Refresh;
end;
procedure TCKD_Form.BitBtn6Click(Sender: TObject);
begin
RPTDM.CKDP_Rpt.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'RPT/出库单.frf');
RPTDM.CKDP_Rpt.ShowReport;
end;
procedure TCKD_Form.FormShow(Sender: TObject);
begin
BitBtn6.Enabled:=CheckRights('出库单编制','打印');
BitBtn1.Enabled:=CheckRights('出库单编制','新单');
BitBtn2.Enabled:=CheckRights('出库单编制','修改');
BitBtn3.Enabled:=CheckRights('出库单编制','删除');
BitBtn4.Enabled:=CheckRights('出库单编制','保存');
BitBtn5.Enabled:=CheckRights('出库单编制','取消');
BitBtn11.Enabled:=CheckRights('出库单编制','审核');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -