Infor Syteline 数据库增长月报表

公司ERP系统,需求一份数据库大小增长月报表,每月1号发送邮件至订阅者的邮箱,下图右下角的Chart是动态产生,有关渐变图片,可以参考这篇:http://www.cnblogs.com/insus/archive/2012/04/01/2429442.html 另外由于磁盘空间太大,加上当前的ERP存储量小,为了显示图例效果,Insus.NET使用千分比。

 

分享右下角图表代码:

<asp:GridView ID="GridViewErpDbGrowthReport" runat="server" CellPadding="3" CellSpacing="0" Width="97%" GridLines="Both" HeaderStyle-BorderWidth="1" HeaderStyle-BorderStyle="Solid" HeaderStyle-Height="25" HeaderStyle-BackColor="#efebde" RowStyle-BorderWidth="1" RowStyle-BorderStyle="Solid" RowStyle-Height="20" OnRowDataBound="GridViewErpDbGrowthReport_RowDataBound"></asp:GridView>
                        Units:KB.<br />
                        Disk space total size: 556GB.

OnRowDataBound="GridViewErpDbGrowthReport_RowDataBound" 事件:

 1  protected void GridViewErpDbGrowthReport_RowDataBound(object sender, GridViewRowEventArgs e)
 2     {
 3         if (e.Row.RowType == DataControlRowType.DataRow)
 4         {
 5             if (e.Row.RowIndex == 0)
 6             {
 7                 for (int i = 0; i < e.Row.Cells.Count; i++)
 8                 {
 9                     e.Row.Cells[i].Attributes.Add("Style", "text-align:center;");
10                 }
11             }
12 
13             if (e.Row.RowIndex == 1)
14             {
15                 e.Row.Height = 100;
16 
17                 for (int i = 0; i < e.Row.Cells.Count; i++)
18                 {
19                     if (i == 0)
20                     {
21                         e.Row.Cells[i].Attributes.Add("Style", "vertical-align:bottom; text-align:right;");
22                         e.Row.Cells[i].Text = e.Row.Cells[i].Text + "&nbsp;&nbsp;&nbsp;<span style='text-align:right;vertical-align:bottom;'><IMG src='Image/bar.gif' width='10' height='100' ></span>";
23                     }
24                     else
25                     {
26                         e.Row.Cells[i].Attributes.Add("Style", "text-align:center; vertical-align:bottom;");
27                         string dec = (Convert.ToDecimal(e.Row.Cells[i].Text) * 1000).ToString ();
28                         e.Row.Cells[i].Text = dec.Substring(0,dec.Length-2) + "‰<br/><IMG src='vertical-bar.gif' width='30' height='" + dec + "' > ";
29                     }
30                 }
31             }
32         }
33     }


定制好图片的高度,然后是每个月份的大小与磁盘存储大小比得到图片的高度。

由于GridView的每一列是动态产生的,列名不定因素,只能在OnRowDataBound事件重写列值输出。

原文地址:https://www.cnblogs.com/insus/p/2827531.html