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

📄 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, RXCtrls, ImgList,
  FieldComboBox;

type
  TFrmY_QLBZD = class(TForm)
    Panel1: TPanel;
    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;
    Qry_JJWXQB: TQuery;
    DataSource1: TDataSource;
    UpdateSQL1: TUpdateSQL;
    Panel4: TPanel;
    Label1: TLabel;
    CB_SQDH: TComboBox;
    Label2: TLabel;
    XttxTitle: TRxLabel;
    ImageList: TImageList;
    BBt_Print: TBitBtn;
    Label4: TLabel;
    Label5: TLabel;
    Qry_JJWXQBQLDH: TStringField;
    Qry_JJWXQBTDM: TStringField;
    Qry_JJWXQBDWDM: TStringField;
    Qry_JJWXQBND: TStringField;
    Qry_JJWXQBPPMC: TStringField;
    Qry_JJWXQBXQZTS: TFloatField;
    Qry_JJWXQBBZ: TStringField;
    Qry_JJWXQBTPMS: TFloatField;
    Qry_JJWXQBTPMZ: TFloatField;
    Qry_JJWXQBZH: TStringField;
    Panel5: TPanel;
    Label6: TLabel;
    BBt_Add: TBitBtn;
    E_XQTS: TCurrencyEdit;
    Mem_SY: TMemo;
    Qry_JJWXQBZBR: TStringField;
    Qry_JJWXQBZDRQ: TDateTimeField;
    Qry_JJWXQBZT: TStringField;
    E_ZH: TEdit;
    Label8: TLabel;
    E_PPMC: TEdit;
    Label7: TLabel;
    BBt_AddDW: TBitBtn;
    BBt_DeleteDW: TBitBtn;
    Label9: TLabel;
    DBGrid1: TRxDBGrid;
    CB_DWMC: TFieldComboBox;
    Qry_JJWXQBTPSJ: TFloatField;
    RG_JB: TRadioGroup;
    Qry_Static: TQuery;
    Bbt_Send: TBitBtn;
    Label3: TLabel;
    ND: TSpinEdit;
    Qry_JJWXQBSDATE: TDateTimeField;
    procedure FormCreate(Sender: TObject);
    procedure NDChange(Sender: TObject);
    procedure Act_AddExecute(Sender: TObject);
    procedure Act_DeleteExecute(Sender: TObject);
    procedure Act_ModifyExecute(Sender: TObject);
    procedure Act_SaveExecute(Sender: TObject);
    procedure Act_CancelExecute(Sender: TObject);
    procedure CB_SQDWChange(Sender: TObject);
    procedure BBt_PrintClick(Sender: TObject);
    procedure Qry_JJWXQBXQZTSGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure Qry_JJWXQBXQZTSSetText(Sender: TField; const Text: string);
    procedure E_ZHKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BBt_AddDWClick(Sender: TObject);
    procedure BBt_DeleteDWClick(Sender: TObject);
    procedure Qry_JJWXQBTPMZGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure RG_JBClick(Sender: TObject);
    procedure Bbt_SendClick(Sender: TObject);
    procedure Qry_JJWXQBBeforeInsert(DataSet: TDataSet);
  private
    V_QLDH, V_DWDM: string;
    procedure PS_SetStatus(Value: Boolean);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmY_QLBZD: TFrmY_QLBZD;

implementation

uses
  pub, SY_DataSend, GY_ADDPPDM, GY_JHWXQCX_RPT, DATAS;

{$R *.DFM}

procedure TFrmY_QLBZD.FormCreate(Sender: TObject);
begin
//  DWMC.Caption := '  使用单位:' + VG_UnitName;

  RG_JBClick(nil);
  ND.Value := VG_Year;
  PS_SetStatus(True);

end;

