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

📄 sy_ndfpjhzd_fp.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 2 页
字号:

{*******************************************************}
{                                                       }
{                  封片年度分配计划制定                 }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{               编制:中软金马项目开发组                }
{                                                       }
{                                                       }
{*******************************************************}
(*
本模块在省级零枚票管理模块 计划管理部分的封片年度分配计划制定菜单调用。
*)

unit SY_NDFPJHZD_FP;

interface

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

type
  //邮资类代码
  PYZLDM = ^YZLDM;
  YZLDM = record
    DL, MC: string;
  end;

type
  TFrmY_NDFPJHZD_FP = class(TForm)
    Panel1: TPanel;
    DWMC: TLabel;
    Label3: TLabel;
    ND: TSpinEdit;
    Panel3: TPanel;
    BBt_AddFPJH: TBitBtn;
    BBt_Modify: TBitBtn;
    BBt_DeleteFPJH: TBitBtn;
    BBt_Save: TBitBtn;
    BBt_Cancel: TBitBtn;
    BBt_Quit: TBitBtn;
    ALi_Edit: TActionList;
    Act_ModifyFPJH: TAction;
    Act_Print: TAction;
    Act_Save: TAction;
    Act_Cancel: TAction;
    Panel2: TPanel;
    Qry_JHFPCSHB: TQuery;
    DataSource1: TDataSource;
    Qry_JJNXQB: TQuery;
    DataSource2: TDataSource;
    Act_AddFPJH: TAction;
    Act_DeleteFPJH: TAction;
    Qry_Static: TQuery;
    XttxTitle: TRxLabel;
    BBt_Print: TBitBtn;
    BBt_Send: TBitBtn;
    Qry_JJNFPJH: TQuery;
    DataSource3: TDataSource;
    UpdateSQL1: TUpdateSQL;
    Panel4: TPanel;
    Label5: TLabel;
    Label6: TLabel;
    DBEdit2: TDBEdit;
    DBEdit4: TDBEdit;
    Panel6: TPanel;
    DBG_JHFPCSHB: TDBGrid;
    Label7: TLabel;
    Panel7: TPanel;
    Splitter1: TSplitter;
    Label8: TLabel;
    DBG_JJNXQB: TDBGrid;
    Panel8: TPanel;
    Splitter2: TSplitter;
    DBG_JJNFPJH: TRxDBGrid;
    Label9: TLabel;
    Label2: TLabel;
    E_SYZTS: TCurrencyEdit;
    Qry_JJNXQBSQDWDM: TStringField;
    Qry_JJNXQBXQZTS: TFloatField;
    Label4: TLabel;
    CB_dl: TComboBox;
    Qry_JJNFPJHND: TStringField;
    Qry_JJNFPJHYZLDM: TStringField;
    Qry_JJNFPJHDWDM: TStringField;
    Qry_JJNFPJHJHFPZTS: TFloatField;
    Qry_JJNFPJHZT: TStringField;
    Qry_JJNFPJHZBR: TStringField;
    Qry_JJNFPJHPZR: TStringField;
    Qry_JJNFPJHZDRQ: TDateTimeField;
    Qry_JJNFPJHBZ: TStringField;
    Qry_JJNFPJHSDATE: TDateTimeField;
    Qry_JHFPCSHBYZLDM: TStringField;
    Qry_JHFPCSHBDWDM: TStringField;
    Qry_JHFPCSHBJHFPZTS: TFloatField;
    Qry_JHFPCSHBZT: TStringField;
    Qry_JHFPCSHBZBR: TStringField;
    Qry_JHFPCSHBPZR: TStringField;
    Qry_JHFPCSHBZDRQ: TDateTimeField;
    Qry_JHFPCSHBBZ: TStringField;
    Qry_JHFPCSHBMC: TStringField;
    Qry_JJNXQBDWJC: TStringField;
    Qry_JJNFPJHDWJC: TStringField;
    procedure FormCreate(Sender: TObject);
    procedure Act_AddFPJHExecute(Sender: TObject);
    procedure Act_DeleteFPJHExecute(Sender: TObject);
    procedure Act_ModifyFPJHExecute(Sender: TObject);
    procedure Act_PrintExecute(Sender: TObject);
    procedure Act_SaveExecute(Sender: TObject);
    procedure Act_CancelExecute(Sender: TObject);
    procedure NDChange(Sender: TObject);
    procedure Qry_JJNFPJHJHFPZTSSetText(Sender: TField;
      const Text: string);
    procedure E_SYZTSEnter(Sender: TObject);
    procedure BBt_SendClick(Sender: TObject);
    procedure Qry_JJNFPJHBeforeDelete(DataSet: TDataSet);
    procedure Qry_JHFPCSHBAfterScroll(DataSet: TDataSet);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormShow(Sender: TObject);
    procedure CB_dlChange(Sender: TObject);
    procedure Qry_JJNFPJHBeforeInsert(DataSet: TDataSet);
    procedure DBG_JJNFPJHKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Qry_JJNFPJHAfterScroll(DataSet: TDataSet);
  private
    V_S_locPPMC: string;
    SYZTS: Integer;
    SS: string;
    procedure PS_SetStatus(Value: Boolean);
    procedure PS_CaculSYZTS(AAND, AYZLDM: string);
    function CheckExit(): boolean;
  public
    { Public declarations }
  end;

var
  FrmY_NDFPJHZD_FP: TFrmY_NDFPJHZD_FP;

implementation

uses
  Datas,Pub, SY_DataSend, SY_CKJHDZD_XZDW, SY_NDFPJHZD_RPT;

{$R *.DFM}

procedure TFrmY_NDFPJHZD_FP.FormCreate(Sender: TObject);
begin
  DWMC.Caption := '使用单位:' + VG_UnitName;
  PS_SetStatus(True);
  GetAllColWidth(self);
end;

procedure TFrmY_NDFPJHZD_FP.NDChange(Sender: TObject);
begin
  E_SYZTS.Text := '';
  Qry_JJNXQB.Close;
  Qry_JJNFPJH.Close;
  Qry_JHFPCSHB.Close;
  Qry_JHFPCSHB.ParamByName('ND').AsString := ND.Text;
  Qry_JHFPCSHB.ParamByName('DLDM').AsString := PYZLDM(CB_DL.Items.Objects[CB_DL.ItemIndex])^.DL;
  Qry_JHFPCSHB.Open;
end;


procedure TFrmY_NDFPJHZD_FP.Act_AddFPJHExecute(Sender: TObject);
begin
  if Qry_JHFPCSHB.IsEmpty then Exit;
  if not Qry_JJNFPJH.IsEmpty then
  begin
    CHQMsgBox('已做分配计划!');
    Exit;
  end;

  VG_SQLWhere := 'select YZLDM from TY_JJNFPJH_FP '
    + ' where ND=''' + ND.Text + ''''
    + ' and YZLDM=''' + Qry_JHFPCSHB.FieldByName('YZLDM').AsString + ''' and SDATE Is not null ';
  if PY_IsExist(VG_SQLWhere) then
  begin
    CHQMsgBox('此分配分配单已发送!');
    Exit;
  end;

  if Qry_JJNFPJH.FieldByName('ZT').Asstring = CG_DG then
  begin
    CHQMsgBox('分配单已签批!');
    Exit;
  end;

  if Qry_JJNFPJH.FieldByName('ZT').Asstring = CG_YCL then
  begin
    CHQMsgBox('分配单已使用!');
    Exit;
  end;
  //******************************************************************************
  with Qry_JJNFPJH do
  begin
    Close;
    Prepare;
    Params[0].AsString := '1';
    Params[1].AsString := '1';
    Open;
  end;
  try
    Qry_JJNXQB.First;
    if not Qry_JJNXQB.Eof then
      with Qry_JJNXQB do
      begin
        Qry_JJNFPJH.BeforeInsert := nil;
        DisableControls;
        First;
        while not Eof do
        begin
          VG_SQLWhere := 'select YZLDM from TY_JJNFPJH_FP '
            + ' where ND =''' + ND.Text + ''''
            + ' and YZLDM=''' + Qry_JHFPCSHB.FieldByName('YZLDM').AsString
            + ''' and DWDM =''' + Qry_JJNXQB.FieldByName('SQDWDM').AsString + '''';
          if PY_IsExist(VG_SQLWhere) then
          begin
            Next;
            Continue;
          end;
          with Qry_JJNFPJH do
          begin
            Append;
            FieldByName('ND').AsString := ND.Text;
            FieldByName('YZLDM').AsString := Qry_JHFPCSHB.FieldByName('YZLDM').AsString;
            FieldByName('DWDM').AsString := Qry_JJNXQB.FieldByName('SQDWDM').AsString;
            FieldByName('JHFPZTS').AsInteger := Qry_JJNXQB.FieldByName('XQZTS').AsInteger;
            FieldByName('ZT').AsString := CG_WCL;
            FieldByName('ZBR').AsString := VG_UserName;
            FieldByName('PZR').AsString := '';
            FieldByName('BZ').AsString := '';
            FieldByName('DWJC').AsString := Qry_JJNXQB.FieldByName('DWJC').AsString;
            SYZTS := SYZTS - Qry_JJNFPJH.FieldByName('JHFPZTS').AsInteger;
            Post;
          end;
          Next;
        end;
        EnableControls;
        Qry_JJNFPJH.First;
        Qry_JJNFPJH.BeforeInsert := Qry_JJNFPJHBeforeInsert;
      end;
  except
    Act_CancelExecute(nil);
  end;
  PS_SetStatus(False);

  if SYZTS < 0 then
    E_SYZTS.Font.Color := clRed
  else
    E_SYZTS.Font.Color := clBlack;
  E_SYZTS.Text := IntToStr(SYZTS);

end;

procedure TFrmY_NDFPJHZD_FP.Act_DeleteFPJHExecute(Sender: TObject);
begin
  if Qry_JJNFPJH.IsEmpty then
  begin
    CHQMsgBox('没有可删除的分配计划!');
    Exit;
  end;

  VG_SQLWhere := 'select YZLDM from TY_JJNFPJH_FP '
    + ' where ND=''' + ND.Text + ''''
    + ' and YZLDM=''' + Qry_JHFPCSHB.FieldByName('YZLDM').AsString
    + ''' and ZT=''' + CG_YCL + '''';

  if PY_IsExist(VG_SQLWhere) then
  begin
    SS := '<<' + Qry_JHFPCSHB.FieldByName('MC').AsString + '>> 的分配计划已被使用!';
    CHQMsgBox(Pchar(SS));
    Exit;
  end;
  VG_SQLWhere := 'select YZLDM from TY_JJNFPJH_FP '
    + ' where ND=''' + ND.Text + ''''
    + ' and YZLDM=''' + Qry_JHFPCSHB.FieldByName('YZLDM').AsString + ''' and SDate is not NULL';

  if PY_IsExist(VG_SQLWhere) then
  begin
    SS := '<<' + Qry_JHFPCSHB.FieldByName('MC').AsString + '>> 的分配计划已发送!';
    CHQMsgBox(Pchar(SS));
    Exit;
  end;

  if CHQMsgBox('确定要删除分配计划吗?', 2) = IDNo then
    exit;

  try
    with Qry_JJNFPJH do
    begin
      First;
      while not EOF do
        Delete;
    end;
    Act_SaveExecute(nil);
  except
    Act_CancelExecute(nil);
  end;

  if SYZTS < 0 then
    E_SYZTS.Font.Color := clRed
  else
    E_SYZTS.Font.Color := clBlack;
  E_SYZTS.Text := IntToStr(SYZTS);
end;

procedure TFrmY_NDFPJHZD_FP.Act_ModifyFPJHExecute(Sender: TObject);
begin
  if Qry_JJNFPJH.IsEmpty then
  begin
    CHQMsgBox('没有可修改的分配计划!');
    Exit;
  end;

  VG_SQLWhere := 'select YZLDM from TY_JJNFPJH_FP '
    + ' where ND=''' + ND.Text + ''''

⌨️ 快捷键说明

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