// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'UBaseClass.pas' rev: 5.00

#ifndef UBaseClassHPP
#define UBaseClassHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Forms.hpp>	// Pascal unit
#include <Db.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <StdCtrls.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Ubaseclass
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TSectionType { stReportHeader, stPageHeader, stGroupHeader, stReportBody, stGroupFooter, stPageFooter, 
	stReportFooter, stBodyHeader, stFillToEndPage };
#pragma option pop

#pragma option push -b-
enum TReportFieldType { rftText, rftData, rftParam, rftFunction, rftFrame, rftSpecial, rftDetail, rftGraphic 
	};
#pragma option pop

#pragma option push -b-
enum TReportFieldAlign { rfaLeft, rfaCenter, rfaRight };
#pragma option pop

#pragma option push -b-
enum TReportFieldVertAlign { rfvaTop, rfvaCenter, rfvaBottom };
#pragma option pop

#pragma option push -b-
enum TNextCompType { nctNone, nctSum, nctCount };
#pragma option pop

#pragma option push -b-
enum TSetZeroType { sztReport, sztPage, sztGroup };
#pragma option pop

#pragma option push -b-
enum TIfOperatorType { ioEqual, ioNotEqual, ioLower, ioGreater, ioLowerEqual, ioGreaterEqual };
#pragma option pop

#pragma option push -b-
enum TNumberFormatType { nfGeneral, nfNumber, nfFixed, nfCurrency };
#pragma option pop

#pragma option push -b-
enum TReportType { rtDraft, rtGraphics };
#pragma option pop

#pragma option push -b-
enum TPictureFromType { pcf_File, pcf_App };
#pragma option pop

#pragma option push -b-
enum TFrameType { ftVertical, ftHorizontal, ftLeftTop, ftTopT, ftRightTop, ftLeftT, ftCross, ftRightT, 
	ftLeftBottom, ftBottomT, ftRightBottom, ftDblVertical, ftDblHorizontal, ftDblLeftTop, ftDblTopT, ftDblRightTop, 
	ftDblLeftT, ftDblCross, ftDblRightT, ftDblLeftBottom, ftDblBottomT, ftDblRightBottom, ft2LeftTop, ftTop2T, 
	ft2RightTop, ft2LeftT, ft2Cross, ft2RightT, ft2LeftBottom, ftBottom2T, ft2RightBottom, ftLeft2Top, 
	ft2TopT, ftRight2Top, ftLeft2T, ftCross2, ftRight2T, ftLeft2Bottom, ft2BottomT, ftRight2Bottom };
#pragma option pop

class DELPHICLASS TPageDefinition;
class PASCALIMPLEMENTATION TPageDefinition : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	int FNormal10cpi;
	int FNormal12cpi;
	int FCondens12cpi;
	int FCondens10cpi;
	int FNumLines;
	AnsiString FName;
	int FHeightPixels;
	int FWidthPixels;
	void __fastcall SetNormal10cpi(const int Value);
	void __fastcall SetNormal12cpi(const int Value);
	void __fastcall SetCondens10cpi(const int Value);
	void __fastcall SetCondens12cpi(const int Value);
	void __fastcall SetNumLines(const int Value);
	void __fastcall SetName(const AnsiString Value);
	void __fastcall SetHeightPixels(const int Value);
	void __fastcall SetWidthPixels(const int Value);
	
__published:
	__property int Normal10cpi = {read=FNormal10cpi, write=SetNormal10cpi, nodefault};
	__property int Normal12cpi = {read=FNormal12cpi, write=SetNormal12cpi, nodefault};
	__property int Condens10cpi = {read=FCondens10cpi, write=SetCondens10cpi, nodefault};
	__property int Condens12cpi = {read=FCondens12cpi, write=SetCondens12cpi, nodefault};
	__property int NumLines = {read=FNumLines, write=SetNumLines, nodefault};
	__property AnsiString Name = {read=FName, write=SetName};
	__property int WidthPixels = {read=FWidthPixels, write=SetWidthPixels, nodefault};
	__property int HeightPixels = {read=FHeightPixels, write=SetHeightPixels, nodefault};
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TPageDefinition(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TPageDefinition(void) { }
	#pragma option pop
	
};


class DELPHICLASS TPrinterDefinition;
class PASCALIMPLEMENTATION TPrinterDefinition : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	AnsiString Name;
	AnsiString Reset;
	AnsiString CR;
	AnsiString LF;
	AnsiString FF;
	AnsiString Cpi10;
	AnsiString Cpi12;
	AnsiString CondensOn;
	AnsiString CondensOff;
	AnsiString BoldOn;
	AnsiString BoldOff;
	AnsiString ItalicOn;
	AnsiString ItalicOff;
	AnsiString UnderlineOn;
	AnsiString UnderlineOff;
	AnsiString FrameVertical;
	AnsiString FrameHorizontal;
	AnsiString FrameLeftTop;
	AnsiString FrameTopT;
	AnsiString FrameRightTop;
	AnsiString FrameLeftT;
	AnsiString FrameCross;
	AnsiString FrameRightT;
	AnsiString FrameLeftBottom;
	AnsiString FrameBottomT;
	AnsiString FrameRightBottom;
	AnsiString FrameDblVertical;
	AnsiString FrameDblHorizontal;
	AnsiString FrameDblLeftTop;
	AnsiString FrameDblTopT;
	AnsiString FrameDblRightTop;
	AnsiString FrameDblLeftT;
	AnsiString FrameDblCross;
	AnsiString FrameDblRightT;
	AnsiString FrameDblLeftBottom;
	AnsiString FrameDblBottomT;
	AnsiString FrameDblRightBottom;
	AnsiString Frame2LeftTop;
	AnsiString FrameTop2T;
	AnsiString Frame2RightTop;
	AnsiString Frame2LeftT;
	AnsiString Frame2Cross;
	AnsiString Frame2RightT;
	AnsiString Frame2LeftBottom;
	AnsiString FrameBottom2T;
	AnsiString Frame2RightBottom;
	AnsiString FrameLeft2Top;
	AnsiString Frame2TopT;
	AnsiString FrameRight2Top;
	AnsiString FrameLeft2T;
	AnsiString FrameCross2;
	AnsiString FrameRight2T;
	AnsiString FrameLeft2Bottom;
	AnsiString Frame2BottomT;
	AnsiString FrameRight2Bottom;
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TPrinterDefinition(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TPrinterDefinition(void) { }
	#pragma option pop
	
};


class DELPHICLASS TFieldInfo;
class DELPHICLASS TFieldBase;
class DELPHICLASS TFieldFormat;
class PASCALIMPLEMENTATION TFieldFormat : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	AnsiString DateFormat;
	AnsiString TimeFormat;
	AnsiString BoolTrue;
	AnsiString BoolFalse;
	bool Bold;
	bool Italic;
	bool UnderLine;
	AnsiString ESCBefore;
	AnsiString ESCAfter;
	int Width;
	TReportFieldAlign Align;
	TReportFieldVertAlign VertAlign;
	int Height;
	int FontSize;
	AnsiString FontName;
	int FontCharSet;
	Graphics::TColor FontColor;
	bool IfPrint;
	AnsiString IfExp1;
	AnsiString IfExp2;
	TIfOperatorType IfOperator;
	TNumberFormatType NumberFormat;
	int NumberLength;
	int NumberPrecision;
	int LineWidth;
	Graphics::TPenStyle LineType;
	Graphics::TColor LineColor;
	int LineFrame;
	bool PictStretch;
	bool PictRatio;
	TPictureFromType PictFrom;
	AnsiString PictSource;
	AnsiString PictText;
	bool FieldFrame;
	Graphics::TColor FieldColor;
	__fastcall TFieldFormat(void);
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TFieldFormat(void) { }
	#pragma option pop
	
};


class DELPHICLASS TSectionFieldBase;

typedef DynamicArray<TSectionFieldBase* >  UBaseClass__7;

class PASCALIMPLEMENTATION TFieldBase : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	TReportFieldType FType;
	AnsiString IntName;
	AnsiString Text;
	Db::TFieldType FieldType;
	AnsiString FunctionString;
	TFieldFormat* FormatDef;
	TFrameType FrameCode;
	AnsiString DetailLinkDataField;
	AnsiString MasterLinkDataField;
	Classes::TStringList* DetailReportString;
	Forms::TForm* DetailForm;
	TNextCompType NextCompute;
	TSetZeroType SetZeroOn;
	int SetZeroGroupIndex;
	AnsiString Value;
	int SectionFieldsCount;
	DynamicArray<TSectionFieldBase* >  SectionFields;
	__fastcall TFieldBase(void);
	__fastcall virtual ~TFieldBase(void);
	void __fastcall InvalidateSectionFields(void);
	void __fastcall AddSectionField(TSectionFieldBase* SF);
	void __fastcall RemoveSectionField(TSectionFieldBase* SF);
};


class PASCALIMPLEMENTATION TFieldInfo : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	AnsiString Name;
	int Number;
	TFieldBase* FieldBase;
	__fastcall TFieldInfo(AnsiString FName, TFieldBase* FB, int FNumber);
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TFieldInfo(void) { }
	#pragma option pop
	
};


class DELPHICLASS TSectionBase;
class PASCALIMPLEMENTATION TSectionBase : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	int FLinesCount;
	bool FEnabled;
	void __fastcall SetSectionType(const TSectionType Value);
	void __fastcall SetGroupDetailIndex(const int Value);
	
protected:
	TSectionType FSectionType;
	int FGroupDetailIndex;
	AnsiString FGPName;
	AnsiString FGPDatabaseField;
	bool FGPOnNewPage;
	bool FGPHeaderOnEveryPage;
	virtual void __fastcall SetLinesCount(const int Value);
	virtual void __fastcall SetEnabled(const bool Value);
	virtual void __fastcall SetGPName(const AnsiString Value);
	virtual void __fastcall SetGPDatabaseField(const AnsiString Value);
	virtual void __fastcall SetGPOnNewPage(const bool Value);
	virtual void __fastcall SetGPHeaderOnEveryPage(const bool Value);
	
public:
	__fastcall TSectionBase(TSectionType ASectionType, int GroupDetailNumber);
	__fastcall virtual ~TSectionBase(void);
	
__published:
	__property int LinesCount = {read=FLinesCount, write=SetLinesCount, nodefault};
	__property bool Enabled = {read=FEnabled, write=SetEnabled, nodefault};
	__property TSectionType SectionType = {read=FSectionType, write=SetSectionType, nodefault};
	__property int GroupDetailIndex = {read=FGroupDetailIndex, write=SetGroupDetailIndex, nodefault};
	__property AnsiString GPName = {read=FGPName, write=SetGPName};
	__property AnsiString GPDatabaseField = {read=FGPDatabaseField, write=SetGPDatabaseField};
	__property bool GPOnNewPage = {read=FGPOnNewPage, write=SetGPOnNewPage, nodefault};
	__property bool GPHeaderOnEveryPage = {read=FGPHeaderOnEveryPage, write=SetGPHeaderOnEveryPage, nodefault
		};
};


class PASCALIMPLEMENTATION TSectionFieldBase : public System::TObject 
{
	typedef System::TObject inherited;
	
protected:
	void __fastcall CopyFormat(TFieldFormat* F);
	
public:
	TFieldBase* FieldBase;
	int Line;
	int XPosition;
	TFieldFormat* Format;
	TSectionBase* ParentSection;
	Stdctrls::TCustomLabel* ParentSectionField;
	__fastcall TSectionFieldBase(TSectionBase* FParentSection, TFieldBase* FFieldBase, int AXPosition, 
		int ALine);
	__fastcall virtual ~TSectionFieldBase(void);
};


class DELPHICLASS TPageProperties;
class PASCALIMPLEMENTATION TPageProperties : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	int Width;
	int Lines;
	AnsiString PaperName;
	int LeftMargin;
	int RightMargin;
	int TopMargin;
	int BottomMargin;
	int Orientation;
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TPageProperties(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TPageProperties(void) { }
	#pragma option pop
	
};


class DELPHICLASS TReportProperties;
class PASCALIMPLEMENTATION TReportProperties : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	bool Cpi12;
	bool Condens;
	AnsiString ESCBefore;
	AnsiString ESCAfter;
	bool FFAfter;
	AnsiString ReportName;
	bool ResetBefore;
	bool PageHeaderOnFirstPage;
	bool PageFooterOnLastPage;
	bool NewReportOnEachRecord;
	bool PrintOnlyActualRecord;
	AnsiString DefaultESC;
	AnsiString ConvertDM;
	AnsiString ConvertMP;
	bool InitFontSize;
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TReportProperties(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TReportProperties(void) { }
	#pragma option pop
	
};


typedef DynamicArray<TFieldBase* >  UBaseClass__11;

typedef DynamicArray<TSectionBase* >  UBaseClass__21;

typedef DynamicArray<TSectionBase* >  UBaseClass__31;

class DELPHICLASS TReportBase;
class PASCALIMPLEMENTATION TReportBase : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Graphics::TFont* FEditorFont;
	TPageProperties* FPageDef;
	TReportProperties* FReportDef;
	int FGroupsCount;
	AnsiString FReportFile;
	DynamicArray<TFieldBase* >  FFields;
	AnsiString FConnectionString;
	AnsiString FQuery;
	TSectionBase* FBaseReportHeader;
	TSectionBase* FBasePageHeader;
	TSectionBase* FBaseBodyHeader;
	TSectionBase* FBaseReportBody;
	TSectionBase* FBasePageFooter;
	TSectionBase* FBaseFillToEndPage;
	TSectionBase* FBaseReportFooter;
	DynamicArray<TSectionBase* >  FBaseReportGroupHeader;
	DynamicArray<TSectionBase* >  FBaseReportGroupFooter;
	Classes::TStringList* FReportString;
	TReportType FReportType;
	int FParentPageWidth;
	void __fastcall SetEditorFont(const Graphics::TFont* Value);
	void __fastcall SetPageDef(const TPageProperties* Value);
	void __fastcall SetReportDef(const TReportProperties* Value);
	void __fastcall SetReportFile(const AnsiString Value);
	TFieldBase* __fastcall GetFields(int index);
	void __fastcall SetFields(int index, const TFieldBase* Value);
	void __fastcall CreateSpecialFields(void);
	void __fastcall SetConnectionString(const AnsiString Value);
	void __fastcall SetQuery(const AnsiString Value);
	void __fastcall SetBaseReportHeader(const TSectionBase* Value);
	void __fastcall SetBasePageHeader(const TSectionBase* Value);
	void __fastcall SetBaseBodyHeader(const TSectionBase* Value);
	void __fastcall SetBaseReportBody(const TSectionBase* Value);
	void __fastcall SetBasePageFooter(const TSectionBase* Value);
	void __fastcall SetBaseFillToEndPage(const TSectionBase* Value);
	void __fastcall SetBaseReportFooter(const TSectionBase* Value);
	TSectionBase* __fastcall GetReportGroupHeader(int index);
	void __fastcall SetReportGroupHeader(int index, const TSectionBase* Value);
	TSectionBase* __fastcall GetReportGroupFooter(int index);
	void __fastcall SetReportGroupFooter(int index, const TSectionBase* Value);
	AnsiString __fastcall GetReportName(void);
	void __fastcall AddGroup(void);
	void __fastcall SetReportString(const Classes::TStringList* Value);
	void __fastcall SetReportType(const TReportType Value);
	
protected:
	virtual void __fastcall SetReportName(const AnsiString Value);
	virtual void __fastcall SetGroupsCount(const int Value);
	
public:
	int FieldCount;
	__property TFieldBase* Fields[int index] = {read=GetFields, write=SetFields};
	__fastcall TReportBase(void);
	__fastcall virtual ~TReportBase(void);
	TFieldBase* __fastcall AddField(void);
	void __fastcall RemoveField(AnsiString FName);
	int __fastcall GetFieldIndex(AnsiString FName);
	TFieldBase* __fastcall GetField(AnsiString FName);
	TFieldBase* __fastcall GetFrameField(TFrameType FFrameType);
	void __fastcall LoadReport(Classes::TStringList* RPTString, TPageProperties* APageDef);
	__property TSectionBase* BaseReportGroupHeader[int index] = {read=GetReportGroupHeader, write=SetReportGroupHeader
		};
	__property TSectionBase* BaseReportGroupFooter[int index] = {read=GetReportGroupFooter, write=SetReportGroupFooter
		};
	
__published:
	__property TReportType ReportType = {read=FReportType, write=SetReportType, nodefault};
	__property Graphics::TFont* EditorFont = {read=FEditorFont, write=SetEditorFont};
	__property TPageProperties* PageDef = {read=FPageDef, write=SetPageDef};
	__property TReportProperties* ReportDef = {read=FReportDef, write=SetReportDef};
	__property int GroupsCount = {read=FGroupsCount, write=SetGroupsCount, nodefault};
	__property AnsiString ReportName = {read=GetReportName, write=SetReportName};
	__property AnsiString ReportFile = {read=FReportFile, write=SetReportFile};
	__property AnsiString ConnectionString = {read=FConnectionString, write=SetConnectionString};
	__property AnsiString Query = {read=FQuery, write=SetQuery};
	__property TSectionBase* BaseReportHeader = {read=FBaseReportHeader, write=SetBaseReportHeader};
	__property TSectionBase* BasePageHeader = {read=FBasePageHeader, write=SetBasePageHeader};
	__property TSectionBase* BaseBodyHeader = {read=FBaseBodyHeader, write=SetBaseBodyHeader};
	__property TSectionBase* BaseReportBody = {read=FBaseReportBody, write=SetBaseReportBody};
	__property TSectionBase* BasePageFooter = {read=FBasePageFooter, write=SetBasePageFooter};
	__property TSectionBase* BaseFillToEndPage = {read=FBaseFillToEndPage, write=SetBaseFillToEndPage};
		
	__property TSectionBase* BaseReportFooter = {read=FBaseReportFooter, write=SetBaseReportFooter};
	__property Classes::TStringList* ReportString = {read=FReportString, write=SetReportString};
};


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

}	/* namespace Ubaseclass */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Ubaseclass;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

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