⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rm_cross.hpp

📁 这是一个功能强大
💻 HPP
字号:
// CodeGear C++Builder
// Copyright (c) 1995, 2007 by CodeGear
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Rm_cross.pas' rev: 11.00

#ifndef Rm_crossHPP
#define Rm_crossHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Stdctrls.hpp>	// Pascal unit
#include <Menus.hpp>	// Pascal unit
#include <Extctrls.hpp>	// Pascal unit
#include <Db.hpp>	// Pascal unit
#include <Buttons.hpp>	// Pascal unit
#include <Rm_common.hpp>	// Pascal unit
#include <Rm_class.hpp>	// Pascal unit
#include <Rm_dataset.hpp>	// Pascal unit
#include <Variants.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Rm_cross
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TRMCrossObject;
class PASCALIMPLEMENTATION TRMCrossObject : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
public:
	#pragma option push -w-inl
	/* TComponent.Create */ inline __fastcall virtual TRMCrossObject(Classes::TComponent* AOwner) : Classes::TComponent(AOwner) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TComponent.Destroy */ inline __fastcall virtual ~TRMCrossObject(void) { }
	#pragma option pop
	
};


typedef int TIntArrayCell[1];

typedef TIntArrayCell *PIntArrayCell;

class DELPHICLASS TRMQuickIntArray;
class PASCALIMPLEMENTATION TRMQuickIntArray : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	int operator[](int Index) { return Cell[Index]; }
	
private:
	TIntArrayCell *arr;
	int len;
	int __fastcall GetCell(int Index);
	void __fastcall SetCell(int Index, const int Value);
	
public:
	__fastcall TRMQuickIntArray(int Length);
	__fastcall virtual ~TRMQuickIntArray(void);
	__property int Cell[int Index] = {read=GetCell, write=SetCell/*, default*/};
};


class DELPHICLASS TRMArray;
class PASCALIMPLEMENTATION TRMArray : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	bool FFlag_Insert;
	int FInsertPos;
	bool FSortColHeader;
	bool FSortRowHeader;
	Classes::TStringList* FRows;
	Classes::TStringList* FColumns;
	int FCellItemsCount;
	Rm_class::TRMReport* FReport;
	Variant __fastcall GetCell(const AnsiString Row, const AnsiString Col, int Index3);
	void __fastcall SetCell(const AnsiString aRow, const AnsiString aCol, int aIndex3, const Variant &aValue);
	Variant __fastcall GetCellByIndex(int Row, int Col, int Index3);
	Variant __fastcall GetCellArray(int Row, int Col);
	void __fastcall SetCellArray(int Row, int Col, const Variant &Value);
	void __fastcall SetSortColHeader(bool Value);
	void __fastcall SetSortRowHeader(bool Value);
	
public:
	__fastcall TRMArray(int CellItemsCount, Rm_class::TRMReport* aReport);
	__fastcall virtual ~TRMArray(void);
	void __fastcall Clear(void);
	__property Classes::TStringList* Columns = {read=FColumns};
	__property Classes::TStringList* Rows = {read=FRows};
	__property int CellItemsCount = {read=FCellItemsCount, nodefault};
	__property Variant Cell[AnsiString Row][AnsiString Col][int Index3] = {read=GetCell, write=SetCell};
	__property Variant CellByIndex[int Row][int Col][int Index3] = {read=GetCellByIndex};
	__property Variant CellArray[int Row][int Col] = {read=GetCellArray, write=SetCellArray};
	__property bool SortColHeader = {read=FSortColHeader, write=SetSortColHeader, nodefault};
	__property bool SortRowHeader = {read=FSortRowHeader, write=SetSortRowHeader, nodefault};
};


typedef Variant RM_Cross__5[32];

class DELPHICLASS TRMCrossArray;
class PASCALIMPLEMENTATION TRMCrossArray : public TRMArray 
{
	typedef TRMArray inherited;
	
private:
	Db::TDataSet* FDataSet;
	Classes::TStringList* FRowFields;
	Classes::TStringList* FColFields;
	Classes::TStringList* FCellFields;
	Variant FRowTypes[32];
	Variant FColTypes[32];
	#pragma pack(push,1)
	tagSIZE FTopLeftSize;
	#pragma pack(pop)
	AnsiString FHeaderString;
	AnsiString FRowTotalString;
	AnsiString FRowGrandTotalString;
	AnsiString FColumnTotalString;
	AnsiString FColumnGrandTotalString;
	Classes::TStrings* FAddColumnsHeader;
	bool __fastcall GetIsTotalRow(int Index);
	bool __fastcall GetIsTotalColumn(int Index);
	
public:
	bool DoDataCol;
	bool ShowRowNo;
	AnsiString DataStr;
	__fastcall TRMCrossArray(Rm_class::TRMReport* aReport, Db::TDataSet* DS, AnsiString RowFields, AnsiString ColFields, AnsiString CellFields);
	__fastcall virtual ~TRMCrossArray(void);
	void __fastcall Build(void);
	__property AnsiString HeaderString = {read=FHeaderString, write=FHeaderString};
	__property AnsiString RowTotalString = {read=FRowTotalString, write=FRowTotalString};
	__property AnsiString RowGrandTotalString = {read=FRowGrandTotalString, write=FRowGrandTotalString};
	__property AnsiString ColumnTotalString = {read=FColumnTotalString, write=FColumnTotalString};
	__property AnsiString ColumnGrandTotalString = {read=FColumnGrandTotalString, write=FColumnGrandTotalString};
	__property tagSIZE TopLeftSize = {read=FTopLeftSize};
	__property bool IsTotalRow[int Index] = {read=GetIsTotalRow};
	__property bool IsTotalColumn[int Index] = {read=GetIsTotalColumn};
};


