📄 sy_ckjhdzd1.pas
字号:
{*******************************************************}
{ }
{ 单去向多品种 }
{ }
{ 中软金马公司版权所有。2002.12前 }
{ }
{ 编制:中软金马邮资票品项目开发组 }
{ }
{ }
{*******************************************************}
(*
本模块在省级集邮品系统管理模块里面调用。
修改记录
修改用于销价进价结算价的显示小数点后扩到3位 将Qry_Main进价销价结算价显示调用的CurrGetText替换为CurrGetText3 jhshao 2003.05.08
*)
unit SY_CKJHDZD1;
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_CKJHDZD1 = 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;
USQL_Third: 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;
BBt_AddDW: TBitBtn;
BBt_DeleteDW: TBitBtn;
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;
Qry_Static2: TQuery;
USQL_Main: TUpdateSQL;
Qry_Main: 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;
Qry_MainKFMC: TStringField;
Qry_MainDW: TStringField;
Qry_MainPPDM: TStringField;
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);
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_CKJHDZD1: TFrmY_CKJHDZD1;
implementation
uses
pub, SY_CKJHDZD_XZDW, SY_CKJHDZD_XZPP, SY_CKJHDCX_RPT, SY_KC, SJ_RICHEDIT;
{$R *.DFM}
procedure TFrmY_CKJHDZD1.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;
with E_CKXZ do
begin
Items.Clear;
Items.Insert(0, PY_XZDMTOMC('10'));
Items.Insert(1, PY_XZDMTOMC('12'));
Items.Insert(2, PY_XZDMTOMC('14'));
ItemIndex := 0;
end;
ND.Value := VG_Year;
PS_SetStatus();
GetAllColWidth(self);
end;
procedure TFrmY_CKJHDZD1.Act_QuitExecute(Sender: TObject);
begin
Close;
end;
procedure TFrmY_CKJHDZD1.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;
end;
procedure TFrmY_CKJHDZD1.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;
CB_CKJHDHChange(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'') order by PXM';
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_CKJHDZD1.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_CKJHDZD1.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_CKJHDZD1.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_CKJHDZD1.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('PW');
//给主表赋分配单号
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -