📄 sfxcrosstablib.pas
字号:
unit SfxCrossTabLib;
{$TYPEDADDRESS OFF}
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
//{$VARPROPSETTER ON}
interface
uses Windows, ActiveX, Classes, Graphics, OleCtrls, AxCtrls, ComObj;
const
// TypeLibrary Major and minor versions
SfxCrossTabLibMajorVersion = 1;
SfxCrossTabLibMinorVersion = 0;
CLASS_CrosstabProvider: TGUID = '{4CF158EF-3096-11D4-A4DB-000086391334}';
type CrosstabDateFormat = Smallint;
const
CTAF_DATE = 3;
CTAF_LONGDATE = 4;
CTAF_TIME = 5;
CTAF_DATETIME = 6;
type CrosstabDataType = Smallint;
const
CTDT_NOTUSED = 0;
CTDT_ROWHEADING = 1;
CTDT_COLUMNHEADING = 2;
CTDT_VALUE = 3;
type
ICrosstabProvider = interface;
//*********************************************************************//
// Class: ICrosstabProvider
//*********************************************************************//
ICrosstabProvider = interface(IDispatch)
['{4CF158EE-3096-11D4-A4DB-000086391334}']
procedure set_DataSource(Param1: IUnknown); safecall;
function get_DataType(nIndex: Smallint): CrosstabDataType; safecall;
procedure set_DataType(nIndex: Smallint; pVal: CrosstabDataType); safecall;
function get_Decimals: Smallint; safecall;
procedure set_Decimals(pVal: Smallint); safecall;
function get_Separator: WideString; safecall;
procedure set_Separator(const pVal: WideString); safecall;
function get_DateFormat: CrosstabDateFormat; safecall;
procedure set_DateFormat(pVal: CrosstabDateFormat); safecall;
end;
Type
CrosstabProvider = class;
//*********************************************************************//
// Class: CrosstabProvider
//*********************************************************************//
CrosstabProvider = class
private
DefaultInterface : ICrosstabProvider;
public
constructor Create();
protected
// Properties
procedure Set_DateFormat(val: CrosstabDateFormat);
function Get_DateFormat: CrosstabDateFormat;
procedure Set_DataSource(val: IUnknown);
function Get_Separator: WideString;
procedure Set_Separator(const val: WideString);
function Get_Decimals: Smallint;
procedure Set_Decimals(val: Smallint);
function Get_DataType(nIndex: Smallint): CrosstabDataType;
procedure Set_DataType(nIndex: Smallint; val: CrosstabDataType);
public
// Methods
property DateFormat: CrosstabDateFormat read Get_DateFormat write Set_DateFormat;
property Separator: WideString read Get_Separator write Set_Separator;
property Decimals: Smallint read Get_Decimals write Set_Decimals;
property DataType[nIndex: Smallint]: CrosstabDataType read Get_DataType write Set_DataType;
property DataSource: IUnknown write Set_DataSource;
property InterfacePtr : ICrosstabProvider read DefaultInterface;
end;
implementation
procedure CrosstabProvider.Set_DataSource(val: IUnknown);
begin
DefaultInterface.Set_DataSource(val);
end;
function CrosstabProvider.Get_DateFormat(): CrosstabDateFormat;
begin
Result := DefaultInterface.Get_DateFormat();
end;
procedure CrosstabProvider.Set_DateFormat(val: CrosstabDateFormat);
begin
DefaultInterface.Set_DateFormat(val);
end;
function CrosstabProvider.Get_Separator(): WideString;
begin
Result := DefaultInterface.Get_Separator();
end;
procedure CrosstabProvider.Set_Separator(const val: WideString);
begin
DefaultInterface.Set_Separator(val);
end;
function CrosstabProvider.Get_Decimals(): Smallint;
begin
Result := DefaultInterface.Get_Decimals();
end;
procedure CrosstabProvider.Set_Decimals(val: Smallint);
begin
DefaultInterface.Set_Decimals(val);
end;
function CrosstabProvider.Get_DataType(nIndex: Smallint): CrosstabDataType;
begin
Result := DefaultInterface.Get_DataType(nIndex);
end;
procedure CrosstabProvider.Set_DataType(nIndex: Smallint; val: CrosstabDataType);
begin
DefaultInterface.Set_DataType(nIndex, val);
end;
constructor CrosstabProvider.Create();
begin
DefaultInterface := CreateComObject(CLASS_CrosstabProvider) as ICrosstabProvider;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -