Commit 296c449f authored by Sergey.Konovalov's avatar Sergey.Konovalov Committed by Alexander Trofimov

(2.0.0.158): ASCOfficeDocxFile2

(1.0.0.97): XlsxSerializerCom
при записи chart в xlsx для тегов c:Cat, c:xVal, c:Val смотрим значения и выбираем как их записывать как strRef или numRef.

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@53120 954022d7-b5bf-4e40-9824-e11837661b57
parent 6d0ff00d
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
//2 //2
//0 //0
//0 //0
//156 //158
#define INTVER 2,0,0,156 #define INTVER 2,0,0,158
#define STRVER "2,0,0,156\0" #define STRVER "2,0,0,158\0"
...@@ -59,6 +59,22 @@ namespace OOX ...@@ -59,6 +59,22 @@ namespace OOX
{ {
return et_c_NumPoint; return et_c_NumPoint;
} }
bool isNumCache()
{
bool bRes = true;
if(m_oValue.IsInit())
{
int nVal = _wtoi(m_oValue->m_sText);
if(0 == nVal && !(m_oValue->m_sText.GetLength() > 0 && '0' == m_oValue->m_sText[0]))
bRes = false;
}
return bRes;
}
void setForceCache(bool bStr)
{
m_oValue.Init();
m_oValue->m_sText.Append(_T("0"));
}
private: private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader) void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
...@@ -157,6 +173,24 @@ namespace OOX ...@@ -157,6 +173,24 @@ namespace OOX
{ {
return et_c_NumCache; return et_c_NumCache;
} }
bool isNumCache()
{
bool bRes = true;
for(int i = 0, length = m_arrItems.GetSize(); i < length; i++)
{
if(!m_arrItems[i]->isNumCache())
{
bRes = false;
break;
}
}
return bRes;
}
void setForceCache(bool bStr)
{
for(int i = 0, length = m_arrItems.GetSize(); i < length; i++)
m_arrItems[i]->setForceCache(bStr);
}
private: private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader) void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
...@@ -183,8 +217,23 @@ namespace OOX ...@@ -183,8 +217,23 @@ namespace OOX
virtual void toXML(CStringWriter& writer) const virtual void toXML(CStringWriter& writer) const
{ {
} }
virtual void toXML2(CStringWriter& writer, bool bStr) const virtual void toXML2(CStringWriter& writer, bool bStr, bool bCheckData, bool bReplaceIfNeed) const
{ {
if(bCheckData)
{
bool bStrNew = true;
if(m_oNumCache->isNumCache())
bStrNew = false;
else
bStrNew = true;
if(bReplaceIfNeed)
{
if(bStr != bStrNew)
m_oNumCache->setForceCache(bStr);
}
else
bStr = bStrNew;
}
if(bStr) if(bStr)
writer.WriteStringC(CString(_T("<c:strRef>"))); writer.WriteStringC(CString(_T("<c:strRef>")));
else else
...@@ -227,6 +276,13 @@ namespace OOX ...@@ -227,6 +276,13 @@ namespace OOX
{ {
return et_c_NumCacheRef; return et_c_NumCacheRef;
} }
bool isNumCache() const
{
bool bRes = true;
if(m_oNumCache.IsInit())
bRes = m_oNumCache->isNumCache();
return bRes;
}
private: private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader) void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
...@@ -252,23 +308,30 @@ namespace OOX ...@@ -252,23 +308,30 @@ namespace OOX
virtual void toXML(CStringWriter& writer) const virtual void toXML(CStringWriter& writer) const
{ {
} }
virtual void toXML2(CStringWriter& writer, bool bStr) const //void toXML2(CStringWriter& writer, bool bStr, bool bCheckData) const
{ //{
if(m_oNumCacheRef.IsInit()) // if(m_oNumCacheRef.IsInit())
{ // {
if(bStr) // if(bCheckData)
writer.WriteStringC(CString(_T("<c:strRef>"))); // {
else // if(m_oNumCacheRef->isNumCache())
writer.WriteStringC(CString(_T("<c:numRef>"))); // bStr = false;
// else
m_oNumCacheRef->toXML(writer); // bStr = true;
// }
if(bStr) // if(bStr)
writer.WriteStringC(CString(_T("</c:strRef>"))); // writer.WriteStringC(CString(_T("<c:strRef>")));
else // else
writer.WriteStringC(CString(_T("</c:numRef>"))); // writer.WriteStringC(CString(_T("<c:numRef>")));
}
} // m_oNumCacheRef->toXML(writer);
// if(bStr)
// writer.WriteStringC(CString(_T("</c:strRef>")));
// else
// writer.WriteStringC(CString(_T("</c:numRef>")));
// }
//}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{ {
ReadAttributes( oReader ); ReadAttributes( oReader );
...@@ -408,7 +471,7 @@ namespace OOX ...@@ -408,7 +471,7 @@ namespace OOX
virtual void toXML(CStringWriter& writer) const virtual void toXML(CStringWriter& writer) const
{ {
if(m_oStrRef.IsInit()) if(m_oStrRef.IsInit())
m_oStrRef->toXML2(writer, true); m_oStrRef->toXML2(writer, true, false, false);
else if(m_oValue.IsInit()) else if(m_oValue.IsInit())
{ {
writer.WriteStringC(CString(_T("<c:v>"))); writer.WriteStringC(CString(_T("<c:v>")));
...@@ -790,7 +853,7 @@ namespace OOX ...@@ -790,7 +853,7 @@ namespace OOX
if(m_oCat.IsInit()) if(m_oCat.IsInit())
{ {
CStringWriter sw; CStringWriter sw;
m_oCat->m_oStrRef->toXML2(sw, true); m_oCat->m_oStrRef->toXML2(sw, true, true, false);
sRes.AppendFormat(_T("<c:cat>%s</c:cat>"), sw.GetCString()); sRes.AppendFormat(_T("<c:cat>%s</c:cat>"), sw.GetCString());
} }
if(bLine && m_oMarker.IsInit()) if(bLine && m_oMarker.IsInit())
...@@ -808,12 +871,12 @@ namespace OOX ...@@ -808,12 +871,12 @@ namespace OOX
if(bScatter && m_oXVal.IsInit() && m_oXVal->m_oNumCacheRef.IsInit() && m_oXVal->m_oNumCacheRef->m_oFormula.IsInit()) if(bScatter && m_oXVal.IsInit() && m_oXVal->m_oNumCacheRef.IsInit() && m_oXVal->m_oNumCacheRef->m_oFormula.IsInit())
{ {
CStringWriter sw; CStringWriter sw;
m_oXVal->m_oNumCacheRef->toXML2(sw, false); m_oXVal->m_oNumCacheRef->toXML2(sw, false, true, false);
sRes.AppendFormat(_T("<c:xVal>%s</c:xVal>"), sw.GetCString()); sRes.AppendFormat(_T("<c:xVal>%s</c:xVal>"), sw.GetCString());
} }
CStringWriter sw; CStringWriter sw;
m_oVal->m_oNumCacheRef->toXML2(sw, false); m_oVal->m_oNumCacheRef->toXML2(sw, false, true, true);
if(bScatter) if(bScatter)
sRes.AppendFormat(_T("<c:yVal>%s</c:yVal>"), sw.GetCString()); sRes.AppendFormat(_T("<c:yVal>%s</c:yVal>"), sw.GetCString());
else else
......
...@@ -75,4 +75,4 @@ namespace ASCGraphics ...@@ -75,4 +75,4 @@ namespace ASCGraphics
#endif #endif
#import "../Redist/ASCOfficePPTXFile.dll" named_guids raw_interfaces_only rename_namespace("PPTXFile"), exclude("_IAVSOfficeFileTemplateEvents"), exclude("_IAVSOfficeFileTemplateEvents2") #import "../Redist/ASCOfficePPTXFile.dll" named_guids raw_interfaces_only rename_namespace("PPTXFile"), exclude("_IAVSOfficeFileTemplateEvents"), exclude("_IAVSOfficeFileTemplateEvents2"), exclude("IASCRenderer")
\ No newline at end of file \ No newline at end of file
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
//1 //1
//0 //0
//0 //0
//92 //98
#define INTVER 1,0,0,92 #define INTVER 1,0,0,98
#define STRVER "1,0,0,92\0" #define STRVER "1,0,0,98\0"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment