// CodeGear C++Builder
// Copyright (c) 1995, 2020 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'QImport3ODT.pas' rev: 34.00 (Windows)

#ifndef Qimport3odtHPP
#define Qimport3odtHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <System.Classes.hpp>
#include <System.SysUtils.hpp>
#include <Winapi.msxml.hpp>
#include <System.IniFiles.hpp>
#include <QImport3StrTypes.hpp>
#include <QImport3XMLBased.hpp>
#include <QImport3.hpp>
#include <QImport3Common.hpp>
#include <QImport3BaseDocumentFile.hpp>
#include <QImport3XMLSax.hpp>
#include <QImport3WideStrUtils.hpp>

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

namespace Qimport3odt
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TODTCell;
class DELPHICLASS TODTCellList;
class DELPHICLASS TODTSpreadSheet;
class DELPHICLASS TODSSpreadSheetList;
class DELPHICLASS TODTWorkbook;
class DELPHICLASS TODTFile;
class DELPHICLASS TQImport3ODT;
//-- type declarations -------------------------------------------------------
#pragma pack(push,4)
class PASCALIMPLEMENTATION TODTCell : public Qimport3xmlbased::TCell
{
	typedef Qimport3xmlbased::TCell inherited;
	
public:
	/* TCell.Create */ inline __fastcall virtual TODTCell(System::Classes::TCollection* Collection) : Qimport3xmlbased::TCell(Collection) { }
	/* TCell.Destroy */ inline __fastcall virtual ~TODTCell() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TODTCellList : public Qimport3xmlbased::TODCellList
{
	typedef Qimport3xmlbased::TODCellList inherited;
	
public:
	TODTCell* operator[](int Index) { return this->Items[Index]; }
	
private:
	HIDESBASE TODTCell* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, TODTCell* const Value);
	
public:
	HIDESBASE TODTCell* __fastcall Add();
	__property TODTCell* Items[int Index] = {read=GetItem, write=SetItem/*, default*/};
	HIDESBASE TODTCell* __fastcall GetItemByCoords(int X, int Y);
public:
	/* TOwnedCollection.Create */ inline __fastcall TODTCellList(System::Classes::TPersistent* AOwner, System::Classes::TCollectionItemClass ItemClass) : Qimport3xmlbased::TODCellList(AOwner, ItemClass) { }
	
public:
	/* TCollection.Destroy */ inline __fastcall virtual ~TODTCellList() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TODTSpreadSheet : public Qimport3xmlbased::TXYSheet
{
	typedef Qimport3xmlbased::TXYSheet inherited;
	
private:
	bool FIsAfterSubTable;
	bool FIsComplexTable;
	TODTSpreadSheet* FParent;
	HIDESBASE TODTCell* __fastcall GetCell(int Col, int Row);
	TODTCellList* __fastcall GetCells();
	HIDESBASE void __fastcall SetCell(int Col, int Row, TODTCell* const Value);
	
protected:
	virtual Qimport3xmlbased::TCellList* __fastcall CreateCells();
	virtual void __fastcall SetColCount(const int Value);
	virtual void __fastcall SetRowCount(const int Value);
	virtual void __fastcall SetX(const int Value);
	virtual void __fastcall SetY(const int Value);
	
public:
	__fastcall virtual TODTSpreadSheet(System::Classes::TCollection* Collection);
	__property TODTCell* Cell[int Col][int Row] = {read=GetCell, write=SetCell};
	__property TODTCellList* Cells = {read=GetCells};
	__property bool IsAfterSubTable = {read=FIsAfterSubTable, write=FIsAfterSubTable, nodefault};
	__property bool IsComplexTable = {read=FIsComplexTable, write=FIsComplexTable, nodefault};
public:
	/* TXMLSheet.Destroy */ inline __fastcall virtual ~TODTSpreadSheet() { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TODSSpreadSheetList : public Qimport3xmlbased::TXMLSheetList
{
	typedef Qimport3xmlbased::TXMLSheetList inherited;
	
public:
	TODTSpreadSheet* operator[](int Index) { return this->Items[Index]; }
	
private:
	HIDESBASE TODTSpreadSheet* __fastcall GetItems(int Index);
	HIDESBASE void __fastcall SetItems(int Index, TODTSpreadSheet* Value);
	
public:
	HIDESBASE TODTSpreadSheet* __fastcall Add();
	__property TODTSpreadSheet* Items[int Index] = {read=GetItems, write=SetItems/*, default*/};
	TODTSpreadSheet* __fastcall GetSheetByName(System::WideString Name);
public:
	/* TCollection.Create */ inline __fastcall TODSSpreadSheetList(System::Classes::TCollectionItemClass ItemClass) : Qimport3xmlbased::TXMLSheetList(ItemClass) { }
	/* TCollection.Destroy */ inline __fastcall virtual ~TODSSpreadSheetList() { }
	
};

#pragma pack(pop)

class PASCALIMPLEMENTATION TODTWorkbook : public Qimport3xmlbased::TODContainer
{
	typedef Qimport3xmlbased::TODContainer inherited;
	
private:
	void __fastcall ExpandRowsNCols(TODTSpreadSheet* ASheet, System::WideString ExpandValue, int NumbOfRepRows, int NumbOfRepColumns, bool IsSpanning);
	TODSSpreadSheetList* __fastcall GetSheets();
	
protected:
	virtual System::WideString __fastcall GetErrorMsg();
	virtual Qimport3xmlbased::TXMLSheetList* __fastcall CreateSheets();
	virtual void __fastcall OnGetCellText(Qimport3xmlsax::TQIXMLStreamProcessor* Sender, const System::WideString aText, Qimport3xmlsax::TQIXMLTextType TextType);
	virtual void __fastcall OnLoadSheet(Qimport3xmlsax::TQIXMLStreamProcessor* Sender, const System::WideString AName, Qimport3xmlsax::TQIXMLNodeAction Action);
	virtual void __fastcall ParseSheet(Qimport3xmlsax::TQISAXParser* Sender, const System::WideString AName);
	
public:
	__property TODSSpreadSheetList* Sheets = {read=GetSheets};
public:
	/* TODContainer.Create */ inline __fastcall virtual TODTWorkbook() : Qimport3xmlbased::TODContainer() { }
	
public:
	/* TXMLDocContainer.Destroy */ inline __fastcall virtual ~TODTWorkbook() { }
	
};


#pragma pack(push,4)
class PASCALIMPLEMENTATION TODTFile : public Qimport3xmlbased::TZipDocumentFile
{
	typedef Qimport3xmlbased::TZipDocumentFile inherited;
	
private:
	TODTWorkbook* __fastcall GetWorkbook();
	
protected:
	virtual Qimport3xmlbased::TXMLDocContainer* __fastcall CreateContainer();
	
public:
	__property TODTWorkbook* Workbook = {read=GetWorkbook};
public:
	/* TZipDocumentFile.Create */ inline __fastcall virtual TODTFile() : Qimport3xmlbased::TZipDocumentFile() { }
	/* TZipDocumentFile.Destroy */ inline __fastcall virtual ~TODTFile() { }
	
};

#pragma pack(pop)

class PASCALIMPLEMENTATION TQImport3ODT : public Qimport3xmlbased::TQImport3WorkbookBased
{
	typedef Qimport3xmlbased::TQImport3WorkbookBased inherited;
	
private:
	System::WideString FSheetName;
	bool FUseHeader;
	bool FUseComplexTables;
	HIDESBASE void __fastcall SetSheetName(const System::WideString Value);
	
protected:
	virtual void __fastcall StartImport();
	virtual bool __fastcall Skip();
	virtual void __fastcall FillImportRow();
	virtual void __fastcall DoLoadConfiguration(System::Inifiles::TIniFile* IniFile);
	virtual void __fastcall DoSaveConfiguration(System::Inifiles::TIniFile* IniFile);
	virtual Qimport3basedocumentfile::TBaseDocumentFile* __fastcall CreateDocFile();
	virtual void __fastcall LoadDocFile();
	
public:
	__fastcall virtual TQImport3ODT(System::Classes::TComponent* AOwner);
	
__published:
	__property FileName = {default=0};
	__property SkipFirstRows = {default=0};
	__property System::WideString SheetName = {read=FSheetName, write=SetSheetName};
	__property bool UseHeader = {read=FUseHeader, write=FUseHeader, default=0};
	__property bool UseComplexTables = {read=FUseComplexTables, write=FUseComplexTables, default=1};
public:
	/* TQImport3.Destroy */ inline __fastcall virtual ~TQImport3ODT() { }
	
};


//-- var, const, procedure ---------------------------------------------------
}	/* namespace Qimport3odt */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_QIMPORT3ODT)
using namespace Qimport3odt;
#endif
#pragma pack(pop)
#pragma option pop

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