Commit 0510442e authored by Elen.Subbotina's avatar Elen.Subbotina Committed by Alexander Trofimov

(1.2.0.46): ASCOfficeOdfFileW

доделки по биржевой диаграмме

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@56350 954022d7-b5bf-4e40-9824-e11837661b57
parent 3a168126
...@@ -263,6 +263,7 @@ void odf_chart_context::set_chart_bar_direction(int type) ...@@ -263,6 +263,7 @@ void odf_chart_context::set_chart_bar_direction(int type)
void odf_chart_context::set_chart_bar_gap_width(std::wstring val) void odf_chart_context::set_chart_bar_gap_width(std::wstring val)
{ {
if (!impl_->current_level_.back().chart_properties_) return; if (!impl_->current_level_.back().chart_properties_) return;
int res = val.find(L"%"); int res = val.find(L"%");
bool percent=false; bool percent=false;
...@@ -288,6 +289,15 @@ void odf_chart_context::set_chart_bar_overlap(std::wstring val) ...@@ -288,6 +289,15 @@ void odf_chart_context::set_chart_bar_overlap(std::wstring val)
double dVal = boost::lexical_cast<double>(val); double dVal = boost::lexical_cast<double>(val);
impl_->current_level_.back().chart_properties_->content().chart_overlap_ = (int)dVal; impl_->current_level_.back().chart_properties_->content().chart_overlap_ = (int)dVal;
} }
void odf_chart_context::set_chart_stock_candle_stick(bool val)
{
if (!impl_->current_level_.back().chart_properties_) return;
impl_->current_level_.back().chart_properties_->content().chart_japanese_candle_stick_ = val;
}
void odf_chart_context::set_chart_radar_type(int type) void odf_chart_context::set_chart_radar_type(int type)
{ {
switch(type) switch(type)
...@@ -861,9 +871,9 @@ void odf_chart_context::start_stock_gain_marker() ...@@ -861,9 +871,9 @@ void odf_chart_context::start_stock_gain_marker()
void odf_chart_context::start_stock_loss_marker() void odf_chart_context::start_stock_loss_marker()
{ {
office_element_ptr elm; office_element_ptr elm;
create_element(L"chart", L"stock-gain-marker", elm, impl_->odf_context_); create_element(L"chart", L"stock-loss-marker", elm, impl_->odf_context_);
chart_stock_gain_marker *marker = dynamic_cast<chart_stock_gain_marker*>(elm.get()); chart_stock_loss_marker *marker = dynamic_cast<chart_stock_loss_marker*>(elm.get());
////////// //////////
impl_->styles_context_->create_style(L"",style_family::Chart, true, false, -1); impl_->styles_context_->create_style(L"",style_family::Chart, true, false, -1);
...@@ -881,6 +891,30 @@ void odf_chart_context::start_stock_loss_marker() ...@@ -881,6 +891,30 @@ void odf_chart_context::start_stock_loss_marker()
} }
start_element(elm, style_elm, style_name); start_element(elm, style_elm, style_name);
} }
void odf_chart_context::set_stock_gain_marker_width(std::wstring val)
{
int res = val.find(L"%");
bool percent=false;
if (res > 0)
{
val = val.substr(0,res);
percent=true;
}
double dVal = boost::lexical_cast<double>(val);
}
void odf_chart_context::set_stock_loss_marker_width(std::wstring val)
{
int res = val.find(L"%");
bool percent=false;
if (res > 0)
{
val = val.substr(0,res);
percent=true;
}
double dVal = boost::lexical_cast<double>(val);
}
long odf_chart_context::get_count_data_points_series() long odf_chart_context::get_count_data_points_series()
{ {
return impl_->current_data_points_series_count_; return impl_->current_data_points_series_count_;
......
...@@ -42,6 +42,7 @@ public: ...@@ -42,6 +42,7 @@ public:
void set_chart_bar_gap_width(std::wstring val); void set_chart_bar_gap_width(std::wstring val);
void set_chart_bar_overlap(std::wstring val); void set_chart_bar_overlap(std::wstring val);
void set_chart_radar_type(int type); void set_chart_radar_type(int type);
void set_chart_stock_candle_stick(bool val);
void set_marker_size(int size); void set_marker_size(int size);
void set_marker_type(int type); void set_marker_type(int type);
...@@ -86,8 +87,11 @@ public: ...@@ -86,8 +87,11 @@ public:
void start_floor(); void start_floor();
void start_wall(); void start_wall();
void set_legend_position(int val); void set_legend_position(int val);
void start_stock_gain_marker(); void start_stock_gain_marker();
void set_stock_gain_marker_width(std::wstring val);
void start_stock_loss_marker(); void start_stock_loss_marker();
void set_stock_loss_marker_width(std::wstring val);
void start_stock_range_line(); void start_stock_range_line();
void start_element(office_element_ptr & elm, office_element_ptr & style_elm, std::wstring style_name); void start_element(office_element_ptr & elm, office_element_ptr & style_elm, std::wstring style_name);
......
...@@ -45,6 +45,7 @@ void chart_format_properties::serialize(std::wostream & _Wostream ,const wchar_t ...@@ -45,6 +45,7 @@ void chart_format_properties::serialize(std::wostream & _Wostream ,const wchar_t
CP_XML_ATTR_OPT(L"chart:error-upper-indicator", chart_error_upper_indicator_ ); CP_XML_ATTR_OPT(L"chart:error-upper-indicator", chart_error_upper_indicator_ );
CP_XML_ATTR_OPT(L"chart:error-lower-indicator", chart_error_lower_indicator_ ); CP_XML_ATTR_OPT(L"chart:error-lower-indicator", chart_error_lower_indicator_ );
CP_XML_ATTR_OPT(L"chart:treat-empty-cells", chart_treat_empty_cells_); CP_XML_ATTR_OPT(L"chart:treat-empty-cells", chart_treat_empty_cells_);
CP_XML_ATTR_OPT(L"chart:japanese-candle-stick", chart_japanese_candle_stick_);
CP_XML_ATTR_OPT(L"chart:symbol-type", chart_symbol_type_); CP_XML_ATTR_OPT(L"chart:symbol-type", chart_symbol_type_);
CP_XML_ATTR_OPT(L"chart:symbol-name", chart_symbol_name_); CP_XML_ATTR_OPT(L"chart:symbol-name", chart_symbol_name_);
......
...@@ -52,7 +52,8 @@ public: ...@@ -52,7 +52,8 @@ public:
_CP_OPT(Bool) chart_error_upper_indicator_; _CP_OPT(Bool) chart_error_upper_indicator_;
_CP_OPT(Bool) chart_error_lower_indicator_; _CP_OPT(Bool) chart_error_lower_indicator_;
_CP_OPT(Bool) chart_treat_empty_cells_; _CP_OPT(Bool) chart_treat_empty_cells_;
_CP_OPT(Bool) chart_japanese_candle_stick_;
_CP_OPT(chart_symbol_type) chart_symbol_type_; _CP_OPT(chart_symbol_type) chart_symbol_type_;
_CP_OPT(chart_symbol_name) chart_symbol_name_; _CP_OPT(chart_symbol_name) chart_symbol_name_;
......
...@@ -626,33 +626,44 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_StockChart *chart) ...@@ -626,33 +626,44 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_StockChart *chart)
odf_context()->chart_context()->start_group_series(); odf_context()->chart_context()->start_group_series();
convert(chart->m_dLbls); convert(chart->m_dLbls);
convert (chart->m_dropLines ,3); for (long i=0; i< chart->m_ser.GetCount(); i++)
convert (chart->m_hiLowLines, 4); {
convert(chart->m_ser[i]);
}
for (long i=0; i< chart->m_axId.GetCount(); i++)
{
odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
}
convert (chart->m_dropLines ,3);
if (chart->m_upDownBars) if (chart->m_upDownBars)
{ {
//m_gapWidth odf_context()->chart_context()->set_chart_stock_candle_stick(true);
std::wstring gap_width;
if (chart->m_upDownBars->m_gapWidth && chart->m_upDownBars->m_gapWidth->m_val)
{
gap_width = string2std_string(*chart->m_upDownBars->m_gapWidth->m_val);
/*odf_context()->chart_context()->set_chart_bar_gap_width(gap_width);*/
}
if (chart->m_upDownBars->m_upBars) if (chart->m_upDownBars->m_upBars)
{ {
odf_context()->chart_context()->start_stock_gain_marker(); odf_context()->chart_context()->start_stock_gain_marker();
convert(chart->m_upDownBars->m_upBars->m_oSpPr.GetPointer()); convert(chart->m_upDownBars->m_upBars->m_oSpPr.GetPointer());
if (gap_width.length() > 0)
odf_context()->chart_context()->set_chart_bar_gap_width(gap_width);
odf_context()->chart_context()->end_element(); odf_context()->chart_context()->end_element();
} }
if (chart->m_upDownBars->m_downBars) if (chart->m_upDownBars->m_downBars)
{ {
odf_context()->chart_context()->start_stock_loss_marker(); odf_context()->chart_context()->start_stock_loss_marker();
convert(chart->m_upDownBars->m_downBars->m_oSpPr.GetPointer()); convert(chart->m_upDownBars->m_downBars->m_oSpPr.GetPointer());
if (gap_width.length() > 0)
odf_context()->chart_context()->set_chart_bar_gap_width(gap_width);
odf_context()->chart_context()->end_element(); odf_context()->chart_context()->end_element();
} }
} }
for (long i=0; i< chart->m_ser.GetCount(); i++) convert (chart->m_hiLowLines, 4);
{
convert(chart->m_ser[i]);
}
for (long i=0; i< chart->m_axId.GetCount(); i++)
{
odf_context()->chart_context()->add_axis_group_series(*chart->m_axId[i]->m_val);
}
odf_context()->chart_context()->end_group_series(); odf_context()->chart_context()->end_group_series();
} }
void OoxConverter::convert(OOX::Spreadsheet::CT_OfPieChart *chart) void OoxConverter::convert(OOX::Spreadsheet::CT_OfPieChart *chart)
......
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
//1 //1
//2 //2
//0 //0
//46 //47
#define INTVER 1,2,0,46 #define INTVER 1,2,0,47
#define STRVER "1,2,0,46\0" #define STRVER "1,2,0,47\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