⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sy_qlbzd.pas

📁 省级集邮品管理ERP
💻 PAS
字号:
{*******************************************************}
{                                                       }
{                       邮品征订补录                    }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
本模块在省级集邮品系统管理模块里面调用。

*)
unit SY_QLBZD;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Spin, ExtCtrls, ActnList, Grids, DBGrids, DBCtrls,
  Mask, ToolEdit, CurrEdit, RXDBCtrl, Db, DBTables, CheckLst, RXCtrls;

type
  TFrmY_QLBZD = class(TForm)
    Panel1: TPanel;
    DWMC: TLabel;
    Label3: TLabel;
    ND: TSpinEdit;
    Panel2: TPanel;
    Panel3: TPanel;
    BBt_Modify: TBitBtn;
    BBt_Delete: TBitBtn;
    BBt_Save: TBitBtn;
    BBt_Cancel: TBitBtn;
    BBt_Quit: TBitBtn;
    ALi_Edit: TActionList;
    Act_Add: TAction;
    Act_Delete: TAction;
    Act_Modify: TAction;
    Act_Find: TAction;
    Act_Print: TAction;
    Act_Save: TAction;
    Act_Cancel: TAction;
    Panel4: TPanel;
    Label1: TLabel;
    DataSource1: TDataSource;
    Qry_GXDWSJB: TQuery;
    Qry_Static: TQuery;
    CB_PPMC: TComboBox;
    Label4: TLabel;
    CB_DWMC: TComboBox;
    BBt_Add: TBitBtn;
    UpdateSQL1: TUpdateSQL;
    Qry_JJNXQB: TQuery;
    Qry_JJNXQBJHH: TStringField;
    Qry_JJNXQBSQDWDM: TStringField;
    Qry_JJNXQBND: TStringField;
    Qry_JJNXQBXQZTS: TFloatField;
    Qry_JJNXQBYDTS: TFloatField;
    Qry_JJNXQBLSTS: TFloatField;
    Qry_JJNXQBZT: TStringField;
    Qry_JJNXQBZBR: TStringField;
    Qry_JJNXQBPZR: TStringField;
    Qry_JJNXQBZDRQ: TDateTimeField;
    Qry_JJNXQBSDRQ: TDateTimeField;
    Qry_JJNXQBBZ: TStringField;
    Qry_JJNXQBDWMC: TStringField;
    Qry_JJNXQBYPMC: TStringField;
    Qry_JJNXQBDW: TStringField;
    Qry_JJNXQBSDATE: TDateTimeField;
    XttxTitle: TRxLabel;
    RxDBGrid1: TRxDBGrid;
    BitBtn2: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure NDChange(Sender: TObject);
    procedure Act_CancelExecute(Sender: TObject);
    procedure Act_SaveExecute(Sender: TObject);
    procedure Act_AddExecute(Sender: TObject);
    procedure Act_DeleteExecute(Sender: TObject);
    procedure Act_ModifyExecute(Sender: TObject);
    procedure Act_FindExecute(Sender: TObject);
    procedure CB_PPMCChange(Sender: TObject);
    procedure Qry_JJNXQBYDTSChange(Sender: TField);
    procedure Qry_JJNXQBLSTSChange(Sender: TField);
    procedure CB_DWMCChange(Sender: TObject);
    procedure Qry_JJNXQBYDTSSetText(Sender: TField; const Text: String);
    procedure RxDBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    V_JHH:TStringList;
    V_JHH1:String;
    procedure PS_SetStatus(Value:Boolean);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmY_QLBZD: TFrmY_QLBZD;

implementation

uses
  pub,SY_QLBCX_PRT;

{$R *.DFM}

procedure TFrmY_QLBZD.FormCreate(Sender: TObject);
begin
  DWMC.Caption := '使用单位:'+VG_UnitName;
  V_JHH:=TStringList.Create;
  with Qry_Static do
  begin
    Close;
    SQL.Clear ;
    SQL.Add ('select DWJC||''(''||DWDM||'')'' from TGS_GXDWSJB ');
    SQL.Add ('where FHDX= ''1'' and ZJXJ=''1'' and JYYW=''1'' order by PXM');
//    SQL.Add ('where (FHDX= ''1'' or KH=''1'') and JYYW=''1'' order by PXM');
    Open;
    while not Eof do
    begin
      CB_DWMC.Items.Add(Fields[0].AsString);
      Next;
     end;
    Close;
  end;
  CB_DWMC.Items.Insert(0,'全部');
  CB_DWMC.ItemIndex:=0;
  ND.Value := VG_Year;
  PS_SetStatus(True);
  GetAllColWidth(Self);
end;

procedure TFrmY_QLBZD.NDChange(Sender: TObject);
begin
  CB_PPMC.Text :='';
  CB_PPMC.Items.Clear ;
  V_JHH.Clear ;
  Qry_JJNXQB.Close ;
  CB_PPMC.OnChange :=nil;
  with Qry_Static do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select JHH,TMC from TF_YPFXJHTAO ');
    SQL.Add('where ND='''+IntToSTr(ND.Value)+'''');
    SQL.Add ('order by JHH ');
    Open;
    While not Eof do
    begin
      CB_PPMC.Items.Add(Fields[1].AsString);
      V_JHH.Add(Fields[0].AsString);
      Next;
    end;
    CB_PPMC.OnChange :=CB_PPMCChange;
    if CB_PPMC.Items.Count >0 then
    begin
      CB_PPMC.ItemIndex:=0;
    end;
    Close;
  end;
  CB_PPMCChange(nil);
end;

procedure TFrmY_QLBZD.Act_CancelExecute(Sender: TObject);
begin
  with Qry_JJNXQB do
  begin
    Database.StartTransaction;
    try
      CancelUpdates;
      Database.Commit;
    except
      Database.RollBack;
      CHQMsgBox('数据存储错误!');
      exit;
    end;
    CommitUpdates;           //清除缓存的内容
    close;
    Open;
  end;
  PS_SetStatus(True);
  Act_FindExecute(nil);
  CB_PPMC.Enabled :=True;
  CB_DWMC.Enabled :=True;
end;

procedure TFrmY_QLBZD.Act_SaveExecute(Sender: TObject);
begin
  with Qry_JJNXQB do
  begin
    First;
    while not Eof do
    begin
      if FieldByName('XQZTS').AsInteger= 0 then
      begin
        Delete;
        Continue;
      end;
      Next;
    end;
    First;
  end;
  with Qry_JJNXQB do
  begin
    Database.StartTransaction;
    try
      ApplyUpdates;
      Database.Commit;
      Close;
      Open;
    except
      Database.RollBack;
      CHQMsgBox('数据存储错误!');
      exit;
    end;
    CommitUpdates;           //清除缓存的内容
  end;
  PS_SetStatus(True);
  Act_FindExecute(nil);
  
  CB_PPMC.Enabled :=True;
  CB_DWMC.Enabled :=True;
end;

procedure TFrmY_QLBZD.Act_AddExecute(Sender: TObject);
begin
 if  CB_PPMC.Text ='' then
 begin
    CHQMsgBox('请选择一种票品!');
    Exit;
 end;

  if (CB_DWMC.Text <> '全部') and (not Qry_JJNXQB.IsEmpty) then Exit;
  with Qry_JJNXQB do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select * from TY_YPZDB ');
    SQL.Add('where ND=''ZYJM''');
    Open;
  end;
  if CB_DWMC.Text = '全部' then
  with Qry_Static do
  begin
    Close;
    SQL.Clear ;
    SQL.Add ('select DWJC DWMC,DWDM from TGS_GXDWSJB ');
    SQL.Add ('where FHDX= ''1'' and JYYW=''1'' ');
    Open;
    while not Eof do
    begin
      VG_SQLWhere:='select JHH from TY_YPZDB '
              +' where ND ='''+IntToStr(ND.Value)+''' '
              +' and JHH='''+ V_JHH1+''''
              +' and SQDWDM ='''+FieldByName('DWDM').AsString +'''';
      if PY_IsExist(VG_SQLWhere) then
      begin
        Next;
        Continue;
      end;
      with Qry_JJNXQB do
      begin
        Append ;
        FieldByName('JHH').Asstring   := V_JHH1;
        FieldByName('SQDWDM').AsString:= Qry_Static.FieldByName('DWDM').AsString ;
        FieldByName('YPMC').AsString:= CB_PPMC.Text ;
        FieldByName('ND').AsString    := IntToStr(ND.Value) ;
        FieldByName('ZT').Asstring    := CG_WCL;
        FieldByName('ZBR').Asstring   := VG_UserName;
        FieldByName('ZDRQ').AsString  := FormatDateTime('yyyy-mm-dd',GetSysDate);
        FieldByName('XQZTS').AsInteger:=0;
        FieldByName('YDTS').AsInteger:=0;
        FieldByName('LSTS').AsInteger:=0;
        post;
       end;
      Next;
    end;
    Close;
  end
  else
  with Qry_JJNXQB do
  begin
    Append ;
    FieldByName('JHH').Asstring   := V_JHH[CB_PPMC.ItemIndex];
    FieldByName('YPMC').AsString:= CB_PPMC.Text ;
    FieldByName('SQDWDM').AsString:= Copy(CB_DWMC.Text,pos('(',CB_DWMC.Text)+1,(pos(')',CB_DWMC.Text)-pos('(',CB_DWMC.Text)-1)) ;
    FieldByName('ND').AsString    := IntToStr(ND.Value) ;
    FieldByName('ZT').Asstring    := CG_WCL;
    FieldByName('ZBR').Asstring   := VG_UserName;
    FieldByName('ZDRQ').AsString  := FormatDateTime('yyyy-mm-dd',GetSysDate);
    FieldByName('XQZTS').AsInteger:=0;
    FieldByName('YDTS').AsInteger:=0;
    FieldByName('LSTS').AsInteger:=0;
    POST;
  end;
  if Qry_JJNXQB.IsEmpty then
  begin
     Qry_JJNXQB.Close ;
     Exit;
  end;

     //徐申 add 2001 05 25 当确认要添加后,只有保存或取消该操作则 单位名称和票品名称才准许 使用。
  CB_DWMC.Enabled :=False;
  CB_PPMC.Enabled :=False;

  PS_SetStatus(False);
  Qry_JJNXQB.First;
  RxDBGrid1.SetFocus ;


end;

procedure TFrmY_QLBZD.Act_DeleteExecute(Sender: TObject);
begin
  if Qry_JJNXQB.IsEmpty then Exit;
  Qry_JJNXQB.Delete ;
  PS_SetStatus(False);

end;

procedure TFrmY_QLBZD.Act_ModifyExecute(Sender: TObject);
begin
  if Qry_JJNXQB.IsEmpty then Exit;
  Qry_JJNXQB.Edit ;
  PS_SetStatus(False);
  RxDBGrid1.SetFocus ;
end;

procedure TFrmY_QLBZD.PS_SetStatus(Value: Boolean);
begin
  BBt_Add.Enabled    := Value;
  BBt_Delete.Enabled := Value;
  BBt_Modify.Enabled := Value;
  ND.Enabled := Value;
  BitBtn2.Enabled := Value;

//  BBt_Find.Enabled := Value;

  BBt_Save.Enabled   := not Value;
  BBt_Cancel.Enabled := not Value;

  CB_DWMC.ItemIndex   :=0 ;
  RxDBGrid1.ReadOnly :=  Value;

end;

procedure TFrmY_QLBZD.Act_FindExecute(Sender: TObject);
begin
  with Qry_JJNXQB do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select a.* from TY_YPZDB a, TGS_GXDWSJB b');
    SQL.Add('where a.JHH='''+V_JHH1+''' and a.SQDWDM=b.DWDM ');
    if CB_DWMC.Text <>'全部' then
      SQL.Add ('and a.SQDWDM='''+Copy(CB_DWMC.Text,pos('(',CB_DWMC.Text)+1,(pos(')',CB_DWMC.Text)-pos('(',CB_DWMC.Text)-1))+'''');
    SQL.Add('order by b.PXM');
    Open;
  end;
end;

procedure TFrmY_QLBZD.CB_PPMCChange(Sender: TObject);
begin
  if CB_PPMC.Text='' then Exit;
  V_JHH1 := V_JHH[CB_PPMC.ItemIndex];
  Act_FindExecute(nil);
end;

procedure TFrmY_QLBZD.Qry_JJNXQBYDTSChange(Sender: TField);
begin
  with Qry_JJNXQB do
  FieldByName('XQZTS').AsInteger:=FieldByName('YDTS').AsInteger+FieldByName('LSTS').AsInteger;

end;

procedure TFrmY_QLBZD.Qry_JJNXQBLSTSChange(Sender: TField);
begin
  with Qry_JJNXQB do
  FieldByName('XQZTS').AsInteger:= FieldByName('YDTS').AsInteger+FieldByName('LSTS').AsInteger;

end;

procedure TFrmY_QLBZD.CB_DWMCChange(Sender: TObject);
begin
  if CB_DWMC.Text='' then Exit;
  Act_FindExecute(nil);
end;

procedure TFrmY_QLBZD.Qry_JJNXQBYDTSSetText(Sender: TField;
  const Text: String);
Var
  TextValue:Integer;
begin
  try
    TextValue:=StrToInt(Text);
  Except
    CHQMsgBox('输入有误,可能输入数值过大,请重新输入!');
    Exit;
  end;
  if TextValue<0 then
  begin
    CHQMsgBox('输入有误,输入数值为负值,请重新输入!');
    Exit;
  end;
  if TextValue>99999999 then
  begin
    CHQMsgBox('输入有误,输入数值过大,请重新输入!');
    Exit;
  end;
  Sender.AsInteger:=TextValue;
end;

procedure TFrmY_QLBZD.RxDBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then {回车键}
     if not (ActiveControl is TDBGrid) then {if not is a TDBGrid}
     begin
       Key := #0; {eat enter key}
       Perform(WM_NEXTDLGCTL, 0, 0); {move to next control}
     end
     else if (ActiveControl is TDBGrid) then {if it is a TDBGrid}
     with TDBGrid(ActiveControl) do
          if selectedindex < (fieldcount -1) then {increment the field} selectedindex := selectedindex + 1
          else
          selectedindex := 2;


end;

procedure TFrmY_QLBZD.BitBtn2Click(Sender: TObject);
begin
  if Qry_JJNXQB.IsEmpty then Exit;
  QLBCX_PRT:=TQLBCX_PRT.Create(nil);
  try
    QLBCX_PRT.Qry_Print.SQL.Text:='select T.*, G.DWJC DWMC from TY_YPZDB  T ,TGS_GXDWSJB G where G.DWDM =T.SQDWDM and T.JHH='''+Qry_JJNXQB.FieldByName('JHH').AsString+''' order by PXM' ;
    QLBCX_PRT.Qry_Print.Open ;
    QLBCX_PRT.Preview;
    QLBCX_PRT.Destroy ;
  except
    QLBCX_PRT.Destroy ;
  end;
end;

procedure TFrmY_QLBZD.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  SaveAllColWidth(Self);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -