本次内容主要包括
1.Cell(华表)与VS.NET中常用报表 的 对比参照
2.简单的Cell(华表)在C#中的示例

因工作需要,现开始接触Cell(华表),用该国产报表软件进行报表开发。
和水晶报表及ReportServices等可以在服务器端进行操作的报表不同,
Cell(华表)是需要JavaScript或VBScript在客户端进行操作。

Cell对照VS自带的报表的常用组成如下               

VS        Cell
Report1.rdlc  Cell1.cll   报表模板(或框架)文件 用以控制报表的显示格式
DataSet1.xsd   XMLDOM   报表数据源 Cell(华表)主要处理客户端的XMLDOM   XMLDOM可以通过Ajax的方式从服务器端调得
ReportViewer1 Cell的<Object>对象  加载在相关页面 用以显示报表

从上面可以看出,三者中的不同是数据源
VS的可以在服务器端进行操作
Cell的却只能在客户端进行数据操作

如何从服务器端取得数据到客户端台 可以参看
xmlHTTP xmlDOC 与 C#中DataSet的结合 实现AJAX简单示例

有了对比后 就有了一个大概的了解
接下来进行一个具体实例
入门者初试 Cell(华表)结合C#的应用_客户端
主要代码示例如下
入门者初试 Cell(华表)结合C#的应用_xml_02入门者初试 Cell(华表)结合C#的应用_服务器端_03<%入门者初试 Cell(华表)结合C#的应用_xml_04@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="index" %>
入门者初试 Cell(华表)结合C#的应用_xml_05
入门者初试 Cell(华表)结合C#的应用_xml_05
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
入门者初试 Cell(华表)结合C#的应用_xml_05
入门者初试 Cell(华表)结合C#的应用_xml_05
<html xmlns="http://www.w3.org/1999/xhtml" >
入门者初试 Cell(华表)结合C#的应用_xml_05
<head>
入门者初试 Cell(华表)结合C#的应用_xml_05    
<title>Cell(华表)</title>
入门者初试 Cell(华表)结合C#的应用_xml_05    
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
入门者初试 Cell(华表)结合C#的应用_xml_02入门者初试 Cell(华表)结合C#的应用_服务器端_03    
<script type="text/javascript" language="javascript">入门者初试 Cell(华表)结合C#的应用_xml_04
入门者初试 Cell(华表)结合C#的应用_xml_15        
function cellReg()
入门者初试 Cell(华表)结合C#的应用_服务器端_16入门者初试 Cell(华表)结合C#的应用_xml_17        
入门者初试 Cell(华表)结合C#的应用_xml_04{
入门者初试 Cell(华表)结合C#的应用_xml_15            
//华表注册
入门者初试 Cell(华表)结合C#的应用_xml_15
            document.form1.Cellweb1.Login( "**公司","","注册ID""注册码" );
入门者初试 Cell(华表)结合C#的应用_html_21        }

入门者初试 Cell(华表)结合C#的应用_javascript_22    
</script>
入门者初试 Cell(华表)结合C#的应用_xml_05    
入门者初试 Cell(华表)结合C#的应用_xml_02入门者初试 Cell(华表)结合C#的应用_服务器端_03    
<script  type="text/javascript" language="javascript" >入门者初试 Cell(华表)结合C#的应用_xml_04
入门者初试 Cell(华表)结合C#的应用_xml_15        
function btn_Query()
入门者初试 Cell(华表)结合C#的应用_服务器端_16入门者初试 Cell(华表)结合C#的应用_xml_17        
入门者初试 Cell(华表)结合C#的应用_xml_04
入门者初试 Cell(华表)结合C#的应用_xml_15            
// 发送xmlHttp请求到服务器端
入门者初试 Cell(华表)结合C#的应用_xml_15
            var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
入门者初试 Cell(华表)结合C#的应用_xml_15            xmlhttp.open(
"GET","Default2.aspx",false,"","");
入门者初试 Cell(华表)结合C#的应用_xml_15            xmlhttp.send();
入门者初试 Cell(华表)结合C#的应用_xml_15            
入门者初试 Cell(华表)结合C#的应用_xml_15            
// 从服务器得到处理后的xml对象
入门者初试 Cell(华表)结合C#的应用_xml_15
            if(xmlhttp.readyState==4)
入门者初试 Cell(华表)结合C#的应用_服务器端_16入门者初试 Cell(华表)结合C#的应用_xml_17            
入门者初试 Cell(华表)结合C#的应用_xml_04{
入门者初试 Cell(华表)结合C#的应用_xml_15                
var xmldom = new ActiveXObject("Microsoft.XMLDOM");
入门者初试 Cell(华表)结合C#的应用_xml_15                xmlhttp.responseXML.createProcessingInstruction(
"xml"," version=\"1.0\" encoding=\"gb2312\"");
入门者初试 Cell(华表)结合C#的应用_xml_15                
//xmldom 就是Cellweb1的数据源
入门者初试 Cell(华表)结合C#的应用_xml_15
                xmldom = xmlhttp.responseXML.documentElement;
入门者初试 Cell(华表)结合C#的应用_xml_15                
入门者初试 Cell(华表)结合C#的应用_xml_15                
//Cellweb1 载入模板E:\001.cll
入门者初试 Cell(华表)结合C#的应用_xml_15
                //也可以以HTTP://Localhost等的服务器的相对路径形式打开 
入门者初试 Cell(华表)结合C#的应用_xml_15
                document.form1.Cellweb1.OpenFile("E:\\001.cll","");
入门者初试 Cell(华表)结合C#的应用_xml_15                
入门者初试 Cell(华表)结合C#的应用_xml_15                
//如果一页显示不完 可以多载入几个模板页面 使其和第一页 是同样的模板
入门者初试 Cell(华表)结合C#的应用_xml_15
                for(var i=0;i<1;i++)
入门者初试 Cell(华表)结合C#的应用_服务器端_16入门者初试 Cell(华表)结合C#的应用_xml_17                
入门者初试 Cell(华表)结合C#的应用_xml_04{
入门者初试 Cell(华表)结合C#的应用_xml_15                    document.form1.Cellweb1.AppendSheetFromFile(
"E:\\001.cll",0,1);
入门者初试 Cell(华表)结合C#的应用_xml_15                    
//注意AppendSheetFromFile("E:\\001.cll",0,1)
入门者初试 Cell(华表)结合C#的应用_xml_15
                    //中 的0,1 是指模板E:\\001.cll中的第1页开始数 共数1页
入门者初试 Cell(华表)结合C#的应用_xml_15
                    //这样 也就是载入模板的第1 页,
入门者初试 Cell(华表)结合C#的应用_xml_15
                    //如果是0,2 就是载入模板的第1和2页面;
入门者初试 Cell(华表)结合C#的应用_xml_15
                    
入门者初试 Cell(华表)结合C#的应用_xml_15                    
//改变当前表页的名称
入门者初试 Cell(华表)结合C#的应用_xml_15
                    document.form1.Cellweb1.SetSheetLabel(document.form1.Cellweb1.GetCurSheet(),"第二页");
入门者初试 Cell(华表)结合C#的应用_html_21                }

入门者初试 Cell(华表)结合C#的应用_xml_15
//                //也可以直接插入新的空白页面 而不是载入模板页面
入门者初试 Cell(华表)结合C#的应用_xml_15//
                for(var i=0;i<2;i++)
入门者初试 Cell(华表)结合C#的应用_xml_15//
                {
入门者初试 Cell(华表)结合C#的应用_xml_15//
                    var TotalSheets = document.form1.Cellweb1.GetTotalSheets();
入门者初试 Cell(华表)结合C#的应用_xml_15//
                    document.form1.Cellweb1.insertSheet(TotalSheets,1);
入门者初试 Cell(华表)结合C#的应用_xml_15//
                }
入门者初试 Cell(华表)结合C#的应用_xml_15
        
入门者初试 Cell(华表)结合C#的应用_xml_15                
//设置相关属性
入门者初试 Cell(华表)结合C#的应用_xml_15//
                document.all.Cellweb1.S(1,1,0,"2006");
入门者初试 Cell(华表)结合C#的应用_xml_15
                document.all.Cellweb1.Readonly= true;
入门者初试 Cell(华表)结合C#的应用_xml_15
//                document.all.Cellweb1.ShowGridLine(0,document.all.Cellweb1.GetCurSheet);
入门者初试 Cell(华表)结合C#的应用_xml_15//
                document.all.Cellweb1.ShowSideLabel(0,document.all.Cellweb1.GetCurSheet);
入门者初试 Cell(华表)结合C#的应用_xml_15//
                document.all.Cellweb1.ShowTopLabel(0,document.all.Cellweb1.GetCurSheet);
入门者初试 Cell(华表)结合C#的应用_xml_15//
                document.all.Cellweb1.ShowSheetLabel(0,document.all.Cellweb1.GetCurSheet);
入门者初试 Cell(华表)结合C#的应用_xml_15
                
入门者初试 Cell(华表)结合C#的应用_xml_15                
// 通过xmldom操作结果
入门者初试 Cell(华表)结合C#的应用_xml_15
                var length = xmldom.getElementsByTagName("OrderID").length;                
入门者初试 Cell(华表)结合C#的应用_xml_15                
var dataOrderID=xmldom.getElementsByTagName("OrderID");
入门者初试 Cell(华表)结合C#的应用_xml_15                
var dataCustomerID=xmldom.getElementsByTagName("CustomerID");
入门者初试 Cell(华表)结合C#的应用_xml_15                 
入门者初试 Cell(华表)结合C#的应用_xml_15                    
for(var i=0;i<length;i++)
入门者初试 Cell(华表)结合C#的应用_服务器端_16入门者初试 Cell(华表)结合C#的应用_xml_17                    
入门者初试 Cell(华表)结合C#的应用_xml_04{
入门者初试 Cell(华表)结合C#的应用_xml_15                        
if(i>50)
入门者初试 Cell(华表)结合C#的应用_服务器端_16入门者初试 Cell(华表)结合C#的应用_xml_17                        
入门者初试 Cell(华表)结合C#的应用_xml_04{
入门者初试 Cell(华表)结合C#的应用_xml_15                            document.form1.Cellweb1.SetCellString(
2,3+i-51,1,dataOrderID[i].text);
入门者初试 Cell(华表)结合C#的应用_xml_15                            document.form1.Cellweb1.SetCellString(
3,3+i-51,1,dataCustomerID[i].text); 
入门者初试 Cell(华表)结合C#的应用_html_21                        }

入门者初试 Cell(华表)结合C#的应用_xml_15                        
else
入门者初试 Cell(华表)结合C#的应用_服务器端_16入门者初试 Cell(华表)结合C#的应用_xml_17                        
入门者初试 Cell(华表)结合C#的应用_xml_04{
入门者初试 Cell(华表)结合C#的应用_xml_15                            document.form1.Cellweb1.SetCellString(
2,3+i,0,dataOrderID[i].text);
入门者初试 Cell(华表)结合C#的应用_xml_15                            document.form1.Cellweb1.SetCellString(
3,3+i,0,dataCustomerID[i].text);
入门者初试 Cell(华表)结合C#的应用_html_21                        }

入门者初试 Cell(华表)结合C#的应用_html_21                    }

入门者初试 Cell(华表)结合C#的应用_html_21            }

入门者初试 Cell(华表)结合C#的应用_javascript_22        }
        
入门者初试 Cell(华表)结合C#的应用_xml_05
</script>
入门者初试 Cell(华表)结合C#的应用_xml_05
入门者初试 Cell(华表)结合C#的应用_xml_05
入门者初试 Cell(华表)结合C#的应用_xml_02入门者初试 Cell(华表)结合C#的应用_服务器端_03
<script type="text/javascript" language="javascript">入门者初试 Cell(华表)结合C#的应用_xml_04
入门者初试 Cell(华表)结合C#的应用_xml_15    
入门者初试 Cell(华表)结合C#的应用_xml_15    
function btn_Edit()
入门者初试 Cell(华表)结合C#的应用_服务器端_16入门者初试 Cell(华表)结合C#的应用_xml_17    
入门者初试 Cell(华表)结合C#的应用_xml_04{
入门者初试 Cell(华表)结合C#的应用_xml_15        document.all.Cellweb1.WorkbookReadonly
= false;
入门者初试 Cell(华表)结合C#的应用_html_21    }

入门者初试 Cell(华表)结合C#的应用_xml_15    
入门者初试 Cell(华表)结合C#的应用_xml_15    
function btn_PrePrint()
入门者初试 Cell(华表)结合C#的应用_服务器端_16入门者初试 Cell(华表)结合C#的应用_xml_17    
入门者初试 Cell(华表)结合C#的应用_xml_04{
入门者初试 Cell(华表)结合C#的应用_xml_15        document.all.Cellweb1.PrintPreview(
true,document.all.Cellweb1.GetCurSheet);
入门者初试 Cell(华表)结合C#的应用_html_21    }

入门者初试 Cell(华表)结合C#的应用_xml_15    
入门者初试 Cell(华表)结合C#的应用_xml_15    
function btn_Print()
入门者初试 Cell(华表)结合C#的应用_服务器端_16入门者初试 Cell(华表)结合C#的应用_xml_17    
入门者初试 Cell(华表)结合C#的应用_xml_04{
入门者初试 Cell(华表)结合C#的应用_xml_15        document.all.Cellweb1.PrintSheet(
false, document.all.Cellweb1.GetCurSheet);
入门者初试 Cell(华表)结合C#的应用_html_21    }

入门者初试 Cell(华表)结合C#的应用_xml_15    
入门者初试 Cell(华表)结合C#的应用_xml_15    
function btn_Save()
入门者初试 Cell(华表)结合C#的应用_服务器端_16入门者初试 Cell(华表)结合C#的应用_xml_17    
入门者初试 Cell(华表)结合C#的应用_xml_04{
入门者初试 Cell(华表)结合C#的应用_xml_15        document.all.Cellweb1.SaveFile();
入门者初试 Cell(华表)结合C#的应用_html_21    }

入门者初试 Cell(华表)结合C#的应用_xml_15    
入门者初试 Cell(华表)结合C#的应用_xml_15    
function btn_SetPrint()
入门者初试 Cell(华表)结合C#的应用_服务器端_16入门者初试 Cell(华表)结合C#的应用_xml_17    
入门者初试 Cell(华表)结合C#的应用_xml_04{
入门者初试 Cell(华表)结合C#的应用_xml_15        document.all.Cellweb1.PrintPageSetup();
入门者初试 Cell(华表)结合C#的应用_html_21    }

入门者初试 Cell(华表)结合C#的应用_javascript_22    
入门者初试 Cell(华表)结合C#的应用_xml_05
</script>
入门者初试 Cell(华表)结合C#的应用_xml_05
入门者初试 Cell(华表)结合C#的应用_xml_05
入门者初试 Cell(华表)结合C#的应用_xml_05
</head>
入门者初试 Cell(华表)结合C#的应用_xml_05
<body onload="cellReg()">
入门者初试 Cell(华表)结合C#的应用_xml_05    
<form id="form1" runat="server">
入门者初试 Cell(华表)结合C#的应用_xml_05            
<table width="100%">
入门者初试 Cell(华表)结合C#的应用_xml_05                
<tr>
入门者初试 Cell(华表)结合C#的应用_xml_05                    
<td height="50px">
入门者初试 Cell(华表)结合C#的应用_xml_05                    
<INPUT id="btnQuery" type="button" value="查询" LANGUAGE="javascript" onclick="return btn_Query()">&nbsp;
入门者初试 Cell(华表)结合C#的应用_xml_05                    
<INPUT id="btnEdit" type="button" value="编辑" LANGUAGE="javascript" onclick="btn_Edit()">&nbsp;
入门者初试 Cell(华表)结合C#的应用_xml_05                    
<INPUT id="btnPrePrint" type="button" value="列印预览" LANGUAGE="javascript" onclick="btn_PrePrint()">&nbsp;
入门者初试 Cell(华表)结合C#的应用_xml_05                    
<INPUT id="btnPrint" type="button" value="列印" LANGUAGE="javascript" onclick="btn_Print()">&nbsp;
入门者初试 Cell(华表)结合C#的应用_xml_05                    
<INPUT id="btnSave" type="button" value="保存" LANGUAGE="javascript" onclick="btn_Save()">&nbsp;
入门者初试 Cell(华表)结合C#的应用_xml_05                    
<INPUT id="btnSetPrint" type="button" value="打印设置" LANGUAGE="javascript" onclick="btn_SetPrint()">&nbsp;
入门者初试 Cell(华表)结合C#的应用_xml_05                    
</td>
入门者初试 Cell(华表)结合C#的应用_xml_05                
</tr>
入门者初试 Cell(华表)结合C#的应用_xml_05                
<tr>
入门者初试 Cell(华表)结合C#的应用_xml_05                    
<td>
入门者初试 Cell(华表)结合C#的应用_xml_05                
<OBJECT id="Cellweb1" style="Z-INDEX: 102; LEFT: 24px; WIDTH: 536px; POSITION: absolute; TOP: 80px; HEIGHT: 272px"
入门者初试 Cell(华表)结合C#的应用_xml_05                    classid
="clsid:3F166327-8030-4881-8BD2-EA25350E574A">
入门者初试 Cell(华表)结合C#的应用_xml_05                    
<PARAM NAME="_Version" VALUE="65536">
入门者初试 Cell(华表)结合C#的应用_xml_05                    
<PARAM NAME="_ExtentX" VALUE="14182">
入门者初试 Cell(华表)结合C#的应用_xml_05                    
<PARAM NAME="_ExtentY" VALUE="7197">
入门者初试 Cell(华表)结合C#的应用_xml_05                    
<PARAM NAME="_StockProps" VALUE="0">
入门者初试 Cell(华表)结合C#的应用_xml_05                
</OBJECT>
入门者初试 Cell(华表)结合C#的应用_xml_05                    
</td>
入门者初试 Cell(华表)结合C#的应用_xml_05                
</tr>
入门者初试 Cell(华表)结合C#的应用_xml_05            
</table>
入门者初试 Cell(华表)结合C#的应用_xml_05    
</form>
入门者初试 Cell(华表)结合C#的应用_xml_05
</body>
入门者初试 Cell(华表)结合C#的应用_xml_05
</html>
入门者初试 Cell(华表)结合C#的应用_xml_05