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

📄 ss_txp_init_search.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 2 页
字号:

{===============================================================================}
{票品类别,总类}
procedure TFrm_TXP_Init_Search.chk_PPLBClick(Sender: TObject);
begin
  if chk_PPLB.Checked = True then
  begin
    fcb_PPLB.Enabled := True;
    chk_PPDLB.Enabled := True;
    chk_PPDLBClick(Sender);
  end
  else
  begin
    fcb_PPLB.Enabled := False;
    chk_PPDLB.Enabled := False;
    fcb_PPDLB.Enabled := False;
    chk_PPXLB.Enabled := False;
    fcb_PPXLB.Enabled := False;
  end;
end;

{票品类别,大类}
procedure TFrm_TXP_Init_Search.chk_PPDLBClick(Sender: TObject);
begin
  if chk_PPDLB.Checked = True then
  begin
    fcb_PPDLB.Enabled := True;
    chk_PPXLB.Enabled := True;
    chk_PPXLBClick(Sender);
  end
  else
  begin
    fcb_PPDLB.Enabled := False;
    chk_PPXLB.Enabled := False;
    fcb_PPXLB.Enabled := False;
  end;
end;

{票品类别,小类}
procedure TFrm_TXP_Init_Search.chk_PPXLBClick(Sender: TObject);
begin
  fcb_PPXLB.Enabled := chk_PPXLB.Checked;
end;
{年度}
procedure TFrm_TXP_Init_Search.chk_NDClick(Sender: TObject);
begin
  if chk_ND.Checked = True then
  begin
    se_From_ND.Enabled := True;
    se_To_ND.Enabled := True;
  end
  else
  begin
    se_From_ND.Enabled := False;
    se_To_ND.Enabled := False;
  end;
end;
{票品面值}
procedure TFrm_TXP_Init_Search.chk_PPMZClick(Sender: TObject);
begin
  edt_PPMZ.Enabled := chk_PPMZ.Checked;
end;
{票品售价}
procedure TFrm_TXP_Init_Search.chk_PPSJClick(Sender: TObject);
begin
  edt_SJ.Enabled := chk_PPSJ.Checked;
end;
{志号}
procedure TFrm_TXP_Init_Search.chk_ZHClick(Sender: TObject);
begin
  edt_ZH.Enabled := chk_ZH.Checked;
end;
{票品名称}
procedure TFrm_TXP_Init_Search.chk_MCClick(Sender: TObject);
begin
  edt_MC.Enabled := chk_MC.Checked;
end;

{===============================================================================}
procedure TFrm_TXP_Init_Search.edt_PPMZKeyPress(Sender: TObject;
  var Key: Char);
begin
  if not (Key in ['0'..'9', '.', Chr(VK_BACK)]) then Key := Chr(0);
end;

{生成查询的部分SQL}
function TFrm_TXP_Init_Search.Generate_SQL_part: Boolean;
var
  Tmp_Str: string;
begin
  part_SQL := '';
  {为下次进入显示上次数据}
  VG_l_PPLB := '';
  VG_l_PPDLB := '';
  VG_l_PPXLB := '';
  VG_l_From_ND := 0;
  VG_l_To_ND := 0;
  VG_l_PPMZ := 0;
  VG_l_PPSJ := 0;
  VG_l_ZH := '';
  VG_l_MC := '';

  Search_Caption := '显示条件——';

  {票品类别}
  if chk_PPLB.Checked = True then
  begin
    if chk_PPDLB.Checked = True then
    begin
      if chk_PPXLB.Checked = True then
      begin
      {一、选择了票品小类别}
        if fcb_PPLB.FieldString = 'ptyp' then
          part_SQL := part_SQL + ' and b.TYPE=''' + fcb_PPXLB.FieldString + ''''
        else if (fcb_PPLB.FieldString = 'jtlm') or (fcb_PPLB.FieldString = 'fpj') then
          part_SQL := part_SQL + ' and b.TYPE=''' + fcb_PPLB.FieldString + ''' and b.PPLB=''' + fcb_PPXLB.FieldString + '''';

        VG_l_PPLB := fcb_PPLB.FieldString;
        VG_l_PPDLB := fcb_PPDLB.FieldString;
        VG_l_PPXLB := fcb_PPXLB.FieldString;
        Search_Caption := Search_Caption + '票品类别: ' + fcb_PPLB.text + ' - ' + fcb_PPDLB.Text + ' - ' + fcb_PPXLB.Text + '  ';
      end
      else
      begin
      {二、选择了票品大类别}
        if fcb_PPLB.FieldString = 'ptyp' then
          part_SQL := part_SQL + ' and b.TYPE=''' + fcb_PPDLB.FieldString + ''''
        else if (fcb_PPLB.FieldString = 'jtlm') or (fcb_PPLB.FieldString = 'fpj') then
        begin
          with qry_Tmp do
          begin
            Close;
            SQL.Text := 'Select SubStr(YZLDM,1,1) DLDM from TG_YZPPLDMB where DL=''' + fcb_PPDLB.FieldString + '''';
            Open;
            Tmp_Str := FieldByName('DLDM').AsString;
            if Tmp_Str <> '1' then
              part_SQL := part_SQL + ' and b.TYPE=''' + fcb_PPLB.FieldString + ''' and b.PPLB like ''' + Tmp_Str + '%'''
            else
              part_SQL := part_SQL + ' and b.TYPE=''' + fcb_PPLB.FieldString + ''' and b.PPLB like ''' + Tmp_Str + '%'' and b.PPLB<>''101''';
          end;
        end;
        VG_l_PPDLB := fcb_PPDLB.FieldString;
        VG_l_PPLB := fcb_PPLB.FieldString;
        Search_Caption := Search_Caption + '票品类别: ' + fcb_PPLB.text + ' - ' + fcb_PPDLB.Text + '  ';
      end;
    end
    else
    begin
      {三、仅仅选择了票品类别}
      part_SQL := part_SQL + ' and b.TYPE=''' + fcb_PPLB.FieldString + '''';
      Search_Caption := Search_Caption + '票品类别:' + fcb_PPLB.text + '  ';
      VG_l_PPLB := fcb_PPLB.FieldString;
    end;
  end;

  if part_SQL = '' then
    part_SQL := part_SQL + ' and ( b.TYPE=''jtlm'' or b.TYPE=''ptyp'' or b.TYPE=''fpj'') ';

  {发行年度}
  if chk_ND.Checked = True then
  begin
    part_SQL := part_SQL + ' and to_char(b.FXRQ,''yyyy'')>=''' + se_From_ND.text + ''' and to_char(b.FXRQ,''yyyy'')<=''' + se_To_ND.text + '''';
    Search_Caption := Search_Caption + '发行年度: 从' + se_From_ND.text + '年到' + se_To_ND.text + '年  ';
    VG_l_From_ND := StrToInt(se_From_ND.text);
    VG_l_To_ND := StrToInt(se_To_ND.text);
  end;

  {票品面值}
  if chk_PPMZ.Checked = True then
  begin
    part_SQL := part_SQL + ' and b.TPMZ=' + FloatToStr(StrToFloat(edt_PPMZ.Text) * 100);
    Search_Caption := Search_Caption + '票品面值:' + FloatToStr(StrToFloat(edt_PPMZ.Text)) + '元  ';
    VG_l_PPMZ := StrToFloat(edt_PPMZ.Text); {单位:元}      {}
  end;

  {票品售价}
  if chk_PPSJ.Checked = True then
  begin
    part_SQL := part_SQL + ' and b.TPSJ=' + FloatToStr(StrToFloat(edt_SJ.Text) * 100);
    Search_Caption := Search_Caption + '票品售价:' + FloatToStr(StrToFloat(edt_SJ.Text)) + '元  ';
    VG_l_PPSJ := StrToFloat(edt_SJ.Text);
  end;

  {志号}
  if chk_ZH.Checked = True then
  begin
    part_SQL := part_SQL + ' and b.ZH like ''%' + Change_Comma(edt_ZH.Text) + '%''';
    Search_Caption := Search_Caption + '志号中包含:' + edt_ZH.Text + '  ';
    VG_l_ZH := edt_ZH.Text;
  end;

  {票品名称}
  if chk_MC.Checked = True then
  begin
    part_SQL := part_SQL + ' and b.TMC like ''%' + Change_Comma(edt_MC.Text) + '%''';
    Search_Caption := Search_Caption + '票品名称中包含:' + edt_MC.Text + '  ';
    VG_l_MC := edt_MC.Text;
  end;

  if part_SQL = ' and ( b.TYPE=''jtlm'' or b.TYPE=''ptyp'' or b.TYPE=''fpj'') ' then
    Search_Caption := '显示条件——所有数据';
end;

{改变成符合SQL的语句}
function TFrm_TXP_Init_Search.Change_Comma(Text: string): string;
var
  Ret_Text: string;
  i: Integer;
begin
  Ret_Text := '';
  for i := 1 to Length(Text) do
  begin
    Ret_Text := Ret_Text + Copy(Text, i, 1);
    if Copy(Text, i, 1) = '''' then
      Ret_Text := Ret_Text + '''';
  end;
  Result := Ret_Text;
end;
{-------------------------------------------------------------------------------}
{测试输入是否合法}
function TFrm_TXP_Init_Search.Test_Input: Boolean;
begin
  if chk_ND.Checked then
  begin
    try
      StrToInt(se_From_ND.Text);
    except
      CHQMsgBox('选择了年度,请输入合法数值!');
      se_From_ND.SetFocus;
      Result := False;
      exit;
    end;

    try
      StrToInt(se_To_ND.Text);
    except
      CHQMsgBox('选择了年度,请输入合法数值!');
      se_To_ND.SetFocus;
      Result := False;
      exit;
    end;
    if StrToInt(se_To_ND.Text) < StrToInt(se_From_ND.Text) then
    begin
      CHQMsgBox('所选择的终止年度不能小于起始年度!');
      se_From_ND.SetFocus;
      Result := False;
      Exit;
    end;
  end;

  if chk_PPMZ.Checked then
  try
    StrToFloat(edt_PPMZ.Text);
  except
    CHQMsgBox('选择了票品面值,请输入合法数值!');
    edt_PPMZ.SetFocus;
    Result := False;
    exit;
  end;

  if chk_PPSJ.Checked then
  try
    StrToFloat(edt_SJ.Text);
  except
    CHQMsgBox('选择了票品售价,请输入合法数值!');
    edt_SJ.SetFocus;
    Result := False;
    exit;
  end;
  Result := True; {设置返回值为True}                        {}
end;

procedure TFrm_TXP_Init_Search.bbtn_SearchClick(Sender: TObject);
begin
  if Test_Input = False then Exit;                          {判断输入是否合法}

  Generate_SQL_part; {产生SQL语句}                          {}
  Close;
  ModalResult := mrOk;
end;

procedure TFrm_TXP_Init_Search.bbtn_CancelClick(Sender: TObject);
begin
  Close;
  ModalResult := mrCancel;
end;


end.

⌨️ 快捷键说明

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