owc編程,柱形圖,柱頂上已經顯示數字了,如何把那個數字變成百分比數值呀?查半天也沒搞定。例如“0.5” 成“50%”。

woodyy 2008-04-29 09:39:44
owc編程,柱形圖,柱頂上已經顯示出來數字了,如何把那個數字變成百分比數值呀?
例如“0.5” 成“50%”。

我從sql語句上下手了,不行。發現
strYdata += row["num"].ToString() + "%" + "\t"; 或
strYdata += row["num"].ToString() + "隨意放一些字符" + "\t";
這樣搞就自動過濾掉非數字的字符來。



//連接數據庫並獲取特定字符串
string strSeriesName = "圖例1";
string strXdata = string.Empty;
string strYdata = string.Empty;

string s = "SELECT [num],[year] FROM [Chart]";
DataTable table = DBHelp.ExecuteDataTable(s);
foreach (DataRow row in table.Rows)
{
strYdata += row["num"].ToString() + "\t";
strXdata += row["year"].ToString() + "\t";
}

//創建ChartSpace對象來放置圖表
ChartSpace laySpace = new ChartSpaceClass();

//在ChartSpace對象中添加圖表
ChChart InsertChart = laySpace.Charts.Add(0);

//指定繪制圖表的類型。類型可以通過OWC.ChartChartTypeEnum枚舉值得到
//InsertChart.Type = ChartChartTypeEnum.chChartTypeLine;//折線圖
//InsertChart.Type = ChartChartTypeEnum.chChartTypeArea;//面積圖
//InsertChart.Type = ChartChartTypeEnum.chChartTypeBarClustered;//條形圖
InsertChart.Type = ChartChartTypeEnum.chChartTypeColumnClustered;//柱形圖

//指定圖表是否需要圖例標註
InsertChart.HasLegend = true;
InsertChart.Legend.Position = ChartLegendPositionEnum.chLegendPositionTop;

InsertChart.HasTitle = true;//為圖表添加標題
InsertChart.Title.Caption = "2006年清清月兒每個月花銷流水賬";//標題名稱

//為x軸添加圖示說明
InsertChart.Axes[0].HasTitle = true;
InsertChart.Axes[0].Title.Caption = "月份";//
InsertChart.Axes[0].HasMajorGridlines = true;

//為y軸添加圖示說明
InsertChart.Axes[1].HasTitle = true;
//InsertChart.Axes[1].Scaling.SplitMinimum = 0;
InsertChart.Axes[1].NumberFormat = "0%";
InsertChart.Axes[1].Title.Caption = "數量";

//添加一個series系列
InsertChart.SeriesCollection.Add(0);

//給定series系列的名字
InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName);

//給定分類
InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strXdata);

//給定值
InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strYdata);
//在柱頂上顯示數字××××××××××××××××××××××××××××××××××××××××××
InsertChart.SeriesCollection[0].DataLabelsCollection.Add();



//////////////////////
//////添加一個series系列
//InsertChart.SeriesCollection.Add(1);
////給定series系列的名字
//InsertChart.SeriesCollection[1].SetData(ChartDimensionsEnum.chDimSeriesNames, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName);

////給定分類
//InsertChart.SeriesCollection[1].SetData(ChartDimensionsEnum.chDimCategories, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strXdata);

////給定值
//InsertChart.SeriesCollection[1].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strYdata);
//InsertChart.SeriesCollection[1].DataLabelsCollection.Add();
///////////////////////////////////////////

//輸出文件.
string strAbsolutePath = (Server.MapPath(".")) + "\\ShowData.gif";
laySpace.ExportPicture(strAbsolutePath, "GIF", 400, 350);

//創建GIF文件的相對路徑.
string strRelativePath = "./ShowData.gif";

//把圖片添加到placeholder中,並在頁面上顯示
string strImageTag = "<IMG SRC='" + strRelativePath + "'/>";
this.PlaceHolder1.Controls.Add(new LiteralControl(strImageTag));


...全文
194 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
JustLovePro 2008-04-29
  • 打赏
  • 举报
回复
恭喜发财~
woodyy 2008-04-29
  • 打赏
  • 举报
回复
我是樓主,我終于搞定了!!!!!!!!!!!!!!


ChDataLabels ch = InsertChart.SeriesCollection[0].DataLabelsCollection.Add();
ch.NumberFormat = "0.00%";


哈哈~~~~~~

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