mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-11 02:16:02 +08:00
Compare commits
38 Commits
core/devel
...
core/devel
| Author | SHA1 | Date | |
|---|---|---|---|
| 77f8ab6875 | |||
| 6fc6f9ead3 | |||
| 270c1fa2ac | |||
| f76a03fab8 | |||
| 09e6d3f760 | |||
| 90d8055bcb | |||
| 01ba3b4182 | |||
| ddb67584b8 | |||
| 38ce5586bb | |||
| f6d9ce83f0 | |||
| 03edd40850 | |||
| 9ff87b3c6b | |||
| 645cbef1ef | |||
| 02238f7eea | |||
| 907e00a3ac | |||
| 2470bfd335 | |||
| 3ae52bd221 | |||
| 227d4f18d6 | |||
| 36bdbad685 | |||
| 525b828540 | |||
| f64ee80a1a | |||
| f6402813c4 | |||
| 224ac7d6e2 | |||
| 2e2bd8989d | |||
| 8f434efb95 | |||
| 244dafb02b | |||
| 149a1bdbd5 | |||
| a79d9041bc | |||
| 3954c42602 | |||
| 29dc0aee32 | |||
| d805972d6d | |||
| 549d5a46a6 | |||
| 9e867be756 | |||
| 771bf2d55c | |||
| 3c58cd96fc | |||
| ec4f4fe476 | |||
| 634509ae28 | |||
| 8197fb8900 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -20,6 +20,7 @@ Common/3dParty/v8/win_32
|
||||
Common/3dParty/v8/linux_64
|
||||
Common/3dParty/v8/linux_32
|
||||
Common/3dParty/v8/mac_64
|
||||
Common/3dParty/openssl/openssl
|
||||
**/core_build
|
||||
**/Release
|
||||
**/Debug
|
||||
|
||||
15
.travis.yml
15
.travis.yml
@ -1 +1,14 @@
|
||||
language: cpp
|
||||
language: cpp
|
||||
compiler: gcc
|
||||
dist: trusty
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- p7zip-full
|
||||
script:
|
||||
- exit 0
|
||||
# Build fails anyway. See explanation in
|
||||
# https://github.com/ONLYOFFICE/core/pull/29#issuecomment-306773327
|
||||
- cd Common/3dParty && ./make.sh
|
||||
- cd ../../
|
||||
- make
|
||||
@ -1115,6 +1115,16 @@ namespace NSBinPptxRW
|
||||
m_pWriter->WriteString(str);
|
||||
}
|
||||
|
||||
std::wstring s = L"<Relationship Id=\"rId" + std::to_wstring(m_lNextRelsID++) +
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\" Target=\"../theme/theme" +
|
||||
std::to_wstring(nIndexTheme + 1) + L".xml\"/>";
|
||||
m_pWriter->WriteString(s);
|
||||
}
|
||||
void CRelsGenerator::StartNotesMaster(int nIndexTheme)
|
||||
{
|
||||
m_pWriter->WriteString(_T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"));
|
||||
m_pWriter->WriteString(_T("<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">"));
|
||||
|
||||
std::wstring s = L"<Relationship Id=\"rId" + std::to_wstring(m_lNextRelsID++) +
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\" Target=\"../theme/theme" +
|
||||
std::to_wstring(nIndexTheme + 1) + L".xml\"/>";
|
||||
@ -1130,7 +1140,7 @@ namespace NSBinPptxRW
|
||||
std::to_wstring(nIndexTheme + 1) + L".xml\"/>";
|
||||
m_pWriter->WriteString(str);
|
||||
}
|
||||
void CRelsGenerator::StartSlide(int nIndexSlide, int nIndexLayout)
|
||||
void CRelsGenerator::StartSlide(int nIndexSlide, int nIndexLayout, int nIndexNotes)
|
||||
{
|
||||
m_pWriter->WriteString(_T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"));
|
||||
m_pWriter->WriteString(_T("<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">"));
|
||||
@ -1140,12 +1150,15 @@ namespace NSBinPptxRW
|
||||
std::to_wstring(nIndexLayout + 1) + L".xml\"/>";
|
||||
m_pWriter->WriteString(str);
|
||||
|
||||
str = L"<Relationship Id=\"rId" + std::to_wstring(m_lNextRelsID++) +
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide\" Target=\"../notesSlides/notesSlide" +
|
||||
std::to_wstring(nIndexSlide + 1) + L".xml\"/>";
|
||||
if (nIndexNotes >= 0)
|
||||
{
|
||||
str = L"<Relationship Id=\"rId" + std::to_wstring(m_lNextRelsID++) +
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide\" Target=\"../notesSlides/notesSlide" +
|
||||
std::to_wstring(nIndexNotes + 1) + L".xml\"/>";
|
||||
}
|
||||
m_pWriter->WriteString(str);
|
||||
}
|
||||
void CRelsGenerator::StartNote(int nIndexSlide)
|
||||
void CRelsGenerator::StartNotes(int nIndexSlide)
|
||||
{
|
||||
m_pWriter->WriteString(L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>");
|
||||
m_pWriter->WriteString(L"<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">");
|
||||
|
||||
@ -407,8 +407,9 @@ namespace NSBinPptxRW
|
||||
|
||||
void StartMaster (int nIndexTheme, const _slideMasterInfo& oInfo);
|
||||
void StartLayout (int nIndexTheme);
|
||||
void StartSlide (int nIndexSlide, int nIndexLayout);
|
||||
void StartNote (int nIndexSlide);
|
||||
void StartSlide (int nIndexSlide, int nIndexLayout, int nIndexNotes);
|
||||
void StartNotes (int nIndexSlide);
|
||||
void StartNotesMaster(int nIndexTheme);
|
||||
|
||||
void WriteMasters (int nCount);
|
||||
void WriteThemes (int nCount);
|
||||
|
||||
@ -162,8 +162,7 @@ namespace PPTX2EditorAdvanced
|
||||
}
|
||||
|
||||
// записываем все слайды
|
||||
size_t nCount = presentation->sldIdLst.size();
|
||||
for (size_t i = 0; i < nCount; ++i)
|
||||
for (size_t i = 0; i < presentation->sldIdLst.size(); ++i)
|
||||
{
|
||||
std::wstring rId = presentation->sldIdLst[i].rid.get();
|
||||
smart_ptr<PPTX::Slide> slide = ((*presentation)[rId]).smart_dynamic_cast<PPTX::Slide>();
|
||||
|
||||
@ -58,10 +58,12 @@ namespace NSBinPptxRW
|
||||
|
||||
std::vector<PPTX::Slide> m_arSlides;
|
||||
std::vector<LONG> m_arSlides_Layout;
|
||||
std::vector<LONG> m_arSlides_Notes;
|
||||
|
||||
std::vector<PPTX::NotesMaster> m_arNotesMasters;
|
||||
std::vector<PPTX::NotesSlide> m_arNotesSlides;
|
||||
std::vector<LONG> m_arNotesSlides_Master;
|
||||
std::vector<LONG> m_arNotesMasters_Theme;
|
||||
|
||||
PPTX::Presentation m_oPresentation;
|
||||
PPTX::TableStyles m_oTableStyles;
|
||||
@ -175,10 +177,9 @@ namespace NSBinPptxRW
|
||||
|
||||
std::map<BYTE, LONG>::iterator pPair;
|
||||
|
||||
// writer
|
||||
CXmlWriter oXmlWriter;
|
||||
|
||||
// первым делом определим количество необходимого. если хоть одно из этих чисел - ноль, то ппту не корректный
|
||||
// первым делом определим количество необходимого. если хоть одно из этих чисел - ноль, то ппту не корректный
|
||||
LONG nCountThemes = 0;
|
||||
LONG nCountMasters = 0;
|
||||
LONG nCountLayouts = 0;
|
||||
@ -214,7 +215,7 @@ namespace NSBinPptxRW
|
||||
return;
|
||||
}
|
||||
|
||||
// теперь создадим массивы для рельсов
|
||||
// теперь создадим массивы для рельсов
|
||||
for (LONG i = 0; i < nCountMasters; ++i)
|
||||
{
|
||||
_slideMasterInfo elm;
|
||||
@ -226,8 +227,11 @@ namespace NSBinPptxRW
|
||||
}
|
||||
for (LONG i = 0; i < nCountSlides; ++i)
|
||||
m_arSlides_Layout.push_back(0);
|
||||
|
||||
for (LONG i = 0; i < nCountSlides; ++i)
|
||||
m_arSlides_Notes.push_back(-1);
|
||||
|
||||
// ThemeRels
|
||||
// ThemeRels
|
||||
pPair = m_mainTables.find(NSMainTables::ThemeRels);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
@ -242,7 +246,7 @@ namespace NSBinPptxRW
|
||||
}
|
||||
}
|
||||
|
||||
// нужно проставить всем шаблонам мастер.
|
||||
// нужно проставить всем шаблонам мастер.
|
||||
for (LONG i = 0; i < nCountMasters; ++i)
|
||||
{
|
||||
size_t _countL = m_arSlideMasters_Theme[i].m_arLayouts.size();
|
||||
@ -252,7 +256,7 @@ namespace NSBinPptxRW
|
||||
}
|
||||
}
|
||||
|
||||
// готово, теперь нужно слайдам проставить шаблоны
|
||||
// готово, теперь нужно слайдам проставить шаблоны
|
||||
pPair = m_mainTables.find(NSMainTables::SlideRels);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
@ -271,11 +275,46 @@ namespace NSBinPptxRW
|
||||
m_arSlides_Layout[index++] = m_oReader.GetULong();
|
||||
}
|
||||
}
|
||||
pPair = m_mainTables.find(NSMainTables::SlideNotesRels);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
m_oReader.Seek(pPair->second);
|
||||
m_oReader.Skip(6); // type + len + start attr
|
||||
|
||||
// теперь нужно удалить все themes, которые не ведут на мастерслайд
|
||||
size_t index =0;
|
||||
while (true)
|
||||
{
|
||||
BYTE _at = m_oReader.GetUChar_TypeNode();
|
||||
if (_at == NSBinPptxRW::g_nodeAttributeEnd)
|
||||
break;
|
||||
|
||||
//m_arSlides_Layout[_at] = m_oReader.GetULong(); тут прописан не индекс, а тип - смотри - oBinaryWriter.WriteInt1(0, oBinaryWriter.m_pCommon->m_oSlide_Layout_Rels[i]);
|
||||
if (index < m_arSlides_Notes.size())
|
||||
m_arSlides_Notes[index++] = m_oReader.GetULong();
|
||||
}
|
||||
}
|
||||
|
||||
pPair = m_mainTables.find(NSMainTables::NotesMastersRels);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
m_oReader.Seek(pPair->second);
|
||||
m_oReader.Skip(6); // type + len + start attr
|
||||
|
||||
size_t index =0;
|
||||
while (true)
|
||||
{
|
||||
BYTE _at = m_oReader.GetUChar_TypeNode();
|
||||
if (_at == NSBinPptxRW::g_nodeAttributeEnd)
|
||||
break;
|
||||
|
||||
m_arNotesMasters_Theme.push_back( m_oReader.GetULong());
|
||||
}
|
||||
}
|
||||
// теперь нужно удалить все themes, которые не ведут на мастерслайды
|
||||
std::vector<LONG> arThemes;
|
||||
std::vector<LONG> arThemesDst;
|
||||
std::vector<bool> arThemesSave;
|
||||
|
||||
for (LONG i = 0; i < nCountThemes; ++i)
|
||||
{
|
||||
arThemes.push_back(i);
|
||||
@ -286,6 +325,11 @@ namespace NSBinPptxRW
|
||||
{
|
||||
arThemesSave[m_arSlideMasters_Theme[i].m_lThemeIndex] = true;
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < m_arNotesMasters_Theme.size(); i++)
|
||||
{
|
||||
arThemesSave[m_arNotesMasters_Theme[i]] = true;
|
||||
}
|
||||
LONG lCurrectTheme = 0;
|
||||
for (LONG i = 0; i < nCountMasters; ++i)
|
||||
{
|
||||
@ -298,9 +342,8 @@ namespace NSBinPptxRW
|
||||
for (LONG i = 0; i < nCountMasters; ++i)
|
||||
{
|
||||
m_arSlideMasters_Theme[i].m_lThemeIndex = arThemesDst[i];
|
||||
}
|
||||
|
||||
// themes
|
||||
}
|
||||
// themes
|
||||
pPair = m_mainTables.find(NSMainTables::Themes);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
@ -343,7 +386,7 @@ namespace NSBinPptxRW
|
||||
}
|
||||
}
|
||||
|
||||
// slideMasters
|
||||
// slideMasters
|
||||
pPair = m_mainTables.find(NSMainTables::SlideMasters);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
@ -396,7 +439,7 @@ namespace NSBinPptxRW
|
||||
}
|
||||
}
|
||||
|
||||
// slideLayouts
|
||||
// slideLayouts
|
||||
pPair = m_mainTables.find(NSMainTables::SlideLayouts);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
@ -431,8 +474,99 @@ namespace NSBinPptxRW
|
||||
m_oReader.m_pRels->SaveRels(pathFileRels.GetPath());
|
||||
}
|
||||
}
|
||||
// notes
|
||||
pPair = m_mainTables.find(NSMainTables::NotesSlides);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
m_oReader.Seek(pPair->second);
|
||||
LONG lCount = m_oReader.GetLong();
|
||||
|
||||
// slides
|
||||
if ( lCount > 0 )
|
||||
{
|
||||
OOX::CPath pathFolder = m_strDstFolder + FILE_SEPARATOR_STR + _T("ppt") + FILE_SEPARATOR_STR + _T("notesSlides");
|
||||
OOX::CPath pathFolderRels = pathFolder + FILE_SEPARATOR_STR + _T("_rels");
|
||||
|
||||
NSDirectory::CreateDirectory (pathFolder.GetPath());
|
||||
NSDirectory::CreateDirectory (pathFolderRels.GetPath());
|
||||
|
||||
for (LONG i = 0; i < lCount; ++i)
|
||||
{
|
||||
PPTX::NotesSlide elm;
|
||||
m_arNotesSlides.push_back(elm);
|
||||
|
||||
m_oReader.m_pRels->Clear();
|
||||
|
||||
size_t indexSlide = 0;
|
||||
for (indexSlide = 0; indexSlide < m_arSlides_Notes.size(); indexSlide++)
|
||||
{//todooo -> make map
|
||||
if (m_arSlides_Notes[indexSlide] == i)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_oReader.m_pRels->StartNotes(indexSlide);
|
||||
|
||||
m_arNotesSlides[i].fromPPTY(&m_oReader);
|
||||
|
||||
m_oReader.m_pRels->CloseRels();
|
||||
|
||||
std::wstring strNotesXml = L"notesSlide" + std::to_wstring(i + 1) + L".xml";
|
||||
oXmlWriter.ClearNoAttack();
|
||||
|
||||
m_arNotesSlides[i].toXmlWriter(&oXmlWriter);
|
||||
|
||||
OOX::CPath pathFile = pathFolder + FILE_SEPARATOR_STR + strNotesXml;
|
||||
oXmlWriter.SaveToFile(pathFile.GetPath());
|
||||
|
||||
OOX::CPath pathFileRels = pathFolderRels + FILE_SEPARATOR_STR + strNotesXml + _T(".rels");
|
||||
m_oReader.m_pRels->SaveRels(pathFileRels.GetPath());
|
||||
}
|
||||
}
|
||||
}
|
||||
// noteMasters
|
||||
pPair = m_mainTables.find(NSMainTables::NotesMasters);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
m_oReader.Seek(pPair->second);
|
||||
LONG lCount = m_oReader.GetLong();
|
||||
|
||||
if (lCount > 0 || m_arNotesSlides.size() > 0)//один элемент
|
||||
{
|
||||
OOX::CPath pathFolder = m_strDstFolder + FILE_SEPARATOR_STR + _T("ppt") + FILE_SEPARATOR_STR + _T("notesMasters");
|
||||
OOX::CPath pathFolderRels = pathFolder + FILE_SEPARATOR_STR + _T("_rels");
|
||||
|
||||
NSDirectory::CreateDirectory(pathFolder.GetPath());
|
||||
NSDirectory::CreateDirectory(pathFolderRels.GetPath());
|
||||
|
||||
PPTX::NotesMaster elm;
|
||||
m_arNotesMasters.push_back(elm);
|
||||
|
||||
m_oReader.m_pRels->Clear();
|
||||
m_oReader.m_pRels->StartNotesMaster(m_arSlideMasters_Theme.size());
|
||||
|
||||
if (lCount > 0)
|
||||
{
|
||||
m_arNotesMasters.back().fromPPTY(&m_oReader);
|
||||
m_oReader.m_pRels->CloseRels();
|
||||
|
||||
std::wstring strMasterNotesXml = L"notesMaster1.xml";
|
||||
oXmlWriter.ClearNoAttack();
|
||||
|
||||
m_arNotesMasters.back().toXmlWriter(&oXmlWriter);
|
||||
|
||||
OOX::CPath pathFile = pathFolder + FILE_SEPARATOR_STR + strMasterNotesXml;
|
||||
oXmlWriter.SaveToFile(pathFile.GetPath());
|
||||
|
||||
OOX::CPath pathFileRels = pathFolderRels + FILE_SEPARATOR_STR + strMasterNotesXml + _T(".rels");
|
||||
m_oReader.m_pRels->SaveRels(pathFileRels.GetPath());
|
||||
}
|
||||
else
|
||||
{
|
||||
CreateDefaultNotesMasters(m_arSlideMasters_Theme.size());
|
||||
}
|
||||
}
|
||||
}
|
||||
// slides
|
||||
int nComment = 1;
|
||||
pPair = m_mainTables.find(NSMainTables::Slides);
|
||||
if (m_mainTables.end() != pPair)
|
||||
@ -452,7 +586,7 @@ namespace NSBinPptxRW
|
||||
m_arSlides.push_back(elm);
|
||||
|
||||
m_oReader.m_pRels->Clear();
|
||||
m_oReader.m_pRels->StartSlide(i, m_arSlides_Layout[i]);
|
||||
m_oReader.m_pRels->StartSlide(i, m_arSlides_Layout[i], m_arSlides_Notes[i]);
|
||||
m_arSlides[i].fromPPTY(&m_oReader);
|
||||
|
||||
if (m_arSlides[i].comments.is_init())
|
||||
@ -488,71 +622,6 @@ namespace NSBinPptxRW
|
||||
m_oReader.m_pRels->SaveRels(pathFileRels.GetPath());
|
||||
}
|
||||
}
|
||||
|
||||
if (false)
|
||||
{
|
||||
// noteMasters
|
||||
pPair = m_mainTables.find(NSMainTables::NotesMasters);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
m_oReader.Seek(pPair->second);
|
||||
LONG lCount = m_oReader.GetLong();
|
||||
|
||||
for (LONG i = 0; i < lCount; ++i)
|
||||
{
|
||||
PPTX::NotesMaster elm;
|
||||
m_arNotesMasters.push_back(elm);
|
||||
m_arNotesMasters[i].fromPPTY(&m_oReader);
|
||||
}
|
||||
}
|
||||
|
||||
// notes
|
||||
pPair = m_mainTables.find(NSMainTables::NotesSlides);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
m_oReader.Seek(pPair->second);
|
||||
LONG lCount = m_oReader.GetLong();
|
||||
|
||||
for (LONG i = 0; i < lCount; ++i)
|
||||
{
|
||||
PPTX::NotesSlide elm;
|
||||
m_arNotesSlides.push_back(elm);
|
||||
m_arNotesSlides[i].fromPPTY(&m_oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// create default
|
||||
CreateDefaultNotesMasters((int)m_arThemes.size() + 1);
|
||||
CreateDefaultNote();
|
||||
|
||||
OOX::CPath pathFolder = m_strDstFolder + FILE_SEPARATOR_STR + _T("ppt") + FILE_SEPARATOR_STR + _T("notesSlides");
|
||||
OOX::CPath pathFolderRels = pathFolder + FILE_SEPARATOR_STR + _T("_rels");
|
||||
|
||||
NSDirectory::CreateDirectory (pathFolder.GetPath());
|
||||
NSDirectory::CreateDirectory (pathFolderRels.GetPath());
|
||||
|
||||
LONG lCount = (LONG)m_arSlides.size();
|
||||
for (LONG i = 0; i < lCount; ++i)
|
||||
{
|
||||
m_oReader.m_pRels->Clear();
|
||||
m_oReader.m_pRels->StartNote(i);
|
||||
m_oReader.m_pRels->CloseRels();
|
||||
|
||||
std::wstring strMasterXml = L"notesSlide" + std::to_wstring(i + 1) + L".xml";
|
||||
oXmlWriter.ClearNoAttack();
|
||||
|
||||
m_oDefaultNote.toXmlWriter(&oXmlWriter);
|
||||
|
||||
OOX::CPath pathFile = pathFolder + FILE_SEPARATOR_STR + strMasterXml;
|
||||
oXmlWriter.SaveToFile(pathFile.GetPath());
|
||||
|
||||
OOX::CPath pathFileRels = pathFolderRels + FILE_SEPARATOR_STR + strMasterXml + _T(".rels");
|
||||
m_oReader.m_pRels->SaveRels(pathFileRels.GetPath());
|
||||
}
|
||||
}
|
||||
|
||||
if (false)
|
||||
{
|
||||
// app
|
||||
@ -595,15 +664,13 @@ namespace NSBinPptxRW
|
||||
m_oViewProps.fromPPTY(&m_oReader);
|
||||
}
|
||||
|
||||
//CreateDefaultPresProps();
|
||||
}
|
||||
else
|
||||
{
|
||||
// create default
|
||||
CreateDefaultApp();
|
||||
CreateDefaultCore();
|
||||
//CreateDefaultPresProps();
|
||||
//CreateDefaultTableStyles();
|
||||
|
||||
CreateDefaultViewProps();
|
||||
|
||||
// presProps
|
||||
@ -760,15 +827,13 @@ namespace NSBinPptxRW
|
||||
pContentTypes->Registration(L"application/vnd.openxmlformats-officedocument.extended-properties+xml", L"/docProps", L"app.xml");
|
||||
|
||||
// themes
|
||||
for (LONG i = 0; i < (LONG)m_arThemes.size(); ++i)
|
||||
for (size_t i = 0; i < m_arThemes.size(); ++i)
|
||||
{
|
||||
pContentTypes->Registration(L"application/vnd.openxmlformats-officedocument.theme+xml", L"/ppt/theme", L"theme" + std::to_wstring(i + 1) + L".xml");
|
||||
}
|
||||
if (true)
|
||||
{
|
||||
// notes theme
|
||||
pContentTypes->Registration(L"application/vnd.openxmlformats-officedocument.theme+xml", L"/ppt/theme", L"theme" + std::to_wstring((int)m_arThemes.size() + 1) + L".xml");
|
||||
// notes master
|
||||
if (!m_arNotesMasters.empty())
|
||||
{
|
||||
pContentTypes->Registration(L"application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml", L"/ppt/notesMasters", L"notesMaster1.xml");
|
||||
}
|
||||
|
||||
@ -785,13 +850,13 @@ namespace NSBinPptxRW
|
||||
}
|
||||
|
||||
// slides
|
||||
for (LONG i = 0; i < nCountSlides; ++i)
|
||||
for (size_t i = 0; i < m_arSlides.size(); ++i)
|
||||
{
|
||||
pContentTypes->Registration(L"application/vnd.openxmlformats-officedocument.presentationml.slide+xml", L"/ppt/slides", L"slide" + std::to_wstring(i + 1) + L".xml");
|
||||
}
|
||||
|
||||
// notes
|
||||
for (LONG i = 0; i < nCountSlides; ++i)
|
||||
for (size_t i = 0; i < m_arNotesSlides.size(); ++i)
|
||||
{
|
||||
pContentTypes->Registration(L"application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml", L"/ppt/notesSlides", L"notesSlide" + std::to_wstring(i + 1) + L".xml");
|
||||
}
|
||||
|
||||
@ -44,7 +44,11 @@ namespace PPTX
|
||||
{
|
||||
public:
|
||||
WritingElement_AdditionConstructors(ClrMap)
|
||||
PPTX_LOGIC_BASE2(ClrMap)
|
||||
|
||||
ClrMap(std::wstring name = L"p:clrMap")
|
||||
{
|
||||
m_name = name;
|
||||
}
|
||||
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
|
||||
@ -137,7 +137,7 @@ namespace PPTX
|
||||
pWriter->WriteLimit2(4, m_oDrawAspect);
|
||||
pWriter->WriteLimit2(5, m_oType);
|
||||
pWriter->WriteLimit2(6, m_oUpdateMode);
|
||||
if (ole_file.IsInit() == false || ole_file->isMsPackage() == false)
|
||||
if (ole_file.IsInit() && ole_file->isMsPackage() == false)
|
||||
{
|
||||
std::wstring sExt = ole_file->filename().GetExtention(false);
|
||||
if (!sExt.empty())
|
||||
|
||||
@ -46,9 +46,9 @@ namespace PPTX
|
||||
public:
|
||||
WritingElement_AdditionConstructors(TextListStyle)
|
||||
|
||||
TextListStyle()
|
||||
TextListStyle(std::wstring name = L"a:lstStyle")
|
||||
{
|
||||
m_name = L"a:lstStyle";
|
||||
m_name = name;
|
||||
}
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
|
||||
@ -189,8 +189,8 @@ namespace PPTX
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("lvl"), lvl)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("algn"), algn)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("fontAlgn"),fontAlgn)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("marL"), marR)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("marR"), marL)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("marL"), marL)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("marR"), marR)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("indent"), indent)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("defTabSz"),defTabSz)
|
||||
WritingElement_ReadAttributes_End ( oReader )
|
||||
@ -541,4 +541,4 @@ namespace PPTX
|
||||
} // namespace Logic
|
||||
} // namespace PPTX
|
||||
|
||||
#endif // PPTX_LOGIC_TEXTPARAGRAPHPR_INCLUDE_H_
|
||||
#endif // PPTX_LOGIC_TEXTPARAGRAPHPR_INCLUDE_H_
|
||||
|
||||
@ -131,11 +131,11 @@ namespace PPTX
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("xmlns:a"), PPTX::g_Namespaces.a.m_strLink);
|
||||
pWriter->WriteAttribute(_T("xmlns:r"), PPTX::g_Namespaces.r.m_strLink);
|
||||
pWriter->WriteAttribute(_T("xmlns:m"), PPTX::g_Namespaces.m.m_strLink);
|
||||
pWriter->WriteAttribute(_T("xmlns:w"), PPTX::g_Namespaces.w.m_strLink);
|
||||
pWriter->WriteAttribute(_T("xmlns:p"), PPTX::g_Namespaces.p.m_strLink);
|
||||
pWriter->EndAttributes();
|
||||
|
||||
cSld.toXmlWriter(pWriter);
|
||||
|
||||
clrMap.toXmlWriter(pWriter);
|
||||
pWriter->Write(hf);
|
||||
pWriter->Write(notesStyle);
|
||||
@ -172,7 +172,7 @@ namespace PPTX
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
notesStyle = new Logic::TextListStyle();
|
||||
notesStyle = new Logic::TextListStyle(L"p:notesStyle");
|
||||
notesStyle->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -48,7 +48,6 @@ public:
|
||||
~AutoFilter();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#include "ChartFrtInfo.h"
|
||||
#include <Logic/Biff_structures/FrtHeaderOld.h>
|
||||
#include "../Biff_structures/FrtHeaderOld.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
@ -37,6 +37,8 @@ namespace XLS
|
||||
|
||||
DConRef::DConRef()
|
||||
{
|
||||
bFilePath = false;
|
||||
bSheetName = false;
|
||||
}
|
||||
|
||||
|
||||
@ -52,10 +54,33 @@ BaseObjectPtr DConRef::clone()
|
||||
|
||||
void DConRef::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### DConRef record is not implemented")
|
||||
Log::error("DConRef record is not implemented.");
|
||||
record >> ref >> cchFile;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
if (cchFile > 1)
|
||||
{
|
||||
XLUnicodeStringNoCch stFile_;
|
||||
stFile_.setSize(cchFile);
|
||||
record >> stFile_;
|
||||
//dcon-file = external-virt-path / self-reference
|
||||
//external-virt-path = volume / unc-volume / rel-volume / transfer-protocol / startup / alt-startup / library / simple-file-path-dcon
|
||||
//simple-file-path-dcon = %x0001 file-path
|
||||
//self-reference = %x0002 sheet-name
|
||||
|
||||
stFile = stFile_.value();
|
||||
if (stFile.substr(0, 1) == L"\x0001")
|
||||
{
|
||||
bFilePath = true;
|
||||
stFile = stFile.substr(1);
|
||||
}
|
||||
else if (stFile.substr(0, 1) == L"\x0002")
|
||||
{
|
||||
bSheetName = true;
|
||||
stFile = stFile.substr(1);
|
||||
}
|
||||
}
|
||||
|
||||
int unused = record.getDataSize() - record.getRdPtr();
|
||||
record.skipNunBytes(unused);
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -33,11 +33,12 @@
|
||||
|
||||
#include "BiffRecord.h"
|
||||
|
||||
#include "../Biff_structures/BiffString.h"
|
||||
#include "../Biff_structures/CellRangeRef.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of DConRef record in BIFF8
|
||||
class DConRef: public BiffRecord
|
||||
{
|
||||
BIFF_RECORD_DEFINE_TYPE_INFO(DConRef)
|
||||
@ -47,12 +48,17 @@ public:
|
||||
~DConRef();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeDConRef;
|
||||
static const ElementType type = typeDConRef;
|
||||
|
||||
RefU ref;
|
||||
unsigned short cchFile;
|
||||
std::wstring stFile;
|
||||
|
||||
bool bFilePath;
|
||||
bool bSheetName;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#include "EndObject.h"
|
||||
#include <Logic/Biff_structures/FrtHeaderOld.h>
|
||||
#include "../Biff_structures/FrtHeaderOld.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
@ -54,7 +54,7 @@ void MTRSettings::readFields(CFRecord& record)
|
||||
{
|
||||
record.skipNunBytes(12);
|
||||
_UINT32 temp1, temp2;
|
||||
#pragma message("############################ frtHeader skipped here")
|
||||
|
||||
record >> temp1 >> temp2 >> cUserThreadCount;
|
||||
|
||||
fMTREnabled = temp1;
|
||||
|
||||
@ -52,9 +52,9 @@ BaseObjectPtr OleDbConn::clone()
|
||||
|
||||
void OleDbConn::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### OleDbConn record is not implemented")
|
||||
Log::error("OleDbConn record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -53,9 +53,8 @@ BaseObjectPtr PicF::clone()
|
||||
|
||||
void PicF::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### PicF record is not implemented")
|
||||
Log::error("PicF record is not implemented.");
|
||||
//record >> some_value;
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -52,9 +52,8 @@ BaseObjectPtr PivotChartBits::clone()
|
||||
|
||||
void PivotChartBits::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### PivotChartBits record is not implemented")
|
||||
Log::error("PivotChartBits record is not implemented.");
|
||||
//record >> some_value;
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -52,9 +52,9 @@ BaseObjectPtr Qsi::clone()
|
||||
|
||||
void Qsi::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### Qsi record is not implemented")
|
||||
Log::error("Qsi record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -52,9 +52,22 @@ BaseObjectPtr QsiSXTag::clone()
|
||||
|
||||
void QsiSXTag::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### QsiSXTag record is not implemented")
|
||||
Log::error("QsiSXTag record is not implemented.");
|
||||
//record >> some_value;
|
||||
unsigned char reserved1;
|
||||
unsigned short flags, reserved2;
|
||||
|
||||
record >> frtHeaderOld >> fSx >> flags;
|
||||
|
||||
fEnableRefresh = GETBIT(flags, 0);
|
||||
fInvalid = GETBIT(flags, 1);
|
||||
fTensorEx = GETBIT(flags, 2);
|
||||
|
||||
record >> dwQsiFuture >> verSxLastUpdated >> verSxUpdatableMin >> obCchName >> reserved1;
|
||||
record >> stName;
|
||||
|
||||
record >> reserved2;
|
||||
|
||||
int skip = record.getDataSize() - record.getRdPtr();
|
||||
record.skipNunBytes(skip);
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -32,12 +32,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "BiffRecord.h"
|
||||
#include "../Biff_structures/BiffString.h"
|
||||
#include "../Biff_structures/FrtHeaderOld.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of QsiSXTag record in BIFF8
|
||||
class QsiSXTag: public BiffRecord
|
||||
{
|
||||
BIFF_RECORD_DEFINE_TYPE_INFO(QsiSXTag)
|
||||
@ -47,12 +47,24 @@ public:
|
||||
~QsiSXTag();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeQsiSXTag;
|
||||
static const ElementType type = typeQsiSXTag;
|
||||
|
||||
FrtHeaderOld frtHeaderOld;
|
||||
unsigned short fSx;
|
||||
|
||||
bool fEnableRefresh;
|
||||
bool fInvalid;
|
||||
bool fTensorEx;
|
||||
|
||||
_UINT32 dwQsiFuture;
|
||||
unsigned char verSxLastUpdated;
|
||||
unsigned char verSxUpdatableMin;
|
||||
|
||||
unsigned char obCchName;
|
||||
XLUnicodeString stName;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -52,9 +52,8 @@ BaseObjectPtr Qsif::clone()
|
||||
|
||||
void Qsif::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### Qsif record is not implemented")
|
||||
Log::error("Qsif record is not implemented.");
|
||||
//record >> some_value;
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -53,9 +53,9 @@ BaseObjectPtr RRSort::clone()
|
||||
|
||||
void RRSort::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### RRSort record is not implemented")
|
||||
Log::error("RRSort record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -83,7 +83,7 @@ int SST::serialize(std::wostream & stream)
|
||||
{
|
||||
CP_XML_WRITER(stream)
|
||||
{
|
||||
for (int i=0; i < rgb.size(); i++)
|
||||
for (size_t i=0; i < rgb.size(); i++)
|
||||
{
|
||||
XLUnicodeRichExtendedString *richText = dynamic_cast<XLUnicodeRichExtendedString *>(rgb[i].get());
|
||||
|
||||
|
||||
@ -52,11 +52,66 @@ BaseObjectPtr SXAddl::clone()
|
||||
|
||||
void SXAddl::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXAddl record is not implemented")
|
||||
//Log::error("SXAddl record is not implemented.");
|
||||
//record >> some_value;
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
Log::error("SXAddl record is not implemented.");
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
void SXAddl_SXCCache_SXDId::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
short reserved;
|
||||
record >> idCache >> reserved;
|
||||
}
|
||||
|
||||
void SXAddl_SXCCache_SXDEnd::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
_UINT32 reserved1;
|
||||
short reserved2;
|
||||
record >> reserved1 >> reserved2;
|
||||
}
|
||||
|
||||
void SXAddl_SXCCache_SXDVer10Info::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
_UINT32 reserved1;
|
||||
short reserved2;
|
||||
record >> reserved1 >> reserved2;
|
||||
|
||||
record >> citmGhostMax >> bVerCacheLastRefresh >> bVerCacheRefreshableMin;
|
||||
|
||||
for (int i = 0; i < 8; i++)
|
||||
record >> numDateCopy[i];
|
||||
|
||||
record >> reserved2;
|
||||
}
|
||||
void SXAddl_SXCCache_SXDInfo12::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
_UINT32 flags;
|
||||
short reserved;
|
||||
|
||||
record >> flags >> reserved;
|
||||
|
||||
fSheetData = GETBIT(flags, 0);
|
||||
fSrvSupportAttribDrill = GETBIT(flags, 1);
|
||||
fSrvSupportSubQuery = GETBIT(flags, 2);
|
||||
}
|
||||
void SXAddl_SXCCache_SXDVerSXMacro::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
unsigned char reserved1;
|
||||
short reserved2, reserved3;
|
||||
|
||||
record >> dwVer >> reserved1 >> reserved2 >> reserved3;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
|
||||
@ -43,129 +43,188 @@ class SXAddl: public BiffRecord
|
||||
BIFF_RECORD_DEFINE_TYPE_INFO(SXAddl)
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXAddl)
|
||||
public:
|
||||
struct _SXAddlHdr
|
||||
{
|
||||
_UINT32 frtHeaderOld;
|
||||
unsigned char sxc;
|
||||
unsigned char sxd;
|
||||
|
||||
void load(CFRecord& record)
|
||||
{
|
||||
record >> frtHeaderOld >> sxc >> sxd;
|
||||
}
|
||||
}m_SXAddlHdr;
|
||||
|
||||
SXAddl();
|
||||
~SXAddl();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
virtual void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
};
|
||||
|
||||
class Continue_SxaddlSxString : public SXAddl
|
||||
{
|
||||
public:
|
||||
//virtual void readFields(CFRecord& record);
|
||||
|
||||
};
|
||||
class SXAddl_SXCAutoSort_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCAutoSort_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCCache_SXDEnd : public SXAddl
|
||||
{
|
||||
public:
|
||||
virtual void readFields(CFRecord& record);
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDId : public SXAddl
|
||||
{
|
||||
public:
|
||||
virtual void readFields(CFRecord& record);
|
||||
|
||||
_UINT32 idCache;
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDInfo12 : public SXAddl
|
||||
{
|
||||
public:
|
||||
|
||||
virtual void readFields(CFRecord& record);
|
||||
|
||||
bool fSheetData;
|
||||
bool fSrvSupportAttribDrill;
|
||||
bool fSrvSupportSubQuery;
|
||||
|
||||
};
|
||||
|
||||
// The following classes are not implemented and most probably won't be.
|
||||
// So we save some compilation and link time and resulting dll size
|
||||
class Continue_SxaddlSxString : public SXAddl {};
|
||||
class SXAddl_SXCAutoSort_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCAutoSort_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCCache_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCCache_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCCache_SXDInfo12 : public SXAddl {};
|
||||
class SXAddl_SXCCache_SXDInvRefreshReal : public SXAddl {};
|
||||
class SXAddl_SXCCache_SXDVer10Info : public SXAddl {};
|
||||
class SXAddl_SXCCache_SXDVerSXMacro : public SXAddl {};
|
||||
class SXAddl_SXCCache_SXDVerUpdInv : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDCaption : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDIfdbMempropMap : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDIfdbMpMapCount : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDProperty : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDPropName : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDSxrmitmCount : public SXAddl {};
|
||||
class SXAddl_SXCCacheItem_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCCacheItem_SXDId : public SXAddl {};
|
||||
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_SXCField_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCField_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCField_SXDVer10Info : 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_SXCView_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDSXPIIvmb : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDTableStyleClient : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDVer10Info : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDVer12Info : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDVerUpdInv : public SXAddl {};
|
||||
class SXAddl_SXCCache_SXDInvRefreshReal : public SXAddl
|
||||
{
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDVer10Info : public SXAddl
|
||||
{
|
||||
public:
|
||||
|
||||
virtual void readFields(CFRecord& record);
|
||||
|
||||
_INT32 citmGhostMax;
|
||||
unsigned char bVerCacheLastRefresh;
|
||||
unsigned char bVerCacheRefreshableMin;
|
||||
|
||||
unsigned char numDateCopy[8];
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDVerSXMacro : public SXAddl
|
||||
{
|
||||
public:
|
||||
|
||||
virtual void readFields(CFRecord& record);
|
||||
|
||||
unsigned char dwVer;
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDVerUpdInv : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDCaption : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDIfdbMempropMap: public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDIfdbMpMapCount: public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDProperty : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDPropName : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDSxrmitmCount : public SXAddl {};
|
||||
class SXAddl_SXCCacheItem_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCCacheItem_SXDId : public SXAddl {};
|
||||
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_SXCField_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCField_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCField_SXDVer10Info : 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_SXCView_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDSXPIIvmb : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDTableStyleClient : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDVer10Info : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDVer12Info : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDVerUpdInv : public SXAddl {};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
|
||||
@ -52,9 +52,8 @@ BaseObjectPtr SXDI::clone()
|
||||
|
||||
void SXDI::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXDI record is not implemented")
|
||||
Log::error("SXDI record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -52,9 +52,57 @@ BaseObjectPtr SXEx::clone()
|
||||
|
||||
void SXEx::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXEx record is not implemented")
|
||||
Log::error("SXEx record is not implemented.");
|
||||
//record >> some_value;
|
||||
record >> csxformat >> cchErrorString >> cchNullString >> cchTag >> csxselect;
|
||||
|
||||
_UINT32 flags;
|
||||
record >> crwPage >> ccolPage >> flags;
|
||||
|
||||
fAcrossPageLay = GETBIT(flags, 0);
|
||||
cWrapPage = GETBITS(flags, 1, 9);
|
||||
fEnableWizard = GETBIT(flags, 16);
|
||||
fEnableDrilldown = GETBIT(flags, 17);
|
||||
fEnableFieldDialog = GETBIT(flags, 18);
|
||||
fPreserveFormatting = GETBIT(flags, 19);
|
||||
fMergeLabels = GETBIT(flags, 20);
|
||||
fDisplayErrorString = GETBIT(flags, 21);
|
||||
fDisplayNullString = GETBIT(flags, 22);
|
||||
fSubtotalHiddenPageItems = GETBIT(flags, 23);
|
||||
|
||||
record >> cchPageFieldStyle >> cchTableStyle >> cchVacateStyle;
|
||||
|
||||
if (cchErrorString > 0 && cchErrorString != 0xffff)
|
||||
{
|
||||
stError.setSize(cchErrorString);
|
||||
record >> stError;
|
||||
}
|
||||
if (cchNullString > 0 && cchNullString != 0xffff)
|
||||
{
|
||||
stDisplayNull.setSize(cchNullString);
|
||||
record >> stDisplayNull;
|
||||
}
|
||||
if (cchTag > 0 && cchTag != 0xffff)
|
||||
{
|
||||
stTag.setSize(cchTag);
|
||||
record >> stTag;
|
||||
}
|
||||
if (cchPageFieldStyle > 0 && cchPageFieldStyle != 0xffff)
|
||||
{
|
||||
stPageFieldStyle.setSize(cchPageFieldStyle);
|
||||
record >> stPageFieldStyle;
|
||||
}
|
||||
if (cchTableStyle > 0 && cchTableStyle != 0xffff)
|
||||
{
|
||||
stTableStyle.setSize(cchTableStyle);
|
||||
record >> cchTableStyle;
|
||||
}
|
||||
if (cchVacateStyle > 0 && cchVacateStyle != 0xffff)
|
||||
{
|
||||
stVacateStyle.setSize(cchVacateStyle);
|
||||
record >> cchVacateStyle;
|
||||
}
|
||||
|
||||
int skip = record.getDataSize() - record.getRdPtr();
|
||||
record.skipNunBytes(skip);
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -32,12 +32,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "BiffRecord.h"
|
||||
#include "../Biff_structures/BiffString.h"
|
||||
#include "../Biff_structures/CellRangeRef.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXEx record in BIFF8
|
||||
class SXEx: public BiffRecord
|
||||
{
|
||||
BIFF_RECORD_DEFINE_TYPE_INFO(SXEx)
|
||||
@ -47,13 +47,41 @@ public:
|
||||
~SXEx();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXEx;
|
||||
static const ElementType type = typeSXEx;
|
||||
|
||||
unsigned short csxformat;
|
||||
unsigned short cchErrorString;
|
||||
unsigned short cchNullString;
|
||||
unsigned short cchTag;
|
||||
unsigned short csxselect;
|
||||
|
||||
DRw crwPage;
|
||||
ColU ccolPage;
|
||||
|
||||
bool fAcrossPageLay;
|
||||
unsigned char cWrapPage;
|
||||
bool fEnableWizard;
|
||||
bool fEnableDrilldown;
|
||||
bool fEnableFieldDialog;
|
||||
bool fPreserveFormatting;
|
||||
bool fMergeLabels;
|
||||
bool fDisplayErrorString;
|
||||
bool fDisplayNullString;
|
||||
bool fSubtotalHiddenPageItems;
|
||||
|
||||
unsigned short cchPageFieldStyle;
|
||||
unsigned short cchTableStyle;
|
||||
unsigned short cchVacateStyle;
|
||||
|
||||
XLUnicodeStringNoCch stError;
|
||||
XLUnicodeStringNoCch stDisplayNull;
|
||||
XLUnicodeStringNoCch stTag;
|
||||
XLUnicodeStringNoCch stPageFieldStyle;
|
||||
XLUnicodeStringNoCch stTableStyle;
|
||||
XLUnicodeStringNoCch stVacateStyle;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -52,9 +52,8 @@ BaseObjectPtr SXLI::clone()
|
||||
|
||||
void SXLI::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXLI record is not implemented")
|
||||
Log::error("SXLI record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -52,9 +52,8 @@ BaseObjectPtr SXPI::clone()
|
||||
|
||||
void SXPI::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXPI record is not implemented")
|
||||
Log::error("SXPI record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -52,9 +52,8 @@ BaseObjectPtr SXPIEx::clone()
|
||||
|
||||
void SXPIEx::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXPIEx record is not implemented")
|
||||
Log::error("SXPIEx record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -53,10 +53,7 @@ BaseObjectPtr SXStreamID::clone()
|
||||
|
||||
void SXStreamID::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXStreamID record is not implemented")
|
||||
Log::error("SXStreamID record is not implemented.");
|
||||
//record >> some_value;
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
record >> idStm;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -53,8 +53,7 @@ public:
|
||||
|
||||
static const ElementType type = typeSXStreamID;
|
||||
|
||||
|
||||
|
||||
short idStm;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -53,9 +53,8 @@ BaseObjectPtr SXString::clone()
|
||||
|
||||
void SXString::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXString record is not implemented")
|
||||
Log::error("SXString record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -53,9 +53,8 @@ BaseObjectPtr SXTBRGIITM::clone()
|
||||
|
||||
void SXTBRGIITM::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXTBRGIITM record is not implemented")
|
||||
Log::error("SXTBRGIITM record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -53,9 +53,8 @@ BaseObjectPtr SXTH::clone()
|
||||
|
||||
void SXTH::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXTH record is not implemented")
|
||||
Log::error("SXTH record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -52,9 +52,8 @@ BaseObjectPtr SXTbl::clone()
|
||||
|
||||
void SXTbl::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXTbl record is not implemented")
|
||||
Log::error("SXTbl record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -53,9 +53,8 @@ BaseObjectPtr SXVDEx::clone()
|
||||
|
||||
void SXVDEx::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXVDEx record is not implemented")
|
||||
//Log::error("SXVDEx record is not implemented.");
|
||||
//record >> some_value;
|
||||
Log::error("SXVDEx record is not implemented.");
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -52,9 +52,8 @@ BaseObjectPtr SXVDTEx::clone()
|
||||
|
||||
void SXVDTEx::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXVDTEx record is not implemented")
|
||||
Log::error("SXVDTEx record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -52,9 +52,8 @@ BaseObjectPtr SXVI::clone()
|
||||
|
||||
void SXVI::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXVI record is not implemented")
|
||||
//Log::error("SXVI record is not implemented.");
|
||||
//record >> some_value;
|
||||
Log::error("SXVI record is not implemented.");
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -52,12 +52,7 @@ BaseObjectPtr SXVS::clone()
|
||||
|
||||
void SXVS::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXVS record is not implemented")
|
||||
Log::error("SXVS record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
|
||||
record >> sxvs;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -47,13 +47,18 @@ public:
|
||||
~SXVS();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXVS;
|
||||
|
||||
short sxvs;
|
||||
|
||||
//enum
|
||||
//SHEET 0x0001
|
||||
//EXTERNAL 0x0002
|
||||
//CONSOLIDATION 0x0004
|
||||
//SCENARIO 0x0010
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -35,16 +35,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
SXViewEx::SXViewEx()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
SXViewEx::~SXViewEx()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BaseObjectPtr SXViewEx::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXViewEx(*this));
|
||||
@ -52,9 +42,11 @@ BaseObjectPtr SXViewEx::clone()
|
||||
|
||||
void SXViewEx::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXViewEx record is not implemented")
|
||||
Log::error("SXViewEx record is not implemented.");
|
||||
//record >> some_value;
|
||||
record >> frtHeaderOld >> csxth >> csxpi >> csxvdtex >> cbFuture;
|
||||
|
||||
if (cbFuture)
|
||||
rgbFuture = std::string(record.getCurData<char>(), cbFuture);
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -32,6 +32,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "BiffRecord.h"
|
||||
#include "../Biff_structures/FrtHeaderOld.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -43,16 +44,22 @@ class SXViewEx: public BiffRecord
|
||||
BIFF_RECORD_DEFINE_TYPE_INFO(SXViewEx)
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXViewEx)
|
||||
public:
|
||||
SXViewEx();
|
||||
~SXViewEx();
|
||||
SXViewEx() {}
|
||||
~SXViewEx(){}
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXViewEx;
|
||||
static const ElementType type = typeSXViewEx;
|
||||
|
||||
FrtHeaderOld frtHeaderOld;
|
||||
_INT32 csxth;
|
||||
_INT32 csxpi;
|
||||
_INT32 csxvdtex;
|
||||
_UINT32 cbFuture;
|
||||
|
||||
std::string rgbFuture;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -53,9 +53,8 @@ BaseObjectPtr SXViewEx9::clone()
|
||||
|
||||
void SXViewEx9::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXViewEx9 record is not implemented")
|
||||
Log::error("SXViewEx9 record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -52,9 +52,8 @@ BaseObjectPtr SXViewLink::clone()
|
||||
|
||||
void SXViewLink::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SXViewLink record is not implemented")
|
||||
Log::error("SXViewLink record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -55,13 +55,14 @@ void Sort::readFields(CFRecord& record)
|
||||
{
|
||||
unsigned short flags;
|
||||
record >> flags;
|
||||
fCol = GETBIT(flags, 0);
|
||||
fKey1Dsc = GETBIT(flags, 1);
|
||||
fKey2Dsc = GETBIT(flags, 2);
|
||||
fKey3Dsc = GETBIT(flags, 3);
|
||||
|
||||
fCol = GETBIT(flags, 0);
|
||||
fKey1Dsc = GETBIT(flags, 1);
|
||||
fKey2Dsc = GETBIT(flags, 2);
|
||||
fKey3Dsc = GETBIT(flags, 3);
|
||||
fCaseSensitive = GETBIT(flags, 4);
|
||||
iOrder = GETBITS(flags, 5, 9);
|
||||
fAltMethod = GETBIT(flags, 10);
|
||||
iOrder = GETBITS(flags, 5, 9);
|
||||
fAltMethod = GETBIT(flags, 10);
|
||||
|
||||
unsigned char cchKey1;
|
||||
unsigned char cchKey2;
|
||||
|
||||
@ -48,7 +48,6 @@ public:
|
||||
~Sort();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#include "StartObject.h"
|
||||
#include <Logic/Biff_structures/FrtHeaderOld.h>
|
||||
#include "../Biff_structures/FrtHeaderOld.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
@ -52,9 +52,8 @@ BaseObjectPtr SxDXF::clone()
|
||||
|
||||
void SxDXF::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SxDXF record is not implemented")
|
||||
Log::error("SxDXF record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -53,9 +53,8 @@ BaseObjectPtr SxFilt::clone()
|
||||
|
||||
void SxFilt::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SxFilt record is not implemented")
|
||||
Log::error("SxFilt record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -47,7 +47,6 @@ public:
|
||||
~SxFilt();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
|
||||
@ -53,9 +53,8 @@ BaseObjectPtr SxFormat::clone()
|
||||
|
||||
void SxFormat::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SxFormat record is not implemented")
|
||||
Log::error("SxFormat record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -52,9 +52,8 @@ BaseObjectPtr SxItm::clone()
|
||||
|
||||
void SxItm::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SxItm record is not implemented")
|
||||
Log::error("SxItm record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -35,16 +35,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
SxIvd::SxIvd()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
SxIvd::~SxIvd()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BaseObjectPtr SxIvd::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SxIvd(*this));
|
||||
@ -53,10 +43,17 @@ BaseObjectPtr SxIvd::clone()
|
||||
|
||||
void SxIvd::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SxIvd record is not implemented")
|
||||
Log::error("SxIvd record is not implemented.");
|
||||
//record >> some_value;
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
int rgSize = record.getDataSize() / 2;
|
||||
|
||||
for (int i = 0; i < rgSize; i++)
|
||||
{
|
||||
short val;
|
||||
record >> val;
|
||||
rgSxivd.push_back(val);
|
||||
}
|
||||
|
||||
int skip = record.getDataSize() - record.getRdPtr();
|
||||
record.skipNunBytes(skip);
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -36,22 +36,21 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SxIvd record in BIFF8
|
||||
class SxIvd: public BiffRecordContinued
|
||||
{
|
||||
BIFF_RECORD_DEFINE_TYPE_INFO(SxIvd)
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SxIvd)
|
||||
public:
|
||||
SxIvd();
|
||||
~SxIvd();
|
||||
SxIvd() {}
|
||||
~SxIvd(){}
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSxIvd;
|
||||
static const ElementType type = typeSxIvd;
|
||||
|
||||
std::vector<short> rgSxivd;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -53,9 +53,8 @@ BaseObjectPtr SxRule::clone()
|
||||
|
||||
void SxRule::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SxRule record is not implemented")
|
||||
Log::error("SxRule record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -47,13 +47,10 @@ public:
|
||||
~SxRule();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSxRule;
|
||||
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -53,9 +53,8 @@ BaseObjectPtr SxSelect::clone()
|
||||
|
||||
void SxSelect::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SxSelect record is not implemented")
|
||||
Log::error("SxSelect record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
|
||||
|
||||
@ -47,7 +47,6 @@ public:
|
||||
~SxSelect();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
|
||||
@ -53,9 +53,7 @@ BaseObjectPtr SxTbpg::clone()
|
||||
|
||||
void SxTbpg::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SxTbpg record is not implemented")
|
||||
Log::error("SxTbpg record is not implemented.");
|
||||
//record >> some_value;
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
|
||||
|
||||
@ -35,16 +35,20 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
SxView::SxView()
|
||||
BiffStructurePtr SXAxis::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAxis(*this));
|
||||
}
|
||||
|
||||
|
||||
SxView::~SxView()
|
||||
void SXAxis::load(CFRecord& record)
|
||||
{
|
||||
}
|
||||
|
||||
unsigned short flags;
|
||||
record >> flags;
|
||||
|
||||
bRw = GETBIT(flags, 0);
|
||||
bCol = GETBIT(flags, 1);
|
||||
bPage = GETBIT(flags, 2);
|
||||
bData = GETBIT(flags, 3);
|
||||
}
|
||||
BaseObjectPtr SxView::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SxView(*this));
|
||||
@ -52,10 +56,36 @@ BaseObjectPtr SxView::clone()
|
||||
|
||||
void SxView::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### SxView record is not implemented")
|
||||
Log::error("SxView record is not implemented.");
|
||||
//record >> some_value;
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
short reserved, flags;
|
||||
record >> ref >> rwFirstHead >> rwFirstData >> colFirstData >> iCache >> reserved;
|
||||
record >> sxaxis4Data >> ipos4Data;
|
||||
record >> cDim >> cDimRw >> cDimCol >> cDimPg >> cDimData >> cRw >> cCol;
|
||||
|
||||
record >> flags;
|
||||
fRwGrand = GETBIT(flags, 0);
|
||||
fColGrand = GETBIT(flags, 1);
|
||||
fAutoFormat = GETBIT(flags, 3);
|
||||
fAtrNum = GETBIT(flags, 4);
|
||||
fAtrFnt = GETBIT(flags, 5);
|
||||
fAtrAlc = GETBIT(flags, 6);
|
||||
fAtrBdr = GETBIT(flags, 7);
|
||||
fAtrPat = GETBIT(flags, 8);
|
||||
fAtrProc = GETBIT(flags, 9);
|
||||
|
||||
record >> itblAutoFmt >> cchTableName >> cchDataName;
|
||||
|
||||
if(cchTableName && cchTableName <= 0x00FF)
|
||||
{
|
||||
stTable.setSize(cchTableName);
|
||||
record >> stTable;
|
||||
}
|
||||
if(cchDataName > 0 && cchDataName <= 0x00FE)
|
||||
{
|
||||
stData.setSize(cchDataName);
|
||||
record >> stData;
|
||||
}
|
||||
int skip = record.getDataSize() - record.getRdPtr();
|
||||
record.skipNunBytes(skip);
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -32,27 +32,78 @@
|
||||
#pragma once
|
||||
|
||||
#include "BiffRecord.h"
|
||||
#include "../Biff_structures/BiffString.h"
|
||||
#include "../Biff_structures/CellRangeRef.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
class SXAxis : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAxis)
|
||||
public:
|
||||
|
||||
SXAxis(){}
|
||||
~SXAxis(){}
|
||||
|
||||
BiffStructurePtr clone();
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAxis;
|
||||
|
||||
bool bRw;
|
||||
bool bCol;
|
||||
bool bPage;
|
||||
bool bData;
|
||||
|
||||
};
|
||||
|
||||
// Logical representation of SxView record in BIFF8
|
||||
class SxView: public BiffRecord
|
||||
{
|
||||
BIFF_RECORD_DEFINE_TYPE_INFO(SxView)
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SxView)
|
||||
public:
|
||||
SxView();
|
||||
~SxView();
|
||||
SxView() {cchTableName = cchDataName = 0;}
|
||||
~SxView() {}
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSxView;
|
||||
static const ElementType type = typeSxView;
|
||||
|
||||
Ref8U ref;
|
||||
RwU rwFirstHead;
|
||||
RwU rwFirstData;
|
||||
ColU colFirstData;
|
||||
short iCache;
|
||||
short reserved;
|
||||
SXAxis sxaxis4Data;
|
||||
short ipos4Data;
|
||||
short cDim;
|
||||
unsigned short cDimRw;
|
||||
unsigned short cDimCol;
|
||||
unsigned short cDimPg;
|
||||
short cDimData;
|
||||
unsigned short cRw;
|
||||
unsigned short cCol;
|
||||
|
||||
bool fRwGrand;
|
||||
bool fColGrand;
|
||||
bool fAutoFormat;
|
||||
bool fAtrNum;
|
||||
bool fAtrFnt;
|
||||
bool fAtrAlc;
|
||||
bool fAtrBdr;
|
||||
bool fAtrPat;
|
||||
bool fAtrProc;
|
||||
|
||||
unsigned short itblAutoFmt; //enum AutoFmt8
|
||||
unsigned short cchTableName;
|
||||
unsigned short cchDataName;
|
||||
|
||||
XLUnicodeStringNoCch stTable;
|
||||
XLUnicodeStringNoCch stData;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -37,6 +37,7 @@ namespace XLS
|
||||
|
||||
Sxvd::Sxvd()
|
||||
{
|
||||
cchName = 0;
|
||||
}
|
||||
|
||||
|
||||
@ -52,12 +53,31 @@ BaseObjectPtr Sxvd::clone()
|
||||
|
||||
void Sxvd::readFields(CFRecord& record)
|
||||
{
|
||||
#pragma message("####################### Sxvd record is not implemented")
|
||||
//Log::error("Sxvd record is not implemented.");
|
||||
//record >> some_value;
|
||||
short flags;
|
||||
record >> sxaxis >> cSub >> flags;
|
||||
|
||||
fDefault = GETBIT(flags, 0);
|
||||
fSum = GETBIT(flags, 1);
|
||||
fCounta = GETBIT(flags, 2);
|
||||
fAverage = GETBIT(flags, 3);
|
||||
fMax = GETBIT(flags, 4);
|
||||
fMin = GETBIT(flags, 5);
|
||||
fProduct = GETBIT(flags, 6);
|
||||
fCount = GETBIT(flags, 7);
|
||||
fStdev = GETBIT(flags, 8);
|
||||
fStdevp = GETBIT(flags, 9);
|
||||
fVariance = GETBIT(flags, 10);
|
||||
fVariancep = GETBIT(flags, 11);
|
||||
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
record >> cItm >> cchName;
|
||||
|
||||
if(cchName && cchName != 0xffff)
|
||||
{
|
||||
stName.setSize(cchName);
|
||||
record >> stName;
|
||||
}
|
||||
int skip = record.getDataSize() - record.getRdPtr();
|
||||
record.skipNunBytes(skip);}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
|
||||
@ -31,13 +31,11 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "BiffRecord.h"
|
||||
#include "SxView.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of Sxvd record in BIFF8
|
||||
class Sxvd: public BiffRecord
|
||||
{
|
||||
BIFF_RECORD_DEFINE_TYPE_INFO(Sxvd)
|
||||
@ -47,12 +45,31 @@ public:
|
||||
~Sxvd();
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSxvd;
|
||||
|
||||
SXAxis sxaxis;
|
||||
unsigned short cSub;
|
||||
|
||||
bool fDefault;
|
||||
bool fSum;
|
||||
bool fCounta;
|
||||
bool fAverage;
|
||||
bool fMax;
|
||||
bool fMin;
|
||||
bool fProduct;
|
||||
bool fCount;
|
||||
bool fStdev;
|
||||
bool fStdevp;
|
||||
bool fVariance;
|
||||
bool fVariancep;
|
||||
|
||||
short cItm;
|
||||
unsigned short cchName;
|
||||
XLUnicodeStringNoCch stName;
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -43,18 +43,15 @@ class Bes : public BiffStructure
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
static const ElementType type = typeBes;
|
||||
|
||||
static const ElementType type = typeBes;
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
|
||||
const std::wstring toString();
|
||||
void fromString(const std::wstring str);
|
||||
|
||||
private:
|
||||
unsigned char bBoolErr;
|
||||
Boolean<unsigned char> fError;
|
||||
unsigned char bBoolErr;
|
||||
Boolean<unsigned char> fError;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -57,8 +57,8 @@ void ExtPtgArea3D::load(CFRecord& record)
|
||||
|
||||
void ExtPtgArea3D::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, bool full_ref)
|
||||
{
|
||||
#pragma message("####################### ExtPtgArea3D record is not implemented")
|
||||
Log::info("ExtPtgArea3D record is not implemented.");
|
||||
|
||||
ptg_stack.push(L"#REF!");
|
||||
}
|
||||
|
||||
|
||||
@ -52,8 +52,8 @@ void ExtPtgAreaErr3D::load(CFRecord& record)
|
||||
|
||||
void ExtPtgAreaErr3D::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, bool full_ref)
|
||||
{
|
||||
#pragma message("####################### ExtPtgAreaErr3D record is not implemented")
|
||||
Log::info("ExtPtgAreaErr3D record is not implemented.");
|
||||
|
||||
ptg_stack.push(L"#REF!");
|
||||
}
|
||||
|
||||
|
||||
@ -57,8 +57,8 @@ void ExtPtgRef3D::load(CFRecord& record)
|
||||
|
||||
void ExtPtgRef3D::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, bool full_ref )
|
||||
{
|
||||
#pragma message("####################### ExtPtgRef3D record is not implemented")
|
||||
Log::info("ExtPtgRef3D record is not implemented.");
|
||||
|
||||
ptg_stack.push(L"#REF!");
|
||||
}
|
||||
|
||||
|
||||
@ -51,8 +51,8 @@ void ExtPtgRefErr3D::load(CFRecord& record)
|
||||
|
||||
void ExtPtgRefErr3D::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, bool full_ref)
|
||||
{
|
||||
#pragma message("####################### ExtPtgRefErr3D record is not implemented")
|
||||
Log::info("ExtPtgRefErr3D record is not implemented.");
|
||||
|
||||
ptg_stack.push(L"#REF!");
|
||||
}
|
||||
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of AXES union of records
|
||||
class AXES: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(AXES)
|
||||
|
||||
@ -47,39 +47,9 @@ PIVOTADDL::PIVOTADDL()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
PIVOTADDL::~PIVOTADDL()
|
||||
{
|
||||
}
|
||||
/*
|
||||
int b = 5;
|
||||
boost::shared_ptr<int> by;
|
||||
|
||||
void raw_ptr(const int* ptr) // указатель на константный объект.
|
||||
{
|
||||
ptr = &b; // компилится, потому что указатель не константный
|
||||
*ptr = 4; // не компилится, потому что объект константный
|
||||
}
|
||||
// то же самое для shared_ptr
|
||||
void raw_ptr(boost::shared_ptr<const int> ptr) // указатель на константный объект.
|
||||
{
|
||||
ptr = by; // компилится, потому что указатель не константный
|
||||
*ptr = 4; // не компилится, потому что объект константный
|
||||
}
|
||||
// ===================== теперь наоборот
|
||||
void raw_ptr2(int* const ptr) // константный указатель на неконстантный объект.
|
||||
{
|
||||
ptr = &b; // не компилится, потому что указатель - константный
|
||||
*ptr = 4; // компилится, потому что объект не константный
|
||||
}
|
||||
// то же самое для shared_ptr
|
||||
void raw_ptr2(const boost::shared_ptr<int> ptr) // константный указатель на не константный объект.
|
||||
{
|
||||
ptr = by; // не компилится, потому что указатель - константный
|
||||
*ptr = 4; // компилится, потому что объект не константный
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
BaseObjectPtr PIVOTADDL::clone()
|
||||
{
|
||||
@ -101,31 +71,51 @@ const bool PIVOTADDL::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
proc.optional<SXAddl_SXCView_SXDVer10Info>();
|
||||
proc.optional<SXAddl_SXCView_SXDVer12Info>();
|
||||
proc.repeated<SXADDLCALCMEMBER>(0, 0);
|
||||
proc.repeated<SXADDLHIERARCHY>(0, 0);
|
||||
proc.repeated<SXADDLFIELD>(0, 0);
|
||||
proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
proc.optional<SXAddl_SXCView_SXDTableStyleClient>();
|
||||
int count = 0;
|
||||
|
||||
count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
|
||||
if (proc.optional<SXAddl_SXCView_SXDVer10Info>())
|
||||
{
|
||||
}
|
||||
if (proc.optional<SXAddl_SXCView_SXDVer12Info>())
|
||||
{
|
||||
}
|
||||
count = proc.repeated<SXADDLCALCMEMBER>(0, 0);
|
||||
count = proc.repeated<SXADDLHIERARCHY>(0, 0);
|
||||
count = proc.repeated<SXADDLFIELD>(0, 0);
|
||||
count = proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
|
||||
if (proc.optional<SXAddl_SXCView_SXDTableStyleClient>())
|
||||
{
|
||||
}
|
||||
|
||||
if(proc.optional<SXAddl_SXCView_SXDCompactRwHdr>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCView_SXDCompactColHdr>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
|
||||
proc.optional<SXAddl_SXCView_SXDVerUpdInv>();
|
||||
proc.optional<SXADDLCONDFMTS>();
|
||||
proc.optional<SXADDLSXFILTERS12>();
|
||||
proc.repeated<SXAddl_SXCView_SXDVerUpdInv>(0, 0);
|
||||
proc.repeated<SXAddl_SXCView_SXDSXPIIvmb>(0, 0);
|
||||
proc.optional<SXAddl_SXCView_SXDVerUpdInv>();
|
||||
proc.mandatory<SXAddl_SXCView_SXDEnd>();
|
||||
if (proc.optional<SXAddl_SXCView_SXDVerUpdInv>())
|
||||
{
|
||||
}
|
||||
if (proc.optional<SXADDLCONDFMTS>())
|
||||
{
|
||||
}
|
||||
if (proc.optional<SXADDLSXFILTERS12>())
|
||||
{
|
||||
}
|
||||
count = proc.repeated<SXAddl_SXCView_SXDVerUpdInv>(0, 0);
|
||||
count = proc.repeated<SXAddl_SXCView_SXDSXPIIvmb>(0, 0);
|
||||
if (proc.optional<SXAddl_SXCView_SXDVerUpdInv>())
|
||||
{
|
||||
}
|
||||
if (proc.mandatory<SXAddl_SXCView_SXDEnd>())
|
||||
{
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -63,11 +63,24 @@ const bool PIVOTCACHEDEFINITION::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#pragma message("####################### PIVOTCACHEDEFINITION union is not implemented")
|
||||
Log::info("PIVOTCACHEDEFINITION union is not implemented!!!!!!!!!!!!!!!");
|
||||
proc.mandatory<SXVS>();
|
||||
proc.optional<SXSRC>();
|
||||
proc.optional<SXADDLCACHE>();
|
||||
m_SXStreamID = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
if (proc.mandatory<SXVS>())
|
||||
{
|
||||
m_SXVS = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.optional<SXSRC>())
|
||||
{
|
||||
m_SXSRC = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.optional<SXADDLCACHE>())
|
||||
{
|
||||
m_SXADDLCACHE = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -50,6 +50,11 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typePIVOTCACHEDEFINITION;
|
||||
|
||||
BaseObjectPtr m_SXStreamID;
|
||||
BaseObjectPtr m_SXVS;
|
||||
BaseObjectPtr m_SXSRC;
|
||||
BaseObjectPtr m_SXADDLCACHE;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -66,12 +66,45 @@ const bool PIVOTCORE::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<PIVOTVD>(0, 0);
|
||||
proc.repeated<PIVOTIVD>(0, 2);
|
||||
proc.optional<PIVOTPI>();
|
||||
proc.repeated<SXDI>(0, 0);
|
||||
proc.repeated<PIVOTLI>(0, 0);
|
||||
proc.mandatory<PIVOTEX>();
|
||||
m_SxView = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
int count = 0;
|
||||
|
||||
count = proc.repeated<PIVOTVD>(0, 0);
|
||||
while(count--)
|
||||
{
|
||||
m_arPIVOTVD.push_back(elements_.front()); elements_.pop_front();
|
||||
}
|
||||
|
||||
count = proc.repeated<PIVOTIVD>(0, 2);
|
||||
while(count--)
|
||||
{
|
||||
m_arPIVOTIVD.push_back(elements_.front()); elements_.pop_front();
|
||||
}
|
||||
if (proc.optional<PIVOTPI>())
|
||||
{
|
||||
m_PIVOTPI= elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
|
||||
count = proc.repeated<SXDI>(0, 0);
|
||||
while(count--)
|
||||
{
|
||||
m_arSXDI.push_back(elements_.front()); elements_.pop_front();
|
||||
}
|
||||
|
||||
count = proc.repeated<PIVOTLI>(0, 0);
|
||||
while(count--)
|
||||
{
|
||||
m_arPIVOTLI.push_back(elements_.front()); elements_.pop_front();
|
||||
}
|
||||
|
||||
if (proc.mandatory<PIVOTEX>())
|
||||
{
|
||||
m_PIVOTEX = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of PIVOTCORE union of records
|
||||
class PIVOTCORE: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(PIVOTCORE)
|
||||
@ -50,6 +48,15 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typePIVOTCORE;
|
||||
|
||||
BaseObjectPtr m_SxView;
|
||||
std::vector<BaseObjectPtr> m_arPIVOTVD;
|
||||
std::vector<BaseObjectPtr> m_arPIVOTIVD;
|
||||
BaseObjectPtr m_PIVOTPI;
|
||||
std::vector<BaseObjectPtr> m_arSXDI;
|
||||
std::vector<BaseObjectPtr> m_arPIVOTLI;
|
||||
BaseObjectPtr m_PIVOTEX;
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -62,8 +62,9 @@ const bool PIVOTEX::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<PIVOTSELECT>(0, 0);
|
||||
proc.repeated<PIVOTFORMAT>(0, 0);
|
||||
int count = 0;
|
||||
count = proc.repeated<PIVOTSELECT>(0, 0);
|
||||
count = proc.repeated<PIVOTFORMAT>(0, 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -62,8 +62,12 @@ const bool PIVOTFORMAT::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.mandatory<PIVOTRULE>();
|
||||
proc.optional<SxDXF>();
|
||||
if (proc.mandatory<PIVOTRULE>())
|
||||
{
|
||||
}
|
||||
if (proc.optional<SxDXF>())
|
||||
{
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -57,14 +57,14 @@ BaseObjectPtr PIVOTFRT::clone()
|
||||
// PIVOTFRT = PIVOTFRT9 [PIVOTADDL]
|
||||
const bool PIVOTFRT::loadContent(BinProcessor& proc)
|
||||
{
|
||||
|
||||
if(!proc.mandatory<PIVOTFRT9>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#pragma message("####################### PIVOTFRT union is not implemented")
|
||||
Log::info("PIVOTFRT union is not implemented!!!!!!!!!!!!!!!");
|
||||
proc.optional<PIVOTADDL>();
|
||||
|
||||
if (proc.optional<PIVOTADDL>())
|
||||
{
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -63,9 +63,26 @@ const bool PIVOTFRT9::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.optional<DBQUERYEXT>();
|
||||
proc.optional<PIVOTVIEWEX>();
|
||||
proc.mandatory<SXViewEx9>();
|
||||
m_QsiSXTag = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
if (proc.optional<DBQUERYEXT>())
|
||||
{
|
||||
m_DBQUERYEXT = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.optional<PIVOTVIEWEX>())
|
||||
{
|
||||
m_PIVOTVIEWEX = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.mandatory<SXViewEx9>())
|
||||
{
|
||||
m_SXViewEx9 = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
else
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of PIVOTFRT9 union of records
|
||||
class PIVOTFRT9: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(PIVOTFRT9)
|
||||
@ -49,7 +47,12 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typePIVOTFRT9;
|
||||
static const ElementType type = typePIVOTFRT9;
|
||||
|
||||
BaseObjectPtr m_QsiSXTag;
|
||||
BaseObjectPtr m_SXViewEx9;
|
||||
BaseObjectPtr m_DBQUERYEXT;
|
||||
BaseObjectPtr m_PIVOTVIEWEX;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -61,7 +61,10 @@ const bool PIVOTIVD::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Continue>(0, 0);
|
||||
m_SxIvd = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
int count = proc.repeated<Continue>(0, 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of PIVOTIVD union of records
|
||||
class PIVOTIVD: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(PIVOTIVD)
|
||||
@ -49,7 +47,9 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typePIVOTIVD;
|
||||
static const ElementType type = typePIVOTIVD;
|
||||
|
||||
BaseObjectPtr m_SxIvd;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -61,7 +61,7 @@ const bool PIVOTRULE::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<PRFILTER>(0, 0);
|
||||
int count = proc.repeated<PRFILTER>(0, 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -61,7 +61,9 @@ const bool PIVOTSELECT::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.mandatory<PIVOTRULE>();
|
||||
if (proc.mandatory<PIVOTRULE>())
|
||||
{
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -62,8 +62,20 @@ const bool PIVOTVD::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<SXVI>(0, 0);
|
||||
proc.mandatory<SXVDEx>();
|
||||
m_Sxvd = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
int count = proc.repeated<SXVI>(0, 0);
|
||||
while(count--)
|
||||
{
|
||||
m_arSXVI.push_back(elements_.front()); elements_.pop_front();
|
||||
}
|
||||
|
||||
if (proc.mandatory<SXVDEx>())
|
||||
{
|
||||
m_SXVDEx = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of PIVOTVD union of records
|
||||
class PIVOTVD: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(PIVOTVD)
|
||||
@ -49,7 +47,11 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typePIVOTVD;
|
||||
static const ElementType type = typePIVOTVD;
|
||||
|
||||
BaseObjectPtr m_Sxvd;
|
||||
std::vector<BaseObjectPtr> m_arSXVI;
|
||||
BaseObjectPtr m_SXVDEx;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -61,7 +61,14 @@ const bool PIVOTVIEW::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.optional<PIVOTFRT>();
|
||||
m_PIVOTCORE = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
if (proc.optional<PIVOTFRT>())
|
||||
{
|
||||
m_PIVOTFRT = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of PIVOTVIEW union of records
|
||||
class PIVOTVIEW: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(PIVOTVIEW)
|
||||
@ -49,7 +47,10 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typePIVOTVIEW;
|
||||
static const ElementType type = typePIVOTVIEW;
|
||||
|
||||
BaseObjectPtr m_PIVOTCORE;
|
||||
BaseObjectPtr m_PIVOTFRT;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -63,9 +63,27 @@ const bool PIVOTVIEWEX::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<PIVOTTH>(0, 0);
|
||||
proc.repeated<SXPIEx>(0, 0);
|
||||
proc.repeated<PIVOTVDTEX>(0, 0);
|
||||
m_SXViewEx = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
int count = 0;
|
||||
count = proc.repeated<PIVOTTH>(0, 0);
|
||||
while(count--)
|
||||
{
|
||||
m_arPIVOTTH.push_back(elements_.front()); elements_.pop_front();
|
||||
}
|
||||
|
||||
count = proc.repeated<SXPIEx>(0, 0);
|
||||
while(count--)
|
||||
{
|
||||
m_arSXPIEx.push_back(elements_.front()); elements_.pop_front();
|
||||
}
|
||||
|
||||
count = proc.repeated<PIVOTVDTEX>(0, 0);
|
||||
while(count--)
|
||||
{
|
||||
m_arPIVOTVDTEX.push_back(elements_.front()); elements_.pop_front();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of PIVOTVIEWEX union of records
|
||||
class PIVOTVIEWEX: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(PIVOTVIEWEX)
|
||||
@ -49,7 +47,12 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typePIVOTVIEWEX;
|
||||
static const ElementType type = typePIVOTVIEWEX;
|
||||
|
||||
BaseObjectPtr m_SXViewEx;
|
||||
std::vector<BaseObjectPtr> m_arPIVOTTH;
|
||||
std::vector<BaseObjectPtr> m_arSXPIEx;
|
||||
std::vector<BaseObjectPtr> m_arPIVOTVDTEX;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -64,7 +64,7 @@ const bool PRFILTER::loadContent(BinProcessor& proc)
|
||||
}
|
||||
if(proc.optional<SxItm>())
|
||||
{
|
||||
proc.repeated<Continue>(0, 0);
|
||||
int count = proc.repeated<Continue>(0, 0);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@ -57,19 +57,38 @@ BaseObjectPtr SXADDLCACHE::clone()
|
||||
}
|
||||
|
||||
|
||||
// [SXADDLCACHE12] [SXADDLDBQUERY] *UNKNOWNFRT SXAddl_SXCCache_SXDEnd
|
||||
//[SXADDLCACHE12] [SXADDLDBQUERY] *UNKNOWNFRT SXAddl_SXCCache_SXDEnd
|
||||
const bool SXADDLCACHE::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCCache_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.mandatory<SXAddl_SXCCache_SXDVer10Info>();
|
||||
proc.optional<SXAddl_SXCCache_SXDVerSXMacro>();
|
||||
proc.optional<SXADDLCACHE12>();
|
||||
proc.optional<SXADDLDBQUERY>();
|
||||
proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCCache_SXDEnd>();
|
||||
m_SXCCache_SXDId = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
if (proc.mandatory<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>())
|
||||
{
|
||||
}
|
||||
if (proc.optional<SXADDLDBQUERY>())
|
||||
{
|
||||
}
|
||||
int count = proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
|
||||
if (proc.mandatory<SXAddl_SXCCache_SXDEnd>())
|
||||
{
|
||||
elements_.pop_back();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
// Logical representation of SXADDLCACHE union of records
|
||||
class SXADDLCACHE: public CompositeObject
|
||||
{
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXADDLCACHE)
|
||||
@ -50,6 +48,10 @@ public:
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
static const ElementType type = typeSXADDLCACHE;
|
||||
|
||||
BaseObjectPtr m_SXCCache_SXDId;
|
||||
BaseObjectPtr m_SXDVer10Info;
|
||||
BaseObjectPtr m_SXDVerSXMacro;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -57,7 +57,7 @@ BaseObjectPtr SXADDLCACHE12::clone()
|
||||
}
|
||||
|
||||
|
||||
// *SXADDLCACHEFIELD [SXADDLSXDH] [SXADDLSXMGS] SXAddl_SXCCache_SXDVerUpdInv
|
||||
// *SXADDLCACHEFIELD [SXADDLSXDH] [SXADDLSXMGS] SXAddl_SXCCache_SXDVerUpdInv
|
||||
const bool SXADDLCACHE12::loadContent(BinProcessor& proc)
|
||||
{
|
||||
|
||||
@ -65,12 +65,24 @@ const bool SXADDLCACHE12::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.mandatory<SXAddl_SXCCache_SXDInfo12>();
|
||||
proc.mandatory<SXAddl_SXCCache_SXDInvRefreshReal>();
|
||||
proc.repeated<SXADDLCACHEFIELD>(0, 0);
|
||||
proc.optional<SXADDLSXDH>();
|
||||
proc.optional<SXADDLSXMGS>();
|
||||
proc.mandatory<SXAddl_SXCCache_SXDVerUpdInv>();
|
||||
if (proc.mandatory<SXAddl_SXCCache_SXDInfo12>())
|
||||
{
|
||||
}
|
||||
if (proc.mandatory<SXAddl_SXCCache_SXDInvRefreshReal>())
|
||||
{
|
||||
}
|
||||
|
||||
int count = proc.repeated<SXADDLCACHEFIELD>(0, 0);
|
||||
|
||||
if (proc.optional<SXADDLSXDH>())
|
||||
{
|
||||
}
|
||||
if (proc.optional<SXADDLSXMGS>())
|
||||
{
|
||||
}
|
||||
if (proc.mandatory<SXAddl_SXCCache_SXDVerUpdInv>())
|
||||
{
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -60,15 +60,21 @@ SXADDLFIELD = [SXAddl_SXCField_SXDId *Continue_SxaddlSxString SXAddl_SXCField_SX
|
||||
*/
|
||||
const bool SXADDLFIELD::loadContent(BinProcessor& proc)
|
||||
{
|
||||
|
||||
if(proc.optional<SXAddl_SXCField_SXDId>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCField_SXDVer10Info>();
|
||||
proc.mandatory<SXAddl_SXCField_SXDEnd>();
|
||||
proc.optional<SXADDLFIELD12>();
|
||||
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 proc.optional<SXADDLFIELD12>();
|
||||
}
|
||||
|
||||
|
||||
@ -68,6 +68,8 @@ const bool SXSRC::loadContent(BinProcessor& proc)
|
||||
}
|
||||
}
|
||||
}
|
||||
m_source = elements_.back();
|
||||
elements_.pop_back();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user