?? sy_ckjhdzd.pas
字號:
{*******************************************************}
{ }
{ 出庫計劃單制定 }
{ }
{ 中軟金馬公司版權所有。2002.12前 }
{ }
{ 編制:中軟金馬郵資票品項目開發組 }
{ }
{ }
{*******************************************************}
(*
本模塊在省級購入票系統管理模塊里面調用。
修改記錄
修改用于銷價進價結算價的顯示小數點后擴到3位 將Qry_Main進價銷價結算價顯示調用的CurrGetText替換為CurrGetText3;結算價顯示調用CurrGetText jhshao 2003.05.08
*)
unit SY_CKJHDZD;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Spin, ExtCtrls, ActnList, Grids, DBGrids, Db, DBTables,
RXCtrls, Mask, DBCtrls, RXDBCtrl, Menus, ToolEdit, CurrEdit,
FieldComboBox;
type
TFrmY_CKJHDZD = class(TForm)
Panel1: TPanel;
Label3: TLabel;
ND: TSpinEdit;
Panel3: TPanel;
BBt_Modify: TBitBtn;
BBt_Save: TBitBtn;
BBt_Cancel: TBitBtn;
BBt_Quit: TBitBtn;
BBt_AddFPJH: TBitBtn;
BBt_DeleteFPJH: TBitBtn;
BBt_DG: TBitBtn;
Panel2: TPanel;
Panel5: TPanel;
DS_Main: TDataSource;
Qry_Third: TQuery;
UpdateSQL2: TUpdateSQL;
DS_Third: TDataSource;
Qry_Static: TQuery;
Qry_KFB: TQuery;
Qry_KFBKFDM: TStringField;
Qry_KFBKFMC: TStringField;
XttxTitle: TRxLabel;
BBt_Print: TBitBtn;
Panel8: TPanel;
L_CKJHDH: TLabel;
Label4: TLabel;
CB_CKJHDH: TComboBox;
DBG_Main: TRxDBGrid;
Label1: TLabel;
E_CKXZ: TComboBox;
CB_PPMC: TFieldComboBox;
Panel4: TPanel;
Label5: TLabel;
Label8: TLabel;
Label6: TLabel;
Label7: TLabel;
DBE_PZR: TDBEdit;
DBE_ZBR: TDBEdit;
DBE_ZDRQ: TDBEdit;
CE_KC: TCurrencyEdit;
UpdateSQL1: TUpdateSQL;
Qry_Main: TQuery;
Qry_MainCKJHDH: TStringField;
Qry_MainKFDM: TStringField;
Qry_MainDWDM: TStringField;
Qry_MainPPDM: TStringField;
Qry_MainJJ: TFloatField;
Qry_MainKWH: TStringField;
Qry_MainPPMC: TStringField;
Qry_MainYJ: TFloatField;
Qry_MainXJ: TFloatField;
Qry_MainJSJ: TFloatField;
Qry_MainFPSL: TFloatField;
Qry_MainSDATE: TDateTimeField;
Qry_MainDWMC: TStringField;
Qry_MainZK: TFloatField;
Qry_MainKFMC: TStringField;
Qry_MainDW: TStringField;
PM_Main: TPopupMenu;
N_SDL: TMenuItem;
N_JSL: TMenuItem;
BBt_AddDW: TBitBtn;
BBt_DeleteDW: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure Act_QuitExecute(Sender: TObject);
procedure BBt_AddFPJHClick(Sender: TObject);
procedure CB_CKJHDHChange(Sender: TObject);
procedure NDChange(Sender: TObject);
procedure BBt_SaveClick(Sender: TObject);
procedure BBt_DeleteFPJHClick(Sender: TObject);
procedure BBt_ModifyClick(Sender: TObject);
procedure BBt_DGClick(Sender: TObject);
procedure BBt_CancelClick(Sender: TObject);
procedure BBt_DeleteDWClick(Sender: TObject);
procedure BBt_AddDWClick(Sender: TObject);
procedure L_CKJHDHDblClick(Sender: TObject);
procedure BBt_PrintClick(Sender: TObject);
procedure Qry_MainFPSLSetText(Sender: TField; const Text: string);
procedure Qry_MainAfterScroll(DataSet: TDataSet);
procedure Qry_MainJJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure DBG_MainKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Query1YFZLSetText(Sender: TField; const Text: string);
procedure Qry_MainJJSetText(Sender: TField; const Text: string);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Qry_MainJSJChange(Sender: TField);
procedure E_CKXZChange(Sender: TObject);
procedure CB_PPMCChange(Sender: TObject);
procedure Qry_MainBeforeInsert(DataSet: TDataSet);
procedure CE_KCDblClick(Sender: TObject);
procedure Qry_MainJSJSetText(Sender: TField; const Text: string);
procedure CE_KCEnter(Sender: TObject);
procedure N_SDLClick(Sender: TObject);
procedure N_JSLClick(Sender: TObject);
private
V_CKJHDH, V_CKXZ, V_KFDM, V_PPDM, V_PPMC, V_DWDM, V_DWMC, V_KWH: string;
V_JJ, V_XJ, V_ZK, V_JSJ: Double;
V_FPSL, V_State: Integer;
procedure PS_SetStatus(Value: Integer = 0);
procedure ps_AddRec();
{ Private declarations }
public
{ Public declarations }
end;
var
FrmY_CKJHDZD: TFrmY_CKJHDZD;
implementation
uses
pub,SY_CKJHDZD_XZDW, SY_CKJHDZD_XZPP, SY_CKJHDCX_RPT, SY_KC,SJ_RichEdit;
{$R *.DFM}
procedure TFrmY_CKJHDZD.FormCreate(Sender: TObject);
begin
GetAllColWidth(self);
//判斷權限(取消簽批)
// CheckRight(self);
if not CheckRight_Bool(CG_GRQP) then
begin
BBt_DG.Visible := False;
BBt_Print.Left := (BBt_Cancel.Left + BBt_Cancel.Width)
+ (BBt_Quit.Left - BBt_Cancel.Width - BBt_Cancel.Left) div 2 - BBt_DG.Width div 2;
L_CKJHDH.OnDblClick := nil;
end;
with E_CKXZ do
begin
Items.Clear;
Items.Insert(0, PY_XZDMTOMC('10'));
Items.Insert(1, PY_XZDMTOMC('14'));
ItemIndex := 0;
end;
ND.Value := VG_Year;
PS_SetStatus();
end;
procedure TFrmY_CKJHDZD.Act_QuitExecute(Sender: TObject);
begin
Close;
end;
procedure TFrmY_CKJHDZD.PS_SetStatus(Value: Integer = 0);
{
0:默認初始化
1:添加
3:修改
}
begin
V_State := Value;
if V_State = 0 then //默認
begin
{ BBt_AddDW.Enabled := not True;
BBt_DeleteDW.Enabled := not True; }
BBt_AddFPJH.Enabled := True;
BBt_DeleteFPJH.Enabled := True;
BBt_Modify.Enabled := True;
BBt_DG.Enabled := True;
BBt_Save.Enabled := not True;
BBt_Cancel.Enabled := not True;
CB_CKJHDH.Enabled := True;
ND.Enabled := True;
DBG_Main.ReadOnly := True;
E_CKXZ.Enabled := True;
CB_PPMC.Enabled := True;
end
else if (V_State = 1) or (V_State = 3) then //增加 //修改
begin
{ BBt_AddDW.Enabled := True;
BBt_DeleteDW.Enabled := True; }
BBt_AddFPJH.Enabled := not True;
BBt_DeleteFPJH.Enabled := not True;
BBt_Modify.Enabled := not True;
BBt_DG.Enabled := not True;
BBt_Save.Enabled := True;
BBt_Cancel.Enabled := True;
CB_CKJHDH.Enabled := not True;
ND.Enabled := not True;
DBG_Main.ReadOnly := not True;
CB_PPMC.Enabled := not True;
E_CKXZ.Enabled := not True;
end;
BBt_AddDW.Enabled := BBt_Save.Enabled;
BBt_DeleteDW.Enabled := BBt_Save.Enabled;
end;
procedure TFrmY_CKJHDZD.BBt_AddFPJHClick(Sender: TObject);
begin
//取得臨時出庫計劃單
V_CKJHDH := CG_CKJHDH;
//打開空的主表
with Qry_Third do
begin
Close;
Prepare;
Params[0].AsString := V_CKJHDH;
Open;
end;
//插入主表數據
with Qry_Third do
begin
Append;
FieldByName('CKJHDH').AsString := V_CKJHDH;
FieldByName('CKXZ').AsString := V_CKXZ;
FieldByName('ZT').Asstring := CG_WCL;
FieldByName('ZBR').Asstring := VG_UserName;
FieldByName('ZDRQ').AsString := FormatDateTime('yyyy-mm-dd', GetSysDate);
FieldByName('BZ').AsString := '';
end;
//打開空的從表
with Qry_Main do
begin
Close;
Prepare;
Params[0].AsString := V_CKJHDH;
Open;
end;
if V_CKXZ = '10' then //分配出庫
begin
with Qry_Static do
begin
Close;
Qry_Static.SQL.Text := 'select * from TGS_GXDWSJB WHERE JYYW = ''1'' and FHDX =''1'' ';
Open;
if Eof then
begin
BBt_CancelClick(nil);
CHQMsgBox('沒有發貨對象單位!');
Exit;
end;
end;
//選擇單位
FrmY_CKJHDZD_XZDW := TFrmY_CKJHDZD_XZDW.Create(nil);
with FrmY_CKJHDZD_XZDW do
begin
DBGrid1.Options := DBGrid1.Options - [dgMultiSelect];
Qry_Static.Close;
Qry_Static.SQL.Text := 'select * from TGS_GXDWSJB WHERE JYYW=''1'' and FHDX=''1'' order by PXM';
Qry_Static.Open;
ShowModal;
if ModalResult <> MrOK then
begin
Free;
BBt_CancelClick(nil);
Exit;
end;
//取得臨時的單位代碼和單位名稱
V_DWDM := Qry_Static.FieldByName('DWDM').AsString;
V_DWMC := Qry_Static.FieldByName('DWJC').AsString;
Free;
end;
end
else if V_CKXZ = '12' then //注銷出庫
begin
V_DWDM := '-3';
V_DWMC := '注銷出庫';
end
else if V_CKXZ = '13' then //待銷毀出庫
begin
V_DWDM := '-2';
V_DWMC := '待銷毀出庫';
end
else if V_CKXZ = '14' then //退繳出庫
begin
with Qry_Static do
begin
Close;
Qry_Static.SQL.Text := 'select * from TGS_GXDWSJB WHERE ZJSJ=''1'' or SJFH=''1'' or (JYYW=''1'' and KH=''1'') or (JYYW=''1'' and FHDX=''1'') ';
Open;
if Eof then
begin
BBt_CancelClick(nil);
CHQMsgBox('沒有退繳對象單位!');
Exit;
end;
Close;
end;
//選擇單位
FrmY_CKJHDZD_XZDW := TFrmY_CKJHDZD_XZDW.Create(nil);
with FrmY_CKJHDZD_XZDW do
begin
DBGrid1.Options := DBGrid1.Options - [dgMultiSelect];
Qry_Static.Close;
Qry_Static.SQL.Text := 'select * from TGS_GXDWSJB WHERE ZJSJ=''1'' or SJFH=''1'' or (JYYW=''1'' and KH=''1'') or (JYYW=''1'' and FHDX=''1'') order by PXM';
Qry_Static.Open;
ShowModal;
if ModalResult <> MrOK then
begin
Free;
CB_CKJHDHChange(nil);
Exit;
end;
//取得臨時的單位代碼和單位名稱
V_DWDM := Qry_Static.FieldByName('DWDM').AsString;
V_DWMC := Qry_Static.FieldByName('DWJC').AsString;
Free;
end;
end;
//添加票品
BBt_AddDWClick(nil);
//刷新票品名稱
CB_PPMC.Text := V_DWMC;
CB_CKJHDH.Text := '';
L_CKJHDH.Font.Color := ClBlack;
//刷新出庫性質名稱
E_CKXZ.Text := PY_XZDMTOMC(V_CKXZ);
PS_SetStatus(1);
end;
procedure TFrmY_CKJHDZD.ps_AddRec();
begin
with Qry_Main do
begin
Qry_Main.BeforeInsert := nil;
Append;
//出庫計劃單號
FieldByName('CKJHDH').AsString := V_CKJHDH;
//庫房代碼
FieldByName('KFDM').AsString := V_KFDM;
//單位代碼
FieldByName('DWDM').AsString := V_DWDM;
//票品代碼
FieldByName('PPDM').AsString := V_PPDM;
//進價分
FieldByName('JJ').AsFloat := V_JJ;
//銷售分
FieldByName('XJ').AsFloat := V_XJ;
//庫位號
FieldByName('KWH').AsString := V_KWH;
//票品名稱
FieldByName('PPMC').Asstring := V_PPMC;
//單位名稱
FieldByName('DWMC').Asstring := V_DWMC;
//折扣
FieldByName('ZK').AsFloat := V_ZK;
//結算價
FieldByName('JSJ').AsFloat := V_JSJ;
//分配數量
FieldByName('FPSL').AsInteger := V_FPSL;
Post;
Qry_Main.BeforeInsert := Qry_MainBeforeInsert;
end;
end;
procedure TFrmY_CKJHDZD.CB_CKJHDHChange(Sender: TObject);
begin
//數據復位
Qry_Third.Close;
Qry_Main.Close;
CE_KC.Text := '';
//顏色復位
L_CKJHDH.Font.Color := ClBlack;
CE_KC.Font.Color := ClBlue;
//若出庫計劃單為空,跳出
if CB_CKJHDH.Text = '' then Exit;
//保存臨時數據
V_CKJHDH := UpperCase(CB_CKJHDH.Text);
V_DWDM := CB_PPMC.FieldString;
V_DWMC := CB_PPMC.Text;
//打開主表
with Qry_Third do
begin
Close;
Prepare;
Params[0].AsString := V_CKJHDH;
Open;
end;
//打開從表
with Qry_Main do
begin
Close;
Prepare;
Params[0].AsString := V_CKJHDH;
Open;
end;
//刷新出庫計劃單的出庫狀態
if Qry_Third.FieldByName('ZT').AsString = CG_DG then
L_CKJHDH.Font.Color := ClRed
else
L_CKJHDH.Font.Color := ClBlack;
end;
procedure TFrmY_CKJHDZD.NDChange(Sender: TObject);
begin
//復位數據
Qry_Third.Close;
Qry_Main.Close;
//復位顏色
L_CKJHDH.Font.Color := ClBlack;
CE_KC.Font.Color := ClBlue;
if ND.Text = '' then Exit;
V_CKXZ := '10';
//刷新出庫性質
E_CKXZChange(nil);
end;
procedure TFrmY_CKJHDZD.BBt_SaveClick(Sender: TObject);
var
V_ItemIndex: Integer;
begin
//求出此次分配套數
with Qry_main do
begin
DisableControls;
First;
while not Eof do
begin
if FieldByName('FPSL').AsInteger > 0 then
Next
else
begin
EnableControls;
CHQMsgBox('請確定分配數量!');
DBG_Main.SetFocus;
Exit;
end;
end;
First;
EnableControls;
end;
//判斷出庫票品
with Qry_main do
begin
DisableControls;
First;
while not Eof do
begin
if FieldByName('XJ').IsNull or FieldByName('ZK').IsNull or FieldByName('JSJ').IsNull then
begin
EnableControls;
CHQMsgBox('銷價、折扣或結算價不能為空!');
DBG_Main.SetFocus;
Exit;
end;
if CE_KC.Value < 0 then
begin
EnableControls;
CHQMsgBox(FieldByName('PPMC').AsString + '的分配數量已超出實際庫存量, 請調整分配數量!');
DBG_Main.SelectedIndex := DBG_Main.Columns.Count - 1;
DBG_Main.SetFocus;
Exit;
end;
Next;
end;
First;
EnableControls;
end;
//新增出庫單的處理
if (V_State = 1) then
begin
//取得分配單號
V_CKJHDH := GetFPDH('GR');
//給主表賦分配單號
with Qry_Third do
begin
Filtered := False;
DisableControls;
Edit;
FieldByName('CKJHDH').AsString := V_CKJHDH;
EnableControls;
Filtered := True;
end;
//給從表賦分配單號
with Qry_Main do
begin
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -