📄 gq_uquerymain.pas
字号:
unit GQ_UQueryMain;
{
代码单元名称:通用综合查询工具主窗口
从属软件:大连资金清算中心打码机管理信息系统
开发单位:大连理工大学计算机技术研究所软件工程研究室
作者:袁源
时间:2001,1,30
}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, Buttons, ToolWin, psock, ComCtrls, Grids, Menus, ImgList, StdCtrls,
DB,
CheckLst, ScktComp, GQ_USelectD_T, DBGrids, DBCtrls, PublicUnit, ADODB,
RP_PageSetup;
type
FldType = (Strings, Number, Date, Logical);
TSqlString = array[0..6] of string;
TGQ_FQueryMain = class(TForm)
Panel1: TPanel;
Splitter1: TSplitter;
Panel2: TPanel;
Panel4: TPanel;
CancelStep: TLabel;
LastStep: TLabel;
NextStep: TLabel;
PreviewStep: TLabel;
StatusBar1: TStatusBar;
Shape1: TShape;
Shape3: TShape;
Shape4: TShape;
Shape6: TShape;
Shape8: TShape;
Shape2: TShape;
Shape5: TShape;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
ImageList1: TImageList;
FileOpenDialog: TOpenDialog;
Shape7: TShape;
Label43: TLabel;
Notebook1: TNotebook;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
ClearWork: TImage;
Label23: TLabel;
Label27: TLabel;
Label28: TLabel;
Image2: TImage;
OrWork: TImage;
AndWork: TImage;
NotWork: TImage;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
FldNameBox: TComboBox;
OperateBox: TComboBox;
FldValueBox: TComboBox;
WhereBox: TListBox;
ListBox1: TListBox;
Label29: TLabel;
Label30: TLabel;
SelectFld: TLabel;
AllSelFld: TLabel;
AllDelFld: TLabel;
DeleteFld: TLabel;
SelectList: TListBox;
SelectBox: TListBox;
OrderFldSel: TLabel;
OrderFldDel: TLabel;
Label4: TLabel;
Label5: TLabel;
OrderList: TListBox;
OrderBox: TListBox;
RadioGroup1: TRadioGroup;
Label6: TLabel;
Label7: TLabel;
GroupFldAdd: TLabel;
GroupFldDel: TLabel;
GroupAddAll: TLabel;
GroupDelAll: TLabel;
GroupList: TListBox;
GroupBox: TListBox;
Label44: TLabel;
Label45: TLabel;
groupfieldbox: TListBox;
Label46: TLabel;
Panel5: TPanel;
Label47: TLabel;
fieldchoosebox: TListBox;
ListBox2: TListBox;
Image4: TImage;
Label48: TLabel;
Label51: TLabel;
Label52: TLabel;
Label53: TLabel;
Label54: TLabel;
Label55: TLabel;
Label56: TLabel;
GroupingFldSel: TLabel;
GroupingFldDel: TLabel;
GroupingBox: TListBox;
Label49: TLabel;
Label50: TLabel;
ListBox3: TListBox;
Label57: TLabel;
Label39: TLabel;
Image5: TImage;
Label41: TLabel;
Image6: TImage;
Label60: TLabel;
Image7: TImage;
Label62: TLabel;
Image8: TImage;
Label64: TLabel;
Image9: TImage;
Label66: TLabel;
Label67: TLabel;
Image10: TImage;
Label58: TLabel;
Label59: TLabel;
Label61: TLabel;
Label63: TLabel;
Label65: TLabel;
Powersock1: TPowersock;
Panel7: TPanel;
Label40: TLabel;
GroupBox1: TGroupBox;
Label34: TLabel;
Label37: TLabel;
Label35: TLabel;
ComboBox1: TComboBox;
ComboBox4: TComboBox;
ComboBox2: TComboBox;
GroupBox2: TGroupBox;
Label8: TLabel;
Label36: TLabel;
Label31: TLabel;
ComboBox5: TComboBox;
ComboBox3: TComboBox;
ComboBox6: TComboBox;
Label38: TLabel;
Panel6: TPanel;
CheckBox1: TCheckBox;
Label68: TLabel;
Label69: TLabel;
Label70: TLabel;
Label42: TLabel;
Image3: TImage;
Label32: TLabel;
Label33: TLabel;
DBGrid1: TDBGrid;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton9: TToolButton;
ToolButton5: TToolButton;
ToolButton4: TToolButton;
ToolButton3: TToolButton;
ToolButton10: TToolButton;
ToolButton6: TToolButton;
SaveBtn: TToolButton;
ToolButton7: TToolButton;
ToolButton13: TToolButton;
ToolButton14: TToolButton;
ToolButton15: TToolButton;
ToolButton8: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton16: TToolButton;
SpeedButton1: TToolButton;
ToolBar2: TToolBar;
DBNavigator1: TDBNavigator;
ImageList2: TImageList;
Panel3: TPanel;
Panel8: TPanel;
CheckListBox1: TCheckListBox;
CheckListBox2: TCheckListBox;
ToolButton17: TToolButton;
procedure SaveClick(Sender: TObject);
procedure WhereSelClick(Sender: TObject);
procedure AndWorkClick(Sender: TObject);
procedure OrWorkClick(Sender: TObject);
procedure NotWorkClick(Sender: TObject);
procedure WhereDelClick(Sender: TObject);
procedure ClearWorkClick(Sender: TObject);
procedure FldValueBoxDropDown(Sender: TObject);
procedure SelectFldClick(Sender: TObject);
procedure SelectListDblClick(Sender: TObject);
procedure AllSelFldClick(Sender: TObject);
procedure AllDelFldClick(Sender: TObject);
procedure DeleteFldClick(Sender: TObject);
procedure FldNameBoxClick(Sender: TObject);
procedure NextStepClick(Sender: TObject);
procedure LastStepClick(Sender: TObject);
procedure OrderListDblClick(Sender: TObject);
procedure OrderFldSelClick(Sender: TObject);
procedure OrderFldDelClick(Sender: TObject);
procedure GroupFldAddClick(Sender: TObject);
procedure GroupFldDelClick(Sender: TObject);
procedure OrderBoxDblClick(Sender: TObject);
procedure SelectBoxDblClick(Sender: TObject);
procedure CancelStepClick(Sender: TObject);
procedure GroupListDblClick(Sender: TObject);
procedure GroupBoxDblClick(Sender: TObject);
procedure GroupingFldSelClick(Sender: TObject);
procedure GroupDelAllClick(Sender: TObject);
procedure GroupAddAllClick(Sender: TObject);
procedure GroupingFldDelClick(Sender: TObject);
procedure GroupingBoxDblClick(Sender: TObject);
procedure PreviewStepClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ComboBox1Click(Sender: TObject);
procedure ComboBox1Exit(Sender: TObject);
procedure ComboBox2Click(Sender: TObject);
procedure ComboBox2Exit(Sender: TObject);
procedure ComboBox6Click(Sender: TObject);
procedure ComboBox5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure OperateBoxClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Label48Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Label32Click(Sender: TObject);
procedure Label33Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure SaveBtnClick(Sender: TObject);
procedure ToolButton13Click(Sender: TObject);
procedure ToolButton14Click(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure ToolButton11Click(Sender: TObject);
procedure ToolButton12Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure ToolButton17Click(Sender: TObject);
private
{ Private declarations }
OrderFlag: array of boolean;
public
{ Public declarations }
SqlString, ViewSqlString: TSqlString;
SqlStrings: TStrings;
FldNames, FldCNames, GroupingFlds, GroupingCFlds, LinkFld: TStrings;
FldNames2, FldCnames2, ViewFieldNames: TStrings;
//在创建视图后所有的字段名字集合
ServerName, DataBaseName, DbUser, DbPsw, UserName, UserPSW, TableName,
TableName2: string;
MyViewname: string;
ViewSqlList: TStrings;
ViewSource: integer; //打开结果集时看来自 文件,已有语句,新定义查询
StringType: FldType;
NowFldPos: integer;
TableNameList: TStrings;
AllviewNames: TStrings;
GroupView: Boolean;
AggVisible: Boolean;
queryagain: Boolean;
ViewName: string;
MyPageDesign: TPageDesign;
procedure InitQuery;
function OpenSource: Boolean;
procedure QueryByCondition;
function NullAndOr(Sender: TObject): Boolean;
function DealLBCE(Sender: TObject): string;
function DealDateMonth(S1: string): string;
procedure DelMulItem(Sender: TObject);
function FormSqlString: Boolean;
function FormSelectSql: Boolean;
function FormFromSql: Boolean;
function FormWhereSql: Boolean;
function FormOrderSql: Boolean;
function FormGroupSql: Boolean;
function FormGroupingSql: Boolean;
function CreateMyView: boolean;
procedure InitForm;
procedure enableGrouping;
procedure disableGrouping;
procedure dropview(tablename: string);
function Query: Boolean;
constructor ACreate(ATableName: string; ATableNameList: TStrings);
end;
procedure SetWork;
implementation
{$R *.DFM}
uses GQ_DataModule, GQ_USaveView, GQ_UOpenView, Main, GQ_UExample, GQ_UInput,
GQ_UOriput, GQ_UHavingForm, GQ_UFieldList, GQ_ULocate, TC_Main, AG_Main;
procedure SetWork;
var
GQ_FQueryMain: TGQ_FQueryMain;
GQ_FSelectD_T: TGQ_FSelectD_T;
TableName: string;
ATableNameList: TStrings;
begin
Application.CreateForm(TGQ_FSelectD_T, GQ_FSelectD_T);
GQ_FSelectD_T.ShowModal;
if not GQ_FselectD_T.ChooseTable then
begin
GQ_FselectD_T.Free;
Exit;
end;
TableName := GQ_FselectD_T.TableName;
ATableNameList := TStringList.Create;
ATableNameList.Assign(GQ_FselectD_T.ListBox2.Items);
GQ_FselectD_T.Free;
Screen.Cursor := crHourGlass;
GQ_FQueryMain := TGQ_FQueryMain.ACreate(TableName, ATableNameList);
GQ_FQueryMain.Show;
ATableNameList.Free;
Screen.Cursor := crDefault;
end;
{--------------------------Form Work---------------------------------}
constructor TGQ_FQueryMain.ACreate(ATableName: string; ATableNameList:
TStrings);
begin
inherited Create(Application);
ServerName := FrmMain.ServerName;
DataBaseName := FrmMain.DbName;
DbUser := FrmMain.DBUser;
DBPSW := FrmMain.DBPass;
TableName := ATableName;
TableNameList := TStringList.create;
TableNameList.Assign(ATableNameList);
end;
procedure TGQ_FQueryMain.FormShow(Sender: TObject);
var
tempstring: string;
begin
DbGrid1.Height := 200;
StatusBar1.Top := 562;
tempstring := powersock1.getlocaladdress;
tempstring := stringreplace(tempstring, ',', '0', [rfReplaceAll]);
MyViewName := 'YuanHanZheZhen' + tempstring;
FldNames := TStringList.Create;
FldCNames := TStringList.Create;
GroupingFlds := TStringList.Create;
GroupingCFlds := TStringList.Create;
LinkFld := TStringList.Create;
FldNames2 := TstringList.Create;
FldCNames2 := TstringList.Create;
ViewFieldNames := TStringList.create;
SqlStrings := TStringList.create;
MyPageDesign := TPageDesign.Create;
AllviewNames := TstringList.Create;
NoteBook1.PageIndex := 0;
ViewSource := 0;
ServerName := FrmMain.ServerName;
DataBaseName := FrmMain.DbName;
UserName := FrmMain.DbUser;
UserPSW := FrmMain.DBPass;
StatusBar1.Panels[0].Text := '当前登录到数据库服务器' + ServerName;
StatusBar1.Panels[1].Text := '当前数据库为' + DataBaseName + ' 当前选择表' +
TableName;
ViewName := '';
GroupView := False;
AggVisible := False;
queryagain := false; //为了保存何再查询做准备
with GQ_FDataModule.ADOQuery3 do
begin
Close;
SQL.clear;
sql.Add('select Name from sysObjects');
open;
first;
while not EOF do
begin
allviewnames.Add(trim(fieldbyname('Name').asstring));
next;
end;
end;
InitForm;
Refresh;
GQ_FDataModule.GQ_FQueryMain := TGQ_FQueryMain(Self);
notebook1.PageIndex := 5;
InitQuery;
NextStepClick(Sender);
PreviewStepClick(Sender);
end;
procedure TGQ_FQueryMain.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
FldNames.Free;
FldCNames.Free;
GroupingFlds.Free;
ViewFieldNames.Free;
FldNames2.Free;
FldCNames2.Free;
LinkFld.Free;
GroupingCFlds.free;
TableNameList.Free;
SqlStrings.Free;
AllViewNames.Free;
MyPageDesign.Free;
Action := caFree;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -