mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
Compare commits
5 Commits
core-linux
...
core-linux
| Author | SHA1 | Date | |
|---|---|---|---|
| 069544bf6c | |||
| 99191e65b0 | |||
| fb41720817 | |||
| 406c290be4 | |||
| 5ae4d7f819 |
@ -355,10 +355,16 @@ class Tab
|
||||
public:
|
||||
BYTE Val;
|
||||
double Pos;
|
||||
BYTE* Leader;
|
||||
Tab()
|
||||
{
|
||||
Val = shd_Nil;
|
||||
Pos = 0;
|
||||
Leader = NULL;
|
||||
}
|
||||
~Tab()
|
||||
{
|
||||
RELEASEOBJECT(Leader);
|
||||
}
|
||||
};
|
||||
class Tabs
|
||||
|
||||
@ -827,7 +827,23 @@ public:
|
||||
case g_tabtype_clear: sVal = L"clear"; break;
|
||||
default: sVal = L"left"; break;
|
||||
}
|
||||
pCStringWriter->WriteString(L"<w:tab w:val=\"" + sVal + L"\" w:pos=\"" + std::to_wstring(nTab) + L"\"/>");
|
||||
pCStringWriter->WriteString(L"<w:tab w:val=\"" + sVal + L"\" w:pos=\"" + std::to_wstring(nTab) + L"\"");
|
||||
if (NULL != oTab.Leader)
|
||||
{
|
||||
std::wstring sLeader;
|
||||
switch(*oTab.Leader)
|
||||
{
|
||||
case SimpleTypes::tabtlcDot : sLeader = (L"dot");
|
||||
case SimpleTypes::tabtlcHeavy : sLeader = (L"heavy");
|
||||
case SimpleTypes::tabtlcHyphen : sLeader = (L"hyphen");
|
||||
case SimpleTypes::tabtlcMiddleDot : sLeader = (L"middleDot");
|
||||
case SimpleTypes::tabtlcNone : sLeader = (L"none");
|
||||
case SimpleTypes::tabtlcUnderscore : sLeader = (L"underscore");
|
||||
default : sLeader = (L"none");
|
||||
}
|
||||
pCStringWriter->WriteString(L" w:leader=\"" + sLeader + L"\"");
|
||||
}
|
||||
pCStringWriter->WriteString(L"/>");
|
||||
}
|
||||
pCStringWriter->WriteString(std::wstring(L"</w:tabs>"));
|
||||
}
|
||||
@ -1008,6 +1024,11 @@ public:
|
||||
poTabItem->Val = m_oBufferedStream.GetUChar();
|
||||
else if(c_oSerProp_pPrType::Tab_Item_Pos == type)
|
||||
poTabItem->Pos = m_oBufferedStream.GetDouble();
|
||||
else if(c_oSerProp_pPrType::Tab_Item_Leader == type)
|
||||
{
|
||||
poTabItem->Leader = new BYTE;
|
||||
*poTabItem->Leader = m_oBufferedStream.GetUChar();
|
||||
}
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
|
||||
@ -345,7 +345,8 @@ extern int g_nCurFormatVersion;
|
||||
SectPr = 31,
|
||||
numPr_Ins = 32,
|
||||
pPrChange = 33,
|
||||
outlineLvl = 34
|
||||
outlineLvl = 34,
|
||||
Tab_Item_Leader = 35
|
||||
};}
|
||||
namespace c_oSerProp_rPrType{enum c_oSerProp_rPrType
|
||||
{
|
||||
|
||||
@ -1179,6 +1179,12 @@ namespace BinDocxRW
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Double);
|
||||
m_oBcw.m_oStream.WriteDouble(TabItem.m_oPos.get().ToMm());
|
||||
}
|
||||
if(false != TabItem.m_oLeader.IsInit())
|
||||
{
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerProp_pPrType::Tab_Item_Leader);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
|
||||
m_oBcw.m_oStream.WriteBYTE((BYTE)TabItem.m_oLeader->GetValue());
|
||||
}
|
||||
}
|
||||
void WriteNumPr(const OOX::Logic::CNumPr& numPr, const OOX::Logic::CParagraphProperty& pPr)
|
||||
{
|
||||
|
||||
@ -44,12 +44,10 @@ DConn::DConn()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
DConn::~DConn()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BaseObjectPtr DConn::clone()
|
||||
{
|
||||
return BaseObjectPtr(new DConn(*this));
|
||||
|
||||
@ -56,6 +56,8 @@ void OleDbConn::readFields(CFRecord& record)
|
||||
|
||||
fPasswd = GETBIT(flags, 0);
|
||||
fLocal = GETBIT(flags, 1);
|
||||
|
||||
record.skipNunBytes(4); //reserved2
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -70,6 +70,7 @@ public:
|
||||
bool fibitAtrBdr;
|
||||
bool fibitAtrPat;
|
||||
bool fibitAtrProt;
|
||||
|
||||
XLUnicodeString rgchName;
|
||||
};
|
||||
|
||||
|
||||
@ -48,7 +48,7 @@ void XLUnicodeStringSegmentedSXADDL::load(CFRecord& record)
|
||||
}
|
||||
//-----------------------------------------
|
||||
|
||||
SXAddl::SXAddl()
|
||||
SXAddl::SXAddl() : bEndElement(false), bStartElement(false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -93,6 +93,9 @@ void SXAddl::readFields(CFRecord& record)
|
||||
if (content)
|
||||
content->load(record);
|
||||
|
||||
if (sxd == 0x00) bStartElement = true;
|
||||
if (sxd == 0xff) bEndElement = true;
|
||||
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcView(CFRecord& record)
|
||||
{
|
||||
@ -329,6 +332,16 @@ void SXAddl_SXCView_SXDId::load(CFRecord& record)
|
||||
record >> stName;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCQsi_SXDId::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCQsi_SXDId(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCQsi_SXDId::load(CFRecord& record)
|
||||
{
|
||||
record >> stName;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCView_SXDVer10Info::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCView_SXDVer10Info(*this));
|
||||
|
||||
@ -68,6 +68,9 @@ public:
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
bool bStartElement;
|
||||
bool bEndElement;
|
||||
|
||||
_UINT32 frtHeaderOld;
|
||||
unsigned char sxc;
|
||||
unsigned char sxd;
|
||||
@ -95,6 +98,7 @@ private:
|
||||
BiffStructurePtr createSxcSXFilters12(CFRecord& record);
|
||||
BiffStructurePtr createSxcSXFilter12(CFRecord& record);
|
||||
};
|
||||
|
||||
class Continue_SxaddlSxString : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(Continue_SxaddlSxString)
|
||||
@ -556,106 +560,21 @@ public:
|
||||
bool fNoHeaders;
|
||||
};
|
||||
|
||||
//class SXAddl_SXCCacheItem_SXDItmMpMapCount : public SXAddl {};
|
||||
//class SXAddl_SXCCacheItem_SXDItmMpropMap : public SXAddl {};
|
||||
//class SXAddl_SXCCacheItem_SXDSxrmitmDisp : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCField12_SXDAutoshow : public SXAddl {};
|
||||
//class SXAddl_SXCField12_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCField12_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCField12_SXDISXTH : public SXAddl {};
|
||||
//class SXAddl_SXCField12_SXDMemberCaption : public SXAddl {};
|
||||
//class SXAddl_SXCField12_SXDVer12Info : public SXAddl {};
|
||||
//class SXAddl_SXCField12_SXDVerUpdInv : public SXAddl {};
|
||||
//
|
||||
//
|
||||
//class SXAddl_SXCGroup_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCGroup_SXDGrpInfo : public SXAddl {};
|
||||
//class SXAddl_SXCGroup_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCGroup_SXDMember : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCGrpLevel_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCGrpLevel_SXDGrpLevelInfo : public SXAddl {};
|
||||
//class SXAddl_SXCGrpLevel_SXDId : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCHierarchy_SXDDisplayFolder : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDFilterMember : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDFilterMember12 : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDIconSet : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDInfo12 : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDKPIGoal : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDKPIStatus : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDKPITime : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDKPITrend : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDKPIValue : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDKPIWeight : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDMeasureGrp : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDParentKPI : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDProperty : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDSXSetParentUnique : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDUserCaption : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDVerUpdInv : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCQsi_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCQsi_SXDId : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCQuery_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCQuery_SXDReconnCond : public SXAddl {};
|
||||
//class SXAddl_SXCQuery_SXDSrcConnFile : public SXAddl {};
|
||||
//class SXAddl_SXCQuery_SXDSrcDataFile : public SXAddl {};
|
||||
//class SXAddl_SXCQuery_SXDXMLSource : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCSXCondFmt_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXCondFmt_SXDSXCondFmt : public SXAddl {};
|
||||
//class SXAddl_SXCSXCondFmts_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXCondFmts_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXDH_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXDH_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXDH_SXDSxdh : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCSXfilt_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXfilt_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXfilt_SXDSXfilt : public SXAddl {};
|
||||
//class SXAddl_SXCSXfilt_SXDSXItm : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCSXFilter12_SXDCaption : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDSXFilter : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDSXFilterDesc : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDSXFilterValue1: public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDSXFilterValue2: public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDXlsFilter : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDXlsFilterValue1: public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDXlsFilterValue2: public SXAddl {};
|
||||
//class SXAddl_SXCSXFilters12_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilters12_SXDId : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCSXMg_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXMg_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXMg_SXDUserCaption : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCSXMgs_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXMgs_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXMgs_SXDMGrpSXDHMap : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCSXrule_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXrule_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXrule_SXDSXrule : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCView_SXDCalcMember : public SXAddl {};
|
||||
//class SXAddl_SXCView_SXDCalcMemString : public SXAddl {};
|
||||
//class SXAddl_SXCView_SXDCompactColHdr : public SXAddl {};
|
||||
//class SXAddl_SXCView_SXDCompactRwHdr : public SXAddl {};
|
||||
class SXAddl_SXCQsi_SXDId : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCQsi_SXDId)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
//class SXAddl_SXCView_SXDSXPIIvmb
|
||||
//{
|
||||
// SXAddl_SXCView_SXDSXPIIvmb(CFRecord& record);
|
||||
//};
|
||||
SXAddl_SXCQsi_SXDId(){}
|
||||
~SXAddl_SXCQsi_SXDId(){}
|
||||
|
||||
//class SXAddl_SXCView_SXDVerUpdInv : public SXAddl {};
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
XLUnicodeStringSegmentedSXADDL stName;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
|
||||
@ -55,8 +55,6 @@ void SXStreamID::readFields(CFRecord& record)
|
||||
{
|
||||
GlobalWorkbookInfoPtr global_info = record.getGlobalWorkbookInfo();
|
||||
record >> idStm;
|
||||
|
||||
global_info->arPivotCacheStream.push_back(idStm);
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -70,7 +70,8 @@ void DConnConnectionOleDb::load(CFRecord& record)
|
||||
XLUnicodeStringSegmented val;
|
||||
record >> val;
|
||||
rgConn.push_back(val);
|
||||
}}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,8 +31,14 @@
|
||||
*/
|
||||
|
||||
#include "DBQUERY.h"
|
||||
#include "DBQUERYEXT.h"
|
||||
|
||||
#include "../Biff_records/DbOrParamQry.h"
|
||||
#include "../Biff_records/SXString.h"
|
||||
#include "../Biff_records/TxtQry.h"
|
||||
#include "../Biff_records/DBQueryExt.h"
|
||||
#include "../Biff_records/ExtString.h"
|
||||
#include "../Biff_records/DConn.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -184,7 +190,20 @@ const bool DBQUERY::loadContent(BinProcessor& proc)
|
||||
|
||||
int DBQUERY::serialize(std::wostream & strm)
|
||||
{
|
||||
int connectionId = serialize_connection();
|
||||
std::wstring name, desc;
|
||||
|
||||
if (global_info->connectionId < global_info->arDConn.size())
|
||||
//todooo + поиск по совпадению типа
|
||||
{
|
||||
DConn* dcon = dynamic_cast<DConn*>(global_info->arDConn[global_info->connectionId].get());
|
||||
if (dcon)
|
||||
{
|
||||
name = dcon->rgchConnectionName.strTotal;
|
||||
desc = dcon->rgchConnectionDesc.strTotal;
|
||||
}
|
||||
}
|
||||
|
||||
int connectionId = serialize_connection(name, desc);
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
@ -197,55 +216,118 @@ int DBQUERY::serialize(std::wostream & strm)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int DBQUERY::serialize_connection()
|
||||
int DBQUERY::serialize_connection(std::wstring & name, std::wstring desc)
|
||||
{
|
||||
DbOrParamQry* queryOrParam = dynamic_cast<DbOrParamQry*>(m_DbQry.get());
|
||||
if (!queryOrParam) return -1;
|
||||
DbOrParamQry* dbQry = dynamic_cast<DbOrParamQry*>(m_DbQry.get());
|
||||
if (!dbQry) return -1;
|
||||
|
||||
int connectionId = ++global_info->connectionId;
|
||||
++global_info->connectionId;
|
||||
|
||||
if (name.empty())
|
||||
name = L"Connection" + std::to_wstring(global_info->connectionId);
|
||||
|
||||
DBQUERYEXT *query_ext = dynamic_cast<DBQUERYEXT*>(m_DBQUERYEXT.get());
|
||||
DBQueryExt *dbQry_ext = query_ext ? dynamic_cast<DBQueryExt*>(query_ext->m_DBQueryExt.get()) : NULL;
|
||||
|
||||
CP_XML_WRITER(global_info->connections_stream)
|
||||
{
|
||||
CP_XML_NODE(L"connection")
|
||||
{
|
||||
CP_XML_ATTR(L"id", connectionId);
|
||||
CP_XML_ATTR(L"name", L"Connection" + std::to_wstring(connectionId));
|
||||
CP_XML_ATTR(L"id", global_info->connectionId);
|
||||
CP_XML_ATTR(L"name", name);
|
||||
if (!desc.empty())
|
||||
{
|
||||
CP_XML_ATTR(L"description", desc);
|
||||
}
|
||||
|
||||
CP_XML_ATTR(L"type", queryOrParam->query.dbt);
|
||||
//switch(queryOrParam->query.dbt)
|
||||
//{
|
||||
// case 0x1:
|
||||
// case 0x2:
|
||||
// case 0x3:
|
||||
// case 0x4:
|
||||
// case 0x5:
|
||||
// case 0x6:
|
||||
// case 0x7:
|
||||
//}
|
||||
CP_XML_ATTR(L"type", dbQry->query.dbt);
|
||||
//background="1"
|
||||
//saveData="1"
|
||||
|
||||
if (dbQry->query.fSavePwd) CP_XML_ATTR(L"savePassword", 1);
|
||||
|
||||
if (queryOrParam->query.fSavePwd) CP_XML_ATTR(L"savePassword", 1);
|
||||
CP_XML_ATTR(L"refreshedVersion", 1);
|
||||
|
||||
int index = 0;
|
||||
CP_XML_NODE(L"dbPr")
|
||||
if (dbQry->typeRecord == 1)
|
||||
{
|
||||
std::wstring command, connection;
|
||||
for (index = 0; index < queryOrParam->query.cstQuery; index++)
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( dbQry->query.dbt == 6 )
|
||||
{
|
||||
command += m_arSXString[index];
|
||||
TxtQry *query_txt = query_ext ? dynamic_cast<TxtQry*>(query_ext->m_TxtQry.get()) : NULL;
|
||||
if (query_txt)
|
||||
{
|
||||
CP_XML_NODE(L"textPr")
|
||||
{
|
||||
CP_XML_ATTR(L"sourceFile", query_txt->rgchFile.value());
|
||||
//delimited="0"
|
||||
CP_XML_NODE(L"textFields")
|
||||
{
|
||||
for (size_t i = 0; i < query_txt->rgtxtwf.size(); i++)
|
||||
{
|
||||
CP_XML_NODE(L"textField")
|
||||
{
|
||||
switch(query_txt->rgtxtwf[i].fieldType)
|
||||
{
|
||||
case 0: CP_XML_ATTR(L"type", L"general"); break;
|
||||
case 1: CP_XML_ATTR(L"type", L"text"); break;
|
||||
case 2: CP_XML_ATTR(L"type", L"MDY"); break;
|
||||
case 3: CP_XML_ATTR(L"type", L"DMY"); break;
|
||||
case 4: CP_XML_ATTR(L"type", L"YMD"); break;
|
||||
case 5: CP_XML_ATTR(L"type", L"MYD"); break;
|
||||
case 6: CP_XML_ATTR(L"type", L"DYM"); break;
|
||||
case 7: CP_XML_ATTR(L"type", L"YDM"); break;
|
||||
case 8: CP_XML_ATTR(L"type", L"skip"); break;
|
||||
case 9: CP_XML_ATTR(L"type", L"EMD"); break;
|
||||
}
|
||||
CP_XML_ATTR(L"position", query_txt->rgtxtwf[i].fieldStart);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (; index < queryOrParam->query.cstQuery + queryOrParam->query.cstOdbcConn; index++)
|
||||
else
|
||||
{
|
||||
connection += m_arSXString[index];
|
||||
size_t index = 0;
|
||||
|
||||
CP_XML_NODE(L"dbPr")
|
||||
{
|
||||
std::wstring command, connection, post;
|
||||
size_t index_max = (std::min)((size_t )dbQry->query.cstQuery, m_arSXString.size());
|
||||
for (index = 0; index < index_max; index++)
|
||||
{
|
||||
command += m_arSXString[index];
|
||||
}
|
||||
index_max = (std::min)((size_t )(dbQry->query.cstQuery + dbQry->query.cstOdbcConn), m_arSXString.size());
|
||||
for (; index < index_max; index++)
|
||||
{
|
||||
connection += m_arSXString[index];
|
||||
}
|
||||
index_max = (std::min)((size_t )(dbQry->query.cstQuery + dbQry->query.cstOdbcConn + dbQry->query.cstWebPost), m_arSXString.size());
|
||||
|
||||
for (;index < index_max; index++)
|
||||
{
|
||||
post += m_arSXString[index];
|
||||
}
|
||||
if (connection.empty() && (query_ext) && (!query_ext->m_arOleDbConn.empty()))
|
||||
{
|
||||
for (size_t i = 0; i < query_ext->m_arOleDbConn[0].arExtString.size(); i++)
|
||||
{
|
||||
ExtString* ex_str = dynamic_cast<ExtString*>(query_ext->m_arOleDbConn[0].arExtString[i].get());
|
||||
connection += ex_str->string.value();
|
||||
}
|
||||
}
|
||||
|
||||
CP_XML_ATTR(L"connection", connection);
|
||||
CP_XML_ATTR(L"command", command);
|
||||
}
|
||||
}
|
||||
|
||||
CP_XML_ATTR(L"connection", connection);
|
||||
CP_XML_ATTR(L"command", command);
|
||||
}
|
||||
}
|
||||
}
|
||||
return connectionId;
|
||||
return global_info->connectionId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -35,11 +35,13 @@
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
struct _DbParam
|
||||
{
|
||||
std::wstring string;
|
||||
BaseObjectPtr param;
|
||||
};
|
||||
struct _DbParam
|
||||
{
|
||||
std::wstring string;
|
||||
BaseObjectPtr param;
|
||||
};
|
||||
|
||||
class DBQUERYEXT;
|
||||
|
||||
class DBQUERY: public CompositeObject
|
||||
{
|
||||
@ -53,7 +55,8 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
int serialize(std::wostream & stream);
|
||||
int serialize_connection();
|
||||
|
||||
int serialize_connection(std::wstring & name, std::wstring desc);
|
||||
|
||||
BaseObjectPtr m_DbQry;
|
||||
|
||||
@ -62,7 +65,8 @@ public:
|
||||
|
||||
std::vector<std::wstring> m_arSXString;
|
||||
//------------------------------------------------------
|
||||
GlobalWorkbookInfoPtr global_info;
|
||||
BaseObjectPtr m_DBQUERYEXT;
|
||||
GlobalWorkbookInfoPtr global_info;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -35,6 +35,11 @@
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
struct _oleDbConn
|
||||
{
|
||||
BaseObjectPtr oleDbConn;
|
||||
std::vector<BaseObjectPtr> arExtString;
|
||||
};
|
||||
|
||||
class DBQUERYEXT: public CompositeObject
|
||||
{
|
||||
@ -51,7 +56,7 @@ public:
|
||||
BaseObjectPtr m_DBQueryExt;
|
||||
BaseObjectPtr m_ExtString;
|
||||
std::vector<BaseObjectPtr> m_arExtString;
|
||||
|
||||
std::vector<_oleDbConn> m_arOleDbConn;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -92,8 +92,21 @@ const bool DBQUERYEXT::loadContent(BinProcessor& proc)
|
||||
}
|
||||
int count = proc.repeated<Parenthesis_DBQUERYEXT_1>(0, 4);
|
||||
|
||||
//....
|
||||
|
||||
while(!elements_.empty())
|
||||
{
|
||||
if (elements_.front()->get_type() == typeOleDbConn)
|
||||
{
|
||||
_oleDbConn conn;
|
||||
m_arOleDbConn.push_back(conn);
|
||||
|
||||
m_arOleDbConn.back().oleDbConn = elements_.front();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_arOleDbConn.back().arExtString.push_back(elements_.front());
|
||||
}
|
||||
elements_.pop_front();
|
||||
}
|
||||
if(proc.optional<TxtQry>())
|
||||
{
|
||||
m_TxtQry = elements_.back();
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of DCON union of records
|
||||
class DCON: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(DCON)
|
||||
@ -50,6 +48,10 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeDCON;
|
||||
|
||||
BaseObjectPtr m_DCon;
|
||||
std::vector<BaseObjectPtr> m_arDCon;
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,10 +31,10 @@
|
||||
*/
|
||||
|
||||
#include "DCON.h"
|
||||
#include <Logic/Biff_records/DCon.h>
|
||||
#include <Logic/Biff_records/DConName.h>
|
||||
#include <Logic/Biff_records/DConBin.h>
|
||||
#include <Logic/Biff_records/DConRef.h>
|
||||
#include "../Biff_records/DCon.h"
|
||||
#include "../Biff_records/DConName.h"
|
||||
#include "../Biff_records/DConBin.h"
|
||||
#include "../Biff_records/DConRef.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -74,7 +74,6 @@ BaseObjectPtr DCON::clone()
|
||||
return BaseObjectPtr(new DCON(*this));
|
||||
}
|
||||
|
||||
|
||||
// DCON = DCon *(DConName / DConBin / DConRef)
|
||||
const bool DCON::loadContent(BinProcessor& proc)
|
||||
{
|
||||
@ -82,8 +81,16 @@ const bool DCON::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Parenthesis_DCON_1>(0, 0);
|
||||
m_DCon = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
int count = proc.repeated<Parenthesis_DCON_1>(0, 0);
|
||||
while(count > 0)
|
||||
{
|
||||
m_arDCon.insert(m_arDCon.begin(), elements_.back());
|
||||
elements_.pop_back();
|
||||
count--;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -31,20 +31,17 @@
|
||||
*/
|
||||
|
||||
#include "PIVOTADDL.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLCALCMEMBER.h>
|
||||
#include <Logic/Biff_unions/SXADDLHIERARCHY.h>
|
||||
#include <Logic/Biff_unions/SXADDLFIELD.h>
|
||||
#include <Logic/Biff_unions/UNKNOWNFRT.h>
|
||||
#include <Logic/Biff_unions/SXADDLCONDFMTS.h>
|
||||
#include <Logic/Biff_unions/SXADDLSXFILTERS12.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
PIVOTADDL::PIVOTADDL()
|
||||
PIVOTADDL::PIVOTADDL() : current( &content)
|
||||
{
|
||||
_sxAddl elm(NULL, 0);
|
||||
current->push_back(elm);
|
||||
}
|
||||
|
||||
PIVOTADDL::~PIVOTADDL()
|
||||
@ -72,133 +69,71 @@ PIVOTADDL = SXAddl_SXCView_SXDId *Continue_SxaddlSxString
|
||||
|
||||
const bool PIVOTADDL::loadContent(BinProcessor& proc)
|
||||
{
|
||||
int count = proc.repeated<SXAddl>(0, 0);
|
||||
|
||||
for (std::list<BaseObjectPtr>::iterator it = elements_.begin(); it != elements_.end(); it++)
|
||||
bool result = false;
|
||||
int level = 0;
|
||||
while (true)
|
||||
{
|
||||
SXAddl* addl = dynamic_cast<SXAddl*>(it->get());
|
||||
CFRecordType::TypeId type = proc.getNextRecordType();
|
||||
|
||||
if (type != rt_SXAddl) break;
|
||||
|
||||
proc.optional<SXAddl>();
|
||||
|
||||
SXAddl* addl = dynamic_cast<SXAddl*>(elements_.back().get());
|
||||
if (!addl) continue;
|
||||
SXAddl_SXCView_SXDTableStyleClient* p1 = dynamic_cast<SXAddl_SXCView_SXDTableStyleClient*>(addl->content.get());
|
||||
if (p1)
|
||||
|
||||
if (result && addl->bStartElement)
|
||||
{
|
||||
m_SXAddl_SXCView_SXDTableStyleClient = addl->content;
|
||||
continue;
|
||||
level++;
|
||||
_sxAddl elm(current, level);
|
||||
|
||||
current = ¤t->back().levels;
|
||||
|
||||
current->push_back(elm);
|
||||
}
|
||||
|
||||
result = true;
|
||||
|
||||
if (addl->bEndElement)
|
||||
{
|
||||
elements_.pop_back();
|
||||
|
||||
if (level == 0)
|
||||
break;
|
||||
else level--;
|
||||
|
||||
current = current->back().prev;
|
||||
continue;
|
||||
}
|
||||
if (level == 0)
|
||||
{
|
||||
SXAddl_SXCView_SXDId* p0 = dynamic_cast<SXAddl_SXCView_SXDId*>(addl->content.get());
|
||||
if (p0)
|
||||
{
|
||||
m_SXAddl_SXCView_SXDId = addl->content;
|
||||
}
|
||||
SXAddl_SXCView_SXDTableStyleClient* p1 = dynamic_cast<SXAddl_SXCView_SXDTableStyleClient*>(addl->content.get());
|
||||
if (p1)
|
||||
{
|
||||
m_SXAddl_SXCView_SXDTableStyleClient = addl->content;
|
||||
}
|
||||
SXAddl_SXCView_SXDVer10Info* p2 = dynamic_cast<SXAddl_SXCView_SXDVer10Info*>(addl->content.get());
|
||||
if (p2)
|
||||
{
|
||||
m_SXAddl_SXCView_SXDVer10Info = addl->content;
|
||||
}
|
||||
SXAddl_SXCView_SXDVer12Info* p3 = dynamic_cast<SXAddl_SXCView_SXDVer12Info*>(addl->content.get());
|
||||
if (p3)
|
||||
{
|
||||
m_SXAddl_SXCView_SXDVer12Info = addl->content;
|
||||
}
|
||||
}
|
||||
SXAddl_SXCView_SXDVer10Info* p2 = dynamic_cast<SXAddl_SXCView_SXDVer10Info*>(addl->content.get());
|
||||
if (p2)
|
||||
{
|
||||
m_SXAddl_SXCView_SXDVer10Info = addl->content;
|
||||
continue;
|
||||
}
|
||||
SXAddl_SXCView_SXDVer12Info* p3 = dynamic_cast<SXAddl_SXCView_SXDVer12Info*>(addl->content.get());
|
||||
if (p3)
|
||||
{
|
||||
m_SXAddl_SXCView_SXDVer12Info = addl->content;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
//if(!proc.mandatory<SXAddl_SXCView_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//m_SXAddl_SXCView_SXDId = elements_.back();
|
||||
//elements_.pop_back();
|
||||
//
|
||||
//int count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//
|
||||
//if (proc.optional<SXAddl_SXCView_SXDVer10Info>())
|
||||
//{
|
||||
// m_SXAddl_SXCView_SXDVer10Info = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXAddl_SXCView_SXDVer12Info>())
|
||||
//{
|
||||
// m_SXAddl_SXCView_SXDVer12Info = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//count = proc.repeated<SXADDLCALCMEMBER>(0, 0);
|
||||
//while(count > 0)
|
||||
//{
|
||||
// m_arSXADDLCALCMEMBER.push_back(elements_.front());
|
||||
// elements_.pop_front(); count--;
|
||||
//}
|
||||
|
||||
//count = proc.repeated<SXADDLHIERARCHY>(0, 0);
|
||||
//while(count > 0)
|
||||
//{
|
||||
// m_arSXADDLHIERARCHY.push_back(elements_.front());
|
||||
// elements_.pop_front(); count--;
|
||||
//}
|
||||
//count = proc.repeated<SXADDLFIELD>(0, 0);
|
||||
//while(count > 0)
|
||||
//{
|
||||
// m_arSXADDLFIELD.push_back(elements_.front());
|
||||
// elements_.pop_front(); count--;
|
||||
//}
|
||||
|
||||
//count = proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//
|
||||
//if (proc.optional<SXAddl_SXCView_SXDTableStyleClient>())
|
||||
//{
|
||||
// m_SXAddl_SXCView_SXDTableStyleClient = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
|
||||
//if(proc.optional<SXAddl_SXCView_SXDCompactRwHdr>())
|
||||
//{
|
||||
// m_SXAddl_SXCView_SXDCompactRwHdr = elements_.back();
|
||||
// elements_.pop_back();
|
||||
|
||||
// count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCView_SXDCompactColHdr>())
|
||||
//{
|
||||
// m_SXAddl_SXCView_SXDCompactColHdr = elements_.back();
|
||||
// elements_.pop_back();
|
||||
|
||||
// count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
|
||||
//if (proc.optional<SXAddl_SXCView_SXDVerUpdInv>())
|
||||
//{
|
||||
// m_arSXAddl_SXCView_SXDVerUpdInv.push_back(elements_.back());
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXADDLCONDFMTS>())
|
||||
//{
|
||||
// m_SXADDLCONDFMTS = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXADDLSXFILTERS12>())
|
||||
//{
|
||||
// m_SXAddl_SXADDLSXFILTERS12 = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//count = proc.repeated<SXAddl_SXCView_SXDVerUpdInv>(0, 0);
|
||||
//while(count > 0)
|
||||
//{
|
||||
// m_arSXAddl_SXCView_SXDVerUpdInv.push_back(elements_.front());
|
||||
// elements_.pop_front(); count--;
|
||||
//}
|
||||
|
||||
//count = proc.repeated<SXAddl_SXCView_SXDSXPIIvmb>(0, 0);
|
||||
//while(count > 0)
|
||||
//{
|
||||
// m_arSXAddl_SXCView_SXDSXPIIvmb.push_back(elements_.front());
|
||||
// elements_.pop_front(); count--;
|
||||
//}
|
||||
|
||||
//if (proc.optional<SXAddl_SXCView_SXDVerUpdInv>())
|
||||
//{
|
||||
// m_arSXAddl_SXCView_SXDVerUpdInv.push_back(elements_.front());
|
||||
// elements_.pop_front();
|
||||
//}
|
||||
|
||||
//if (proc.optional<SXAddl_SXCView_SXDEnd>())
|
||||
//{
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
return true;
|
||||
current->back().elements.push_back(elements_.back());
|
||||
elements_.pop_back();
|
||||
}
|
||||
current = NULL;
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,9 +36,21 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
|
||||
class PIVOTADDL: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(PIVOTADDL)
|
||||
struct _sxAddl
|
||||
{
|
||||
_sxAddl(std::vector<_sxAddl> *p, int l) : prev(p), level (l) {}
|
||||
|
||||
std::vector<_sxAddl>* prev = NULL;
|
||||
int level = 0;
|
||||
std::vector<BaseObjectPtr> elements;
|
||||
std::vector<_sxAddl> levels;
|
||||
};
|
||||
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(PIVOTADDL)
|
||||
public:
|
||||
PIVOTADDL();
|
||||
~PIVOTADDL();
|
||||
@ -55,15 +67,13 @@ public:
|
||||
|
||||
BiffStructurePtr m_SXAddl_SXCView_SXDCompactRwHdr;
|
||||
BiffStructurePtr m_SXAddl_SXCView_SXDCompactColHdr;
|
||||
BiffStructurePtr m_SXAddl_SXADDLSXFILTERS12;
|
||||
BiffStructurePtr m_SXADDLCONDFMTS;
|
||||
BiffStructurePtr m_SXAddl_SXCView_SXDTableStyleClient;
|
||||
|
||||
std::vector<BiffStructurePtr> m_arSXAddl_SXCView_SXDVerUpdInv;
|
||||
std::vector<BiffStructurePtr> m_arSXAddl_SXCView_SXDSXPIIvmb;
|
||||
std::vector<BiffStructurePtr> m_arSXADDLFIELD;
|
||||
std::vector<BiffStructurePtr> m_arSXADDLHIERARCHY;
|
||||
std::vector<BiffStructurePtr> m_arSXADDLCALCMEMBER;
|
||||
|
||||
std::vector<_sxAddl> content;
|
||||
std::vector<_sxAddl> *current;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -73,6 +73,11 @@ const bool PIVOTCACHEDEFINITION::loadContent(BinProcessor& proc)
|
||||
m_SXStreamID = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
SXStreamID* streamId = dynamic_cast<SXStreamID*>(m_SXStreamID.get());
|
||||
if (!streamId) return 0;
|
||||
|
||||
global_info_->mapPivotCacheIndex.insert(std::make_pair(streamId->idStm, global_info_->mapPivotCacheIndex.size()));
|
||||
|
||||
if (proc.mandatory<SXVS>())
|
||||
{
|
||||
m_SXVS = elements_.back();
|
||||
@ -92,17 +97,16 @@ const bool PIVOTCACHEDEFINITION::loadContent(BinProcessor& proc)
|
||||
}
|
||||
int PIVOTCACHEDEFINITION::serialize_definitions(std::wostream & strm)
|
||||
{
|
||||
global_info_->arPivotCacheSxNames.clear();
|
||||
global_info_->arPivotSxNames.clear();
|
||||
|
||||
SXStreamID* streamId = dynamic_cast<SXStreamID*>(m_SXStreamID.get());
|
||||
if (!streamId) return 0;
|
||||
|
||||
global_info_->arPivotCacheSxNames.clear();
|
||||
global_info_->arPivotSxNames.clear();
|
||||
global_info_->idPivotCache = streamId->idStm;
|
||||
|
||||
std::unordered_map<int, BaseObjectPtr>::iterator pFind = global_info_->mapPivotCacheStream.find(streamId->idStm);
|
||||
if (pFind == global_info_->mapPivotCacheStream.end()) return 0;
|
||||
|
||||
global_info_->idPivotCache = streamId->idStm;
|
||||
|
||||
PIVOTCACHE* pivot_cache = dynamic_cast<PIVOTCACHE*>(pFind->second.get());
|
||||
if (!pivot_cache) return 0;
|
||||
|
||||
@ -116,7 +120,6 @@ int PIVOTCACHEDEFINITION::serialize_definitions(std::wostream & strm)
|
||||
global_info_->mapPivotCacheStream.erase(pFind);
|
||||
return 0;
|
||||
}
|
||||
global_info_->mapPivotCacheIndex.insert(std::make_pair(global_info_->idPivotCache, global_info_->mapPivotCacheIndex.size()));
|
||||
|
||||
SXSRC* src = dynamic_cast<SXSRC*>(m_SXSRC.get());
|
||||
bool bSql = src ? src->bSql : false;
|
||||
|
||||
@ -31,10 +31,11 @@
|
||||
*/
|
||||
|
||||
#include "PIVOTFRT9.h"
|
||||
#include <Logic/Biff_records/QsiSXTag.h>
|
||||
#include <Logic/Biff_unions/DBQUERYEXT.h>
|
||||
#include <Logic/Biff_unions/PIVOTVIEWEX.h>
|
||||
#include <Logic/Biff_records/SXViewEx9.h>
|
||||
#include "DBQUERYEXT.h"
|
||||
#include "PIVOTVIEWEX.h"
|
||||
|
||||
#include "../Biff_records/QsiSXTag.h"
|
||||
#include "../Biff_records/SXViewEx9.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -58,6 +59,8 @@ BaseObjectPtr PIVOTFRT9::clone()
|
||||
// PIVOTFRT9 = QsiSXTag [DBQUERYEXT] [PIVOTVIEWEX] SXViewEx9
|
||||
const bool PIVOTFRT9::loadContent(BinProcessor& proc)
|
||||
{
|
||||
GlobalWorkbookInfoPtr global_info = proc.getGlobalWorkbookInfo();
|
||||
|
||||
if(!proc.mandatory<QsiSXTag>())
|
||||
{
|
||||
return false;
|
||||
@ -69,6 +72,10 @@ const bool PIVOTFRT9::loadContent(BinProcessor& proc)
|
||||
{
|
||||
m_DBQUERYEXT = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
//QsiSXTag* qsi = dynamic_cast<QsiSXTag*>(m_QsiSXTag.get());
|
||||
//global_info->mapDBQueryExt.insert(std::make_pair(qsi->stName.value(), m_DBQUERYEXT));
|
||||
|
||||
}
|
||||
if (proc.optional<PIVOTVIEWEX>())
|
||||
{
|
||||
|
||||
@ -41,6 +41,9 @@
|
||||
#include "PIVOTADDL.h"
|
||||
#include "PIVOTFORMAT.h"
|
||||
#include "PIVOTFRT9.h"
|
||||
#include "PIVOTCACHEDEFINITION.h"
|
||||
#include "DBQUERY.h"
|
||||
#include "SXSRC.h"
|
||||
|
||||
#include "../Biff_records/SXDI.h"
|
||||
#include "../Biff_records/SxView.h"
|
||||
@ -49,6 +52,7 @@
|
||||
#include "../Biff_records/SxFormat.h"
|
||||
#include "../Biff_records/SxDXF.h"
|
||||
#include "../Biff_records/SXViewEx9.h"
|
||||
#include "../Biff_records/SXStreamID.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -93,7 +97,27 @@ const bool PIVOTVIEW::loadContent(BinProcessor& proc)
|
||||
m_PIVOTFRT = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
PIVOTCACHEDEFINITION* pivot_cache = dynamic_cast<PIVOTCACHEDEFINITION*>(global_info_->arPIVOTCACHEDEFINITION[view->iCache].get());
|
||||
if (pivot_cache)
|
||||
{
|
||||
SXStreamID *stream_id = dynamic_cast<SXStreamID*>(pivot_cache->m_SXStreamID.get());
|
||||
indexStream = stream_id->idStm;
|
||||
|
||||
if (m_PIVOTFRT && pivot_cache->m_SXSRC)
|
||||
{
|
||||
SXSRC* src = dynamic_cast<SXSRC*>(pivot_cache->m_SXSRC.get());
|
||||
PIVOTFRT* frt = dynamic_cast<PIVOTFRT*>(m_PIVOTFRT.get());
|
||||
|
||||
PIVOTFRT9* frt9 = frt ? dynamic_cast<PIVOTFRT9*>(frt->m_PIVOTFRT9.get()) : NULL;
|
||||
|
||||
DBQUERY * db_query = dynamic_cast<DBQUERY *>(src->m_source.get());
|
||||
if (frt9)
|
||||
{
|
||||
db_query->m_DBQUERYEXT = frt9->m_DBQUERYEXT;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -105,18 +129,16 @@ int PIVOTVIEW::serialize(std::wostream & strm)
|
||||
SxView* view = dynamic_cast<SxView*>(core->m_SxView.get());
|
||||
if (!view) return 0;
|
||||
|
||||
PIVOTFRT* frt = dynamic_cast<PIVOTFRT*>(m_PIVOTFRT.get());
|
||||
PIVOTEX* pivot_ex = dynamic_cast<PIVOTEX*>(core->m_PIVOTEX.get());
|
||||
PIVOTFRT* frt = dynamic_cast<PIVOTFRT*>(m_PIVOTFRT.get());
|
||||
PIVOTEX* pivot_ex = dynamic_cast<PIVOTEX*>(core->m_PIVOTEX.get());
|
||||
|
||||
PIVOTADDL* addls = frt ? dynamic_cast<PIVOTADDL*>(frt->m_PIVOTADDL.get()) : NULL;
|
||||
PIVOTFRT9* frt9 = frt ? dynamic_cast<PIVOTFRT9*>(frt->m_PIVOTFRT9.get()) : NULL;
|
||||
PIVOTADDL* addls = frt ? dynamic_cast<PIVOTADDL*>(frt->m_PIVOTADDL.get()) : NULL;
|
||||
PIVOTFRT9* frt9 = frt ? dynamic_cast<PIVOTFRT9*>(frt->m_PIVOTFRT9.get()) : NULL;
|
||||
|
||||
SXEx *view_ex = pivot_ex ? dynamic_cast<SXEx*>(pivot_ex->m_SXEx.get()) : NULL;
|
||||
SXViewEx9 *view_ex9 = pivot_ex ? dynamic_cast<SXViewEx9*>(frt9->m_SXViewEx9.get()) : NULL;
|
||||
SXAddl_SXCView_SXDVer10Info *view_ex10 = addls ? dynamic_cast<SXAddl_SXCView_SXDVer10Info*>(addls->m_SXAddl_SXCView_SXDVer10Info.get()) : NULL;
|
||||
SXAddl_SXCView_SXDVer12Info *view_ex12 = addls ? dynamic_cast<SXAddl_SXCView_SXDVer12Info*>(addls->m_SXAddl_SXCView_SXDVer12Info.get()) : NULL;
|
||||
|
||||
indexStream = global_info_->arPivotCacheStream[view->iCache];
|
||||
SXEx *view_ex = pivot_ex ? dynamic_cast<SXEx*>(pivot_ex->m_SXEx.get()) : NULL;
|
||||
SXViewEx9 *view_ex9 = pivot_ex ? dynamic_cast<SXViewEx9*>(frt9->m_SXViewEx9.get()) : NULL;
|
||||
SXAddl_SXCView_SXDVer10Info *view_ex10 = addls ? dynamic_cast<SXAddl_SXCView_SXDVer10Info*>(addls->m_SXAddl_SXCView_SXDVer10Info.get()) : NULL;
|
||||
SXAddl_SXCView_SXDVer12Info *view_ex12 = addls ? dynamic_cast<SXAddl_SXCView_SXDVer12Info*>(addls->m_SXAddl_SXCView_SXDVer12Info.get()) : NULL;
|
||||
|
||||
std::map<int, int>::iterator pFindIndex = global_info_->mapPivotCacheIndex.find(indexStream);
|
||||
|
||||
|
||||
@ -41,7 +41,6 @@
|
||||
#include "../Biff_records/QsiSXTag.h"
|
||||
#include "../Biff_records/DbOrParamQry.h"
|
||||
#include "../Biff_records/SXString.h"
|
||||
#include "../Biff_records/TxtQry.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -80,6 +79,9 @@ const bool QUERYTABLE::loadContent(BinProcessor& proc)
|
||||
if (proc.mandatory<DBQUERYEXT>())
|
||||
{
|
||||
m_DBQUERYEXT = elements_.back(); elements_.pop_back();
|
||||
|
||||
//Qsi* qsi = dynamic_cast<Qsi*>(m_Qsi.get());
|
||||
//global_info->mapDBQueryExt.insert(std::make_pair(qsi->rgchName.value(), m_DBQUERYEXT));
|
||||
}
|
||||
if (proc.optional<SXADDLQSI>())
|
||||
{
|
||||
@ -101,12 +103,15 @@ int QUERYTABLE::serialize(std::wostream & strm)
|
||||
Qsi *info = dynamic_cast<Qsi*>(m_Qsi.get());
|
||||
if (!info) return 0;
|
||||
|
||||
int connectionId = serialize_connection();
|
||||
if (connectionId < 1) return 0;
|
||||
DBQUERY *query = dynamic_cast<DBQUERY*>(m_DBQUERY.get());
|
||||
if (!query) return -1;
|
||||
|
||||
std::wstring name = info->rgchName.value();
|
||||
if (name.empty())
|
||||
name = L"Connection" + std::to_wstring(connectionId);
|
||||
|
||||
query->m_DBQUERYEXT = m_DBQUERYEXT;
|
||||
int connectionId = query->serialize_connection(name, L"");
|
||||
|
||||
if (connectionId < 1) return 0;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
@ -131,100 +136,5 @@ int QUERYTABLE::serialize(std::wostream & strm)
|
||||
|
||||
return 0;
|
||||
}
|
||||
int QUERYTABLE::serialize_connection()
|
||||
{
|
||||
Qsi *info = dynamic_cast<Qsi*>(m_Qsi.get());
|
||||
if (!info) return -1;
|
||||
|
||||
DBQUERY *query = dynamic_cast<DBQUERY*>(m_DBQUERY.get());
|
||||
if (!query) return -1;
|
||||
|
||||
DbOrParamQry* queryOrParam = dynamic_cast<DbOrParamQry*>(query->m_DbQry.get());
|
||||
if (!queryOrParam) return -1;
|
||||
|
||||
DBQUERYEXT *query_ext = dynamic_cast<DBQUERYEXT*>(m_DBQUERYEXT.get());
|
||||
|
||||
int connectionId = ++global_info->connectionId;
|
||||
|
||||
std::wstring name = info->rgchName.value();
|
||||
if (name.empty())
|
||||
name = L"Connection" + std::to_wstring(connectionId);
|
||||
|
||||
CP_XML_WRITER(global_info->connections_stream)
|
||||
{
|
||||
CP_XML_NODE(L"connection")
|
||||
{
|
||||
CP_XML_ATTR(L"id", connectionId);
|
||||
CP_XML_ATTR(L"name", name);
|
||||
|
||||
CP_XML_ATTR(L"type", queryOrParam->query.dbt);
|
||||
//background="1"
|
||||
//saveData="1"
|
||||
|
||||
if (queryOrParam->query.fSavePwd) CP_XML_ATTR(L"savePassword", 1);
|
||||
|
||||
CP_XML_ATTR(L"refreshedVersion", 1);
|
||||
|
||||
if (queryOrParam->query.dbt == 6)
|
||||
{
|
||||
TxtQry *query_txt = dynamic_cast<TxtQry*>(query_ext->m_TxtQry.get());
|
||||
if (query_txt)
|
||||
{
|
||||
CP_XML_NODE(L"textPr")
|
||||
{
|
||||
CP_XML_ATTR(L"sourceFile", query_txt->rgchFile.value());
|
||||
//delimited="0"
|
||||
CP_XML_NODE(L"textFields")
|
||||
{
|
||||
for (size_t i = 0; i < query_txt->rgtxtwf.size(); i++)
|
||||
{
|
||||
CP_XML_NODE(L"textField")
|
||||
{
|
||||
switch(query_txt->rgtxtwf[i].fieldType)
|
||||
{
|
||||
case 0: CP_XML_ATTR(L"type", L"general"); break;
|
||||
case 1: CP_XML_ATTR(L"type", L"text"); break;
|
||||
case 2: CP_XML_ATTR(L"type", L"MDY"); break;
|
||||
case 3: CP_XML_ATTR(L"type", L"DMY"); break;
|
||||
case 4: CP_XML_ATTR(L"type", L"YMD"); break;
|
||||
case 5: CP_XML_ATTR(L"type", L"MYD"); break;
|
||||
case 6: CP_XML_ATTR(L"type", L"DYM"); break;
|
||||
case 7: CP_XML_ATTR(L"type", L"YDM"); break;
|
||||
case 8: CP_XML_ATTR(L"type", L"skip"); break;
|
||||
case 9: CP_XML_ATTR(L"type", L"EMD"); break;
|
||||
}
|
||||
CP_XML_ATTR(L"position", query_txt->rgtxtwf[i].fieldStart);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
int index = 0;
|
||||
|
||||
CP_XML_NODE(L"dbPr")
|
||||
{
|
||||
std::wstring command, connection;
|
||||
for (index = 0; index < queryOrParam->query.cstQuery; index++)
|
||||
{
|
||||
command += query->m_arSXString[index];
|
||||
}
|
||||
|
||||
for (; index < queryOrParam->query.cstQuery + queryOrParam->query.cstOdbcConn; index++)
|
||||
{
|
||||
connection += query->m_arSXString[index];
|
||||
}
|
||||
|
||||
CP_XML_ATTR(L"connection", connection);
|
||||
CP_XML_ATTR(L"command", command);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return connectionId;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
|
||||
@ -48,7 +48,6 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
int serialize(std::wostream & strm);
|
||||
int serialize_connection();
|
||||
|
||||
static const ElementType type = typeQUERYTABLE;
|
||||
|
||||
|
||||
@ -31,8 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLAUTOSORT.h"
|
||||
#include <Logic/Biff_unions/SXADDLSXRULE.h>
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -57,13 +57,7 @@ BaseObjectPtr SXADDLAUTOSORT::clone()
|
||||
// SXADDLAUTOSORT = SXAddl_SXCAutoSort_SXDId SXADDLSXRULE SXAddl_SXCAutoSort_SXDEnd
|
||||
const bool SXADDLAUTOSORT::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCAutoSort_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXADDLSXRULE>();
|
||||
//proc.mandatory<SXAddl_SXCAutoSort_SXDEnd>();
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -35,9 +35,6 @@
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLAUTOSORT union of records
|
||||
class SXADDLAUTOSORT: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLAUTOSORT)
|
||||
@ -49,7 +46,7 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLAUTOSORT;
|
||||
static const ElementType type = typeSXADDLAUTOSORT;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -31,69 +31,110 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLCACHE.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLCACHE12.h>
|
||||
#include <Logic/Biff_unions/SXADDLDBQUERY.h>
|
||||
#include <Logic/Biff_unions/UNKNOWNFRT.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
SXADDLCACHE::SXADDLCACHE()
|
||||
SXADDLCACHE::SXADDLCACHE() : current( &content)
|
||||
{
|
||||
_sxAddl elm(NULL, 0);
|
||||
current->push_back(elm);
|
||||
}
|
||||
|
||||
|
||||
SXADDLCACHE::~SXADDLCACHE()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// SXADDLCACHE = SXAddl_SXCCache_SXDId SXAddl_SXCCache_SXDVer10Info [SXAddl_SXCCache_SXDVerSXMacro]
|
||||
BaseObjectPtr SXADDLCACHE::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXADDLCACHE(*this));
|
||||
}
|
||||
|
||||
|
||||
//[SXADDLCACHE12] [SXADDLDBQUERY] *UNKNOWNFRT SXAddl_SXCCache_SXDEnd
|
||||
// SXADDLCACHE = SXAddl_SXCCache_SXDId SXAddl_SXCCache_SXDVer10Info [SXAddl_SXCCache_SXDVerSXMacro]
|
||||
//[SXADDLCACHE12] [SXADDLDBQUERY] *UNKNOWNFRT SXAddl_SXCCache_SXDEnd
|
||||
const bool SXADDLCACHE::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCCache_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//m_SXCCache_SXDId = elements_.back();
|
||||
//elements_.pop_back();
|
||||
bool result = false;
|
||||
int level = 0;
|
||||
while (true)
|
||||
{
|
||||
CFRecordType::TypeId type = proc.getNextRecordType();
|
||||
|
||||
//if (proc.optional<SXAddl_SXCCache_SXDVer10Info>())
|
||||
//{
|
||||
// m_SXDVer10Info = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXAddl_SXCCache_SXDVerSXMacro>())
|
||||
//{
|
||||
// m_SXDVerSXMacro = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXADDLCACHE12>())
|
||||
//{
|
||||
// m_SXADDLCACHE12 = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXADDLDBQUERY>())
|
||||
//{
|
||||
// m_SXADDLDBQUERY = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//int count = proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
if (type != rt_SXAddl) break;
|
||||
|
||||
proc.optional<SXAddl>();
|
||||
|
||||
//if (proc.optional<SXAddl_SXCCache_SXDEnd>())
|
||||
//{
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
return true;
|
||||
SXAddl* addl = dynamic_cast<SXAddl*>(elements_.back().get());
|
||||
if (!addl) continue;
|
||||
|
||||
if (result && addl->bStartElement)
|
||||
{
|
||||
level++;
|
||||
_sxAddl elm(current, level);
|
||||
|
||||
current = ¤t->back().levels;
|
||||
|
||||
current->push_back(elm);
|
||||
|
||||
elements_.pop_back();
|
||||
continue;
|
||||
}
|
||||
|
||||
result = true;
|
||||
|
||||
if (addl->bEndElement)
|
||||
{
|
||||
elements_.pop_back();
|
||||
|
||||
if (level == 0)
|
||||
break;
|
||||
else level--;
|
||||
|
||||
current = current->back().prev;
|
||||
continue;
|
||||
}
|
||||
if (level == 0)
|
||||
{
|
||||
SXAddl_SXCCache_SXDId* p0 = dynamic_cast<SXAddl_SXCCache_SXDId*>(addl->content.get());
|
||||
if (p0)
|
||||
{
|
||||
m_SXAddl_SXCCache_SXDId = addl->content;
|
||||
}
|
||||
SXAddl_SXCCache_SXDVerUpdInv* p1 = dynamic_cast<SXAddl_SXCCache_SXDVerUpdInv*>(addl->content.get());
|
||||
if (p1)
|
||||
{
|
||||
m_SXAddl_SXCCache_SXDVerUpdInv = addl->content;
|
||||
}
|
||||
SXAddl_SXCCache_SXDVer10Info* p2 = dynamic_cast<SXAddl_SXCCache_SXDVer10Info*>(addl->content.get());
|
||||
if (p2)
|
||||
{
|
||||
m_SXAddl_SXCCache_SXDVer10Info = addl->content;
|
||||
}
|
||||
SXAddl_SXCCache_SXDVerSXMacro* p3 = dynamic_cast<SXAddl_SXCCache_SXDVerSXMacro*>(addl->content.get());
|
||||
if (p3)
|
||||
{
|
||||
m_SXAddl_SXCCache_SXDVerSXMacro = addl->content;
|
||||
}
|
||||
SXAddl_SXCCache_SXDInvRefreshReal* p4 = dynamic_cast<SXAddl_SXCCache_SXDInvRefreshReal*>(addl->content.get());
|
||||
if (p4)
|
||||
{
|
||||
m_SXAddl_SXCCache_SXDVerSXMacro = addl->content;
|
||||
}
|
||||
SXAddl_SXCCache_SXDInfo12* p5 = dynamic_cast<SXAddl_SXCCache_SXDInfo12*>(addl->content.get());
|
||||
if (p5)
|
||||
{
|
||||
m_SXAddl_SXCCache_SXDInfo12 = addl->content;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
current->back().elements.push_back(elements_.back());
|
||||
elements_.pop_back();
|
||||
}
|
||||
current = NULL;
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -35,10 +35,19 @@
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
class SXADDLCACHE: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLCACHE)
|
||||
struct _sxAddl
|
||||
{
|
||||
_sxAddl(std::vector<_sxAddl> *p, int l) : prev(p), level (l) {}
|
||||
|
||||
std::vector<_sxAddl>* prev = NULL;
|
||||
int level = 0;
|
||||
std::vector<BaseObjectPtr> elements;
|
||||
std::vector<_sxAddl> levels;
|
||||
};
|
||||
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLCACHE)
|
||||
public:
|
||||
SXADDLCACHE();
|
||||
~SXADDLCACHE();
|
||||
@ -47,14 +56,17 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLCACHE;
|
||||
|
||||
BaseObjectPtr m_SXCCache_SXDId;
|
||||
BaseObjectPtr m_SXDVer10Info;
|
||||
BaseObjectPtr m_SXDVerSXMacro;
|
||||
BaseObjectPtr m_SXADDLDBQUERY;
|
||||
BaseObjectPtr m_SXADDLCACHE12;
|
||||
static const ElementType type = typeSXADDLCACHE;
|
||||
|
||||
BiffStructurePtr m_SXAddl_SXCCache_SXDId;
|
||||
BiffStructurePtr m_SXAddl_SXCCache_SXDVerUpdInv;
|
||||
BiffStructurePtr m_SXAddl_SXCCache_SXDVer10Info;
|
||||
BiffStructurePtr m_SXAddl_SXCCache_SXDVerSXMacro;
|
||||
BiffStructurePtr m_SXAddl_SXCCache_SXDInvRefreshReal;
|
||||
BiffStructurePtr m_SXAddl_SXCCache_SXDInfo12;
|
||||
|
||||
std::vector<_sxAddl> content;
|
||||
std::vector<_sxAddl> *current;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,10 +31,12 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLCACHE12.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLCACHEFIELD.h>
|
||||
#include <Logic/Biff_unions/SXADDLSXDH.h>
|
||||
#include <Logic/Biff_unions/SXADDLSXMGS.h>
|
||||
#include "SXADDLCACHEFIELD.h"
|
||||
#include "SXADDLSXDH.h"
|
||||
#include "SXADDLSXMGS.h"
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -50,57 +52,17 @@ SXADDLCACHE12::~SXADDLCACHE12()
|
||||
}
|
||||
|
||||
|
||||
// SXADDLCACHE12 = SXAddl_SXCCache_SXDVerUpdInv SXAddl_SXCCache_SXDInfo12 SXAddl_SXCCache_SXDInvRefreshReal
|
||||
BaseObjectPtr SXADDLCACHE12::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXADDLCACHE12(*this));
|
||||
}
|
||||
|
||||
|
||||
// SXADDLCACHE12 = SXAddl_SXCCache_SXDVerUpdInv SXAddl_SXCCache_SXDInfo12 SXAddl_SXCCache_SXDInvRefreshReal
|
||||
// *SXADDLCACHEFIELD [SXADDLSXDH] [SXADDLSXMGS] SXAddl_SXCCache_SXDVerUpdInv
|
||||
const bool SXADDLCACHE12::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCCache_SXDVerUpdInv>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//m_SXAddl_SXCCache_SXDVerUpdInv = elements_.back();
|
||||
//elements_.pop_back();
|
||||
|
||||
//if (proc.optional<SXAddl_SXCCache_SXDInfo12>())
|
||||
//{
|
||||
// m_SXAddl_SXCCache_SXDInfo12 = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXAddl_SXCCache_SXDInvRefreshReal>())
|
||||
//{
|
||||
// m_SXAddl_SXCCache_SXDInvRefreshReal = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//
|
||||
//int count = proc.repeated<SXADDLCACHEFIELD>(0, 0);
|
||||
//while(count > 0)
|
||||
//{
|
||||
// m_arSXADDLCACHEFIELD.push_back(elements_.front());
|
||||
// elements_.pop_front(); count--;
|
||||
//}
|
||||
//if (proc.optional<SXADDLSXDH>())
|
||||
//{
|
||||
// m_SXADDLSXDH = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXADDLSXMGS>())
|
||||
//{
|
||||
// m_SXADDLSXMGS = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXAddl_SXCCache_SXDVerUpdInv>())
|
||||
//{
|
||||
// m_SXAddl_SXCCache_SXDVerUpdInvS = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -48,15 +48,6 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLCACHE12;
|
||||
|
||||
BaseObjectPtr m_SXAddl_SXCCache_SXDVerUpdInv;
|
||||
BaseObjectPtr m_SXAddl_SXCCache_SXDVerUpdInvS;
|
||||
BaseObjectPtr m_SXADDLSXMGS;
|
||||
BaseObjectPtr m_SXADDLSXDH;
|
||||
BaseObjectPtr m_SXAddl_SXCCache_SXDInfo12;
|
||||
BaseObjectPtr m_SXAddl_SXCCache_SXDInvRefreshReal;
|
||||
|
||||
std::vector<BaseObjectPtr> m_arSXADDLCACHEFIELD;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,8 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLCACHEFIELD.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLCACHEITEM.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -46,115 +46,10 @@ SXADDLCACHEFIELD::SXADDLCACHEFIELD()
|
||||
SXADDLCACHEFIELD::~SXADDLCACHEFIELD()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
class Parenthesis_SXADDLCACHEFIELD_1: public ABNFParenthesis
|
||||
BaseObjectPtr SXADDLCACHEFIELD::clone()
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(Parenthesis_SXADDLCACHEFIELD_1)
|
||||
public:
|
||||
BaseObjectPtr clone()
|
||||
{
|
||||
return BaseObjectPtr(new Parenthesis_SXADDLCACHEFIELD_1(*this));
|
||||
}
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheField_SXDCaption>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
return true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
class Parenthesis_SXADDLCACHEFIELD_3: public ABNFParenthesis
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(Parenthesis_SXADDLCACHEFIELD_3)
|
||||
public:
|
||||
BaseObjectPtr clone()
|
||||
{
|
||||
return BaseObjectPtr(new Parenthesis_SXADDLCACHEFIELD_3(*this));
|
||||
}
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheField_SXDPropName>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
return true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class Parenthesis_SXADDLCACHEFIELD_2: public ABNFParenthesis
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(Parenthesis_SXADDLCACHEFIELD_2)
|
||||
public:
|
||||
BaseObjectPtr clone()
|
||||
{
|
||||
return BaseObjectPtr(new Parenthesis_SXADDLCACHEFIELD_2(*this));
|
||||
}
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheField_SXDProperty>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.optional<Parenthesis_SXADDLCACHEFIELD_3>();
|
||||
return true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class Parenthesis_SXADDLCACHEFIELD_4: public ABNFParenthesis
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(Parenthesis_SXADDLCACHEFIELD_4)
|
||||
public:
|
||||
BaseObjectPtr clone()
|
||||
{
|
||||
return BaseObjectPtr(new Parenthesis_SXADDLCACHEFIELD_4(*this));
|
||||
}
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheField_SXDIfdbMpMapCount>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCCacheField_SXDIfdbMempropMap>();
|
||||
return true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class Parenthesis_SXADDLCACHEFIELD_5: public ABNFParenthesis
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(Parenthesis_SXADDLCACHEFIELD_5)
|
||||
public:
|
||||
BaseObjectPtr clone()
|
||||
{
|
||||
return BaseObjectPtr(new Parenthesis_SXADDLCACHEFIELD_5(*this));
|
||||
}
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheField_SXDSxrmitmCount>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<SXADDLCACHEITEM>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCCacheItem_SXDEnd>();
|
||||
return true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
return BaseObjectPtr(new SXADDLCACHEFIELD(*this));
|
||||
}
|
||||
|
||||
|
||||
// SXADDLCACHEFIELD = SXAddl_SXCCacheField_SXDId *Continue_SxaddlSxString
|
||||
@ -162,26 +57,10 @@ public:
|
||||
// [SXAddl_SXCCacheField_SXDProperty [SXAddl_SXCCacheField_SXDPropName *Continue_SxaddlSxString]]
|
||||
// [SXAddl_SXCCacheField_SXDIfdbMpMapCount SXAddl_SXCCacheField_SXDIfdbMempropMap]
|
||||
// [SXAddl_SXCCacheField_SXDSxrmitmCount *SXADDLCACHEITEM SXAddl_SXCCacheItem_SXDEnd]
|
||||
BaseObjectPtr SXADDLCACHEFIELD::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXADDLCACHEFIELD(*this));
|
||||
}
|
||||
|
||||
|
||||
// SXAddl_SXCCacheField_SXDEnd
|
||||
const bool SXADDLCACHEFIELD::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheField_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//proc.optional<Parenthesis_SXADDLCACHEFIELD_1>();
|
||||
//proc.optional<Parenthesis_SXADDLCACHEFIELD_2>();
|
||||
//proc.optional<Parenthesis_SXADDLCACHEFIELD_4>();
|
||||
//proc.optional<Parenthesis_SXADDLCACHEFIELD_5>();
|
||||
//proc.optional<SXAddl_SXCCacheField_SXDEnd>();
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLCACHEITEM.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -46,67 +46,35 @@ SXADDLCACHEITEM::~SXADDLCACHEITEM()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
class Parenthesis_SXADDLCACHEITEM_1: public ABNFParenthesis
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(Parenthesis_SXADDLCACHEITEM_1)
|
||||
public:
|
||||
BaseObjectPtr clone()
|
||||
{
|
||||
return BaseObjectPtr(new Parenthesis_SXADDLCACHEITEM_1(*this));
|
||||
}
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheItem_SXDSxrmitmDisp>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
return true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class Parenthesis_SXADDLCACHEITEM_2: public ABNFParenthesis
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(Parenthesis_SXADDLCACHEITEM_2)
|
||||
public:
|
||||
BaseObjectPtr clone()
|
||||
{
|
||||
return BaseObjectPtr(new Parenthesis_SXADDLCACHEITEM_2(*this));
|
||||
}
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheItem_SXDItmMpMapCount>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCCacheItem_SXDItmMpropMap>();
|
||||
return true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// SXADDLCACHEITEM = SXAddl_SXCCacheItem_SXDId [SXAddl_SXCCacheItem_SXDSxrmitmDisp *Continue_SxaddlSxString]
|
||||
BaseObjectPtr SXADDLCACHEITEM::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXADDLCACHEITEM(*this));
|
||||
}
|
||||
|
||||
|
||||
// SXADDLCACHEITEM = SXAddl_SXCCacheItem_SXDId [SXAddl_SXCCacheItem_SXDSxrmitmDisp *Continue_SxaddlSxString]
|
||||
// *(SXAddl_SXCCacheItem_SXDItmMpMapCount SXAddl_SXCCacheItem_SXDItmMpropMap)
|
||||
const bool SXADDLCACHEITEM::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheItem_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.optional<Parenthesis_SXADDLCACHEITEM_1>();
|
||||
//proc.repeated<Parenthesis_SXADDLCACHEITEM_2>(0, 0);
|
||||
bool result = false;
|
||||
while (true)
|
||||
{
|
||||
CFRecordType::TypeId type = proc.getNextRecordType();
|
||||
|
||||
return true;
|
||||
if (type == rt_SXAddl)
|
||||
{
|
||||
result = true;
|
||||
proc.optional<SXAddl>();
|
||||
|
||||
SXAddl* addl = dynamic_cast<SXAddl*>(elements_.back().get());
|
||||
if (!addl) continue;
|
||||
|
||||
if (addl->bEndElement)
|
||||
break;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLCACHEITEM union of records
|
||||
class SXADDLCACHEITEM: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLCACHEITEM)
|
||||
@ -49,10 +47,7 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLCACHEITEM;
|
||||
|
||||
|
||||
|
||||
static const ElementType type = typeSXADDLCACHEITEM;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLCALCMEMBER.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -56,16 +56,26 @@ BaseObjectPtr SXADDLCALCMEMBER::clone()
|
||||
// SXADDLCALCMEMBER = (SXAddl_SXCView_SXDCalcMember [SXAddl_SXCView_SXDCalcMemString *Continue_SxaddlSxString])
|
||||
const bool SXADDLCALCMEMBER::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCView_SXDCalcMember>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCView_SXDCalcMemString>())
|
||||
//{
|
||||
// int count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
bool result = false;
|
||||
while (true)
|
||||
{
|
||||
CFRecordType::TypeId type = proc.getNextRecordType();
|
||||
|
||||
return true;
|
||||
if (type == rt_SXAddl)
|
||||
{
|
||||
result = true;
|
||||
proc.optional<SXAddl>();
|
||||
|
||||
SXAddl* addl = dynamic_cast<SXAddl*>(elements_.back().get());
|
||||
if (!addl) continue;
|
||||
|
||||
if (addl->bEndElement)
|
||||
break;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLCALCMEMBER union of records
|
||||
class SXADDLCALCMEMBER: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLCALCMEMBER)
|
||||
|
||||
@ -31,8 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLCONDFMT.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLSXRULE.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -57,14 +57,8 @@ BaseObjectPtr SXADDLCONDFMT::clone()
|
||||
// SXADDLCONDFMT = SXAddl_SXCSXCondFmt_SXDSXCondFmt *SXADDLSXRULE SXAddl_SXCSXCondFmt_SXDEnd
|
||||
const bool SXADDLCONDFMT::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCSXCondFmt_SXDSXCondFmt>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<SXADDLSXRULE>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCSXCondFmt_SXDEnd>();
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLCONDFMT union of records
|
||||
class SXADDLCONDFMT: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLCONDFMT)
|
||||
@ -49,9 +47,7 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLCONDFMT;
|
||||
|
||||
|
||||
static const ElementType type = typeSXADDLCONDFMT;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,8 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLCONDFMTS.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLCONDFMT.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -56,15 +56,9 @@ BaseObjectPtr SXADDLCONDFMTS::clone()
|
||||
|
||||
// SXADDLCONDFMTS = SXAddl_SXCSXCondFmts_SXDId *SXADDLCONDFMT SXAddl_SXCSXCondFmts_SXDEnd
|
||||
const bool SXADDLCONDFMTS::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCSXCondFmts_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<SXADDLCONDFMT>(0, 0);
|
||||
//proc.optional<SXAddl_SXCSXCondFmts_SXDEnd>();
|
||||
{
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -48,7 +48,6 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLCONDFMTS;
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,7 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLDBQUERY.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -61,41 +62,26 @@ SXADDLDBQUERY = [SXAddl_SXCQuery_SXDXMLSource *Continue_SxaddlSxString]
|
||||
*/
|
||||
const bool SXADDLDBQUERY::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//int count = 0;
|
||||
//
|
||||
//if(proc.optional<SXAddl_SXCQuery_SXDXMLSource>())
|
||||
//{
|
||||
// m_XMLSource = elements_.back();
|
||||
// elements_.pop_back();
|
||||
bool result = false;
|
||||
while (true)
|
||||
{
|
||||
CFRecordType::TypeId type = proc.getNextRecordType();
|
||||
|
||||
// count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCQuery_SXDSrcDataFile>())
|
||||
//{
|
||||
// m_SrcDataFile = elements_.back();
|
||||
// elements_.pop_back();
|
||||
if (type == rt_SXAddl)
|
||||
{
|
||||
result = true;
|
||||
proc.optional<SXAddl>();
|
||||
|
||||
// count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCQuery_SXDSrcConnFile>())
|
||||
//{
|
||||
// m_SrcConnFile = elements_.back();
|
||||
// elements_.pop_back();
|
||||
|
||||
// count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCQuery_SXDReconnCond>())
|
||||
//{
|
||||
// m_ReconnCond = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
|
||||
//if(proc.mandatory<SXAddl_SXCQuery_SXDEnd>())
|
||||
//{
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
|
||||
return m_XMLSource || m_SrcConnFile || m_SrcDataFile || m_ReconnCond;
|
||||
SXAddl* addl = dynamic_cast<SXAddl*>(elements_.back().get());
|
||||
if (!addl) continue;
|
||||
|
||||
if (addl->bEndElement)
|
||||
break;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLDBQUERY union of records
|
||||
class SXADDLDBQUERY: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLDBQUERY)
|
||||
@ -51,12 +49,6 @@ public:
|
||||
|
||||
static const ElementType type = typeSXADDLDBQUERY;
|
||||
|
||||
BaseObjectPtr m_SrcConnFile;
|
||||
BaseObjectPtr m_SrcDataFile;
|
||||
BaseObjectPtr m_XMLSource;
|
||||
BaseObjectPtr m_ReconnCond;
|
||||
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,8 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLFIELD.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLFIELD12.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -60,23 +60,8 @@ SXADDLFIELD = [SXAddl_SXCField_SXDId *Continue_SxaddlSxString SXAddl_SXCField_SX
|
||||
*/
|
||||
const bool SXADDLFIELD::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(proc.optional<SXAddl_SXCField_SXDId>())
|
||||
//{
|
||||
// int count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
// if (proc.mandatory<SXAddl_SXCField_SXDVer10Info>())
|
||||
// {
|
||||
// }
|
||||
// if (proc.mandatory<SXAddl_SXCField_SXDEnd>())
|
||||
// {
|
||||
// }
|
||||
// if (proc.optional<SXADDLFIELD12>())
|
||||
// {
|
||||
// }
|
||||
// return true;
|
||||
//}
|
||||
return false;
|
||||
|
||||
//return proc.optional<SXADDLFIELD12>();
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLFIELD union of records
|
||||
class SXADDLFIELD: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLFIELD)
|
||||
@ -50,7 +48,6 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLFIELD;
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,9 +31,10 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLFIELD12.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLAUTOSORT.h>
|
||||
#include <Logic/Biff_unions/UNKNOWNFRT.h>
|
||||
#include "SXADDLAUTOSORT.h"
|
||||
#include "UNKNOWNFRT.h"
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -63,25 +64,7 @@ SXADDLFIELD12 = SXAddl_SXCField12_SXDId *Continue_SxaddlSxString SXAddl_SXCField
|
||||
*/
|
||||
const bool SXADDLFIELD12::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCField12_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCField12_SXDVer12Info>();
|
||||
//proc.mandatory<SXAddl_SXCField12_SXDVerUpdInv>();
|
||||
//if(proc.optional<SXAddl_SXCField12_SXDMemberCaption>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//proc.optional<SXAddl_SXCField12_SXDAutoshow>();
|
||||
//proc.optional<SXAddl_SXCField12_SXDISXTH>();
|
||||
//proc.optional<SXADDLAUTOSORT>();
|
||||
//proc.mandatory<SXAddl_SXCField12_SXDVerUpdInv>();
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCField12_SXDEnd>();
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLFIELD12 union of records
|
||||
class SXADDLFIELD12: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLFIELD12)
|
||||
@ -49,8 +47,7 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLFIELD12;
|
||||
|
||||
static const ElementType type = typeSXADDLFIELD12;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,8 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLGROUP.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/UNKNOWNFRT.h>
|
||||
#include "UNKNOWNFRT.h"
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -60,17 +60,7 @@ SXADDLGROUP = SXAddl_SXCGroup_SXDId *Continue_SxaddlSxString SXAddl_SXCGroup_SXD
|
||||
*/
|
||||
const bool SXADDLGROUP::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCGroup_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCGroup_SXDGrpInfo>();
|
||||
//proc.repeated<SXAddl_SXCGroup_SXDMember>(0, 0);
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCGroup_SXDEnd>();
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLGROUP union of records
|
||||
class SXADDLGROUP: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLGROUP)
|
||||
@ -50,7 +48,6 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLGROUP;
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,9 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLGRPLEVEL.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLGROUP.h>
|
||||
#include <Logic/Biff_unions/UNKNOWNFRT.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -61,17 +60,7 @@ SXADDLGRPLEVEL = SXAddl_SXCGrpLevel_SXDId *Continue_SxaddlSxString SXAddl_SXCGrp
|
||||
*/
|
||||
const bool SXADDLGRPLEVEL::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCGrpLevel_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCGrpLevel_SXDGrpLevelInfo>();
|
||||
//proc.repeated<SXADDLGROUP>(0, 0);
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCGrpLevel_SXDEnd>();
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -35,9 +35,6 @@
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLGRPLEVEL union of records
|
||||
class SXADDLGRPLEVEL: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLGRPLEVEL)
|
||||
@ -50,7 +47,6 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLGRPLEVEL;
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,9 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLHIERARCHY.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLGRPLEVEL.h>
|
||||
#include <Logic/Biff_unions/UNKNOWNFRT.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -75,69 +74,8 @@ SXADDLHIERARCHY = SXAddl_SXCHierarchy_SXDId *Continue_SxaddlSxString *SXAddl_SXC
|
||||
*/
|
||||
const bool SXADDLHIERARCHY::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCHierarchy_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//proc.repeated<SXAddl_SXCHierarchy_SXDProperty>(0, 0);
|
||||
//proc.repeated<SXADDLGRPLEVEL>(0, 0);
|
||||
//proc.optional<SXAddl_SXCHierarchy_SXDVerUpdInv>();
|
||||
return false;
|
||||
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDSXSetParentUnique>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//proc.optional<SXAddl_SXCHierarchy_SXDIconSet>();
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDUserCaption>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.optional<SXAddl_SXCHierarchy_SXDVerUpdInv>();
|
||||
//proc.repeated<SXAddl_SXCHierarchy_SXDUserCaption>(0, 0);
|
||||
//proc.optional<SXAddl_SXCHierarchy_SXDVerUpdInv>();
|
||||
//proc.optional<SXAddl_SXCHierarchy_SXDInfo12>();
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDDisplayFolder>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDMeasureGrp>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDParentKPI>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDKPIValue>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDKPIGoal>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDKPIStatus>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDKPITrend>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDKPIWeight>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDKPITime>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
|
||||
//proc.mandatory<SXAddl_SXCHierarchy_SXDEnd>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLHIERARCHY union of records
|
||||
class SXADDLHIERARCHY: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLHIERARCHY)
|
||||
@ -50,7 +48,6 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLHIERARCHY;
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,19 +31,17 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLQSI.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLDBQUERY.h>
|
||||
#include <Logic/Biff_unions/UNKNOWNFRT.h>
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
SXADDLQSI::SXADDLQSI()
|
||||
SXADDLQSI::SXADDLQSI() : current( &content)
|
||||
{
|
||||
_sxAddl elm(NULL, 0);
|
||||
current->push_back(elm);
|
||||
}
|
||||
|
||||
|
||||
SXADDLQSI::~SXADDLQSI()
|
||||
{
|
||||
}
|
||||
@ -54,19 +52,64 @@ BaseObjectPtr SXADDLQSI::clone()
|
||||
return BaseObjectPtr(new SXADDLQSI(*this));
|
||||
}
|
||||
|
||||
|
||||
// SXADDLQSI = SXAddl_SXCQsi_SXDId SXADDLDBQUERY *UNKNOWNFRT SXAddl_SXCQsi_SXDEnd
|
||||
const bool SXADDLQSI::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCQsi_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXADDLDBQUERY>();
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCQsi_SXDEnd>();
|
||||
bool result = false;
|
||||
int level = 0;
|
||||
|
||||
while (true)
|
||||
{
|
||||
CFRecordType::TypeId type = proc.getNextRecordType();
|
||||
|
||||
return true;
|
||||
if (type != rt_SXAddl) break;
|
||||
|
||||
proc.optional<SXAddl>();
|
||||
|
||||
SXAddl* addl = dynamic_cast<SXAddl*>(elements_.back().get());
|
||||
if (!addl) continue;
|
||||
|
||||
if (result && addl->bStartElement)
|
||||
{
|
||||
level++;
|
||||
_sxAddl elm(current, level);
|
||||
|
||||
current = ¤t->back().levels;
|
||||
|
||||
current->push_back(elm);
|
||||
|
||||
elements_.pop_back();
|
||||
continue;
|
||||
}
|
||||
|
||||
result = true;
|
||||
|
||||
if (addl->bEndElement)
|
||||
{
|
||||
elements_.pop_back();
|
||||
|
||||
if (level == 0)
|
||||
break;
|
||||
else level--;
|
||||
|
||||
current = current->back().prev;
|
||||
continue;
|
||||
}
|
||||
if (level == 0)
|
||||
{
|
||||
SXAddl_SXCQsi_SXDId* p0 = dynamic_cast<SXAddl_SXCQsi_SXDId*>(addl->content.get());
|
||||
if (p0)
|
||||
{
|
||||
m_SXAddl_SXCQsi_SXDId = addl->content;
|
||||
}
|
||||
}
|
||||
|
||||
current->back().elements.push_back(elements_.back());
|
||||
elements_.pop_back();
|
||||
}
|
||||
|
||||
current = NULL;
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,11 +36,19 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLQSI union of records
|
||||
class SXADDLQSI: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLQSI)
|
||||
{
|
||||
struct _sxAddl
|
||||
{
|
||||
_sxAddl(std::vector<_sxAddl> *p, int l) : prev(p), level (l) {}
|
||||
|
||||
std::vector<_sxAddl>* prev = NULL;
|
||||
int level = 0;
|
||||
std::vector<BaseObjectPtr> elements;
|
||||
std::vector<_sxAddl> levels;
|
||||
};
|
||||
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLQSI)
|
||||
public:
|
||||
SXADDLQSI();
|
||||
~SXADDLQSI();
|
||||
@ -49,8 +57,12 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLQSI;
|
||||
|
||||
static const ElementType type = typeSXADDLQSI;
|
||||
|
||||
BiffStructurePtr m_SXAddl_SXCQsi_SXDId;
|
||||
|
||||
std::vector<_sxAddl> content;
|
||||
std::vector<_sxAddl> *current;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLSXDH.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -56,14 +56,28 @@ BaseObjectPtr SXADDLSXDH::clone()
|
||||
// SXADDLSXDH = SXAddl_SXCSXDH_SXDId *SXAddl_SXCSXDH_SXDSxdh SXAddl_SXCSXDH_SXDEnd
|
||||
const bool SXADDLSXDH::loadContent(BinProcessor& proc)
|
||||
{
|
||||
bool result = false;
|
||||
while (true)
|
||||
{
|
||||
CFRecordType::TypeId type = proc.getNextRecordType();
|
||||
|
||||
//if(!proc.mandatory<SXAddl_SXCSXDH_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<SXAddl_SXCSXDH_SXDSxdh>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCSXDH_SXDEnd>();
|
||||
return true;
|
||||
if (type == rt_SXAddl)
|
||||
{
|
||||
result = true;
|
||||
proc.optional<SXAddl>();
|
||||
|
||||
SXAddl* addl = dynamic_cast<SXAddl*>(elements_.back().get());
|
||||
if (!addl) continue;
|
||||
|
||||
if (addl->bEndElement)
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLSXDH union of records
|
||||
class SXADDLSXDH: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLSXDH)
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLSXFILT.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -56,15 +56,28 @@ BaseObjectPtr SXADDLSXFILT::clone()
|
||||
// SXADDLSXFILT = SXAddl_SXCSXfilt_SXDId SXAddl_SXCSXfilt_SXDSXfilt [SXAddl_SXCSXfilt_SXDSXItm] SXAddl_SXCSXfilt_SXDEnd
|
||||
const bool SXADDLSXFILT::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCSXfilt_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCSXfilt_SXDSXfilt>();
|
||||
//proc.optional<SXAddl_SXCSXfilt_SXDSXItm>();
|
||||
//proc.mandatory<SXAddl_SXCSXfilt_SXDEnd>();
|
||||
bool result = false;
|
||||
while (true)
|
||||
{
|
||||
CFRecordType::TypeId type = proc.getNextRecordType();
|
||||
|
||||
return true;
|
||||
if (type == rt_SXAddl)
|
||||
{
|
||||
result = true;
|
||||
proc.optional<SXAddl>();
|
||||
|
||||
SXAddl* addl = dynamic_cast<SXAddl*>(elements_.back().get());
|
||||
if (!addl) continue;
|
||||
|
||||
if (addl->bEndElement)//?? SXAddl_SXCView_SXDEnd
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -35,9 +35,6 @@
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLSXFILT union of records
|
||||
class SXADDLSXFILT: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLSXFILT)
|
||||
@ -49,7 +46,7 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLSXFILT;
|
||||
static const ElementType type = typeSXADDLSXFILT;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLSXFILTER12.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -65,40 +65,28 @@ SXADDLSXFILTER12 = SXAddl_SXCSXFilter12_SXDId SXAddl_SXCSXFilter12_SXDSXFilter
|
||||
*/
|
||||
const bool SXADDLSXFILTER12::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCSXFilter12_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCSXFilter12_SXDSXFilter>();
|
||||
bool result = false;
|
||||
while (true)
|
||||
{
|
||||
CFRecordType::TypeId type = proc.getNextRecordType();
|
||||
|
||||
//if(proc.optional<SXAddl_SXCSXFilter12_SXDCaption>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCSXFilter12_SXDSXFilterDesc>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCSXFilter12_SXDSXFilterValue1>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCSXFilter12_SXDSXFilterValue2>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCSXFilter12_SXDXlsFilter>();
|
||||
//if(proc.optional<SXAddl_SXCSXFilter12_SXDXlsFilterValue1>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCSXFilter12_SXDXlsFilterValue2>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCSXFilter12_SXDEnd>();
|
||||
if (type == rt_SXAddl)
|
||||
{
|
||||
result = true;
|
||||
proc.optional<SXAddl>();
|
||||
|
||||
return true;
|
||||
SXAddl* addl = dynamic_cast<SXAddl*>(elements_.back().get());
|
||||
if (!addl) continue;
|
||||
|
||||
if (addl->bEndElement)
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,8 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLSXFILTERS12.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLSXFILTER12.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -57,14 +57,8 @@ BaseObjectPtr SXADDLSXFILTERS12::clone()
|
||||
// SXADDLSXFILTERS12 = SXAddl_SXCSXFilters12_SXDId *SXADDLSXFILTER12 SXAddl_SXCSXFilters12_SXDEnd
|
||||
const bool SXADDLSXFILTERS12::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCSXFilters12_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<SXADDLSXFILTER12>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCSXFilters12_SXDEnd>();
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -50,7 +50,6 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLSXFILTERS12;
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,8 +31,9 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLSXMG.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/UNKNOWNFRT.h>
|
||||
#include "UNKNOWNFRT.h"
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -47,48 +48,17 @@ SXADDLSXMG::~SXADDLSXMG()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
class Parenthesis_SXADDLSXMG_1: public ABNFParenthesis
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(Parenthesis_SXADDLSXMG_1)
|
||||
public:
|
||||
BaseObjectPtr clone()
|
||||
{
|
||||
return BaseObjectPtr(new Parenthesis_SXADDLSXMG_1(*this));
|
||||
}
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCSXMg_SXDUserCaption>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
return true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
// SXADDLSXMG = SXAddl_SXCSXMg_SXDId *Continue_SxaddlSxString
|
||||
BaseObjectPtr SXADDLSXMG::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXADDLSXMG(*this));
|
||||
}
|
||||
|
||||
|
||||
// SXADDLSXMG = SXAddl_SXCSXMg_SXDId *Continue_SxaddlSxString
|
||||
// [SXAddl_SXCSXMg_SXDUserCaption *Continue_SxaddlSxString] *UNKNOWNFRT SXAddl_SXCSXMg_SXDEnd
|
||||
const bool SXADDLSXMG::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCSXMg_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//proc.optional<Parenthesis_SXADDLSXMG_1>();
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCSXMg_SXDEnd>();
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -35,9 +35,6 @@
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLSXMG union of records
|
||||
class SXADDLSXMG: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLSXMG)
|
||||
@ -50,7 +47,6 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLSXMG;
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,9 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLSXMGS.h"
|
||||
#include <Logic/Biff_unions/SXADDLSXMG.h>
|
||||
#include <Logic/Biff_unions/UNKNOWNFRT.h>
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -58,15 +57,8 @@ BaseObjectPtr SXADDLSXMGS::clone()
|
||||
// SXADDLSXMGS = SXAddl_SXCSXMgs_SXDId *SXADDLSXMG *SXAddl_SXCSXMgs_SXDMGrpSXDHMap *UNKNOWNFRT SXAddl_SXCSXMgs_SXDEnd
|
||||
const bool SXADDLSXMGS::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCSXMgs_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<SXADDLSXMG>(0, 0);
|
||||
//proc.repeated<SXAddl_SXCSXMgs_SXDMGrpSXDHMap>(0, 0);
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCSXMgs_SXDEnd>();
|
||||
return true;
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -35,9 +35,6 @@
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLSXMGS union of records
|
||||
class SXADDLSXMGS: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLSXMGS)
|
||||
@ -50,7 +47,6 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLSXMGS;
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,8 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "SXADDLSXRULE.h"
|
||||
#include <Logic/Biff_records/SXAddl.h>
|
||||
#include <Logic/Biff_unions/SXADDLSXFILT.h>
|
||||
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -57,15 +57,7 @@ BaseObjectPtr SXADDLSXRULE::clone()
|
||||
// SXADDLSXRULE = SXAddl_SXCSXrule_SXDId SXAddl_SXCSXrule_SXDSXrule *SXADDLSXFILT SXAddl_SXCSXrule_SXDEnd
|
||||
const bool SXADDLSXRULE::loadContent(BinProcessor& proc)
|
||||
{
|
||||
//if(!proc.mandatory<SXAddl_SXCSXrule_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCSXrule_SXDSXrule>();
|
||||
//proc.repeated<SXADDLSXFILT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCSXrule_SXDEnd>();
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLSXRULE union of records
|
||||
class SXADDLSXRULE: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLSXRULE)
|
||||
@ -50,7 +48,7 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLSXRULE;
|
||||
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -109,7 +109,9 @@ public:
|
||||
short idPivotCache;
|
||||
std::map<int, int> mapPivotCacheIndex; //streamIdCache, write index order
|
||||
std::unordered_map<int, BaseObjectPtr> mapPivotCacheStream;//streamIdCache, object
|
||||
std::vector<int> arPivotCacheStream; //order streamIdCache = iCache
|
||||
|
||||
std::vector<BaseObjectPtr> arPIVOTCACHEDEFINITION;
|
||||
std::vector<BaseObjectPtr> arDConn;
|
||||
|
||||
std::vector<bool> arPivotCacheFields;
|
||||
std::vector<bool> arPivotCacheFieldShortSize;
|
||||
|
||||
@ -179,11 +179,11 @@ const bool GlobalsSubstream::loadContent(BinProcessor& proc)
|
||||
if (proc.optional<BOF>())
|
||||
{
|
||||
BOF *bof = dynamic_cast<BOF*>(elements_.back().get());
|
||||
proc.getGlobalWorkbookInfo()->Version = bof->vers;
|
||||
if (proc.getGlobalWorkbookInfo()->Version < 0x0600)
|
||||
global_info_->Version = bof->vers;
|
||||
if (global_info_->Version < 0x0600)
|
||||
{
|
||||
|
||||
proc.getGlobalWorkbookInfo()->CodePage = 0; //???
|
||||
global_info_->CodePage = 0; //???
|
||||
}
|
||||
}
|
||||
}break;
|
||||
@ -199,10 +199,10 @@ const bool GlobalsSubstream::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if (proc.optional<FilePass>())
|
||||
{
|
||||
if (( proc.getGlobalWorkbookInfo()->decryptor) &&
|
||||
( proc.getGlobalWorkbookInfo()->decryptor->IsVerify() == false))
|
||||
if (( global_info_->decryptor) &&
|
||||
( global_info_->decryptor->IsVerify() == false))
|
||||
{
|
||||
if (!proc.getGlobalWorkbookInfo()->decryptor->SetPassword(L"VelvetSweatshop"))
|
||||
if (!global_info_->decryptor->SetPassword(L"VelvetSweatshop"))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -281,7 +281,7 @@ const bool GlobalsSubstream::loadContent(BinProcessor& proc)
|
||||
if ((CodePage_) && (CodePage_->cv != 0/* && CodePage_->cv != 1200*/))
|
||||
code_page_ = CodePage_->cv;
|
||||
|
||||
proc.getGlobalWorkbookInfo()->CodePage = code_page_;
|
||||
global_info_->CodePage = code_page_;
|
||||
}
|
||||
}break;
|
||||
case rt_Window1:
|
||||
@ -314,7 +314,7 @@ const bool GlobalsSubstream::loadContent(BinProcessor& proc)
|
||||
int countryDef = Country_->iCountryDef;
|
||||
int countryWinIni = Country_->iCountryWinIni;
|
||||
|
||||
proc.getGlobalWorkbookInfo()->CodePage;
|
||||
global_info_->CodePage;
|
||||
}
|
||||
}
|
||||
}break;
|
||||
@ -333,8 +333,8 @@ const bool GlobalsSubstream::loadContent(BinProcessor& proc)
|
||||
|
||||
if (fmts)
|
||||
{
|
||||
proc.getGlobalWorkbookInfo()->cellStyleDxfs_count = fmts->m_arDXF.size();
|
||||
proc.getGlobalWorkbookInfo()->m_arFonts = &fmts->m_arFonts;
|
||||
global_info_->cellStyleDxfs_count = fmts->m_arDXF.size();
|
||||
global_info_->m_arFonts = &fmts->m_arFonts;
|
||||
}
|
||||
}
|
||||
//else
|
||||
@ -347,8 +347,8 @@ const bool GlobalsSubstream::loadContent(BinProcessor& proc)
|
||||
// fmts->concatinate(fmts_add);
|
||||
// elements_.pop_back();
|
||||
|
||||
// proc.getGlobalWorkbookInfo()->cellStyleDxfs_count = fmts->m_arDXF.size();
|
||||
// proc.getGlobalWorkbookInfo()->m_arFonts = &fmts->m_arFonts;
|
||||
// global_info_->cellStyleDxfs_count = fmts->m_arDXF.size();
|
||||
// global_info_->m_arFonts = &fmts->m_arFonts;
|
||||
// }
|
||||
//}
|
||||
}
|
||||
@ -358,7 +358,7 @@ const bool GlobalsSubstream::loadContent(BinProcessor& proc)
|
||||
count = proc.repeated<PIVOTCACHEDEFINITION>(0, 0);
|
||||
while(count > 0)
|
||||
{
|
||||
m_arPIVOTCACHEDEFINITION.insert(m_arPIVOTCACHEDEFINITION.begin(), elements_.back());
|
||||
global_info_->arPIVOTCACHEDEFINITION.insert(global_info_->arPIVOTCACHEDEFINITION.begin(), elements_.back());
|
||||
elements_.pop_back();
|
||||
count--;
|
||||
}
|
||||
@ -441,7 +441,7 @@ const bool GlobalsSubstream::loadContent(BinProcessor& proc)
|
||||
m_SHAREDSTRINGS = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
proc.getGlobalWorkbookInfo()->startAddedSharedStrings = shared_strings.size_;
|
||||
global_info_->startAddedSharedStrings = shared_strings.size_;
|
||||
}
|
||||
}break;
|
||||
case rt_ExtSST:
|
||||
@ -468,7 +468,16 @@ const bool GlobalsSubstream::loadContent(BinProcessor& proc)
|
||||
FeatHdr feat_hdr(true);
|
||||
proc.repeated(feat_hdr, 0, 0);
|
||||
}break;
|
||||
case rt_DConn: proc.repeated<DConn>(0, 0); break;
|
||||
case rt_DConn:
|
||||
{
|
||||
count = proc.repeated<DConn>(0, 0);
|
||||
while(count > 0)
|
||||
{
|
||||
global_info_->arDConn.insert(global_info_->arDConn.begin(), elements_.back());
|
||||
elements_.pop_back();
|
||||
count--;
|
||||
}
|
||||
}break;
|
||||
case rt_Theme:
|
||||
{
|
||||
if (proc.optional<THEME>())
|
||||
@ -518,18 +527,18 @@ const bool GlobalsSubstream::loadContent(BinProcessor& proc)
|
||||
}
|
||||
}
|
||||
|
||||
if (proc.getGlobalWorkbookInfo()->CodePage == 0)
|
||||
if (global_info_->CodePage == 0)
|
||||
{ //try from charsets ... todooo make local set on each record (aka Label)
|
||||
//from ixfe -> ifnt from xf -> arFonts
|
||||
for (std::map<int, int>::iterator it = proc.getGlobalWorkbookInfo()->fonts_charsets.begin()
|
||||
; proc.getGlobalWorkbookInfo()->CodePage == 0 && it != proc.getGlobalWorkbookInfo()->fonts_charsets.end()
|
||||
for (std::map<int, int>::iterator it = global_info_->fonts_charsets.begin()
|
||||
; global_info_->CodePage == 0 && it != global_info_->fonts_charsets.end()
|
||||
; it++)
|
||||
{
|
||||
for (int i = 0 ; i < sizeof(aCodePages) / 2; i++)
|
||||
{
|
||||
if (aCodePages[i][0] == it->first)
|
||||
{
|
||||
proc.getGlobalWorkbookInfo()->CodePage = aCodePages[i][1];
|
||||
global_info_->CodePage = aCodePages[i][1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -78,7 +78,8 @@ public:
|
||||
std::vector<BaseObjectPtr> m_arUserBView;
|
||||
std::vector<BaseObjectPtr> m_arBUNDLESHEET;
|
||||
std::vector<BaseObjectPtr> m_arSUPBOOK;
|
||||
std::vector<BaseObjectPtr> m_arPIVOTCACHEDEFINITION;
|
||||
//std::vector<BaseObjectPtr> m_arPIVOTCACHEDEFINITION; -> GlobalWorkbookInfo
|
||||
//std::vector<BaseObjectPtr> m_arDConn;
|
||||
|
||||
std::vector<BiffStructurePtr> m_arHFPictureDrawing;
|
||||
|
||||
|
||||
@ -466,7 +466,7 @@ void WorksheetSubstream::LoadHFPicture()
|
||||
{
|
||||
if (m_arHFPicture.empty()) return;
|
||||
|
||||
int current_size_hf = 0, j = 0;
|
||||
size_t current_size_hf = 0, j = 0;
|
||||
for ( size_t i = 0; i < m_arHFPicture.size(); i++)
|
||||
{
|
||||
HFPicture* hf = dynamic_cast<HFPicture*>(m_arHFPicture[i].get());
|
||||
|
||||
@ -404,7 +404,7 @@ void XlsConverter::convert(XLS::WorkbookStreamObject* woorkbook)
|
||||
{
|
||||
if (woorkbook == NULL) return;
|
||||
|
||||
convert((XLS::GlobalsSubstream*)woorkbook->m_GlobalsSubstream.get());
|
||||
convert(dynamic_cast<XLS::GlobalsSubstream*>(woorkbook->m_GlobalsSubstream.get()));
|
||||
|
||||
int count_sheets = 0, count_chart_sheets = 0;
|
||||
for (size_t i = 0 ; i < woorkbook->m_arWorksheetSubstream.size(); i++)
|
||||
@ -434,7 +434,6 @@ void XlsConverter::convert(XLS::WorkbookStreamObject* woorkbook)
|
||||
|
||||
xlsx_context->end_table();
|
||||
}
|
||||
|
||||
for (std::list<XLS::BaseObjectPtr>::iterator it = woorkbook->elements_.begin(); it != woorkbook->elements_.end(); it++)
|
||||
{
|
||||
convert(it->get());
|
||||
@ -570,50 +569,50 @@ void XlsConverter::convert (XLS::WorksheetSubstream* sheet)
|
||||
}
|
||||
}
|
||||
|
||||
void XlsConverter::convert(XLS::GlobalsSubstream* global)
|
||||
void XlsConverter::convert(XLS::GlobalsSubstream* globals)
|
||||
{
|
||||
if (global == NULL) return;
|
||||
if (globals == NULL) return;
|
||||
|
||||
convert((XLS::FORMATTING*)global->m_Formating.get());
|
||||
convert((XLS::FORMATTING*)globals->m_Formating.get());
|
||||
|
||||
convert((XLS::THEME*)global->m_THEME.get());
|
||||
convert((XLS::THEME*)globals->m_THEME.get());
|
||||
|
||||
convert((XLS::SHAREDSTRINGS*)global->m_SHAREDSTRINGS.get());
|
||||
convert((XLS::SHAREDSTRINGS*)globals->m_SHAREDSTRINGS.get());
|
||||
|
||||
for (size_t i = 0 ; i < global->m_arLBL.size(); i++)
|
||||
for (size_t i = 0 ; i < globals->m_arLBL.size(); i++)
|
||||
{
|
||||
convert((XLS::LBL*)global->m_arLBL[i].get());
|
||||
convert((XLS::LBL*)globals->m_arLBL[i].get());
|
||||
}
|
||||
|
||||
for (size_t i = 0 ; i < global->m_arMSODRAWINGGROUP.size(); i++)
|
||||
for (size_t i = 0 ; i < globals->m_arMSODRAWINGGROUP.size(); i++)
|
||||
{
|
||||
convert((XLS::MSODRAWINGGROUP*)global->m_arMSODRAWINGGROUP[i].get());
|
||||
convert((XLS::MSODRAWINGGROUP*)globals->m_arMSODRAWINGGROUP[i].get());
|
||||
}
|
||||
|
||||
for (size_t i = 0 ; i < global->m_arHFPictureDrawing.size(); i++)
|
||||
for (size_t i = 0 ; i < globals->m_arHFPictureDrawing.size(); i++)
|
||||
{
|
||||
convert((ODRAW::OfficeArtDgContainer*)global->m_arHFPictureDrawing[i].get());
|
||||
convert((ODRAW::OfficeArtDgContainer*)globals->m_arHFPictureDrawing[i].get());
|
||||
}
|
||||
|
||||
global->serialize_format(xlsx_context->workbook_format());
|
||||
globals->serialize_format(xlsx_context->workbook_format());
|
||||
|
||||
for (size_t i = 0 ; i < global->m_arWindow1.size(); i++)
|
||||
for (size_t i = 0 ; i < globals->m_arWindow1.size(); i++)
|
||||
{
|
||||
global->m_arWindow1[i]->serialize(xlsx_context->workbook_views());
|
||||
globals->m_arWindow1[i]->serialize(xlsx_context->workbook_views());
|
||||
}
|
||||
for (size_t i = 0 ; i < global->m_arUserBView.size(); i++)
|
||||
for (size_t i = 0 ; i < globals->m_arUserBView.size(); i++)
|
||||
{
|
||||
global->m_arUserBView[i]->serialize(xlsx_context->custom_views());
|
||||
globals->m_arUserBView[i]->serialize(xlsx_context->custom_views());
|
||||
}
|
||||
|
||||
for (size_t i = 0 ; i < global->m_arSUPBOOK.size(); i++)
|
||||
for (size_t i = 0 ; i < globals->m_arSUPBOOK.size(); i++)
|
||||
{
|
||||
convert((XLS::SUPBOOK*)global->m_arSUPBOOK[i].get());
|
||||
convert((XLS::SUPBOOK*)globals->m_arSUPBOOK[i].get());
|
||||
}
|
||||
|
||||
for (size_t i = 0 ; i < global->m_arPIVOTCACHEDEFINITION.size(); i++)
|
||||
for (size_t i = 0 ; i < xls_global_info->arPIVOTCACHEDEFINITION.size(); i++)
|
||||
{
|
||||
convert((XLS::PIVOTCACHEDEFINITION*)global->m_arPIVOTCACHEDEFINITION[i].get());
|
||||
convert((XLS::PIVOTCACHEDEFINITION*)xls_global_info->arPIVOTCACHEDEFINITION[i].get());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1149,7 +1149,13 @@ namespace SimpleTypes
|
||||
|
||||
virtual std::wstring ToString () const
|
||||
{
|
||||
return _T("always");
|
||||
switch(this->m_eValue)
|
||||
{
|
||||
case updatelinksAlways: return _T("always");break;
|
||||
case updatelinksNever: return _T("never");break;
|
||||
case updatelinksUserSet: return _T("userSet");break;
|
||||
default: return _T("always");
|
||||
}
|
||||
}
|
||||
|
||||
SimpleType_FromString (EUpdateLinksType)
|
||||
|
||||
@ -62,9 +62,24 @@ namespace OOX
|
||||
virtual void toXML(NSStringUtils::CStringBuilder& writer) const
|
||||
{
|
||||
writer.WriteString(_T("<workbookPr"));
|
||||
WritingStringNullableAttrInt(L"defaultThemeVersion", m_oDefaultThemeVersion, m_oDefaultThemeVersion->GetValue());
|
||||
WritingStringNullableAttrBool(L"allowRefreshQuery", m_oAllowRefreshQuery);
|
||||
WritingStringNullableAttrBool(L"autoCompressPictures", m_oAutoCompressPictures);
|
||||
WritingStringNullableAttrBool(L"backupFile", m_oBackupFile);
|
||||
WritingStringNullableAttrBool(L"checkCompatibility", m_oCheckCompatibility);
|
||||
WritingStringNullableAttrBool(L"codeName", m_oCodeName);
|
||||
WritingStringNullableAttrBool(L"date1904", m_oDate1904);
|
||||
WritingStringNullableAttrBool(L"dateCompatibility", m_oDateCompatibility);
|
||||
WritingStringNullableAttrInt(L"defaultThemeVersion", m_oDefaultThemeVersion, m_oDefaultThemeVersion->GetValue());
|
||||
WritingStringNullableAttrBool(L"filterPrivacy", m_oFilterPrivacy);
|
||||
WritingStringNullableAttrBool(L"hidePivotFieldList", m_oHidePivotFieldList);
|
||||
WritingStringNullableAttrBool(L"promptedSolutions", m_oPromptedSolutions);
|
||||
WritingStringNullableAttrBool(L"publishItems", m_oPublishItems);
|
||||
WritingStringNullableAttrBool(L"refreshAllConnections", m_oRefreshAllConnections);
|
||||
WritingStringNullableAttrBool(L"showBorderUnselectedTables", m_oShowBorderUnselectedTables);
|
||||
WritingStringNullableAttrBool(L"showInkAnnotation", m_oShowInkAnnotation);
|
||||
WritingStringNullableAttrBool(L"showObjects", m_oShowObjects);
|
||||
WritingStringNullableAttrBool(L"showPivotChartFilter", m_oShowPivotChartFilter);
|
||||
WritingStringNullableAttrString(L"updateLinks", m_oUpdateLinks, m_oUpdateLinks->ToString());
|
||||
writer.WriteString(_T("/>"));
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
|
||||
Reference in New Issue
Block a user