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

📄 ss_grp_init_search.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{*******************************************************}
{                                                       }
{                         选择查询选项                  }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
本模块在省级系统管理模块里库存初始化,分类帐校对调用。

*)
unit SS_GRP_Init_Search;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Spin, FieldComboBox, ExtCtrls, Db, DBTables, ClipBrd;

type
  TFrm_GRP_Init_Search = class(TForm)
    pnl_Search: TPanel;
    chk_PPMZ: TCheckBox;
    chk_ND: TCheckBox;
    chk_PPSJ: TCheckBox;
    chk_ZH: TCheckBox;
    chk_PPLB: TCheckBox;
    fcb_PPLB: TFieldComboBox;
    fcb_PPXLB: TFieldComboBox;
    edt_PPMZ: TEdit;
    se_From_ND: TSpinEdit;
    edt_SJ: TEdit;
    edt_ZH: TEdit;
    chk_PPXLB: TCheckBox;
    bbtn_Search: TBitBtn;
    bbtn_Cancel: TBitBtn;
    lbl_PPMZ: TLabel;
    lbl_SJ: TLabel;
    qry_Tmp: TQuery;
    se_To_ND: TSpinEdit;
    lbl_To_ND: TLabel;
    chk_MC: TCheckBox;
    edt_MC: TEdit;
    chk_PPDLB: TCheckBox;
    fcb_PPDLB: TFieldComboBox;
    procedure FormCreate(Sender: TObject);
    procedure fcb_PPLBChange(Sender: TObject);
    procedure chk_PPLBClick(Sender: TObject);
    procedure chk_NDClick(Sender: TObject);
    procedure chk_PPMZClick(Sender: TObject);
    procedure chk_PPSJClick(Sender: TObject);
    procedure chk_ZHClick(Sender: TObject);
    procedure chk_PPXLBClick(Sender: TObject);
    procedure edt_PPMZKeyPress(Sender: TObject; var Key: Char);
    procedure bbtn_SearchClick(Sender: TObject);
    procedure bbtn_CancelClick(Sender: TObject);
    procedure chk_MCClick(Sender: TObject);
    procedure chk_PPDLBClick(Sender: TObject);
    procedure fcb_PPDLBChange(Sender: TObject);
  private
    { Private declarations }
    procedure Init_Public_Data;                             {初始化公共数据}
    function Test_Input: Boolean;                           {测试输入是否合法}
    function Generate_SQL_part: Boolean;                    {生成查询的部分SQL}
    function Change_Comma(Text: string): string;            {改变成符合SQL的语句}

  public
    { Public declarations }
    procedure Get_Default;                                  {取得默认值}
  end;

var
  Frm_GRP_Init_Search: TFrm_GRP_Init_Search;

implementation

{$R *.DFM}

{购入票查询的公共模块,实际是拼写SQL的Where后面的条件。使用了公共系统变量
  VG_l_PPLB、VG_l_PPDLB、VG_l_PPXLB、VG_l_From_ND、VG_l_To_ND、VG_l_PPMZ
  VG_l_PPSJ、VG_l_ZH、VG_l_MC、part_SQL、Search_Caption
  这些变量保存在libproc中。
  拼写完成的SQL保存在part_SQL中,同时生成说明Search_Caption。
  
  石玉琢 2001.09.26补}

uses
  Pub;                                                  {从中获得一些初始化数据}

{-------------------------------------------------------------------------------}
{初始化公共数据}
procedure TFrm_GRP_Init_Search.Init_Public_Data;
begin
  {显示默认年度}
  with qry_Tmp do
  begin
    Close;
    SQL.Text := 'Select SysDate from Dual';
    Open;
    se_From_ND.Text := FormatDateTime('yyyy', FieldByName('SysDate').AsDateTime);
    se_To_ND.Text := FormatDateTime('yyyy', FieldByName('SysDate').AsDateTime);
  end;

  fcb_PPLB.ClearAll;
  fcb_PPLB.FieldItems.Add('ptyp');
  fcb_PPLB.Items.Add('普通邮票');

  fcb_PPLB.FieldItems.Add('jttp');
  fcb_PPLB.Items.Add('纪特套票');

  fcb_PPLB.FieldItems.Add('jtlm');
  fcb_PPLB.Items.Add('纪特零枚');

  fcb_PPLB.FieldItems.Add('fpj');
  fcb_PPLB.Items.Add('封片简');

  fcb_PPLB.FieldItems.Add('yp');
  fcb_PPLB.Items.Add('邮品');

end;

{-------------------------------------------------------------------------------}
{大类改变,二类跟着改变}
procedure TFrm_GRP_Init_Search.fcb_PPLBChange(Sender: TObject);
begin
  fcb_PPDLB.ClearAll;
  if fcb_PPLB.FieldString = 'ptyp' then
  begin {普通邮票}                                          {}
    fcb_PPDLB.Items.Add('普通邮票');
    fcb_PPDLB.FieldItems.Add('ptyp');
  end
  else if (fcb_PPLB.FieldString = 'jttp') or (fcb_PPLB.FieldString = 'jtlm') then
  begin {集邮票和纪特零枚}                                  {}
    with qry_Tmp do
    begin
      Close;
      SQL.Text := 'Select distinct DL,SubStr(YZLDM,1,1) sort_order from TG_YZPPLDMB'#13#10 +
        'where (YZLDM like ''9%'') or (YZLDM like ''8%'') or (YZLDM like ''1%'' and YZLDM <>''101'') order by sort_order';
      Open;

      while not Eof do
      begin
        fcb_PPDLB.Items.Add(FieldByName('DL').AsString);
        fcb_PPDLB.FieldItems.Add(FieldByName('DL').AsString);
        Next;
      end;
    end;
  end
  else if fcb_PPLB.FieldString = 'fpj' then
  begin {封片简}                                            {}
    with qry_Tmp do
    begin
      Close;
      SQL.Text := 'Select distinct DL,SubStr(YZLDM,1,1) sort_order from TG_YZPPLDMB'#13#10 +
        'where (YZLDM like ''2%'') or (YZLDM like ''3%'') or (YZLDM like ''4%'') or (YZLDM like ''5%'') or (YZLDM like ''6%'') order by sort_order';
      Open;

      while not Eof do
      begin
        fcb_PPDLB.Items.Add(FieldByName('DL').AsString);
        fcb_PPDLB.FieldItems.Add(FieldByName('DL').AsString);
        Next;
      end;
    end;
  end
  else if fcb_PPLB.FieldString = 'yp' then
  begin {集邮品}                                            {}
    with qry_Tmp do
    begin
      Close;
      SQL.Text := 'Select MC,JYPLDM From TG_JYPLDMB Where LB=''大类''';
      Open;

      while not Eof do
      begin
        fcb_PPDLB.Items.Add(FieldByName('MC').AsString);
        fcb_PPDLB.FieldItems.Add(FieldByName('JYPLDM').AsString);
        Next;
      end;
    end;
  end;
  fcb_PPDLBChange(Sender);                                  {刷新小类}
end;

{-------------------------------------------------------------------------------}
{二类改变,小类跟着改变}
procedure TFrm_GRP_Init_Search.fcb_PPDLBChange(Sender: TObject);
begin
  fcb_PPXLB.ClearAll;
  if fcb_PPLB.FieldString = 'ptyp' then
  begin {普通邮票}                                          {}
    fcb_PPXLB.Items.Add('普通邮票');
    fcb_PPXLB.FieldItems.Add('ptyp');
  end
  else if (fcb_PPLB.FieldString = 'jttp') or (fcb_PPLB.FieldString = 'jtlm') or (fcb_PPLB.FieldString = 'fpj') then
  begin {集邮票和纪特零枚}                                  {}
    with qry_Tmp do
    begin
      Close;
      SQL.Text := 'Select YZLDM,MC from TG_YZPPLDMB where DL=''' + fcb_PPDLB.FieldString + ''' order by YZLDM';
      Open;

      while not Eof do
      begin
        fcb_PPXLB.Items.Add(FieldByName('MC').AsString);
        fcb_PPXLB.FieldItems.Add(FieldByName('YZLDM').AsString);
        Next;
      end;
    end;
  end
  else if fcb_PPLB.FieldString = 'yp' then
  begin {集邮品}                                            {}
    with qry_Tmp do
    begin
      Close;
      SQL.Text := 'Select MC,JYPLDM From TG_JYPLDMB Where LB=''小类'' and SubStr(JYPLDM,1,1)=''' + fcb_PPDLB.FieldString + '''';
      Open;

      while not Eof do
      begin
        fcb_PPXLB.Items.Add(FieldByName('MC').AsString);
        fcb_PPXLB.FieldItems.Add(FieldByName('JYPLDM').AsString);
        Next;
      end;
    end;
  end;
end;

{------------------------------------------------------------------------------}
{取得默认值}
procedure TFrm_GRP_Init_Search.Get_Default;
begin
  {选择了大类}
  if VG_l_PPLB <> '' then
  begin
    chk_PPLB.Checked := True;
    fcb_PPLB.Enabled := True;
    fcb_PPLB.ItemIndex := fcb_PPLB.FieldItems.IndexOf(VG_l_PPLB);

    chk_PPDLB.Checked := False;
    fcb_PPDLB.Enabled := False;
    fcb_PPLBChange(nil);

    chk_PPXLB.Checked := False;
    fcb_PPXLB.Enabled := False;
  end;
  {选择了二类}
  if VG_l_PPDLB <> '' then
  begin
    chk_PPLB.Checked := True;
    fcb_PPLB.Enabled := True;
    fcb_PPLB.ItemIndex := fcb_PPLB.FieldItems.IndexOf(VG_l_PPLB);

    chk_PPDLB.Checked := True;
    fcb_PPDLB.Enabled := True;
    fcb_PPLBChange(nil);
    fcb_PPDLBChange(nil);

    chk_PPXLB.Checked := False;
    fcb_PPXLB.Enabled := False;
    fcb_PPDLB.ItemIndex := fcb_PPDLB.FieldItems.IndexOf(VG_l_PPDLB);
  end;
  {选择了小类}
  if VG_l_PPXLB <> '' then
  begin
    chk_PPLB.Checked := True;
    fcb_PPLB.Enabled := True;
    fcb_PPLB.ItemIndex := fcb_PPLB.FieldItems.IndexOf(VG_l_PPLB);
    fcb_PPLBChange(nil);

    chk_PPDLB.Checked := True;
    fcb_PPDLB.Enabled := True;
    fcb_PPDLB.ItemIndex := fcb_PPDLB.FieldItems.IndexOf(VG_l_PPDLB);
    fcb_PPDLBChange(nil);

    chk_PPXLB.Checked := True;
    fcb_PPXLB.Enabled := True;
    fcb_PPXLB.ItemIndex := fcb_PPXLB.FieldItems.IndexOf(VG_l_PPXLB);
  end;
  {选择了年度}
  if VG_l_From_ND <> 0 then
  begin
    chk_ND.Checked := True;
    se_From_ND.Text := IntToStr(VG_l_From_ND);
  end;
  if VG_l_To_ND <> 0 then
  begin
    chk_ND.Checked := True;
    se_To_ND.Text := IntToStr(VG_l_to_ND);
  end;

  {选择了票品面值}
  if VG_l_PPMZ <> 0 then
  begin
    chk_PPMZ.Checked := True;
    edt_PPMZ.Enabled := True;
    edt_PPMZ.Text := FloatToStr(VG_l_PPMZ);
  end;
  {选择了票品售价}
  if VG_l_PPSJ <> 0 then
  begin
    chk_PPSJ.Checked := True;
    edt_SJ.Enabled := True;
    edt_SJ.Text := FloatToStr(VG_l_PPSJ);
  end;
  {填写默认志号}
  if VG_l_ZH <> '' then
  begin
    chk_ZH.Checked := True;

⌨️ 快捷键说明

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