procedure TFrmY_QLBZD.NDChange(Sender: TObject);
begin
  Mem_SY.Text := '';
  Qry_JJWXQB.Close;
  CB_SQDH.Items.Clear;
  CB_SQDH.OnChange := nil;
  with Qry_Static do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select DISTINCT QLDH from TY_JJWXQB ');
    SQL.Add('Where ND =''' + ND.Text + '''');
    SQL.Add('and DWDM =''' + CB_DWMC.FieldString + '''');
    SQL.Add('and ZT =''' + CG_WCL + '''');
    SQL.Add('order by QLDH DESC');
    Open;
    while not Eof do
    begin
      CB_SQDH.Items.Add(Fields[0].AsString);
      Next;
    end;
    Close;
  end;
  CB_SQDH.OnChange := CB_SQDWChange;
  if CB_SQDH.Items.Count > 0 then
    CB_SQDH.ItemIndex := 0;
  CB_SQDWChange(nil);
end;

procedure TFrmY_QLBZD.Act_AddExecute(Sender: TObject);
begin
  if CB_DWMC.Text = '' then exit;
  V_DWDM := CB_DWMC.FieldString;
  V_QLDH := 'QLDH000000';
  with Qry_JJWXQB do
  begin
    Close;
    ParamByName('QLDH').AsString := V_QLDH;
    Open;
  end;
  Mem_SY.Text := '';
  Mem_SY.SetFocus;
  PS_SetStatus(False);
end;

procedure TFrmY_QLBZD.Act_DeleteExecute(Sender: TObject);
begin
//  if Qry_JJWXQB.IsEmpty then Exit;
  if Qry_JJWXQB.IsEmpty then
  begin
    CHQMsgBox('请选择要进行处理的申请单号!');
    Exit;
  end;
  if not Qry_JJWXQB.FieldByName('SDate').IsNull then
  begin
    CHQMsgBox('此数据已发送!');
    Exit;
  end;
  if Qry_JJWXQB.FieldByName('ZT').Asstring <> CG_WCL then
  begin
    CHQMsgBox('分配单已处理!');
    Exit;
  end;
  if CHQMsgBox('确实要删除吗?', 2) = IDNO then Exit;
  with Qry_Static do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Delete TY_JJWXQB ');
    SQL.Add('where QLDH=:QLDH ');
    Prepare;
    Params[0].AsString := V_QLDH;
    ExecSQL;
  end;
{   if Qry_JJWXQB.IsEmpty then Exit;
   with Qry_JJWXQB do
   begin
     First;
     while not Eof do
     Delete;
   end ;
  PS_SetStatus(False); }
  NDChange(nil);
end;

procedure TFrmY_QLBZD.Act_ModifyExecute(Sender: TObject);
begin
  if Qry_JJWXQB.IsEmpty then
  begin
    CHQMsgBox('请选择要进行处理的申请单号!');
    Exit;
  end;
  if not Qry_JJWXQB.FieldByName('SDate').IsNull then
  begin
    CHQMsgBox('此数据已发送!');
    Exit;
  end;

  if Qry_JJWXQB.FieldByName('ZT').Asstring <> CG_WCL then
  begin
    CHQMsgBox('分配单已处理!');
    Exit;
  end;
  if Qry_JJWXQB.IsEmpty then Exit;
  Qry_JJWXQB.Edit;
  PS_SetStatus(False);
end;

procedure TFrmY_QLBZD.Act_SaveExecute(Sender: TObject);
  function CheckEmpty: boolean;
  begin
    Result := true;
    with Qry_JJWXQB do
    begin
      first;
      while not Eof do
      begin
        if FieldByName('XQZTS').AsFloat > 0 then
        begin
          Result := false;
          exit;
        end;
        Next;
      end;
    end;
  end;
begin
//******************************************************************************
  if CheckEmpty then
    exit;
  if (V_QLDH = 'QLDH000000') and (not Qry_JJWXQB.IsEmpty) then
  begin
    V_QLDH := GetQLDH(V_DWDM);
    with Qry_JJWXQB do
    begin
      First;
      Edit;
      if not Eof then
        FieldByName('BZ').AsString := Mem_SY.Text;
      post;
      while not Eof do
      begin
        Edit;
        FieldByName('QLDH').AsString := V_QLDH;
        Next;
      end;
      First;
    end;
    CB_SQDH.Items.Insert(0, V_QLDH);
    CB_SQDH.ItemIndex := 0;
  end;
//******************************************************************************
  with Qry_JJWXQB do
  begin
    First;
    Edit;
    if (not Eof) and (FieldByName('BZ').AsString <> Mem_SY.Text) then
      FieldByName('BZ').AsString := Mem_SY.Text;
    while not Eof do
    begin
      if FieldByName('XQZTS').AsInteger = 0 then
      begin
        Delete;
        Continue;
      end;
      Next;
    end;
    First;
  end;

  with Qry_JJWXQB do
  begin
    Database.StartTransaction;
    try
      ApplyUpdates;
      Database.Commit;
      Close;
      Open;
    except
      Database.RollBack;
      CHQMsgBox('数据存储错误!');
      exit;
    end;
    CommitUpdates; //清除缓存的内容
  end;
  PS_SetStatus(True);
  NDChange(nil);
//  CB_SQDWChange(nil);
end;

procedure TFrmY_QLBZD.Act_CancelExecute(Sender: TObject);
begin
  Qry_JJWXQB.CancelUpdates;
  Qry_JJWXQB.CommitUpdates;
  PS_SetStatus(TRUE);
  NDChange(nil);
end;

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

  BBt_Save.Enabled := not Value;
  BBt_Cancel.Enabled := not Value;
  DBGrid1.ReadOnly := Value;
  Panel5.Enabled := not Value;

  BBt_AddDW.Enabled := not Value;
  BBt_DeleteDW.Enabled := not Value;
  CB_DWMC.Enabled := Value;
  ND.Enabled := Value;
  CB_SQDH.Enabled := Value;
  Mem_SY.ReadOnly := Value;
  RG_JB.Enabled := Value;
end;

procedure TFrmY_QLBZD.CB_SQDWChange(Sender: TObject);
begin
  Mem_SY.Text := '';
  if CB_SQDH.Text = '' then Exit;
  with Qry_JJWXQB do
  begin
    Close;
    ParamByName('QLDH').AsString := CB_SQDH.Text;
    Open;
    First;
    if not Eof then
    begin
      Mem_SY.Text := FieldByName('BZ').AsString;
    end;
  end;
  V_DWDM := Qry_JJWXQB.FieldByName('DWDM').AsString;
  V_QLDH := CB_SQDH.Text;
end;

procedure TFrmY_QLBZD.BBt_PrintClick(Sender: TObject);
begin
//  if Qry_JJWXQB.IsEmpty then Exit;
  if Qry_JJWXQB.IsEmpty then
  begin
    CHQMsgBox('请选择要进行处理的申请单号!');
    Exit;
  end;
  JHWXQCX_RPT := TJHWXQCX_RPT.Create(nil);
  try
    JHWXQCX_RPT.Qry_Print.ParamByName('QLDH').AsString := CB_SQDH.Text;
    JHWXQCX_RPT.dwmC.Caption := CB_DWMC.Text;
    JHWXQCX_RPT.QRM_BZ.Lines := Mem_SY.Lines;
    JHWXQCX_RPT.Qry_Print.Open;
    JHWXQCX_RPT.Preview;
  finally
    JHWXQCX_RPT.Free;
  end;
end;

procedure TFrmY_QLBZD.Qry_JJWXQBXQZTSGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  Text := FormatFloat('#,##0', Sender.AsFloat);
end;

procedure TFrmY_QLBZD.Qry_JJWXQBXQZTSSetText(Sender: TField;
  const Text: string);
begin
  if Text = '' then
    Sender.AsInteger := 0
  else
    Sender.AsInteger := StrToInt(Text);
end;


procedure TFrmY_QLBZD.E_ZHKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_Return then
  begin
    with Qry_Static do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select TDM,ZH,TPMS,TPMZ,TPSJ,TMC from TB_YZPPTXXB ');
      SQL.Add('where UPPER(ZH) =''' + UpperCase(E_ZH.Text) + '''');
      Open;
      if not Eof then
      begin
        E_PPMC.Text := Qry_Static.FieldByName('TMC').AsString;
        E_XQTS.SetFocus;
      end
      else
      begin
        E_ZH.SelectAll;
        E_ZH.SetFocus;
      end;
    end;
  end;
end;

procedure TFrmY_QLBZD.BBt_AddDWClick(Sender: TObject);
begin
  FrmY_ADDPPDM1 := TFrmY_ADDPPDM1.Create(nil);
  with FrmY_ADDPPDM1 do
  begin
    DBG_YZPPTXXB.Options := DBG_YZPPTXXB.Options + [dgMultiSelect];
    ShowModal;
    if ModalResult <> MrOK then
    begin
      Free;
      Exit;
    end;

    with Qry_PPDM do
    begin
      First;
      Qry_JJWXQB.BeforeInsert := nil;
      while not Eof do
      begin
        if DBG_YZPPTXXB.SelectedRows.CurrentRowSelected then
          if not Qry_JJWXQB.Locate('TDM', FieldByName('TDM').AsString, [loPartialKey]) then
          begin
            Qry_JJWXQB.Append;
            Qry_JJWXQB.FieldByName('QLDH').AsString := V_QLDH;
            Qry_JJWXQB.FieldByName('ZH').AsString := FieldByName('ZH').AsString;
            Qry_JJWXQB.FieldByName('TDM').AsString := FieldByName('TDM').AsString;
            Qry_JJWXQB.FieldByName('PPMC').AsString := FieldByName('TMC').AsString;
            Qry_JJWXQB.FieldByName('TPMS').AsInteger := FieldByName('TPMS').AsInteger;
            Qry_JJWXQB.FieldByName('TPMZ').AsInteger := FieldByName('TPMZ').AsInteger;
            Qry_JJWXQB.FieldByName('TPSJ').AsInteger := FieldByName('TPSJ').AsInteger;
            Qry_JJWXQB.FieldByName('DWDM').AsString := V_DWDM;
            Qry_JJWXQB.FieldByName('XQZTS').AsInteger := 0;
            Qry_JJWXQB.FieldByName('ND').AsString := Self.ND.Text;
            Qry_JJWXQB.FieldByName('ZT').Asstring := CG_WCL;
            Qry_JJWXQB.FieldByName('ZBR').Asstring := VG_UserName;
            Qry_JJWXQB.FieldByName('ZDRQ').AsString := FormatDateTime('yyyy-mm-dd', GetSysDate);
          end;
        Next;
      end;
      Qry_JJWXQB.BeforeInsert := Qry_JJWXQBBeforeInsert;
    end;
    Free;
  end;
  DBGrid1.SetFocus;
  Qry_JJWXQB.Edit;
end;

procedure TFrmY_QLBZD.BBt_DeleteDWClick(Sender: TObject);
begin
  if Qry_JJWXQB.IsEmpty then Exit;
  Qry_JJWXQB.Delete;
end;

procedure TFrmY_QLBZD.Qry_JJWXQBTPMZGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  if Sender.IsNull then Exit;
  Text := FloatToStr(Sender.AsFloat / 100);

end;

procedure TFrmY_QLBZD.RG_JBClick(Sender: TObject);
begin
  Bbt_Send.Visible := RG_JB.ItemIndex = 0;
  CB_DWMC.ClearAll;
  if RG_JB.ItemIndex = 1 then
  begin
    XttxTitle.Caption := '集邮票请领表制定';
    with Qry_Static do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select DWJC DWMC,DWDM from TGS_GXDWSJB ');
      SQL.Add('where JYYW=''1'' and FHDX=''1'' order by PXM');
      Open;
      while not Eof do
      begin
        CB_DWMC.Items.Add(Fields[0].AsString);
        CB_DWMC.FieldItems.Add(Fields[1].AsString);
        Next;
      end;
      Close;
    end;
  end
  else
  begin
    XttxTitle.Caption := '本级请领表制定';
    CB_DWMC.Items.Add(VG_UnitName);
    CB_DWMC.FieldItems.Add(VG_UnitID);
  end;
  CB_DWMC.ItemIndex := 0;
  NDChange(nil);
end;

procedure TFrmY_QLBZD.Bbt_SendClick(Sender: TObject);
begin
  if Qry_JJWXQB.IsEmpty then
  begin
    CHQMsgBox('请选择要上报的请领单报表!');
    Exit;
  end;

  VG_SQLWhere := ' select * from TY_JJWXQB '
    + ' where QLDH =''' + V_QLDH + ''' ';
  if SendData(VG_SQLWhere, 'TY_JJWXQB', false) = IDOK then
    CHQMsgBox('信息发送成功!');

end;

procedure TFrmY_QLBZD.Qry_JJWXQBBeforeInsert(DataSet: TDataSet);
begin
  Abort;
end;

end.

⌨️ 快捷键说明

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