class DELPHICLASS TRMCrossView;
class PASCALIMPLEMENTATION TRMCrossView : public Rm_class::TRMReportView 
{
	typedef Rm_class::TRMReportView inherited;
	
private:
	int FDataHeight;
	int FDataWidth;
	AnsiString FHeaderHeight;
	AnsiString FHeaderWidth;
	TRMCrossArray* FCrossArray;
	TRMQuickIntArray* FColumnWidths;
	TRMQuickIntArray* FColumnHeights;
	TRMQuickIntArray* FLastTotalCol;
	bool FFlag;
	bool FSkip;
	Rm_dataset::TRMUserDataset* FRowDataSet;
	Rm_dataset::TRMUserDataset* FColumnDataSet;
	bool FRepeatCaptions;
	bool FInternalFrame;
	bool FShowHeader;
	int FDefDY;
	int FLastX;
	int FMaxGTHeight;
	int FMaxCellHeight;
	AnsiString FMaxString;
	Classes::TStrings* FDictionary;
	Classes::TStrings* FAddColumnsHeader;
	AnsiString FRowNoHeader;
	Rm_class::TRMOnBeforePrintEvent FSavedOnBeforePrint;
	Rm_class::TRMPrintColumnEvent FSavedOnPrintColumn;
	Rm_class::TRMMemoView* __fastcall OneObject(Rm_class::TRMReportPage* aPage, AnsiString Name1, AnsiString Name2);
	HIDESBASE Rm_class::TRMReportPage* __fastcall ParentPage(void);
	void __fastcall CreateObjects(void);
	void __fastcall CalcWidths(void);
	void __fastcall MakeBands(void);
	void __fastcall OnReportPrintColumnEvent(int aColNo, int &aWidth);
	void __fastcall OnReportBeforePrintEvent(Rm_jclwidestrings::TWStringList* aMemo, Rm_class::TRMReportView* aView);
	bool __fastcall GetShowRowTotal(void);
	void __fastcall SetShowRowTotal(bool Value);
	bool __fastcall GetShowColTotal(void);
	void __fastcall SetShowColTotal(bool Value);
	bool __fastcall GetShowIndicator(void);
	void __fastcall SetShowIndicator(bool Value);
	bool __fastcall GetSortColHeader(void);
	void __fastcall SetSortColHeader(bool Value);
	bool __fastcall GetSortRowHeader(void);
	void __fastcall SetSortRowHeader(bool Value);
	bool __fastcall GetMergeRowHeader(void);
	void __fastcall SetMergeRowHeader(bool Value);
	bool __fastcall GetShowRowNo(void);
	void __fastcall SetShowRowNo(bool Value);
	bool __fastcall GetInternalFrame(void);
	void __fastcall SetInternalFrame(bool Value);
	bool __fastcall GetRepeatCaptions(void);
	void __fastcall SetRepeatCaptions(bool Value);
	int __fastcall GetDataWidth(void);
	void __fastcall SetDataWidth(int Value);
	int __fastcall GetDataHeight(void);
	void __fastcall SetDataHeight(int Value);
	AnsiString __fastcall GetHeaderWidth();
	void __fastcall SetHeaderWidth(AnsiString Value);
	AnsiString __fastcall GetHeaderHeight();
	void __fastcall SetHeaderHeight(AnsiString Value);
	AnsiString __fastcall GetRowNoHeader();
	void __fastcall SetRowNoHeader(AnsiString Value);
	AnsiString __fastcall GetDictName(AnsiString aStr);
	AnsiString __fastcall GetDataCellText();
	int __fastcall GetHeaderHeightByIndex(int aIndex);
	int __fastcall GetHeaderWidthByIndex(int aIndex);
	void __fastcall OnColumnDataSetFirstEvent(System::TObject* Sender);
	
protected:
	virtual void __fastcall Prepare(void);
	virtual void __fastcall UnPrepare(void);
	virtual bool __fastcall IsCrossView(void);
	
public:
	/* virtual class method */ virtual bool __fastcall CanPlaceOnGridView(TMetaClass* vmt);
	__fastcall virtual TRMCrossView(void);
	__fastcall virtual ~TRMCrossView(void);
	virtual void __fastcall Draw(Graphics::TCanvas* aCanvas);
	virtual void __fastcall LoadFromStream(Classes::TStream* aStream);
	virtual void __fastcall SaveToStream(Classes::TStream* aStream);
	virtual void __fastcall ShowEditor(void);
	__property Rm_dataset::TRMUserDataset* RowDataSet = {read=FRowDataSet};
	__property Rm_dataset::TRMUserDataset* ColumnDataSet = {read=FColumnDataSet};
	
__published:
	__property bool InternalFrame = {read=GetInternalFrame, write=SetInternalFrame, nodefault};
	__property bool RepeatCaptions = {read=GetRepeatCaptions, write=SetRepeatCaptions, nodefault};
	__property int DataWidth = {read=GetDataWidth, write=SetDataWidth, nodefault};
	__property int DataHeight = {read=GetDataHeight, write=SetDataHeight, nodefault};
	__property AnsiString HeaderWidth = {read=GetHeaderWidth, write=SetHeaderWidth};
	__property AnsiString HeaderHeight = {read=GetHeaderHeight, write=SetHeaderHeight};
	__property AnsiString RowNoHeader = {read=GetRowNoHeader, write=SetRowNoHeader};
	__property bool ShowRowTotal = {read=GetShowRowTotal, write=SetShowRowTotal, nodefault};
	__property bool ShowColumnTotal = {read=GetShowColTotal, write=SetShowColTotal, nodefault};
	__property bool ShowIndicator = {read=GetShowIndicator, write=SetShowIndicator, nodefault};
	__property bool SortColHeader = {read=GetSortColHeader, write=SetSortColHeader, nodefault};
	__property bool SortRowHeader = {read=GetSortRowHeader, write=SetSortRowHeader, nodefault};
	__property bool MergeRowHeader = {read=GetMergeRowHeader, write=SetMergeRowHeader, nodefault};
	__property bool ShowRowNo = {read=GetShowRowNo, write=SetShowRowNo, nodefault};
	__property Classes::TStrings* Dictionary = {read=FDictionary, write=FDictionary};
	__property Classes::TStrings* AddColumnHeader = {read=FAddColumnsHeader, write=FAddColumnsHeader};
};


