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

📄 jm_kccx.pas

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

*)
unit JM_KCCX;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, DBGrids, ExtCtrls, ComCtrls, RXSpin, Mask, ToolEdit,
  Spin, RXCtrls, Db, DBTables, DBCtrls, YzppSelect, FieldComboBox,
  SqlStrings, JM_data;

type
  Pygxx = ^Tygxx;
  Tygxx = record
    ygdm: string;
    ygmc: string;
  end;
  Tfrm_KCCX = class(TForm)
    Panel4: TPanel;
    XttxTitle: TRxLabel;
    Lbl_user: TLabel;
    Label4: TLabel;
    Panel1: TPanel;
    Label6: TLabel;
    Qry_find: TQuery;
    DataSource1: TDataSource;
    Qry_findPPDM: TStringField;
    Qry_findLB: TStringField;
    Qry_findZH: TStringField;
    Qry_findPPMC: TStringField;
    Qry_findDJ: TFloatField;
    Qry_findTDM: TStringField;
    Query1: TQuery;
    Qry_findSL: TFloatField;
    Qry_ryb: TQuery;
    Qry_rybYGDM: TStringField;
    Qry_rybYGMC: TStringField;
    Panel2: TPanel;
    GroupBox2: TGroupBox;
    ComboBox1: TComboBox;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    CheckBox1: TCheckBox;
    CheckBox7: TCheckBox;
    edtSLStart: TEdit;
    edtSLend: TEdit;
    YzppSelect1: TYzppSelect;
    btnFind: TButton;
    Button2: TButton;
    btnPrint: TButton;
    btnEdit: TButton;
    Panel3: TPanel;
    DBGrid1: TDBGrid;
    Qry_findFXRQ: TStringField;
    Panel5: TPanel;
    Rgp_ppfl: TRadioGroup;
    Label3: TLabel;
    Qry_findJJ: TFloatField;
    procedure btnFindClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CheckBox7Click(Sender: TObject);
    procedure Qry_findDJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure Qry_findDJSetText(Sender: TField; const Text: string);
    procedure btnPrintClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Rgp_ppflClick(Sender: TObject);
    procedure Qry_findJJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure Qry_findJJSetText(Sender: TField; const Text: string);
    procedure ComboBox1Change(Sender: TObject);
    procedure edtSLStartKeyPress(Sender: TObject; var Key: Char);
    procedure edtSLendKeyPress(Sender: TObject; var Key: Char);
  private
    SqlStr: string;
    LBStr: string;
    MasterStr: string;
    SLStart: string;
    SLEnd: string;
    SLStr: string;
    PPDMStr: string;
    YGDM: string;
    L_type: TIO_Type;
    LB_type: string;
    procedure CheckYGDM;
  public
    partsql, yzppselect_partsql: string; {partsql查询语句中的条件语句部分
                                         ,yzppselect_partsql小阕控件查询语句中的
                                          类别条件部分}
    procedure Build_PartSql_Selected; {生成查询条件语句}
    function Execute(const DB: TDataBase; p_ISQH: TQH_TYPE): Boolean;
  end;

var
  frm_KCCX: Tfrm_KCCX;

procedure Show_MS_KCCX(p_isQH: TQH_TYPE; FType: TIO_TYPE); //(前后)库存查询

implementation

uses datas,pub;

{$R *.DFM}

{ Tfrm_CX_KC }

procedure Show_MS_KCCX(p_isQH: TQH_TYPE; FType: TIO_TYPE); //(前后)库存查询
begin
  frm_kccx := Tfrm_kccx.Create(Application);
  with frm_kccx do
  try
    if Execute(data.DM, p_isQH) then
    begin
      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;
      Caption := Application.Title;
      ShowModal;
    end;
  finally
    Destroy
  end;
end;

function Tfrm_KCCX.Execute(const DB: TDataBase;
  p_ISQH: TQH_TYPE): Boolean;
begin
  Result := false;
  if not Assigned(DB) then
    exit;
  try
    Qry_ryb.Close;
    Qry_ryb.DatabaseName := DB.DatabaseName;
    Qry_ryb.Open;
    Result := true;
  except
    CHQMsgBox('不能打开 <集邮门市信息> 表!');
    exit;
  end;
end;

