📄 advanceset.pas
字号:
unit AdvanceSet;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, ExtCtrls, Buttons;
type
TFormAdvance = class(TForm)
PageControl: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
MemoMainSQL: TMemo;
Panel1: TPanel;
Label1: TLabel;
MemoZuoFeiSQL: TMemo;
Panel2: TPanel;
Label2: TLabel;
MemoTongJiSQL: TMemo;
Panel3: TPanel;
Label3: TLabel;
TabSheet5: TTabSheet;
ButtonTestRun: TButton;
ButtonOK: TButton;
ButtonCancel: TButton;
ButtonReset: TButton;
ListViewFL: TListView;
Panel4: TPanel;
Panel5: TPanel;
SpeedButtonAdd: TSpeedButton;
SpeedButtonDel: TSpeedButton;
SpeedButtonEdit: TSpeedButton;
Label4: TLabel;
EditColl: TEdit;
Label5: TLabel;
Label6: TLabel;
BitBtnOK: TBitBtn;
BitBtnCancel: TBitBtn;
EditCV: TEdit;
Label7: TLabel;
MemoSQL: TMemo;
TabSheet4: TTabSheet;
Panel6: TPanel;
Label8: TLabel;
MemoWDSQL: TMemo;
procedure ButtonResetClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ButtonOKClick(Sender: TObject);
procedure ButtonTestRunClick(Sender: TObject);
procedure SpeedButtonAddClick(Sender: TObject);
procedure BitBtnOKClick(Sender: TObject);
procedure BitBtnCancelClick(Sender: TObject);
procedure SpeedButtonEditClick(Sender: TObject);
procedure SpeedButtonDelClick(Sender: TObject);
private
procedure LoadSQL(Section:String);
public
{ Public declarations }
end;
implementation
uses MainForm, Commfunc, DataMod, TestWin, SelectCase;
{$R *.DFM}
procedure AddToMemo(Memo:TMemo;StrVal:String);
begin
Memo.Lines.Clear;
Memo.Lines.Add(StrVal);
end;
procedure TFormAdvance.ButtonResetClick(Sender: TObject);
begin
if MessageDlg('现在恢复收费程序的默认设置吗?',mtInformation,[mbYes,mbNo],0)=mrYes then
LoadSQL('默认设置');
end;
procedure TFormAdvance.FormCreate(Sender: TObject);
begin
LoadSQL('最新设置');
end;
procedure TFormAdvance.ButtonOKClick(Sender: TObject);
var
I : Integer;
TmpStr : String;
begin
with IniFile do begin
EraseSection('最新设置');
WriteString('最新设置','缴费浏览',ListToStr(MemoMainSQL.Lines,''));
WriteString('最新设置','已打发票',ListToStr(MemoZuoFeiSQL.Lines,''));
WriteString('最新设置','收费统计',ListToStr(MemoTongJiSQL.Lines,''));
WriteString('最新设置','未打发票',ListToStr(MemoWDSQL.Lines,''));
for i:=0 to ListViewFL.Items.Count-1 do
if i>0 then
TmpStr:=TmpStr+';'+ListViewFL.Items[i].Caption
else
TmpStr:=ListViewFL.Items[i].Caption;
WriteString('最新设置','集合浏览',TmpStr);
for i:=0 to ListViewFL.Items.Count-1 do
WriteString('最新设置',ListViewFL.Items[i].Caption,ListViewFL.Items[i].SubItems[0]+'|'+ListViewFL.Items[i].SubItems[1]);
end;
end;
procedure TFormAdvance.LoadSQL(Section:String);
var
I:Integer;
SqlList :TStringList;
Colls :TStringList;
begin
if IniFile.ReadString(Section,'缴费浏览','')<>'' then
AddToMemo(MemoMainSQL,IniFile.ReadString(Section,'缴费浏览',''));
if IniFile.ReadString(Section,'已打发票','')<>'' then
AddToMemo(MemoZuoFeiSQL,IniFile.ReadString(Section,'已打发票',''));
if IniFile.ReadString(Section,'收费统计','')<>'' then
AddToMemo(MemoTongJiSQL,IniFile.ReadString(Section,'收费统计',''));
if IniFile.ReadString(Section,'未打发票','')<>'' then
AddToMemo(MemoWDSQL,IniFile.ReadString(Section,'未打发票',''));
SqlList:=TStringList.Create;
Colls :=TStringList.Create;
CutStr(IniFile.ReadString(Section,'集合浏览',''),Colls,';');
ListViewFL.Items.Clear;
for I:=0 to Colls.Count-1 do
with ListViewFL.Items.Add do begin
Caption:=Colls.Strings[i];
SqlList.Clear;
CutStr(IniFile.ReadString(Section,Colls.Strings[I],''),SqlList,'|');
if SqlList.Count>0 then
SubItems.Add(SqlList.Strings[0]);
if SqlList.Count>1 then
SubItems.Add(SqlList.Strings[1]);
end;
SqlList.Free;
Colls.Free;
end;
procedure TFormAdvance.ButtonTestRunClick(Sender: TObject);
var
SQLStr:String;
FormTest: TFormTest;
FormCase: TFormCase;
TmpLst:TStringList;
CollNames,SQLList:TStringList;
I:Integer;
begin
case PageControl.ActivePageIndex of
0:SQLStr:=ListToStr(MemoMainSQL.Lines,'');
1:SQLStr:=ListToStr(MemoZuoFeiSQL.Lines,'');
2:SQLStr:=ListToStr(MemoWDSQL.Lines,'');
3:SQLStr:=ListToStr(MemoTongJiSQL.Lines,'');
end;
with DataMD do
case PageControl.ActivePageIndex of
0,1,2,3:
if SQLStr='' then
ShowMessage('请正确填写SQL语句')
else begin
try
TmpLst:=TStringList.Create;
UnSqlStr(SQLStr,TmpLst);
if TmpLst.Strings[2]='' then
SQLStr:=TmpLst.Strings[0]+TmpLst.Strings[1]+' where 1=2 '+TmpLst.Strings[3]+TmpLst.Strings[4]
else
SQLStr:=TmpLst.Strings[0]+TmpLst.Strings[1]+TmpLst.Strings[2]+' and 1=2 '+TmpLst.Strings[3]+TmpLst.Strings[4];
OpenPubQuery(SQLStr,False);
TmpLst.Free;
FormTest:=TFormTest.Create(Self);
FormTest.Top:=Self.Top+Self.Height;
FormTest.Show;
except
ShowMessage('SQL语句不正确');
raise;
end;
end;
4:begin
FormCase:=TFormCase.Create(Self);
CollNames:=TStringList.Create;
SQLList:=TStringList.Create;
for i:=0 to ListViewFL.Items.Count-1 do begin
CollNames.Add(ListViewFL.Items[i].Caption);
SQLList.Add(ListViewFL.Items[i].SubItems[0]);
end;
if FormCase.MakeFace(CollNames,SQLList) then
FormCase.ShowModal;
CollNames.Free;
SQLList.Free;
FormCase.Free;
end;
end;
end;
procedure TFormAdvance.SpeedButtonAddClick(Sender: TObject);
begin
EditColl.Text:='';EditCV.Text:='';MemoSQL.Lines.Text:='';
ListViewFL.Visible:=False;
Panel5.Visible:=False;
Panel4.Visible:=True;
Panel4.Tag:=1;//新增
end;
procedure TFormAdvance.BitBtnOKClick(Sender: TObject);
begin
if EditColl.Text='' then begin
ShowMessage('集合说明不能为空');
Exit;
end;
if EditCV.Text='' then begin
ShowMessage('集合取值不能为空');
Exit;
end;
if Trim(MemoSQL.Lines.Text)='' then begin
ShowMessage('条件范围不能为空');
Exit;
end;
if Panel4.Tag=1 then begin
with ListViewFL.Items.Add do begin
Caption:=EditColl.Text;
SubItems.Add(EditCV.Text);
SubItems.Add(MemoSQL.Lines.Text);
end;
end
else if Panel4.Tag=0 then begin
with ListViewFL.Selected do begin
Caption:=EditColl.Text;
SubItems.Clear;
SubItems.Add(EditCV.Text);
SubItems.Add(MemoSQL.Lines.Text);
end;
end;
Panel4.Visible:=False;
ListViewFL.Visible:=True;
Panel5.Visible:=True;
end;
procedure TFormAdvance.BitBtnCancelClick(Sender: TObject);
begin
Panel4.Visible:=False;
ListViewFL.Visible:=True;
Panel5.Visible:=True;
end;
procedure TFormAdvance.SpeedButtonEditClick(Sender: TObject);
begin
if not Assigned(ListViewFL.Selected) then Exit;
ListViewFL.Visible:=False;
Panel5.Visible:=False;
Panel4.Visible:=True;
EditColl.Text:=ListViewFL.Selected.Caption;
EditCV.Text:=ListViewFL.Selected.SubItems[0];
MemoSQL.Lines.Text:=ListViewFL.Selected.SubItems[1];
Panel4.Tag:=0;//修改
end;
procedure TFormAdvance.SpeedButtonDelClick(Sender: TObject);
begin
if Assigned(ListViewFL.Selected) then
ListViewFL.Selected.Delete;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -