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

📄 sy_ndfpjhzd.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{*******************************************************}
{                                                       }
{                    年度分配计划制定                   }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
省级集邮品,省级集邮票  ,省级零枚票,地市集邮品,地市集邮票

*)
unit SY_NDFPJHZD;

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;

type
  TFrmY_NDFPJHZD = 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_AddDW: TAction;
    Act_DeleteDW: TAction;
    Act_ModifyFPJH: TAction;
    Act_Find: TAction;
    Act_Print: TAction;
    Act_Save: TAction;
    Act_Cancel: TAction;
    Panel2: TPanel;
    DBG_JHFPCSHB: TDBGrid;
    Panel5: TPanel;
    Label2: TLabel;
    E_SYZTS: TCurrencyEdit;
    BBt_AddDW: TBitBtn;
    BBt_DeleteDW: TBitBtn;
    Qry_JHFPCSHB: TQuery;
    DataSource1: TDataSource;
    Qry_JJNXQB: TQuery;
    DataSource2: TDataSource;
    Qry_GXDWSJB: TQuery;
    Label1: TLabel;
    Act_AddFPJH: TAction;
    Act_DeleteFPJH: TAction;
    Qry_Static: TQuery;
    E_PPMC: TEdit;
    Qry_JJNXQBXQZTS: TFloatField;
    Qry_JHFPCSHBJHH: TStringField;
    Qry_JHFPCSHBPPMC: TStringField;
    Qry_JHFPCSHBJHFPZTS: TFloatField;
    Qry_JHFPCSHBZT: TStringField;
    Qry_JJNXQBKFYPTS: TFloatField;
    Qry_JJNXQBYDTS: TFloatField;
    Qry_JJNXQBLSTS: TFloatField;
    E_JHH: TEdit;
    Qry_JHFPCSHBND: TStringField;
    Qry_JHFPCSHBZBR: TStringField;
    Qry_JHFPCSHBPZR: TStringField;
    Qry_JHFPCSHBZDRQ: TDateTimeField;
    Qry_JHFPCSHBBZ: TStringField;
    Qry_JHFPCSHBSDATE: TDateTimeField;
    XttxTitle: TRxLabel;
    BBt_Print: TBitBtn;
    BBt_Send: TBitBtn;
    DBG_JJNFPJH: TRxDBGrid;
    DBG_JJNXQB: TDBGrid;
    Qry_JJNFPJH: TQuery;
    Qry_JJNFPJHDWDM: TStringField;
    Qry_JJNFPJHDWMC: TStringField;
    Qry_JJNFPJHJHFPZTS: TFloatField;
    Qry_JJNFPJHYDTS: TFloatField;
    Qry_JJNFPJHLSTS: TFloatField;
    Qry_JJNFPJHNCTS: TFloatField;
    Qry_JJNFPJHYPTS: TFloatField;
    Qry_JJNFPJHJHH: TStringField;
    Qry_JJNFPJHND: TStringField;
    Qry_JJNFPJHZT: TStringField;
    Qry_JJNFPJHZBR: TStringField;
    Qry_JJNFPJHPZR: TStringField;
    Qry_JJNFPJHZDRQ: TDateTimeField;
    Qry_JJNFPJHPPMC: TStringField;
    Qry_JJNFPJHBZ: TStringField;
    DataSource3: TDataSource;
    UpdateSQL1: TUpdateSQL;
    Qry_JJNXQBDWDM: TStringField;
    Qry_JJNXQBND: TStringField;
    Qry_JJNXQBJHH: TStringField;
    Qry_JJNXQBNCTS: TFloatField;
    Qry_JJNXQBDWMC: TStringField;
    Panel4: TPanel;
    Label5: TLabel;
    Label6: TLabel;
    DBEdit2: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit1: TDBEdit;
    Label4: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Act_AddDWExecute(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 Act_DeleteDWExecute(Sender: TObject);
    procedure BBt_SendClick(Sender: TObject);
    procedure Qry_JJNFPJHBeforeDelete(DataSet: TDataSet);
    procedure Qry_JHFPCSHBAfterScroll(DataSet: TDataSet);
    procedure DBG_JJNXQBTitleClick(Column: TColumn);
    procedure DBG_JJNFPJHTitleClick(Column: TColumn);
    procedure DBG_JJNFPJHKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBG_JHFPCSHBTitleClick(Column: TColumn);
    procedure DBG_JJNFPJHCellClick(Column: TColumn);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    SYZTS: Integer;
    SS: string;
    procedure PS_SetStatus(Value: Boolean);
    procedure PS_CaculSYZTS(JHH: string);
    function CheckExit(): boolean;
  public
    { Public declarations }
  end;

var
  FrmY_NDFPJHZD: TFrmY_NDFPJHZD;

implementation

uses
  Datas,pub, SY_DataSend, SY_CKJHDZD_XZDW, SY_NDFPJHCX_RPT;

{$R *.DFM}


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

procedure TFrmY_NDFPJHZD.NDChange(Sender: TObject);
begin
  E_PPMC.Text := '';
  E_SYZTS.Text := '';
  Qry_JJNXQB.Close;
  Qry_JJNFPJH.Close;
  with Qry_JHFPCSHB do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select a.* from TYS_JJNFPJH a, TGS_GXDWSJB b where ND=''' +
      IntToStr(ND.Value) + ''' and a.DWDM=b.DWDM order by b.PXM'); //  and b.JYYW=''1''
    Open;
  end;
end;


procedure TFrmY_NDFPJHZD.Act_AddDWExecute(Sender: TObject);
var
  V_JHH, V_ND, V_PPMC: string;
begin
  if E_PPMC.Text = '' then
  begin
    CHQMsgBox('请选择要进行分配的分配计划号!');
    Exit;
  end;
  with Qry_JHFPCSHB do
  begin
    V_JHH := FieldByName('JHH').AsString;
    V_ND := FieldByName('ND').AsString;
    V_PPMC := FieldByName('PPMC').AsString;
  end;
  FrmY_CKJHDZD_XZDW := TFrmY_CKJHDZD_XZDW.Create(nil);
  with FrmY_CKJHDZD_XZDW do
  begin
    Caption := '选择单位';
    DBGrid1.Options := DBGrid1.Options + [dgMultiSelect];
    Qry_Static.Close;
    Qry_Static.SQL.Text := Qry_Static.SQL[0] + ' WHERE JYYW=''1'' and FHDX=''1'' order by PXM ';
    Qry_Static.Open;
    ShowModal;
    if ModalResult <> MrOK then
    begin
      Destroy;
      Exit;
    end;
    with FrmY_CKJHDZD_XZDW.Qry_Static do
    begin
      First;
      while not Eof do
      begin
        if DBGrid1.SelectedRows.CurrentRowSelected then
          if not Qry_JJNFPJH.Locate('DWDM', FieldByName('DWDM').AsString, []) then
          begin
            Qry_JJNFPJH.Append;
            Qry_JJNFPJH.FieldByName('JHH').AsString := V_JHH;
            Qry_JJNFPJH.FieldByName('ND').AsString := V_ND;
            Qry_JJNFPJH.FieldByName('DWDM').AsString := FieldByName('DWDM').AsString;
            Qry_JJNFPJH.FieldByName('ZDRQ').AsString := FormatDateTime('yyyy-mm-dd', GetSysDate);
            Qry_JJNFPJH.FieldByName('ZBR').AsString := VG_UserName;
            Qry_JJNFPJH.FieldByName('PZR').AsString := CG_PZR;
            Qry_JJNFPJH.FieldByName('PPMC').AsString := V_PPMC;
            Qry_JJNFPJH.FieldByName('BZ').AsString := '';
            Qry_JJNFPJH.FieldByName('ZT').AsString := CG_WCL;
            Qry_JJNFPJH.FieldByName('JHFPZTS').AsInteger := 0;
            Qry_JJNFPJH.Post;
          end;
        Next;
      end;
    end;
    Destroy;
  end;
  DBG_JJNFPJH.SetFocus;
  Qry_JJNFPJH.Edit;
  if SYZTS < 0 then
    E_SYZTS.Font.Color := clRed
  else
    E_SYZTS.Font.Color := clBlack;
  E_SYZTS.Text := IntToStr(SYZTS);
end;

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

  VG_SQLWhere := 'select JHH from TY_JJNFPJH '
    + ' where ND =''' + IntToStr(ND.Value) + ''' '
    + ' and JHH=''' + Qry_JHFPCSHB.FieldByName('JHH').AsString + ''''
    + ' and not Sdate Is 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 := 'ZRJM';
    Open;
  end;
  try
    if not Qry_JJNXQB.Eof then
      with Qry_JJNXQB do
      begin
        DisableControls;
        First;
        while not Eof do
        begin
          VG_SQLWhere := 'select JHH from TY_JJNFPJH '
            + ' where ND =''' + IntToStr(ND.Value) + ''' '
            + ' and JHH =''' + Qry_JHFPCSHB.FieldByName('JHH').AsString + ''''
            + ' and DWDM =''' + Qry_JJNXQB.FieldByName('DWDM').AsString + '''';
          if PY_IsExist(VG_SQLWhere) then
          begin
            Next;
            Continue;
          end;
          with Qry_JJNFPJH do
          begin
            Append;
            FieldByName('JHH').AsString := Qry_JHFPCSHB.FieldByName('JHH').AsString;
            FieldByName('ND').AsString := Qry_JJNXQB.FieldByName('ND').AsString;
            FieldByName('DWDM').AsString := Qry_JJNXQB.FieldByName('DWDM').AsString;
            FieldByName('ZDRQ').AsString := FormatDateTime('yyyy-mm-dd', GetSysDate);
            FieldByName('ZBR').AsString := VG_UserName;
            FieldByName('PZR').AsString := '';
            FieldByName('PPMC').AsString := Qry_JHFPCSHB.FieldByName('PPMC').AsString;
            ;
            FieldByName('BZ').AsString := '';
            FieldByName('ZT').AsString := CG_WCL;
            FieldByName('LSTS').AsInteger := Qry_JJNXQB.FieldByName('LSTS').AsInteger;
            FieldByName('YDTS').AsInteger := Qry_JJNXQB.FieldByName('YDTS').AsInteger;
            FieldByName('NCTS').AsInteger := Qry_JJNXQB.FieldByName('NCTS').AsInteger;
            FieldByName('YPTS').AsInteger := Qry_JJNXQB.FieldByName('KFYPTS').AsInteger;
            FieldByName('JHFPZTS').AsInteger := FieldByName('YDTS').AsInteger
              + FieldByName('LSTS').AsInteger
              + FieldByName('NCTS').AsInteger
              + FieldByName('YPTS').AsInteger;
            SYZTS := SYZTS - Qry_JJNFPJH.FieldByName('JHFPZTS').AsInteger;
            Post;
          end;
          Next;
        end;
        EnableControls;
      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.Act_DeleteFPJHExecute(Sender: TObject);
begin
  if Qry_JJNFPJH.IsEmpty then
  begin
    CHQMsgBox('没有可删除的分配计划!');
    Exit;
  end;

  VG_SQLWhere := 'select JHH from TY_JJNFPJH '
    + ' where ND =''' + IntToStr(ND.Value) + ''' '
    + ' and JHH=''' + Qry_JHFPCSHB.FieldByName('JHH').AsString + ''''
    + ' and ZT=''' + CG_YCL + '''';

  if PY_IsExist(VG_SQLWhere) then
  begin
    SS := '<<' + Qry_JHFPCSHB.FieldByName('PPMC').AsString + '>> 的分配计划已被使用!';
    CHQMsgBox(Pchar(SS));
    Exit;
  end;
  VG_SQLWhere := 'select JHH from TY_JJNFPJH '
    + ' where ND =''' + IntToStr(ND.Value) + ''' '
    + ' and JHH=''' + Qry_JHFPCSHB.FieldByName('JHH').AsString + ''''

⌨️ 快捷键说明

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