procedure Tfrm_KCCX.btnFindClick(Sender: TObject);
begin
  Build_PartSql_Selected; { 生成查询条件语句}
  if ComboBox1.Text = '全部' then {查询所有营业员的库存状况}
  begin
    SqlStr := 'Select a.PPDM,decode(a.LB,''0'',''集邮票'',''1'',''集邮品'',''2'',''购入票'') lb,a.ZH,a.PPMC,a.DJ,a.jj,SUM(a.SL) SL,';
    SqlStr := SqlStr + ' TO_CHAR(B.FXRQ,''YYYY-MM-DD'') FXRQ,b.TDM FROM  tm_yyykc a ,TB_YZPPXXB b ';
    SqlStr := SqlStr + ' Where a.sl>0 and b.TDM=a.PPDM ' + PartSql + ' and a.lb =''' + lb_type + ''' Group by a.ppdm,a.lb,a.zh,a.ppmc,a.dj,a.jj,b.fxrq,b.tdm  order by ppdm'
  end
  else
  begin {查询选择的营业员的库存状况}
    SqlStr := 'Select a.PPDM,decode(a.LB,''0'',''集邮票'',''1'',''集邮品'',''2'',''购入票'') lb,a.ZH,a.PPMC,a.DJ,a.jj,a.SL,';
    SqlStr := SqlStr + ' TO_CHAR(B.FXRQ,''YYYY-MM-DD'') FXRQ,b.TDM FROM  tm_yyykc a ,TB_YZPPXXB b ';
    SqlStr := SqlStr + ' Where a.sl>0 and b.TDM=a.PPDM ' + PartSql + ' and a.lb =''' + lb_type + '''and a.ygdm=''' + Pygxx(Combobox1.Items.Objects[Combobox1.Items.indexof(ComboBox1.text)])^.ygdm + ''' order by ppdm';
  end;
  with Qry_Find do
  begin
    Close;
    SQL.Clear;
    SQL.Add(SqlStr);
    Open;
  end;
end;

procedure Tfrm_KCCX.CheckYGDM;
var
  xygxx: Pygxx;
begin
  with Query1 do
  begin
    Close;
    Sql.Clear;
    Sql.Add('Select YGDM,YGMC from TGS_RYB');
    Open;
  end;
  if Query1.IsEmpty then Exit;
  while not Query1.Eof do
  begin
    new(xygxx);
    xygxx^.ygdm := Query1.fieldByName('ygdm').AsString;
    xygxx^.ygmc := Query1.FieldByName('ygmc').asString;
    ComboBox1.Items.AddObject(Query1.FieldByName('YGMC').asString, TObject(xygxx));
    Query1.Next;
  end;
end;

procedure Tfrm_KCCX.FormCreate(Sender: TObject);
begin
  CheckYGDM;
  YzppSelect1.Open;
  Lbl_user.Caption := ' 操作员:' + VG_UserName;
end;

procedure Tfrm_KCCX.CheckBox7Click(Sender: TObject);
begin
  if Checkbox7.Checked then
  begin
    YzppSelect1.Enabled := True;
    case Rgp_ppfl.ItemIndex of
      0: YzppSelect1.SQL.Text := 'Select TDM,TMC TJC,ZH,TPSJ/100 MC From TB_YZPPXXB Where type =''jttp''  Order by zh';
      1: YzppSelect1.SQL.Text := 'Select TDM,TMC TJC,ZH,TPSJ/100 MC From TB_YZPPXXB Where type =''yp''  Order by zh';
      2: YzppSelect1.SQL.Text := 'Select TDM,TMC TJC,ZH,TPSJ/100 MC From TB_YZPPXXB Where type <>''jttp'' and type <>''yp''  Order by zh';
    end;
    YzppSelect1.Open;
  end
  else YzppSelect1.Enabled := False;
end;

procedure Tfrm_KCCX.Qry_findDJGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_KCCX.Qry_findDJSetText(Sender: TField; const Text: string);
begin
  CurrSetText(Sender, Text);
end;

procedure Tfrm_KCCX.btnPrintClick(Sender: TObject);
begin
  PrintDbGrid(DBgrid1, '营业员库存');
end;

procedure Tfrm_KCCX.Button2Click(Sender: TObject); {志号定位}
var
  ClickedOK: Boolean;
  StrZH: string;
begin
  ClickedOK := ZHLocate('输入志号', '请输入要定位的票品志号:', StrZH); {使用公共函数}
  if ClickedOK then
    Qry_find.Locate('zh', StrZH, [loPartialKey]);
end;

procedure Tfrm_KCCX.Rgp_ppflClick(Sender: TObject);
begin
  case Rgp_ppfl.ItemIndex of
    0: begin
        L_type := io_jyp;
        lb_type := '0';
      end;
    1: begin
        L_type := io_yp;
        lb_type := '1';
      end;
    2: begin
        L_type := io_grp;
        lb_type := '2';
      end;
  end;
  btnFindClick(nil);
end;

procedure Tfrm_KCCX.Qry_findJJGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_KCCX.Qry_findJJSetText(Sender: TField; const Text: string);
begin
  CurrSetText(Sender, Text);
end;

procedure Tfrm_KCCX.ComboBox1Change(Sender: TObject);
begin
  btnFindclick(nil);
end;

procedure Tfrm_KCCX.Build_PartSql_Selected;
begin
  PartSql := '';
  if CheckBox1.Checked then
  begin
    if (Trim(edtSLStart.Text) = '') or (Trim(edtSLEnd.Text) = '') then
      PartSql := PartSql + '';
    if (Trim(edtSLStart.Text) <> '') and (Trim(edtSLEnd.Text) <> '') then
      PartSql := PartSql + ' and a.sl >=' + edtSLStart.Text + ' and a.sl <= ' + edtSLEnd.Text;
  end
  else
  begin
    PartSql := PartSql + '';
  end;
  if CheckBox7.Checked then
  begin
    partSql := PartSql + ' and a.ppdm=''' + YzppSelect1.GetPPDM + '''';
  end
  else
  begin
    PartSql := PartSql + '';
  end;
end;

procedure Tfrm_KCCX.edtSLStartKeyPress(Sender: TObject; var Key: Char);
begin
  if key = #8 then exit;
  if (ord(key) < 48) or (ord(key) > 57) then key := #0;
end;

procedure Tfrm_KCCX.edtSLendKeyPress(Sender: TObject; var Key: Char);
begin
  if key = #8 then exit;
  if (ord(key) < 48) or (ord(key) > 57) then key := #0;
end;

end.

⌨️ 快捷键说明

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