📄 sy_ckjhdzd.pas
字号:
{*******************************************************}
{ }
{ 批量出库计划单制定 }
{ }
{ 中软金马公司版权所有。2002.12前 }
{ }
{ 编制:中软金马邮资票品项目开发组 }
{ }
{ }
{*******************************************************}
(*
本模块在省级集邮品系统管理模块里面的单品种多去向和单去向多品种调用。
修改记录
修改用于销价进价结算价的显示小数点后扩到3位 将Qry_Main进价销价结算价显示调用的CurrGetText替换为CurrGetText3 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;
Panel2: TPanel;
Panel5: TPanel;
USQL_Main: TUpdateSQL;
Qry_Main: TQuery;
DS_Main: TDataSource;
Qry_Third: TQuery;
USQL_Third: TUpdateSQL;
DS_Third: TDataSource;
Qry_Static: TQuery;
Qry_MainCKJHDH: TStringField;
Qry_MainKFDM: TStringField;
Qry_MainDWDM: 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;
Panel6: TPanel;
Qry_KFB: TQuery;
Qry_KFBKFDM: TStringField;
Qry_KFBKFMC: TStringField;
Qry_MainKFMC: TStringField;
XttxTitle: TRxLabel;
BBt_Print: TBitBtn;
BBt_DG: TBitBtn;
Panel8: TPanel;
L_CKJHDH: TLabel;
Label4: TLabel;
CB_CKJHDH: TComboBox;
BBt_AddDW: TBitBtn;
BBt_DeleteDW: TBitBtn;
DBG_Main: TRxDBGrid;
Panel4: TPanel;
Label5: TLabel;
Label8: TLabel;
Label6: TLabel;
Label7: TLabel;
DBE_PZR: TDBEdit;
DBE_ZBR: TDBEdit;
DBE_ZDRQ: TDBEdit;
CE_KC: TCurrencyEdit;
CB_PPMC: TFieldComboBox;
Label1: TLabel;
E_CKXZ: TEdit;
Qry_ThirdCKJHDH: TStringField;
Qry_ThirdCKXZ: TStringField;
Qry_ThirdZK: TFloatField;
Qry_ThirdZBR: TStringField;
Qry_ThirdPZR: TStringField;
Qry_ThirdZDRQ: TDateTimeField;
Qry_ThirdBZ: TStringField;
Qry_ThirdZT: TStringField;
Qry_ThirdSDATE: TDateTimeField;
Qry_MainDW: TStringField;
Qry_MainPPDM: TStringField;
PM_Main: TPopupMenu;
N_SDL: TMenuItem;
N_JSL: TMenuItem;
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 Qry_MainXJSetText(Sender: TField; const Text: string);
procedure Qry_MainZKSetText(Sender: TField; const Text: string);
procedure Qry_MainFPSLSetText(Sender: TField; const Text: string);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Qry_MainJSJSetText(Sender: TField; const Text: string);
procedure L_CKJHDHDblClick(Sender: TObject);
procedure BBt_PrintClick(Sender: TObject);
procedure Qry_MainJJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure DBG_MainKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CB_PPMCChange(Sender: TObject);
procedure Qry_MainBeforeInsert(DataSet: TDataSet);
procedure Qry_MainJSJChange(Sender: TField);
procedure CE_KCEnter(Sender: TObject);
procedure CE_KCDblClick(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);
function SumField(Dataset: TDataSet; Field: TField): Double;
procedure ps_AddRec();
function GetExistField(FQuery: TQuery; FieldName: string;
SnapStr: string = ','): string; //取数据集中字段的记录的字符串流
{ Private declarations }
public
{ Public declarations }
end;
var
FrmY_CKJHDZD: TFrmY_CKJHDZD;
implementation
uses
datas, pub, SY_CKJHDZD_XD, SY_CKJHDZD_XZDW, {SY_CKJHDCX_RPT, }SY_KC, SY_CKJHDOne_More_RPT, SY_CKJHDMore_More_RPT ;
{$R *.DFM}
procedure TFrmY_CKJHDZD.FormCreate(Sender: TObject);
begin
//判断权限(取消签批)
// CheckRight(self);
if not CheckRight_Bool(CG_YPQP) 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;
//刷新年度
ND.Value := VG_Year;
PS_SetStatus();
//保存DBGrid的宽度
GetAllColWidth(self);
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;
E_CKXZ.Enabled := not True;
CB_PPMC.Enabled := not True;
end;
BBt_Print.Enabled := BBt_AddFPJH.Enabled;
end;
procedure TFrmY_CKJHDZD.BBt_AddFPJHClick(Sender: TObject);
begin
//取得要分配单票品
FrmY_CKJHDZD_XD := TFrmY_CKJHDZD_XD.Create(nil);
with FrmY_CKJHDZD_XD do
begin
ShowModal;
if ModalResult <> MrOK then
begin
Free;
Exit;
end;
//取得票品信息
V_KFDM := Qry_YZPPTXXBKFDM.AsString;
V_PPDM := Qry_YZPPTXXBPPDM.AsString;
V_PPMC := Qry_YZPPTXXBPPMC.AsString;
V_KWH := Qry_YZPPTXXBKWH.AsString;
V_JJ := Qry_YZPPTXXBJJ.AsFloat;
V_XJ := Qry_YZPPTXXBXJ.AsFloat;
V_ZK := Qry_YZPPTXXBZK.AsFloat;
V_JSJ := Qry_YZPPTXXBJSJ.AsFloat;
V_CKXZ := '10';
if (V_PPDM = '') or (V_JJ < 0) then
begin
Free;
CHQMsgBox('票品信息不全!');
Exit;
end;
if (V_ZK <= 0) and (V_JSJ <= 0) then
begin
Free;
CHQMsgBox('票品的折扣和结算价都为0!');
Exit;
end;
//取得临时处库计划单
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;
try
with Qry_JJNFPJH do
begin
First;
Qry_Main.DisableControls;
while not Eof do
begin
//取得临时数据
V_DWDM := Qry_JJNFPJHDWDM.AsString;
V_DWMC := Qry_JJNFPJHDWMC.AsString;
V_FPSL := Qry_JJNFPJHDATA.AsInteger;
//添加票品表
ps_AddRec();
Next;
end;
Qry_Main.EnableControls;
end;
except
Free;
end;
end;
//刷新票品名称
CB_PPMC.Text := V_PPMC;
CB_CKJHDH.Text := '';
L_CKJHDH.Font.Color := ClBlack;
//刷新出库性质名称
E_CKXZ.Text := PY_XZDMTOMC(V_CKXZ);
//刷新库存
CE_KC.Value := PS_GetSYTS(V_KFDM, V_PPDM, V_JJ) - sumField(Qry_Main, Qry_Main.FieldByName('FPSL'));
if CE_KC.Value < 0 then
CE_KC.Font.Color := ClRed
else
CE_KC.Font.Color := ClBlue;
DBG_Main.SetFocus;
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.NDChange(Sender: TObject);
begin
//刷新票品名称
CB_PPMC.Text := '';
CB_PPMC.ClearAll;
CB_PPMC.OnChange := nil;
with Qry_Static do
begin
Close;
SQL.Clear;
SQL.Add('select distinct B.PPMC,B.PPDM from TYS_YPCKJHDB A,TYS_YPCKJHDPPB B, TGS_KFRYDZB C');
SQL.Add('where A.CKJHDH=B.CKJHDH and B.KFDM=C.KFDM and A.CKJHDH LIKE ''PN%''');
SQL.Add('and TO_CHAR(A.ZDRQ,''YYYY'') = ''' + ND.Text + ''' ');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -