Commit 4063d39e authored by Elen.Subbotina's avatar Elen.Subbotina Committed by Alexander Trofimov

(1.0.1.183): ASCOfficeOdfFile

Электронные таблицы - конвертация группировок строк, видимость их, ...

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@54136 954022d7-b5bf-4e40-9824-e11837661b57
parent 450509d8
......@@ -126,7 +126,7 @@
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="D:\WORK\VersionControl.exe $(ProjectDir)\version.h"
CommandLine=""
ExcludedFromBuild="false"
/>
<Tool
......
......@@ -2,6 +2,6 @@
//1
//0
//1
//181
#define INTVER 1,0,1,181
#define STRVER "1,0,1,181\0"
//183
#define INTVER 1,0,1,183
#define STRVER "1,0,1,183\0"
......@@ -144,6 +144,7 @@
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="D:\WORK\VersionControl.exe $(ProjectDir)\ASCOfficeOdfFile\version.h"
/>
</Configuration>
</Configurations>
......
......@@ -46,6 +46,7 @@ std::wstring pptx_table_state::get_default_cell_style_row()
return default_row_cell_style_name_;
}
void pptx_table_state::start_row(const std::wstring & StyleName, const std::wstring & defaultCellStyleName)
{
current_table_column_ = -1;
......
......@@ -25,9 +25,11 @@ public:
void start_column(unsigned int repeated, const std::wstring & defaultCellStyleName);
std::wstring get_default_cell_style_col(unsigned int column);
std::wstring get_default_cell_style_row();
void start_row(const std::wstring & StyleName, const std::wstring & defaultCellStyleName);
void start_row(const std::wstring & StyleName, const std::wstring & defaultCellStyleName);
void end_row();
std::wstring current_row_style() const;
std::wstring current_row_style() const;
void start_cell();
void end_cell();
......@@ -63,7 +65,7 @@ private:
std::vector<unsigned int> columns_;
std::vector<std::wstring> columnsDefaultCellStyleName_;
};
class pptx_table_context : boost::noncopyable
......
......@@ -22,6 +22,7 @@ xlsx_table_state::xlsx_table_state(xlsx_conversion_context & Context,
xlsx_comments_context_(Context.get_comments_context_handle()),
table_column_last_width_(0.0)
{
memset(&group_row_,0,sizeof(_group_row));
}
void xlsx_table_state::start_column(unsigned int repeated, const std::wstring & defaultCellStyleName)
......@@ -38,6 +39,14 @@ unsigned int xlsx_table_state::columns_count() const
return columns_count_;
}
void xlsx_table_state::set_table_row_group(int count, bool collapsed, int level)
{
group_row_.enabled = true;
group_row_.count = count;
group_row_.collapsed = collapsed;
group_row_.level = level;
}
void xlsx_table_state::start_row(const std::wstring & StyleName, const std::wstring & defaultCellStyleName)
{
empty_row_ = true;
......
......@@ -33,6 +33,7 @@ public:
std::wstring default_row_cell_style() const;
std::wstring default_column_cell_style() const;
void set_table_row_group(int count, bool collapsed, int level);
void start_cell(size_t columnsSpanned, size_t rowsSpanned);
void end_cell();
......@@ -66,6 +67,13 @@ public:
std::wstring get_current_table_name() const { return tableName_; }
struct _group_row
{
bool enabled;
int count;
int level;
bool collapsed;
}group_row_;
private:
xlsx_conversion_context & context_;
std::wstring table_style_;
......@@ -90,6 +98,7 @@ private:
bool empty_row_;
double table_column_last_width_;
xlsx_hyperlinks xlsx_hyperlinks_;
};
......
......@@ -88,7 +88,10 @@ void xlsx_table_context::end_covered_cell()
{
return state().end_covered_cell();
}
void xlsx_table_context::set_table_row_group(int count, bool collapsed, int level)
{
return state().set_table_row_group(count, collapsed, level);
}
void xlsx_table_context::start_row(const std::wstring & StyleName, const std::wstring & defaultCellStyleName)
{
return state().start_row(StyleName, defaultCellStyleName);
......
......@@ -43,6 +43,7 @@ public:
int current_column() const;
int current_row() const;
void set_table_row_group(int count, bool collapsed, int level);
void start_row(const std::wstring & StyleName, const std::wstring & defaultCellStyleName);
void non_empty_row();
bool is_empty_row() const;
......
......@@ -334,6 +334,11 @@ void xlsx_conversion_context::end_table_column()
{
}
void xlsx_conversion_context::set_table_row_group(int count, bool collapsed, int level)
{
get_table_context().set_table_row_group(count, collapsed, level);
}
void xlsx_conversion_context::start_table_row(const std::wstring & styleName, const std::wstring & defaultCellStyleName)
{
get_table_context().start_row(styleName, defaultCellStyleName);
......
......@@ -71,6 +71,7 @@ public:
double table_column_last_width() const;
void end_table_column();
void set_table_row_group(int count, bool collapsed, int level);
void start_table_row(const std::wstring & styleName, const std::wstring & defaultCellStyleName);
void non_empty_row();
void end_table_row();
......
......@@ -605,6 +605,8 @@ public:
void xlsx_convert(oox::xlsx_conversion_context & Context);
void pptx_convert(oox::pptx_conversion_context & Context);
int get_count(){return content_.size();}// ..
public:
office_element_ptr_array content_;
//int type_;
......@@ -619,7 +621,6 @@ class table_table_row_group_attlist
public:
void add_attributes( const xml::attributes_wc_ptr & Attributes );
private:
bool table_display_; // default true
};
......
......@@ -104,7 +104,7 @@ void table_table_row::xlsx_convert(oox::xlsx_conversion_context & Context)
}
while (0);
const bool collapsed = table_table_row_attlist_.table_visibility_.get_type() == table_visibility::Collapse;
bool hidden = table_table_row_attlist_.table_visibility_.get_type() == table_visibility::Collapse;
for (unsigned int i = 0; i < table_table_row_attlist_.table_number_rows_repeated_; ++i)
{
......@@ -118,7 +118,25 @@ void table_table_row::xlsx_convert(oox::xlsx_conversion_context & Context)
{
CP_XML_ATTR(L"r", Context.current_table_row() + 1);
if (collapsed)
if (Context.get_table_context().state().group_row_.enabled)
{
//std::wstring str_spans = boost::lexical_cast<std::wstring>(Context.get_table_context().state().group_row_.count);
//str_spans = str_spans + L":";
std::wstring str_spans = L"1:" + boost::lexical_cast<std::wstring>(Context.get_table_context().columns_count());
ht = L"";
CP_XML_ATTR(L"collapsed", Context.get_table_context().state().group_row_.collapsed);
CP_XML_ATTR(L"outlineLevel", Context.get_table_context().state().group_row_.level);
CP_XML_ATTR(L"spans", str_spans);
if (Context.get_table_context().state().group_row_.collapsed)hidden = false;
Context.get_table_context().state().group_row_.count--;
if (Context.get_table_context().state().group_row_.count<1)
Context.get_table_context().state().group_row_.enabled = false;
}
if (hidden)
{
CP_XML_ATTR(L"hidden", L"true");
}
......@@ -149,7 +167,7 @@ void table_table_row::xlsx_convert(oox::xlsx_conversion_context & Context)
skip_next_row = true;
}
Context.get_table_metrics().add_rows(table_table_row_attlist_.table_number_rows_repeated_, !collapsed ? row_height : 0.0);
Context.get_table_metrics().add_rows(table_table_row_attlist_.table_number_rows_repeated_, !hidden ? row_height : 0.0);
}
......@@ -207,6 +225,11 @@ void table_rows_and_groups::xlsx_convert(oox::xlsx_conversion_context & Context)
void table_table_row_group::xlsx_convert(oox::xlsx_conversion_context & Context)
{
int count = table_rows_and_groups_.get_count();
int level = 1;
Context.set_table_row_group(count,table_table_row_group_attlist_.table_display_,level);
table_rows_and_groups_.xlsx_convert(Context);
}
......
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