class DELPHICLASS TRMCrossForm;
class PASCALIMPLEMENTATION TRMCrossForm : public Forms::TForm 
{
	typedef Forms::TForm inherited;
	
__published:
	Stdctrls::TGroupBox* GroupBox1;
	Stdctrls::TListBox* ListBox2;
	Stdctrls::TListBox* ListBox3;
	Stdctrls::TListBox* ListBox4;
	Extctrls::TShape* Shape1;
	Extctrls::TShape* Shape2;
	Stdctrls::TGroupBox* GroupBox2;
	Stdctrls::TComboBox* DatasetsLB;
	Stdctrls::TListBox* FieldsLB;
	Stdctrls::TButton* btnOK;
	Stdctrls::TButton* btnCancel;
	Stdctrls::TLabel* Label1;
	Stdctrls::TComboBox* ComboBox2;
	Stdctrls::TCheckBox* CheckBox1;
	Buttons::TSpeedButton* btnExchange;
	void __fastcall FormShow(System::TObject* Sender);
	void __fastcall DatasetsLBClick(System::TObject* Sender);
	void __fastcall FormHide(System::TObject* Sender);
	void __fastcall ListBox3Enter(System::TObject* Sender);
	void __fastcall CheckBox1Click(System::TObject* Sender);
	void __fastcall ListBox3Click(System::TObject* Sender);
	void __fastcall ListBox4Click(System::TObject* Sender);
	void __fastcall ComboBox2Click(System::TObject* Sender);
	void __fastcall ListBox4DrawItem(Controls::TWinControl* Control, int Index, const Types::TRect &ARect, Windows::TOwnerDrawState State);
	void __fastcall FieldsLBDragOver(System::TObject* Sender, System::TObject* Source, int X, int Y, Controls::TDragState State, bool &Accept);
	void __fastcall FieldsLBDragDrop(System::TObject* Sender, System::TObject* Source, int X, int Y);
	void __fastcall ListBox3DblClick(System::TObject* Sender);
	void __fastcall FormCreate(System::TObject* Sender);
	void __fastcall btnExchangeClick(System::TObject* Sender);
	void __fastcall ListBox3KeyDown(System::TObject* Sender, Word &Key, Classes::TShiftState Shift);
	
private:
	Stdctrls::TListBox* FListBox;
	bool FBusy;
	Extctrls::TPanel* DrawPanel;
	void __fastcall FillDatasetsLB(void);
	void __fastcall Localize(void);
	void __fastcall ClearSelection(System::TObject* Sender);
	
public:
	TRMCrossView* Cross;
public:
	#pragma option push -w-inl
	/* TCustomForm.Create */ inline __fastcall virtual TRMCrossForm(Classes::TComponent* AOwner) : Forms::TForm(AOwner) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TCustomForm.CreateNew */ inline __fastcall virtual TRMCrossForm(Classes::TComponent* AOwner, int Dummy) : Forms::TForm(AOwner, Dummy) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TCustomForm.Destroy */ inline __fastcall virtual ~TRMCrossForm(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TRMCrossForm(HWND ParentWindow) : Forms::TForm(ParentWindow) { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------

}	/* namespace Rm_cross */
using namespace Rm_cross;
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Rm_cross

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -