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

📄 jm_fhdsc_getpp.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{*******************************************************}
{                                                       }
{                        营业员分票                     }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
本模块在地市pub 营业员分票模块,地市集邮票管理,地市集邮品管理,地市市场购入票里面调用。

*)
unit JM_FHDSC_GETPP;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, DBCtrls, ExtCtrls, ComCtrls, Grids, DBGrids, Buttons, Db,
  DBTables, RxQuery, FieldComboBox, SqlStrings;

type
  Pkfxx = ^Tkfxx;
  Tkfxx = record
    kfdm: string;
    kfmc: string;
  end;
  Tfrm_FHDSC_GETPP = class(TForm)
    rxQry_kxpp: TRxQuery;
    DS_kxpp: TDataSource;
    DS_ckpp: TDataSource;
    Qry_fhd: TQuery;
    qry_yyy: TQuery;
    ds_yyy: TDataSource;
    rxQry_ckpp: TQuery;
    rxQry_ckppFHDH: TStringField;
    rxQry_ckppLB: TStringField;
    rxQry_ckppPPDM: TStringField;
    rxQry_ckppJJ: TFloatField;
    rxQry_ckppSL: TFloatField;
    rxQry_ckppYJ: TFloatField;
    rxQry_ckppXJ: TFloatField;
    rxQry_ckppJSJ: TFloatField;
    rxQry_ckppZK: TFloatField;
    rxQry_ckppPPMC: TStringField;
    rxQry_ckppZH: TStringField;
    SqlStrings1: TSqlStrings;
    Panel2: TPanel;
    Panel1: TPanel;
    DBG_kxpp: TDBGrid;
    DBG_ckpp: TDBGrid;
    Panel3: TPanel;
    rg_fplb: TRadioGroup;
    DCBo_yyy: TDBLookupComboBox;
    Panel4: TPanel;
    BBt_ok: TBitBtn;
    BBt_next: TBitBtn;
    BBt_can: TBitBtn;
    rxQry_ckppKFDM: TStringField;
    rxQry_kxppKFDM: TStringField;
    rxQry_kxppPPDM: TStringField;
    rxQry_kxppZH: TStringField;
    rxQry_kxppPPMC: TStringField;
    rxQry_kxppJJ: TFloatField;
    rxQry_kxppYJ: TFloatField;
    rxQry_kxppXJ: TFloatField;
    rxQry_kxppTS: TFloatField;
    rxQry_kxppBZ: TStringField;
    Label1: TLabel;
    Cmb_kfdm: TComboBox;
    Qry_kfdm: TQuery;
    GroupBox1: TGroupBox;
    RBtn_zh: TRadioButton;
    Rbtn_mc: TRadioButton;
    Edt_loc: TEdit;
    SpeedButton1: TSpeedButton;
    spr_dh: TStoredProc;
    procedure CBo_jytpClick(Sender: TObject);
    procedure DBG_kxppDblClick(Sender: TObject);
    procedure BBt_okClick(Sender: TObject);
    procedure BBt_nextClick(Sender: TObject);
    procedure rxQry_kxppDJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure rxQry_kxppDJSetText(Sender: TField; const Text: string);
    procedure rg_fplbClick(Sender: TObject);
    procedure rxQry_kxppJJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure rxQry_kxppJJSetText(Sender: TField; const Text: string);
    procedure rxQry_kxppYJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure rxQry_kxppYJSetText(Sender: TField; const Text: string);
    procedure rxQry_kxppXJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure rxQry_kxppXJSetText(Sender: TField; const Text: string);
    procedure rxQry_kxppJSJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure rxQry_kxppJSJSetText(Sender: TField; const Text: string);
    procedure Cmb_kfdmChange(Sender: TObject);
    procedure rxQry_ckppBeforeInsert(DataSet: TDataSet);
    procedure SpeedButton1Click(Sender: TObject);
    procedure rxQry_kxppFilterRecord(DataSet: TDataSet;
      var Accept: Boolean);
  private
    { Private declarations }
    V_S_loc: string;
    procedure GenerateFHD;
    procedure SetFHD(p_sl_dwdm: TstringList; var p_sl_fhdh: TstringList);
    procedure InitData(init: integer);
    procedure SetFHDHDisplay(DisplayLabel: string);
    function CheckKC: Integer; //检测票品数量是否大于理论库存
  public
    L_type: TIO_TYPE;
    LB_type: string;
    function Execute_FHDSC_GETPP(const sysDB: TDataBase; F_type: TIO_type): Boolean;
  end;

var
  frm_FHDSC_GETPP: Tfrm_FHDSC_GETPP;

implementation
uses datas,pub,JM_data ;

{$R *.DFM}


procedure Tfrm_FHDSC_GETPP.SetFHD(p_sl_dwdm: TstringList; var p_sl_fhdh: TstringList);
var
  i, j: Integer;
  v_b_exist: boolean;

  procedure GetFHDH();
  var
    m, n: integer;
    l_FHDH: String;
  begin
    for m := 0 to p_sl_dwdm.Count - 1 do
    begin

      {从GetMSQLDH(3)改过来的yzhshi 2002.12.05}
      with spr_dh do
      begin
        Close;
         ParamByName('BILLID').AsString := 'mh_fhd';
         ParamByName('SORTCODE').AsString := 'C';
         ParamByName('DEPARTMENT').AsString := VG_UserID;
         ExecProc;
         l_FHDH:=Params[0].asstring;
      end;

      p_sl_fhdh.Add(l_FHDH);

      if m > 0 then
        for n := 0 to m - 1 do
          if p_sl_dwdm.Strings[m] = p_sl_dwdm.Strings[n] then
            p_sl_fhdh.Strings[m] := p_sl_fhdh.Strings[n];
    end;
  end;

  procedure WriteFHD;
  begin
    qry_fhd.Edit;
    qry_fhd.Append;
    qry_fhd.FieldByName('FHDH').AsString := p_sl_fhdh.Strings[i];
    qry_fhd.FieldByName('CKXZ').AsString := '10';
    qry_fhd.FieldByName('FHDW').AsString := VG_UnitID;
    qry_fhd.FieldByName('QXDW').AsString := p_sl_dwdm.Strings[i];
    qry_fhd.FieldByName('KDRQ').AsDateTime := StrToDateTime(VarToStr(VG_year) + '-' + VarToStr(VG_month) + '-' + VarToStr(VG_day)); //VG_sysdate;
    qry_fhd.FieldByName('ZTZT').AsString := '1';
    qry_fhd.FieldByName('ZBR').AsString := VG_UserName;
    qry_fhd.Post;
  end;

begin
  GetFHDH(); //取发货单号
  if not qry_fhd.Active then
    qry_fhd.Open;
  for i := 0 to p_sl_fhdh.Count - 1 do
    if i = 0 then
      WriteFHD
    else
    begin
      v_b_exist := false;
      for j := 0 to i - 1 do
        if p_sl_fhdh.Strings[i] = p_sl_fhdh.Strings[j] then
        begin
          v_b_exist := true;
          Continue;
        end;
      if not v_b_exist then
        WriteFHD;
    end;
end;

procedure Tfrm_FHDSC_GETPP.GenerateFHD;
var
  v_sl_qxdw, v_sl_fhdh: TStringList;
  i: Integer;

  procedure ReSetckpp();
  begin
    rxQry_ckpp.first;
    i := 0;
    while not rxQry_ckpp.Eof do
    begin
      rxQry_ckpp.Edit;
      rxQry_ckpp.FieldByName('FHDH').AsString := v_sl_fhdh.Strings[i];
      i := i + 1;
      rxQry_ckpp.Next;
    end;
  end;
begin
  v_sl_qxdw := TStringList.Create;
  v_sl_fhdh := TStringList.Create;
  rxQry_ckpp.first;
  while not rxQry_ckpp.Eof do
  begin
    if rxQry_ckpp.FieldByName('SL').AsFloat = 0 then
      rxQry_ckpp.Delete
    else
      v_sl_qxdw.Add(rxqry_ckpp.FieldByName('FHDH').AsString);
    rxQry_ckpp.next;
  end;
  if v_sl_qxdw.Count > 0 then
  begin
    data.DM.StartTransaction;
    try
      SetFHD(v_sl_qxdw, v_sl_fhdh);
      ReSetckpp();
      rxQry_ckpp.ApplyUpdates;
      qry_fhd.ApplyUpdates;
      data.DM.Commit;
      SetFHDHDisplay('发货单号');
    except
      data.DM.Rollback;
      raise;
    end;
  end
  else
  begin
    CHQMsgBox('输入票品的数量全为0,请重新分配数量!');
  end;
  v_sl_qxdw.Free;
  v_sl_fhdh.Free;
end;

procedure Tfrm_FHDSC_GETPP.CBo_jytpClick(Sender: TObject);
var
  v_s_sql: string;
begin

end;

function Tfrm_FHDSC_GETPP.Execute_FHDSC_GETPP(const sysDB: TDataBase; F_type: TIO_type): Boolean;
begin
  Result := true;
  try
    L_type := F_type;
    case L_type of
      io_jyp: LB_type := '0';
      io_yp: lB_type := '1';
      io_grp: lb_type := '2';
    end;

    rxQry_kxpp.Close;
    rxQry_kxpp.DataBaseName := sysDB.DatabaseName;
    qry_yyy.Close;
    qry_yyy.DataBaseName := sysDB.DatabaseName;
    Qry_fhd.Close;
    Qry_fhd.DataBaseName := sysDB.DatabaseName;
    rxQry_ckpp.Close;
    rxQry_ckpp.DataBaseName := sysDB.DatabaseName;
    rg_fplb.ItemIndex := 0;
    InitData(0);
    qry_yyy.Open;
  except
    Result := false;
    CHQMsgBox('不能打开<发货单>表!');
  end;
end;

procedure Tfrm_FHDSC_GETPP.DBG_kxppDblClick(Sender: TObject);
var
  Before_insert: TDataSetNotifyEvent;
  procedure Addckpp;
  begin
    rxQry_ckpp.Append;
    rxQry_ckpp.FieldByName('fhdh').AsString := qry_yyy.FieldByName('YGDM').AsString;
    rxQry_ckpp.FieldByName('LB').Value := Lb_type;
    rxQry_ckpp.FieldByName('PPDM').Value := rxQry_kxpp.FieldByName('PPDM').Value;
    rxQry_ckpp.FieldByName('PPMC').Value := rxQry_kxpp.FieldByName('PPMC').Value;
    rxQry_ckpp.FieldByName('ZH').Value := rxQry_kxpp.FieldByName('ZH').Value;
    rxQry_ckpp.FieldByName('SL').AsFloat := 0;
    rxQry_ckpp.FieldByName('yj').value := rxQry_kxpp.FieldByName('yj').Value;
    rxQry_ckpp.FieldByName('JJ').Value := rxQry_kxpp.FieldByName('jJ').Value;
    rxQry_ckpp.FieldByName('XJ').Value := rxQry_kxpp.FieldByName('xJ').Value;
    rxQry_ckpp.FieldByName('kfdm').Value := rxQry_kxpp.FieldByName('kfdm').Value;
  end;

  function CheckExisted: boolean;
  begin
    Result := false;
    with rxQry_ckpp do
    begin
      DisableConstraints;
      first;

⌨️ 快捷键说明

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