📄 dataselect.pas
字号:
unit DataSelect;
interface
uses
SysUtils, Classes,db,adodb,DBClient, remotedataset, RemoteUdpConnection,
RemoteDbTreeView,LocalDbTreeView,DBGrids,DBGridEh,forms,DataSelectForm,
ExtCtrls,StrUtils,dialogs,Controls,StaticSelectForm,SynDataBase,RemoteHttpConnection;
type
TFormStyle=(FSTree,FSGrid,FSTreeGrid);
TDbGridStyle=(GSDbGrid,GSDbGridEh);
TDataSetStyle=(DSRemote,DSLocal);
TDataType=(DTDataBase,DTStaticText);
TdataItem=class;
//字段设置
TFieldList=class(TCollectionItem)
private
protected
public
constructor Create(Collection: TCollection); override;
destructor Destroy; override;
published
end;
TFieldListClass = class of TFieldList;
TFieldLists=class(TCollection)
private
FDataItem:TDataItem;
function GetFieldSelect(Index:integer):TFieldList;
procedure SetFieldSelect(Index:integer;Value:TFieldList);
protected
function GetOwner: TPersistent; override;
procedure Update(Item: TCollectionItem); override;
public
constructor Create(DataItem: TDataItem; FieldListClass: TFieldListClass);
function Add: TFieldList;
property Items[Index: Integer]: TFieldList read GetFieldSelect write SetFieldselect; default;
published
end;
TRemoteSetup=class(TPersistent)
private
FClassCodeFieldName:string; //级别字段
FClassStep:integer;
FClassNameFieldName:string; //级别名称字段
FClassEndFieldName:string; //末级字段(boolean)
FRemoteDataSet:TRemoteDataSet;
FTableName:string;
FSelectedDataSet:TRemoteDataSet;
FClassEndFieldValue:string; //末级字段值(boolean)
FOtherMarkValue:string;
FOtherMarkField:string;
FOtherMarkSign:string;
procedure setclasscode(value:string);
procedure setclassname(value:string);
procedure setclassstep(value:integer);
procedure setclassend(value:string);
procedure setclassendv(value:string);
procedure setdataset(Value:TRemoteDataSet);
procedure setselecteddataset(Value:TRemoteDataSet);
procedure settablename(value:string);
procedure setothermarkvalue(value:string);
procedure setothermarkField(value:string);
procedure setothermarkSign(value:string);
protected
{ Protected declarations }
public
constructor Create;
destructor Destroy; override;
{ Public declarations }
{(DataItem: TDataItem)}
published
property ClassCodeFieldName:string read FClassCodeFieldName write setclasscode;
property ClassNameFieldName:string read FClassNameFieldName write setclassname;
property ClassEndFieldName:string read FClassEndFieldName write setclassend;
property ClassEndFieldValue:string read FClassEndFieldValue write setclassendv;
property ClassStep:integer read FClassStep write setclassstep;
property RemoteDataSet:TRemoteDataSet read FRemoteDataSet write setdataset;
property SelectedDataSet:TRemoteDataSet read FSelectedDataSet write setselecteddataset;
property TableName:string read FTableName write settablename;
property OtherMarkValue:string read FOtherMarkValue write setothermarkvalue;
property OtherMarkField:string read FOtherMarkField write setothermarkfield;
property OtherMarkSign:string read FOtherMarkSign write setothermarksign;
{ Published declarations }
end;
TLocalSetup=class(TPersistent)
private
FClassCodeFieldName:string; //级别字段
FClassStep:integer;
FClassNameFieldName:string; //级别名称字段
FClassEndFieldName:string; //末级字段(boolean)
FLocalDataSet:TAdoQuery;
FTableName:string;
FSelectedDataSet:TAdoQuery;
FClassEndFieldValue:string; //末级字段value(boolean)
FOtherMarkValue:string;
FOtherMarkField:string;
FOtherMarkSign:string;
procedure setclasscode(value:string);
procedure setclassname(value:string);
procedure setclassstep(value:integer);
procedure setclassend(value:string);
procedure setclassendv(value:string);
procedure setdataset(Value:TAdoquery);
procedure setselecteddataset(Value:Tadoquery);
procedure settablename(value:string);
procedure setothermarkvalue(value:string);
procedure setothermarkField(value:string);
procedure setothermarkSign(value:string);
protected
{ Protected declarations }
public
constructor Create;
destructor Destroy; override;
{ Public declarations }
published
property ClassCodeFieldName:string read FClassCodeFieldName write setclasscode;
property ClassNameFieldName:string read FClassNameFieldName write setclassname;
property ClassEndFieldName:string read FClassEndFieldName write setclassend;
property ClassEndFieldValue:string read FClassEndFieldValue write setclassendv;
property ClassStep:integer read FClassStep write setclassstep;
property LocalDataSet:TAdoQuery read FLocalDataSet write setdataset;
property SelectedDataSet:Tadoquery read FSelectedDataSet write setselecteddataset;
property TableName:string read FTableName write settablename;
property OtherMarkValue:string read FOtherMarkValue write setothermarkvalue;
property OtherMarkField:string read FOtherMarkField write setothermarkfield;
property OtherMarkSign:string read FOtherMarkSign write setothermarksign;
{ Published declarations }
end;
TDataSelect = class;
TDataItem= class(TCollectionItem)
private
//固定信息窗口
FStaticForm:TStaticSelectForm_Form;
//生成基础信息窗口
FDataForm:TDataSelectForm_Form;
//表格信息
FFieldLists:Tstrings;
//基础信息表名
FTableName:string;
//选定显示字段(名称类字段)
FNameField:string;
//选定隐含字段(编码类字段)
FCodeField:string;
//显示表格
//FGrid:TcustomDbGrid;
//FGridEh:TcustomDbGridEh;
//基础信息表格类型
FFormStyle:TFormStyle;
//Dbgrid的列
//FDbGridColumns:TDbGridColumns;
//DbGridColumnsEh:TDbGridColumnsEh;
//表格类型
FDbGridStyle:TDbGridStyle;
//本地和远程类型
FDataSetStyle:TDataSetStyle;
//数据类型:从数据库提取,固定文本方式
FDataType:TDataType;
//SQL语句
FSQL:Tstrings;
//设置
//FGrid:TCustomDbGrid;
//FGridEh:TCustomDbGridEh;
//UDP:TRemoteUdpConnection;
FRemoteSetup:TRemoteSetup;
FLocalSetup:TLocalSetup;
//数据同步
FADOConnection:TADOConnection;
FRemoteHttpConnection:TRemoteHttpConnection;
FRemoteUdpConnection:TRemoteUdpConnection;
procedure settablename(value:string);
procedure setnamefield(value:string);
procedure setcodefield(value:string);
procedure setformstyle(value:Tformstyle);
//procedure setdbgridcol(value:TDbGridColumns);
//procedure setdbgridehcol(value:TDbGridColumnseh);
procedure setdbgridstyle(value:TDbGridStyle);
procedure setdatasetstyle(value:TDataSetStyle);
procedure setsql(value:Tstrings);
procedure setrtsetup(value:TRemoteSetup);
procedure setlcsetup(value:TLocalSetup);
procedure setFieldLists(value:Tstrings);
procedure setgrid;
procedure setdatatype(value:Tdatatype);
procedure setSetupHttpParent(value:TRemoteHttpConnection);
procedure setSetupUdpParent(value:TRemoteUdpConnection);
procedure setAdoConnection(value:TADOConnection);
{ Private declarations }
protected
function CreateFieldLists: TFieldLists;dynamic;
{ Protected declarations }
public
//是否返回数据了
resultok:boolean;
//返回数据
CodeFieldValue:string;
NameFieldvalue:string;
constructor Create(Collection: TCollection);override;
destructor Destroy; override;
//显示窗口
procedure ShowModal;
{ Public declarations }
published
property TableName:string read FTableName write settablename;
property NameField:string read FNameField write setnamefield;
property CodeField:string read FCodeField write setcodefield;
property FormStyle:TFormStyle read FFormStyle write setformstyle;
//property DbGridColumns:TDbGridColumns read FDbGridColumns write setdbgridcol;
//property DbGridColumnsEh:TDbGridColumnsEh read FDbGridColumnsEh write setdbgridehcol;
property DbGridStyle:TDbGridStyle read FDbGridStyle write setdbgridstyle;
property DataSetStyle:TDataSetStyle read FDataSetStyle write setdatasetstyle;
property SQL:Tstrings read Fsql write setsql;
property RemoteSetup:TRemoteSetup read FRemoteSetup write setrtsetup;
property LocalSetup:TLocalSetup read FLocalSetup write setlcsetup;
property FieldLists:Tstrings read FFieldLists write setFieldLists;
property DataType:TDataType read FDataType write setdatatype;
property RemoteHttpConnection: TRemoteHttpConnection read FRemoteHttpConnection write setSetupHttpParent;
property RemoteUdpConnection: TRemoteUdpConnection read FRemoteUdpConnection write setSetupUdpParent;
property ADOConnection: TADOConnection read FADOConnection write setADoConnection;
{ Published declarations }
end;
TDataSelectClass = class of TDataItem;
TDataItems = class(TCollection)
private
FDataSelect:TDataSelect;
FSyn:TSynDataBase;
function GetdataSelect(Index:integer):TDataItem;
procedure SetdataSelect(Index:integer;Value:TDataItem);
{ Private declarations }
protected
{ Protected declarations }
public
constructor Create(DataSelect: TDataSelect; DataSelectClass: TDataSelectClass);
function GetFromTableName(TableName:string):TDataItem;
procedure SynDataBase(TableName:string);
property Items[Index: Integer]: TDataItem read GetDataSelect write Setdataselect; default;
{ Public declarations }
published
{ Published declarations }
end;
TDataSelect = class(TComponent)
private
FDataItems:TDataItems;
procedure setdataitems(value:TDataItems);
{ Private declarations }
protected
function CreateDataItems: TDataItems; dynamic;
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
{ Public declarations }
published
property DataItems:TDataItems read FDataItems write setdataitems;
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('DbAnyWhere', [TDataSelect]);
end;
function TDataItems.GetdataSelect(Index:integer):TDataItem;
begin
Result:= TDataItem(inherited Items[Index]);
end;
procedure TDataItems.SetdataSelect(Index:integer;Value:TDataItem);
begin
Items[Index].Assign(Value);
end;
procedure TDataItem.settablename(value:string);
begin
FTableName:=value;
{self.SetDisplayName(value);
changed(false);
//if length(trim(FTableName))<>0 then self.SetDisplayName('hhhh');
showmessage(self.DisplayName); }
end;
procedure TDataItem.setnamefield(value:string);
begin
FNameField:=value;
end;
procedure TDataItem.setcodefield(value:string);
begin
FCodeField:=value;
end;
procedure TDataItem.setSetupHttpParent(value:TRemoteHttpConnection);
begin
FRemoteUdpConnection:=nil;
FRemoteHttpConnection:=value;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -