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

📄 jm_yyypptp.pas

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

*)

unit JM_YYYPPTP;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  FORMBASE, ExtCtrls, ModiPanel, StdCtrls, Mask, DBCtrls, Grids, DBGrids,
  CurrEdit, RXDBCtrl, ToolEdit, ComCtrls, Buttons, DBTables, Db,
  RxQuery, RXCtrls, SqlStrings;

type
  Pygxm = ^Tygxm;
  Tygxm = record
    ygdm: string;
    ygmc: string;
  end;
  Prkxz = ^Trkxz;
  Trkxz = record
    rkxzdm: string;
    rkxzmc: string;
  end;
  Tfrm_YYYPPTP = class(TFFormBase)
    ModiPanel1: TModiPanel;
    DataSource1: TDataSource;
    Qry_tpd: TQuery;
    UpdateSQL1: TUpdateSQL;
    DataSource2: TDataSource;
    Qry_tpdpp: TQuery;
    UpdateSQL2: TUpdateSQL;
    DataSource3: TDataSource;
    qryRKDRK: TRxQuery;
    DataSource4: TDataSource;
    Qry_ryb: TQuery;
    UpdateSQL3: TUpdateSQL;
    Qry_tpdpp0: TQuery;
    Panel4: TPanel;
    XttxTitle: TRxLabel;
    DWMC: TLabel;
    Qry_temp: TQuery;
    UpdateSQL4: TUpdateSQL;
    Label8: TLabel;
    DataSource5: TDataSource;
    Query1: TQuery;
    Qry_tpdpp0DH: TStringField;
    Qry_tpdpp0PPDM: TStringField;
    Qry_tpdpp0ZH: TStringField;
    Qry_tpdpp0PPMC: TStringField;
    Qry_tpdpp0LB: TStringField;
    Qry_tpdDH: TStringField;
    Qry_tpdTCZ: TStringField;
    Qry_tpdTRZ: TStringField;
    Qry_tpdCZY: TStringField;
    Qry_tpdRQ: TDateTimeField;
    Qry_tpdTCFH: TDateTimeField;
    Qry_tpdTRFH: TDateTimeField;
    Qry_tpdCZYXM: TStringField;
    Qry_tpdpp0SL: TFloatField;
    Qry_tpdpp0DJ: TFloatField;
    Panel3: TPanel;
    Rgp_ppfl: TRadioGroup;
    Panel2: TPanel;
    Label3: TLabel;
    Label1: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    DBGrid3: TDBGrid;
    DBEdit1: TDBEdit;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Panel1: TPanel;
    DBGrid2: TDBGrid;
    Qry_tpdpp0JJ: TFloatField;
    DBDateEdit1: TDBDateEdit;
    DBDateEdit2: TDBDateEdit;
    DBDateEdit3: TDBDateEdit;
    CheckBox1: TCheckBox;
    Qry_LYKC: TQuery;
    Qry_tpdpp0LYKC: TIntegerField;
    spr_dh: TStoredProc;
    procedure ModiPanel1BtnClick(Index: TBtnVisible);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure qryRKDRKAfterScroll(DataSet: TDataSet);
    procedure Qry_tpdpp0AfterInsert(DataSet: TDataSet);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Qry_rkppJSJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure Qry_rkppJSJSetText(Sender: TField; const Text: string);
    procedure Qry_rkppSJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure Qry_rkppSJSetText(Sender: TField; const Text: string);
    procedure Qry_rkppMZGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure Qry_rkppMZSetText(Sender: TField; const Text: string);
    procedure Qry_tpdpp0JJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure Qry_tpdpp0JJSetText(Sender: TField; const Text: string);
    procedure Qry_tpdpp0XJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure Qry_tpdpp0XJSetText(Sender: TField; const Text: string);
    procedure Qry_tpdAfterScroll(DataSet: TDataSet);
    procedure Qry_tpdpp0DJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure Qry_tpdpp0DJSetText(Sender: TField; const Text: string);
    procedure Qry_tpdAfterOpen(DataSet: TDataSet);
    procedure Rgp_ppflClick(Sender: TObject);
    procedure Qry_tpdpp0BeforeInsert(DataSet: TDataSet);
    procedure FormShow(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure Qry_tpdpp0CalcFields(DataSet: TDataSet);
  private
    { Private declarations }
    ModiFlag: integer;
    FDtState: TDataState;
    Fckjhh: string;
    procedure Save;
    procedure SetState(Value: TdataState);
    procedure InitData;
    procedure open_sql(var FQuery: TQuery; var SQLTextStr: string);
    procedure exec_sql(var FQuery: TQuery; var SQLTextStr: string);
    function CheckKC: integer; //理论库存检测
    procedure StateChange; //如果营业员票品类别改变
  public
    { Public declarations }
    recordcount: integer;
    zh: array of string;
    mc: array of string;
    tdm: array of string;
    lb: array of string;
    dj: array of string;
    jj: array of string;
    queding: boolean;
    editpd: boolean;
    insertmode: boolean;
    save1: boolean;
    rkdh: string;
    Saved: Boolean;
    TPDHSTR: string;
    L_type: TIO_Type;
    LB_type: string;
    Str_Locate_tpdh: string; {保存调配单号,用于保存或取消数据后定位到该调配单}
  end;

function Show_MS_YYYPPTP(FType: TIO_TYPE): Boolean;
var
  frm_YYYPPTP: Tfrm_YYYPPTP;

implementation

uses datas,JM_data, SHOW_TPPP, pub, {JM_master_detail_base,Show_tppp,} JM_RPTTPFH;

{$R *.DFM}

function Show_MS_YYYPPTP(FType: TIO_TYPE): Boolean;
begin
  if not assigned(Frm_YYYPPTP) then
    Frm_YYYPPTP := Tfrm_YYYPPTP.Create(nil);
  with frm_yyypptp do
  begin
    try
      Caption := application.Title;
      L_type := FType;
      case L_type of
        io_jyp:
          begin
            Rgp_ppfl.ItemIndex := 0;
            LB_type := '0';
          end;
        io_yp:
          begin
            Rgp_ppfl.Itemindex := 1;
            LB_type := '1';
          end;
        io_grp:
          begin
            Rgp_ppfl.ItemIndex := 2;
            LB_type := '2';
          end;
      end;
      ShowModal;
    finally
      free;
      frm_yyypptp := nil;
    end;
  end;
end;

procedure Tfrm_YYYPPTP.SetState(Value: TdataState);
  procedure SetControls(Value: Boolean);
  begin
    Panel1.Enabled := Value;
    DBGrid3.ReadOnly := Value;
    if value = true then
      dbgrid3.Columns[4].Color := $00FFFFE1
    else
      dbgrid3.Columns[4].Color := $00D9FFFF;
  end;
begin
  FDtState := Value;
  ModiPanel1.ChangeMode(FDtState = dtBrowse);
  SetControls(FDtState = dtBrowse);
  with Qry_tpd do
    case FDtstate of
      dtBrowse:
        begin
          ComBoBox1.Enabled := True;
          ComBoBox2.Enabled := True;
        end;
      dtinsert:
        begin
          ComBoBox1.Enabled := False;
          ComBoBox2.Enabled := False;
          Append;
        end;
      dtedit:
        begin
          ComBoBox1.Enabled := False;
          ComBoBox2.Enabled := False;
          Qry_tpdpp0.Edit;
          ModiFlag := 1;
        end;
    end;
end;

procedure Tfrm_YYYPPTP.Save;
var
  flag: boolean;
  RKDH: string;
begin
  Saved := True;
  if ComboBox1.Text = '' then
  begin
    CHQMsgBox('票品调出者不能为空!');
    ComboBox1.SetFocus;
    Exit;
  end;
  if ComboBox2.Text = '' then
  begin
    CHQMsgBox('票品调入者不能为空!');
    ComboBox2.SetFocus;
    Exit;
  end;
  {营业员理论库存检测}
  if CheckKC = 1 then
  begin
    Saved := False;
    Exit;
  end;

  if queding then
  begin
    if not (save1) then
    begin

    {从GetMSQLDH(5)改过来的yzhshi 2002.12.05}
    with spr_dh do
    begin
      ParamByName('BILLID').AsString := 'mh_tpdh';
      ParamByName('SORTCODE').AsString := 'A';
      ParamByName('DEPARTMENT').AsString := '';
      ParamByName('CYEAR').AsString := '';
      ExecProc;
      rkdh := Params[0].asstring;
    end;

      Str_Locate_tpdh := rkdh;
      flag := false;
      with qry_tpdpp do
      begin
        Qry_tpdpp0.First;
        while not Qry_tpdpp0.eof do
        begin
          DataSource := nil;
          Open;
          append;
          if (not Qry_tpdpp0.FieldByname('SL').isNull) and (Qry_tpdpp0.FieldByname('SL').AsFloat > 0) then
          begin
            fieldbyname('dh').asstring := rkdh;
            fieldbyname('ppdm').asstring := Qry_tpdpp0.fieldbyname('ppdm').asstring;
            fieldbyname('sl').asinteger := Qry_tpdpp0.fieldbyname('sl').asinteger;
            fieldbyname('lb').AsString := Qry_tpdpp0.fieldbyname('lb').AsString;
            Fieldbyname('dj').AsFloat := Qry_tpdpp0.fieldbyName('dj').AsFloat;
            Fieldbyname('Jj').AsFloat := Qry_tpdpp0.fieldbyName('Jj').AsFloat;
            Post;
            Flag := true;
          end
          else if (Qry_tpdpp0.FieldByname('SL').isNull) then
          begin
            Flag := False;
            Break;
          end;
          Qry_tpdpp0.next;
        end;
      end;
      if not Flag then
      begin
        save1 := true;
        CHQMsgBox('数量不能为空且必须大于0!');
        Qry_tpd.Close;
        Qry_tpdpp.Close;
        exit;
      end
      else
      begin
        SetState(dtBrowse);
      end;

      with qry_tpd do {query}
      begin
        Append;
        fieldbyname('DH').asstring := rkdh;
        fieldbyname('TCZ').asstring := pygxm(combobox1.Items.Objects[combobox1.Items.IndexOf(combobox1.text)])^.ygdm; //DBLookUpComboBox1.Text ;
        fieldbyname('TRZ').asstring := pygxm(combobox2.Items.Objects[combobox2.Items.IndexOf(combobox2.text)])^.ygdm; //DBLookUpComboBox2.Text ;
        fieldbyname('CZY').asstring := VG_UserID;
        fieldbyname('RQ').asdatetime := StrToDateTime(VarToStr(VG_year) + '-' + VarToStr(VG_month) + '-' + VarToStr(VG_day));
      end;

      qry_tpd.Database.StartTransaction;
      try
        qry_tpd.ApplyUpdates;
        qry_tpdpp.ApplyUpdates;
        qry_tpd.Database.Commit;
        queding := false;
        Qry_tpd.Close;
        Qry_tpd.open;
        qry_tpdpp0.close;
        qry_tpdpp0.open;
        queding := false;
        ComboBox1.Enabled := True;
        ComboBox2.Enabled := True;
        save1 := false;
      except
        if qry_tpd.Database.InTransaction then
        begin qry_tpd.Database.RollBack;
          queding := false;
          Saved := False;
        end;
        raise exception.Create('保存数据失败!');
      end;
    end
    else
    begin
      flag := false;
      with qry_tpd do {query}
      begin
        append;
        fieldbyname('dh').asstring := rkdh;

⌨️ 快捷键说明

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