?? ss_grp_init_search.pas
字號:
edt_ZH.Enabled := True;
edt_ZH.Text := VG_l_ZH;
end;
{填寫名稱}
if VG_l_MC <> '' then
begin
chk_MC.Checked := True;
edt_MC.Enabled := True;
edt_MC.Text := VG_l_MC;
end;
end;
procedure TFrm_GRP_Init_Search.FormCreate(Sender: TObject);
begin
Init_Public_Data;
Get_Default;
end;
{===============================================================================}
{票品類別,總類}
procedure TFrm_GRP_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_GRP_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_GRP_Init_Search.chk_PPXLBClick(Sender: TObject);
begin
fcb_PPXLB.Enabled := chk_PPXLB.Checked;
end;
{年度}
procedure TFrm_GRP_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_GRP_Init_Search.chk_PPMZClick(Sender: TObject);
begin
edt_PPMZ.Enabled := chk_PPMZ.Checked;
end;
{票品售價}
procedure TFrm_GRP_Init_Search.chk_PPSJClick(Sender: TObject);
begin
edt_SJ.Enabled := chk_PPSJ.Checked;
end;
{志號}
procedure TFrm_GRP_Init_Search.chk_ZHClick(Sender: TObject);
begin
edt_ZH.Enabled := chk_ZH.Checked;
end;
{票品名稱}
procedure TFrm_GRP_Init_Search.chk_MCClick(Sender: TObject);
begin
edt_MC.Enabled := chk_MC.Checked;
end;
{===============================================================================}
procedure TFrm_GRP_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_GRP_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 = 'jttp') or (fcb_PPLB.FieldString = 'jtlm') or (fcb_PPLB.FieldString = 'fpj') or (fcb_PPLB.FieldString = 'yp') 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 = 'jttp') or (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
else if fcb_PPLB.FieldString = 'yp' then
part_SQL := part_SQL + ' and b.TYPE=''' + fcb_PPLB.FieldString + ''' and SubStr(b.PPLB,1,1)=''' + fcb_PPDLB.FieldString + '''';
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 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 = '' then
Search_Caption := Search_Caption + '所有數據';
end;
{改變成符合SQL的語句}
function TFrm_GRP_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_GRP_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_GRP_Init_Search.bbtn_SearchClick(Sender: TObject);
begin
if Test_Input = False then Exit; {判斷輸入是否合法}
Generate_SQL_part; {產生SQL語句} {}
Close;
ModalResult := mrOk;
end;
procedure TFrm_GRP_Init_Search.bbtn_CancelClick(Sender: TObject);
begin
Close;
ModalResult := mrCancel;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -