结合Bindows生成各种类型图表[代码]


参照Bindows Samples的ChartTest2.xml

bi3.gif



代码:

  1 ExpandedBlockStart.gif ContractedBlock.gif          /**/ /// <summary>
  2InBlock.gif        /// 生成随机颜色数组
  3InBlock.gif        /// </summary>
  4InBlock.gif        /// <param name="ColorCount">随机颜色的个数</param>
  5ExpandedBlockEnd.gif        /// <returns>随机颜色数组</returns>

  6 None.gif          private  System.Collections.ArrayList RndColor( int  ColorCount)
  7 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
  8InBlock.gif
  9InBlock.gif            System.Collections.ArrayList al = new System.Collections.ArrayList();
 10InBlock.gif
 11InBlock.gif            System.Collections.ArrayList alColor = new System.Collections.ArrayList();
 12InBlock.gif
 13InBlock.gif            al.Add(System.Drawing.Color.Crimson);
 14InBlock.gif            al.Add(System.Drawing.Color.DeepPink);
 15InBlock.gif            al.Add(System.Drawing.Color.DarkMagenta);
 16InBlock.gif            al.Add(System.Drawing.Color.DarkViolet);
 17InBlock.gif            al.Add(System.Drawing.Color.Indigo);
 18InBlock.gif            al.Add(System.Drawing.Color.DarkSlateBlue);
 19InBlock.gif            al.Add(System.Drawing.Color.Blue);
 20InBlock.gif            al.Add(System.Drawing.Color.MidnightBlue);
 21InBlock.gif            al.Add(System.Drawing.Color.RoyalBlue);
 22InBlock.gif            al.Add(System.Drawing.Color.DodgerBlue);
 23InBlock.gif            al.Add(System.Drawing.Color.SteelBlue);
 24InBlock.gif            al.Add(System.Drawing.Color.CadetBlue);
 25InBlock.gif            al.Add(System.Drawing.Color.DarkSlateGray);
 26InBlock.gif            al.Add(System.Drawing.Color.Teal);
 27InBlock.gif            al.Add(System.Drawing.Color.SeaGreen);
 28InBlock.gif            al.Add(System.Drawing.Color.Green);
 29InBlock.gif            al.Add(System.Drawing.Color.DarkGreen);
 30InBlock.gif            al.Add(System.Drawing.Color.OliveDrab);
 31InBlock.gif            al.Add(System.Drawing.Color.Olive);
 32InBlock.gif            al.Add(System.Drawing.Color.Gold);
 33InBlock.gif            al.Add(System.Drawing.Color.Goldenrod);
 34InBlock.gif            al.Add(System.Drawing.Color.Orange);
 35InBlock.gif            al.Add(System.Drawing.Color.DarkOrange);
 36InBlock.gif            al.Add(System.Drawing.Color.Chocolate);
 37InBlock.gif            al.Add(System.Drawing.Color.Sienna);
 38InBlock.gif            al.Add(System.Drawing.Color.OrangeRed);
 39InBlock.gif            al.Add(System.Drawing.Color.Tomato);
 40InBlock.gif            al.Add(System.Drawing.Color.Red);
 41InBlock.gif            al.Add(System.Drawing.Color.Brown);
 42InBlock.gif            al.Add(System.Drawing.Color.DimGray);
 43InBlock.gif
 44InBlock.gif            int temp = -1 ;//记录上次随机数值,尽量避免生产几个一样的随机数
 45InBlock.gif
 46InBlock.gif            //采用一个简单的算法以保证生成随机颜色的不同
 47InBlock.gif            Random rand =new Random();
 48InBlock.gif            for ( int i = 1 ; i < ColorCount + 1 ; i++ ) 
 49ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{    
 50InBlock.gif                if ( temp != -1
 51ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
 52InBlock.gif                    rand =new Random(i*temp*unchecked((int)DateTime.Now.Ticks));
 53ExpandedSubBlockEnd.gif                }
    
 54InBlock.gif                int t = rand.Next(30);
 55InBlock.gif                if (temp != -1 && temp == t) 
 56ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
 57InBlock.gif                    return RndColor(ColorCount);
 58ExpandedSubBlockEnd.gif                }

 59InBlock.gif
 60InBlock.gif                temp = t  ;
 61InBlock.gif
 62InBlock.gif                alColor.Add(al[t]);
 63InBlock.gif                
 64ExpandedSubBlockEnd.gif            }

 65InBlock.gif        
 66InBlock.gif            return alColor;
 67InBlock.gif        
 68ExpandedBlockEnd.gif        }

 69 None.gif
 70 None.gif
 71 None.gif
 72 None.gif
 73 None.gif
 74 None.gif
 75 None.gif
 76 ExpandedBlockStart.gifContractedBlock.gif         /**/ /// <summary>
 77InBlock.gif        /// 多种类型图表的调用文件
 78InBlock.gif        /// </summary>
 79InBlock.gif        /// <param name="标题">Bindows窗体的标题</param>
 80InBlock.gif        /// <param name="宽度">Bindows窗体的宽度</param>
 81InBlock.gif        /// <param name="高度">Bindows窗体的高度</param>
 82InBlock.gif        /// <param name="附属文件名">此主文件调用的数据文件的文件名的前半部分</param>
 83ExpandedBlockEnd.gif        /// <returns>生成主文件时的TimeStamp,供生成数据文件的文件名使用</returns>

 84 None.gif          private   string  AllChartMain( string  标题,  int  宽度,  int  高度,  string  附属文件名)
 85 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
 86InBlock.gif            System.Text.StringBuilder sbContent = new System.Text.StringBuilder(100);
 87InBlock.gif
 88InBlock.gif            sbContent.Append("<?xml version=\"1.0\" ?>\n");
 89InBlock.gif
 90InBlock.gif            sbContent.Append("<application>\n");
 91InBlock.gif
 92InBlock.gif            sbContent.Append("<window caption=\"" + 标题 + "\" width=\"" + 宽度.ToString() + "\" height=\"" + 高度.ToString() + "\" centered=\"true\" />\n");
 93InBlock.gif
 94InBlock.gif            sbContent.Append("<resources>\n");
 95InBlock.gif
 96InBlock.gif            sbContent.Append("<script>\n");
 97InBlock.gif
 98InBlock.gif            sbContent.Append("<![CDATA[ \n");
 99InBlock.gif
100InBlock.gif            string sbCN = this.CurTimeStamp();
101InBlock.gif
102InBlock.gif            sbContent.Append("function " + 附属文件名 + "Main" + sbCN + "() {\n");
103InBlock.gif
104InBlock.gif            sbContent.Append("var win = application.getWindow();\n");
105InBlock.gif
106InBlock.gif            sbContent.Append("var cb = new BiComboBox([\"line\", \"column\", \"bar\", \"pie\", \"grid\"]);\n");
107InBlock.gif
108InBlock.gif            sbContent.Append("win.add(cb);\n");
109InBlock.gif
110InBlock.gif            sbContent.Append("cb.setLocation(10, 10);\n");
111InBlock.gif
112InBlock.gif            sbContent.Append("cb.setWidth(150);\n");
113InBlock.gif
114InBlock.gif            sbContent.Append("var oDoc = BiXmlLoader.load( \"" + 附属文件名 + sbCN + ".xml\" );\n");
115InBlock.gif
116InBlock.gif            sbContent.Append("if (oDoc.parseError.errorCode != 0) {\n");
117InBlock.gif
118InBlock.gif            sbContent.Append("alert(\"无法分析查询到的数据!\");\n");
119InBlock.gif
120InBlock.gif            sbContent.Append("return;\n");
121InBlock.gif
122InBlock.gif            sbContent.Append("}\n");
123InBlock.gif
124InBlock.gif            sbContent.Append("var graph = BiGraph.fromXmlDocument(oDoc);\n");
125InBlock.gif
126InBlock.gif            sbContent.Append("win.add(graph);\n");
127InBlock.gif
128InBlock.gif            sbContent.Append("graph.update();\n");
129InBlock.gif
130InBlock.gif            sbContent.Append("graph.setLocation(10, cb.getHeight() + 20);\n");
131InBlock.gif
132InBlock.gif            sbContent.Append("graph.setRight(10);\n");
133InBlock.gif
134InBlock.gif            sbContent.Append("graph.setBottom(10);\n");
135InBlock.gif
136InBlock.gif            sbContent.Append("graph.setBorder( new BiBorder(1, \"solid\", \"black\") );\n");
137InBlock.gif
138InBlock.gif            sbContent.Append("graph.setBackColor(\"#cfe0f2\");\n");
139InBlock.gif
140InBlock.gif            sbContent.Append("cb.findString(graph.getChartType()).setSelected(true);\n");
141InBlock.gif
142InBlock.gif            sbContent.Append("cb.addEventListener(\"change\", function (e) {\n");
143InBlock.gif
144InBlock.gif            sbContent.Append("graph.setChartType(cb.getSelectedItem().getText());\n");
145InBlock.gif
146InBlock.gif            sbContent.Append("graph.update();\n");
147InBlock.gif
148InBlock.gif            sbContent.Append("}, this);\n");
149InBlock.gif
150InBlock.gif            sbContent.Append("oDoc = null;\n");
151InBlock.gif
152InBlock.gif            sbContent.Append("}\n");
153InBlock.gif
154InBlock.gif            sbContent.Append("" + 附属文件名 + "Main" + sbCN + ".main = function () { new " + 附属文件名 + "Main" + sbCN + "; };\n");
155InBlock.gif
156InBlock.gif            sbContent.Append("]]>\n");
157InBlock.gif
158InBlock.gif            sbContent.Append("</script>\n");
159InBlock.gif
160InBlock.gif            sbContent.Append("</resources>\n");
161InBlock.gif
162InBlock.gif            sbContent.Append("</application>\n");
163InBlock.gif
164InBlock.gif            string strRet = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), @"html\html\bindows\launcher\" + 附属文件名 + "Main" + sbCN + ".xml");
165InBlock.gif
166InBlock.gif            System.IO.StreamWriter swResult = new System.IO.StreamWriter(strRet, false, System.Text.Encoding.UTF8);
167InBlock.gif
168InBlock.gif            swResult.Write(sbContent.ToString());
169InBlock.gif
170InBlock.gif            swResult.Close();
171InBlock.gif
172InBlock.gif            return sbCN;
173InBlock.gif
174ExpandedBlockEnd.gif        }

175 None.gif
176 None.gif
177 None.gif
178 None.gif
179 None.gif
180 None.gif
181 None.gif
182 None.gif
183 None.gif
184 None.gif
185 None.gif
186 None.gif
187 None.gif
188 ExpandedBlockStart.gifContractedBlock.gif         /**/ /// <summary>
189InBlock.gif        ///    多种类型图表的数据文件        
190InBlock.gif        /// </summary>
191InBlock.gif        /// <param name="视图">使用的视图</param>
192InBlock.gif        /// <param name="中间字段">构造的视图可能要包含多余的字段,设定此值介定</param>
193InBlock.gif        /// <param name="查询条件">视图的筛选条件</param>
194ExpandedBlockEnd.gif        /// <param name="图表类型">图表类型,可用Bindows提供的各种图表类型</param>

195 None.gif          private   void  AllChart( string  标题,  string  文件名,  int  宽度,  int  高度,  string  视图,  int  中间字段,  string  查询条件,  string  图表类型)
196 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
197InBlock.gif            this.win = this.doc.parentWindow;
198InBlock.gif
199InBlock.gif            System.Text.StringBuilder sbContent = new System.Text.StringBuilder(100);
200InBlock.gif
201InBlock.gif            sbContent.Append("<?xml version=\"1.0\" ?>\n");
202InBlock.gif
203InBlock.gif            sbContent.Append("<Graph>\n");
204InBlock.gif
205InBlock.gif            sbContent.Append("<Data>\n");
206InBlock.gif
207InBlock.gif            sbContent.Append("<Categories>\n");
208InBlock.gif
209InBlock.gif            string strSQL = "SELECT * FROM " + 视图 + " WHERE " + 查询条件;
210InBlock.gif
211InBlock.gif            System.Data.DataSet dsResult = HEWin.Sys.sysDb.GetDataSetBySql(strSQL, "Result");
212InBlock.gif
213InBlock.gif            if (dsResult.Tables["Result"].Rows.Count == 0)
214ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
215InBlock.gif                this.win.execScript("showMD(\"环境检测管理系统\", \"../../errnorecordset.htm\", true, false, false)""javascript");
216InBlock.gif                dsResult.Dispose();
217InBlock.gif                return;
218ExpandedSubBlockEnd.gif            }

219InBlock.gif
220InBlock.gif            strSQL = "SELECT syscolumns.name, syscolumns.colid FROM syscolumns INNER JOIN sysobjects ON syscolumns.id = sysobjects.id WHERE (sysobjects.name = N'" + 视图 + "') ORDER BY syscolumns.colid";
221InBlock.gif
222InBlock.gif            System.Data.DataSet dsTable = HEWin.Sys.sysDb.GetDataSetBySql(strSQL, "Table");
223InBlock.gif
224InBlock.gif            if (dsTable.Tables["Table"].Rows.Count < 中间字段 + 1)
225ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
226InBlock.gif                this.win.execScript("showMD(\"环境检测管理系统\", \"../../errquery.htm\", true, false, false)""javascript");
227InBlock.gif                dsTable.Dispose();
228InBlock.gif                return;            
229ExpandedSubBlockEnd.gif            }

230InBlock.gif
231InBlock.gif            int intStart = 0;
232InBlock.gif
233InBlock.gif            System.Collections.ArrayList alColor = this.RndColor(10);
234InBlock.gif
235InBlock.gif            string ChartColor = "";
236InBlock.gif
237InBlock.gif            for (int i = 0; i < dsResult.Tables["Result"].Rows.Count; i ++)
238ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
239InBlock.gif                sbContent.Append("<Category Id=\"c" + i.ToString() + "\">\n");
240InBlock.gif                sbContent.Append("<Title>" + dsResult.Tables["Result"].Rows[i][0].ToString() + "</Title>\n");
241InBlock.gif                sbContent.Append("</Category>\n");
242ExpandedSubBlockEnd.gif            }

243InBlock.gif
244InBlock.gif            sbContent.Append("</Categories>\n");
245InBlock.gif
246InBlock.gif            sbContent.Append("<SeriesGroup>\n");
247InBlock.gif
248InBlock.gif            intStart = 0;
249InBlock.gif
250InBlock.gif            for(int i = 中间字段; i < dsTable.Tables["Table"].Rows.Count; i ++)
251ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
252InBlock.gif                sbContent.Append("<Series Id=\"s" + intStart.ToString() + "\">\n");
253InBlock.gif
254InBlock.gif                sbContent.Append("<Title>" + dsTable.Tables["Table"].Rows[i]["name"].ToString() + "</Title>\n");
255InBlock.gif
256InBlock.gif                sbContent.Append("<Values>\n");
257InBlock.gif
258InBlock.gif                ChartColor += "<Chart Series=\"s" + i.ToString() + "\">\n";
259InBlock.gif                ChartColor += "<Fill Color=\"#" + ((System.Drawing.Color)alColor[intStart]).R.ToString("X") + ((System.Drawing.Color)alColor[i]).G.ToString("X") + ((System.Drawing.Color)alColor[i]).B.ToString("X") + "\" />\n";
260InBlock.gif                ChartColor += "</Chart>\n";
261InBlock.gif
262InBlock.gif                for (int j = 0; j < dsResult.Tables["Result"].Rows.Count; j ++)
263ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
264InBlock.gif                    sbContent.Append("<Value Category=\"c" + j.ToString() + "\">" + dsResult.Tables["Result"].Rows[j][i].ToString() + "</Value>");
265ExpandedSubBlockEnd.gif                }

266InBlock.gif
267InBlock.gif                sbContent.Append("</Values>\n");
268InBlock.gif
269InBlock.gif                sbContent.Append("</Series>\n");
270InBlock.gif
271InBlock.gif                intStart ++;
272InBlock.gif
273ExpandedSubBlockEnd.gif            }

274InBlock.gif
275InBlock.gif            sbContent.Append("</SeriesGroup>\n");
276InBlock.gif
277InBlock.gif            sbContent.Append("</Data>\n");
278InBlock.gif
279InBlock.gif            sbContent.Append("<Presentation Type=\"" + 图表类型 + "\">\n");
280InBlock.gif
281InBlock.gif            sbContent.Append("<Legend Visible=\"true\" />\n");
282InBlock.gif
283InBlock.gif            sbContent.Append("<Axes>\n");
284InBlock.gif
285InBlock.gif            sbContent.Append("<ValueAxis Visible=\"true\" ShowMajorTicks=\"true\" ShowMinorTicks=\"false\">\n");
286InBlock.gif
287InBlock.gif            sbContent.Append("<Title>Value Axis Title</Title>\n");
288InBlock.gif
289InBlock.gif            sbContent.Append("</ValueAxis>\n");
290InBlock.gif
291InBlock.gif            sbContent.Append("<CategoryAxis Visible=\"true\" ShowMajorTicks=\"true\" ShowMinorTicks=\"false\">\n");
292InBlock.gif
293InBlock.gif            sbContent.Append("<Title>Category Axis Title</Title>");
294InBlock.gif
295InBlock.gif            sbContent.Append("</CategoryAxis>\n");
296InBlock.gif
297InBlock.gif            sbContent.Append("</Axes>\n");
298InBlock.gif
299InBlock.gif            sbContent.Append("<GridLines>\n");
300InBlock.gif
301InBlock.gif            sbContent.Append("<MajorValue Visible=\"true\"><Stroke Color=\"#cfe0f2\" />\n");
302InBlock.gif
303InBlock.gif            sbContent.Append("</MajorValue>\n");
304InBlock.gif
305InBlock.gif            sbContent.Append("<MinorValue Visible=\"false\" />\n");
306InBlock.gif
307InBlock.gif            sbContent.Append("<MajorCategory Visible=\"false\" />\n");
308InBlock.gif
309InBlock.gif            sbContent.Append("<MinorCategory Visible=\"false\" />\n");
310InBlock.gif
311InBlock.gif            sbContent.Append("</GridLines>\n");
312InBlock.gif
313InBlock.gif            sbContent.Append("<ChartArea>\n");
314InBlock.gif
315InBlock.gif            sbContent.Append("<Stroke Color=\"transparent\" />\n");
316InBlock.gif
317InBlock.gif            sbContent.Append("<Fill Color=\"#e3edf9\" Color2=\"white\" Type=\"Gradient\" />\n");
318InBlock.gif
319InBlock.gif            sbContent.Append("</ChartArea>\n");
320InBlock.gif
321InBlock.gif            sbContent.Append("<Points />\n");
322InBlock.gif
323InBlock.gif            sbContent.Append("<Charts>\n");
324InBlock.gif
325InBlock.gif            sbContent.Append(ChartColor);
326InBlock.gif
327InBlock.gif            sbContent.Append("</Charts>\n");
328InBlock.gif
329InBlock.gif            sbContent.Append("</Presentation>\n");
330InBlock.gif
331InBlock.gif            sbContent.Append("</Graph>\n");
332InBlock.gif
333InBlock.gif            string sbCN = this.AllChartMain(标题, 宽度, 高度, 文件名);
334InBlock.gif
335InBlock.gif            string strFileName = 文件名 + "Main" + sbCN + ".xml";
336InBlock.gif            
337InBlock.gif            string strRet = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), @"html\html\bindows\launcher\" + 文件名 + sbCN + ".xml");
338InBlock.gif
339InBlock.gif            System.IO.StreamWriter swResult = new System.IO.StreamWriter(strRet, false, System.Text.Encoding.UTF8);
340InBlock.gif
341InBlock.gif            swResult.Write(sbContent.ToString());
342InBlock.gif
343InBlock.gif            swResult.Close();
344InBlock.gif
345InBlock.gif            win.execScript("biExec('../html', '" + strFileName + "', false, 0, 'one', true);""JavaScript");
346InBlock.gif
347InBlock.gif            win = null;
348InBlock.gif
349InBlock.gif            dsTable.Dispose();
350InBlock.gif
351InBlock.gif            dsResult.Dispose();
352InBlock.gif
353ExpandedBlockEnd.gif        }


Bindows中是有的颜色名如"DarkViolet"是不能用的,要转换为十六进制的颜色。

转载于:https://www.cnblogs.com/waxdoll/archive/2005/04/27/146527.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值