- 浏览: 96610 次
- 性别:
- 来自: 南京
文章分类
最新评论
usingSystem;
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Web;
usingSystem.Web.SessionState;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.HtmlControls;
usingCrystalDecisions.CrystalReports.Engine;
usingCrystalDecisions.Shared;
usingSystem.Globalization;
namespaceWEB2003Test.CryStalReportTest
...{
/**////<summary>
///DynamicReportCommon的摘要说明。
///</summary>
publicclassDynamicReportCommon:System.Web.UI.Page
...{
protectedCrystalDecisions.Web.CrystalReportViewercrvEmployees;
protectedDataSetds;
privatevoidPage_Load(objectsender,System.EventArgse)
...{
//在此处放置用户代码以初始化页面
try
...{
if(!Page.IsPostBack)
...{
if(Session["DynamicReportData"]!=null)
...{
ds=(DataSet)Session["DynamicReportData"];
Session.Remove("DynamicReportData");//释放Session中的值
Page.Cache["Data"]=ds;//页面缓存报表导出打印时重新绑定报表用
stringtableName=ds.Tables[0].TableName;//DataSet表名
string[]strDescription=newstring[ds.Tables[0].Columns.Count];//存放标头的字符串数
this.GetTableNameAndeColName(ds,tableName,strDescription);//获取表名及列名
CrystalDecisions.CrystalReports.Engine.ReportDocumentcryDocument=newTextDynamicReport();
this.NoLineBoundReport(ds,strDescription,tableName,cryDocument,this.crvEmployees,18);
}
else
...{
if(Page.Request.QueryString["ReturnUrl"]!=null)
...{
Response.Redirect(Page.Request.QueryString["ReturnUrl"].ToString());
}
else
...{
this.PrintStr("没有数据信息,报表加载失败!");
}
}
}
else//这一部分应该自定义
...{
ds=(DataSet)Page.Cache["Data"];
stringtableName=ds.Tables[0].TableName;//DataSet表名
string[]strDescription=newstring[ds.Tables[0].Columns.Count];//存放标头的字符串数
this.GetTableNameAndeColName(ds,tableName,strDescription);//获取表名及列名
CrystalDecisions.CrystalReports.Engine.ReportDocumentcryDocument=newTextDynamicReport();
this.NoLineBoundReport(ds,strDescription,tableName,cryDocument,this.crvEmployees,18);
}
}
catch(Exceptionee)
...{
this.PrintStr(ee.Message);
Server.ClearError();
}
}
/**////<summary>
///报表绑定
///</summary>
///<paramname="ds">要绑定的数据集</param>
///<paramname="titleArray">要绑定的字段</param>
///<paramname="tableName">绑定的表名</param></param>
///<paramname="cryDocument">绑定的报表对象</param>
///<paramname="cryDocument">显示的报表对象</param>
///<paramname="cryDocument">合计的报表列数(注所有列的下划线条从Line11开始递增命名) 行的下划线以(Line1、Line2、Line3命名)</param>
privatevoidNoLineBoundReport(DataSetds,string[]titleArray,stringtableName,ReportDocumentcryDocument,CrystalDecisions.Web.CrystalReportViewercrvEmployees,inttotalColoums)
...{
try
...{
CrystalDecisions.Shared.ParameterFieldsparFields=newParameterFields();//参数字段集合
CrystalDecisions.Shared.ParameterFieldparField;//参数字段
CrystalDecisions.Shared.ParameterDiscreteValueparDescrete;//用于参数字段付值
CrystalDecisions.CrystalReports.Engine.LineObjectline;//用于报表Line对像
CrystalDecisions.CrystalReports.Engine.TextObjecttextBox;//用于报表TextBox
int[]coloumLength=newint[ds.Tables[tableName].Columns.Count];//存放参数及公式字段长度的数组
intintPostions=0;
DataTabledataTable=FillDataTableForDataSet(ds,tableName,titleArray,coloumLength);//这部分要改进
this.GetPosition(coloumLength);
for(inti=0;i<titleArray.Length;i++)//设置字段值
...{
textBox=cryDocument.ReportDefinition.ReportObjects["txt"+(i+1)]asTextObject;
textBox.Text=""+titleArray[i];
cryDocument.DataDefinition.FormulaFields["Formula"+(i+1)].Text="{"+tableName+"."+titleArray[i].Trim()+"}";
}
parField=newParameterField();
parField.ParameterFieldName="ReportTitle";
parDescrete=newParameterDiscreteValue();
parDescrete.Value=tableName;
parField.CurrentValues.Add(parDescrete);
parField.AllowCustomValues=false;
parFields.Add(parField);
crvEmployees.ParameterFieldInfo=parFields;
intPostions=0;
for(inti=0;i<titleArray.Length;i++)//设置报表对像位置
...{
if(i==0)
...{
cryDocument.ReportDefinition.ReportObjects["Formula"+(i+1)].Left=30;
intPostions=30;
textBox=cryDocument.ReportDefinition.ReportObjects["txt"+(i+1)]asTextObject;
textBox.Left=30;
textBox.Border.RightLineStyle=LineStyle.SingleLine;
textBox.Width=coloumLength[i];
}
else
...{
intPostions+=coloumLength[i-1];
cryDocument.ReportDefinition.ReportObjects["Formula"+(i+1)].Left=intPostions;
textBox=cryDocument.ReportDefinition.ReportObjects["txt"+(i+1)]asTextObject;
textBox.Left=intPostions;
textBox.Border.RightLineStyle=LineStyle.SingleLine;
textBox.Width=coloumLength[i];
}
cryDocument.ReportDefinition.ReportObjects["Formula"+(i+1)].Width=coloumLength[i];
cryDocument.ReportDefinition.ReportObjects["Formula"+(i+1)].Border.LeftLineStyle=LineStyle.NoLine;
cryDocument.ReportDefinition.ReportObjects["Formula"+(i+1)].Border.TopLineStyle=LineStyle.NoLine;
cryDocument.ReportDefinition.ReportObjects["Formula"+(i+1)].Border.BottomLineStyle=LineStyle.NoLine;
}
intPostions+=coloumLength[coloumLength.Length-1];
for(inti=1;i<4;i++)
...{
line=cryDocument.ReportDefinition.ReportObjects["Line"+i]asLineObject;
line.Right=intPostions;
}
cryDocument.SetDataSource(dataTable);
crvEmployees.ReportSource=cryDocument;
crvEmployees.DisplayGroupTree=true;
crvEmployees.DataBind();
ds.Dispose();
}
catch(Exceptionee)
...{
this.PrintStr(@""+ee.Message+"");
Server.ClearError();
}
}
/**////<summary>
///自动将DataSet中的数据转换成字符串同进获取其数据类型的长度
///</summary>
///<paramname="ds">数据源DataSet</param>
///<paramname="tableName">表名</param>
///<paramname="columnsName">列名数组</param>
///<paramname="columnsLength">输出参数列长度数组</param>
///<returns>DataTable</returns>
privateDataTableFillDataTableForDataSet(DataSetds,stringtableName,string[]columnsName,int[]columnsLength)
...{
if(ds.Tables[tableName].Columns.Count!=columnsName.Length||columnsName.Length!=columnsLength.Length||ds.Tables[tableName].Columns.Count!=columnsLength.Length)//传入的参数长度不一致时返回空值
...{
returnnull;
}
DataTabledataTable=newDataTable(tableName);
System.Data.DataColumncolumn;//要新建的表列对象
System.Data.DataRowrow;
for(inti=0;i<columnsName.Length;i++)//创建数据表
...{
column=newDataColumn(columnsName[i].Trim(),System.Type.GetType("System.String"));
columnsLength[i]=ds.Tables[tableName].Columns[columnsName[i]].MaxLength;
dataTable.Columns.Add(column);
}
for(inti=0;i<ds.Tables[tableName].Rows.Count;i++)
...{
row=dataTable.NewRow();
for(intj=0;j<columnsName.Length;j++)
...{
if(ds.Tables[tableName].Rows[i][columnsName[j]].GetType().FullName=="System.DateTime")
...{
row[columnsName[j]]=this.GetStringForDataTime(ds.Tables[tableName].Rows[i][columnsName[j]]);//将时间类型的转换为为-06-05这样的格式
}
elseif(ds.Tables[tableName].Rows[i][columnsName[j]].GetType().FullName=="System.Double")
...{
row[columnsName[j]]=this.GetStringForDouble(ds.Tables[tableName].Rows[i][columnsName[j]]);//将小数转换为只带两位小数的格式
}
elseif(ds.Tables[tableName].Rows[i][columnsName[j]].GetType().FullName=="System.DBNull")
...{
row[columnsName[j]]=""+((char)6);
}
else
...{
row[columnsName[j]]=this.Getstring(ds.Tables[tableName].Rows[i][columnsName[j]]);
}
//row[columnsName[j]]=ds.Tables[tableName].Rows[i][columnsName[j]];
if(columnsLength[j]<row[columnsName[j]].ToString().Length)
...{
columnsLength[j]=row[columnsName[j]].ToString().Length;
}
}
dataTable.Rows.Add(row);
}
returndataTable;
}
/**////<summary>
///将日期类型转化为-06-12形式的字符串
///</summary>
///<paramname="var">要转换的对象</param>
///<returns返回的字符串</returns>
privatestringGetStringForDataTime(objectvar)
...{
try
...{
return""+Convert.ToDateTime(var).ToString("yyyy-MM-dd");
}
catch
...{
return"";
}
}
/**////<summary>
///将Double类型的数据转化成两们小数的字符串
///</summary>
///<paramname="var">要转换的字符串</param>
///<returns>返回的字符串</returns>
privatestringGetStringForDouble(objectvar)
...{
System.Globalization.NumberFormatInfodoubleNfi=newCultureInfo("en-US",false).NumberFormat;//小数字符串保留两位小数
doubleNfi.NumberDecimalDigits=2;
try
...{
return""+Convert.ToString(var).ToString(doubleNfi);
}
catch
...{
return"";
}
}
/**////<summary>
///字符串转换
///</summary>
///<paramname="var">要装换的对象</param>
///<returns>返回的字符串</returns>
privatestringGetstring(objectvar)
...{
try
...{
return""+Convert.ToString(var);
}
catch
...{
return"";
}
}
/**////<summary>
///将Double型字符串转换成Int型字符串
///</summary>
///<paramname="var"></param>
///<returns></returns>
privateintGetIntForDouble(objectvar)
...{
try
...{
returnConvert.ToInt32(var);
}
catch
...{
return0;
}
}
/**////<summary>
///获取报表对象启始坐标位置
///</summary>
///<paramname="coloumLength"></param>
privatevoidGetPosition(int[]coloumLength)
...{
inttotalLength=0;
int[]temp=newint[coloumLength.Length];
for(inti=0;i<coloumLength.Length;i++)
...{
totalLength+=coloumLength[i];
temp[i]=coloumLength[i];
}
if(totalLength==0)
...{
return;
}
for(inti=0;i<coloumLength.Length;i++)
...{
coloumLength[i]=this.GetIntForDouble(temp[i]*11260/totalLength);
}
}
/**////<summary>
///弹出提示窗口
///</summary>
///<paramname="Message">提示信息</param>
privatevoidPrintStr(stringMessage)
...{
System.Text.RegularExpressions.Regexdigitregex=newSystem.Text.RegularExpressions.Regex("[']");
Message=digitregex.Replace(Message,"’");
Page.RegisterStartupScript(newRandom().Next(1000000).ToString(),"<script>alert('"+Message+"');</script>");
}
/**////<summary>
///根据DataSet获取表名及字段名数组
///</summary>
///<paramname="ds"></param>
///<paramname="tableName"></param>
///<paramname="columnsNames"></param>
privatevoidGetTableNameAndeColName(DataSetds,stringtableName,string[]columnsNames)
...{
for(inti=0;i<ds.Tables[tableName].Columns.Count;i++)
...{
columnsNames[i]=ds.Tables[tableName].Columns[i].ColumnName.ToString();
}
}
Web窗体设计器生成的代码#regionWeb窗体设计器生成的代码
overrideprotectedvoidOnInit(EventArgse)
...{
//
//CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**////<summary>
///设计器支持所需的方法-不要使用代码编辑器修改
///此方法的内容。
///</summary>
privatevoidInitializeComponent()
...{
this.Load+=newSystem.EventHandler(this.Page_Load);
}
#endregion
}
}
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Web;
usingSystem.Web.SessionState;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.HtmlControls;
usingCrystalDecisions.CrystalReports.Engine;
usingCrystalDecisions.Shared;
usingSystem.Globalization;
namespaceWEB2003Test.CryStalReportTest
...{
/**////<summary>
///DynamicReportCommon的摘要说明。
///</summary>
publicclassDynamicReportCommon:System.Web.UI.Page
...{
protectedCrystalDecisions.Web.CrystalReportViewercrvEmployees;
protectedDataSetds;
privatevoidPage_Load(objectsender,System.EventArgse)
...{
//在此处放置用户代码以初始化页面
try
...{
if(!Page.IsPostBack)
...{
if(Session["DynamicReportData"]!=null)
...{
ds=(DataSet)Session["DynamicReportData"];
Session.Remove("DynamicReportData");//释放Session中的值
Page.Cache["Data"]=ds;//页面缓存报表导出打印时重新绑定报表用
stringtableName=ds.Tables[0].TableName;//DataSet表名
string[]strDescription=newstring[ds.Tables[0].Columns.Count];//存放标头的字符串数
this.GetTableNameAndeColName(ds,tableName,strDescription);//获取表名及列名
CrystalDecisions.CrystalReports.Engine.ReportDocumentcryDocument=newTextDynamicReport();
this.NoLineBoundReport(ds,strDescription,tableName,cryDocument,this.crvEmployees,18);
}
else
...{
if(Page.Request.QueryString["ReturnUrl"]!=null)
...{
Response.Redirect(Page.Request.QueryString["ReturnUrl"].ToString());
}
else
...{
this.PrintStr("没有数据信息,报表加载失败!");
}
}
}
else//这一部分应该自定义
...{
ds=(DataSet)Page.Cache["Data"];
stringtableName=ds.Tables[0].TableName;//DataSet表名
string[]strDescription=newstring[ds.Tables[0].Columns.Count];//存放标头的字符串数
this.GetTableNameAndeColName(ds,tableName,strDescription);//获取表名及列名
CrystalDecisions.CrystalReports.Engine.ReportDocumentcryDocument=newTextDynamicReport();
this.NoLineBoundReport(ds,strDescription,tableName,cryDocument,this.crvEmployees,18);
}
}
catch(Exceptionee)
...{
this.PrintStr(ee.Message);
Server.ClearError();
}
}
/**////<summary>
///报表绑定
///</summary>
///<paramname="ds">要绑定的数据集</param>
///<paramname="titleArray">要绑定的字段</param>
///<paramname="tableName">绑定的表名</param></param>
///<paramname="cryDocument">绑定的报表对象</param>
///<paramname="cryDocument">显示的报表对象</param>
///<paramname="cryDocument">合计的报表列数(注所有列的下划线条从Line11开始递增命名) 行的下划线以(Line1、Line2、Line3命名)</param>
privatevoidNoLineBoundReport(DataSetds,string[]titleArray,stringtableName,ReportDocumentcryDocument,CrystalDecisions.Web.CrystalReportViewercrvEmployees,inttotalColoums)
...{
try
...{
CrystalDecisions.Shared.ParameterFieldsparFields=newParameterFields();//参数字段集合
CrystalDecisions.Shared.ParameterFieldparField;//参数字段
CrystalDecisions.Shared.ParameterDiscreteValueparDescrete;//用于参数字段付值
CrystalDecisions.CrystalReports.Engine.LineObjectline;//用于报表Line对像
CrystalDecisions.CrystalReports.Engine.TextObjecttextBox;//用于报表TextBox
int[]coloumLength=newint[ds.Tables[tableName].Columns.Count];//存放参数及公式字段长度的数组
intintPostions=0;
DataTabledataTable=FillDataTableForDataSet(ds,tableName,titleArray,coloumLength);//这部分要改进
this.GetPosition(coloumLength);
for(inti=0;i<titleArray.Length;i++)//设置字段值
...{
textBox=cryDocument.ReportDefinition.ReportObjects["txt"+(i+1)]asTextObject;
textBox.Text=""+titleArray[i];
cryDocument.DataDefinition.FormulaFields["Formula"+(i+1)].Text="{"+tableName+"."+titleArray[i].Trim()+"}";
}
parField=newParameterField();
parField.ParameterFieldName="ReportTitle";
parDescrete=newParameterDiscreteValue();
parDescrete.Value=tableName;
parField.CurrentValues.Add(parDescrete);
parField.AllowCustomValues=false;
parFields.Add(parField);
crvEmployees.ParameterFieldInfo=parFields;
intPostions=0;
for(inti=0;i<titleArray.Length;i++)//设置报表对像位置
...{
if(i==0)
...{
cryDocument.ReportDefinition.ReportObjects["Formula"+(i+1)].Left=30;
intPostions=30;
textBox=cryDocument.ReportDefinition.ReportObjects["txt"+(i+1)]asTextObject;
textBox.Left=30;
textBox.Border.RightLineStyle=LineStyle.SingleLine;
textBox.Width=coloumLength[i];
}
else
...{
intPostions+=coloumLength[i-1];
cryDocument.ReportDefinition.ReportObjects["Formula"+(i+1)].Left=intPostions;
textBox=cryDocument.ReportDefinition.ReportObjects["txt"+(i+1)]asTextObject;
textBox.Left=intPostions;
textBox.Border.RightLineStyle=LineStyle.SingleLine;
textBox.Width=coloumLength[i];
}
cryDocument.ReportDefinition.ReportObjects["Formula"+(i+1)].Width=coloumLength[i];
cryDocument.ReportDefinition.ReportObjects["Formula"+(i+1)].Border.LeftLineStyle=LineStyle.NoLine;
cryDocument.ReportDefinition.ReportObjects["Formula"+(i+1)].Border.TopLineStyle=LineStyle.NoLine;
cryDocument.ReportDefinition.ReportObjects["Formula"+(i+1)].Border.BottomLineStyle=LineStyle.NoLine;
}
intPostions+=coloumLength[coloumLength.Length-1];
for(inti=1;i<4;i++)
...{
line=cryDocument.ReportDefinition.ReportObjects["Line"+i]asLineObject;
line.Right=intPostions;
}
cryDocument.SetDataSource(dataTable);
crvEmployees.ReportSource=cryDocument;
crvEmployees.DisplayGroupTree=true;
crvEmployees.DataBind();
ds.Dispose();
}
catch(Exceptionee)
...{
this.PrintStr(@""+ee.Message+"");
Server.ClearError();
}
}
/**////<summary>
///自动将DataSet中的数据转换成字符串同进获取其数据类型的长度
///</summary>
///<paramname="ds">数据源DataSet</param>
///<paramname="tableName">表名</param>
///<paramname="columnsName">列名数组</param>
///<paramname="columnsLength">输出参数列长度数组</param>
///<returns>DataTable</returns>
privateDataTableFillDataTableForDataSet(DataSetds,stringtableName,string[]columnsName,int[]columnsLength)
...{
if(ds.Tables[tableName].Columns.Count!=columnsName.Length||columnsName.Length!=columnsLength.Length||ds.Tables[tableName].Columns.Count!=columnsLength.Length)//传入的参数长度不一致时返回空值
...{
returnnull;
}
DataTabledataTable=newDataTable(tableName);
System.Data.DataColumncolumn;//要新建的表列对象
System.Data.DataRowrow;
for(inti=0;i<columnsName.Length;i++)//创建数据表
...{
column=newDataColumn(columnsName[i].Trim(),System.Type.GetType("System.String"));
columnsLength[i]=ds.Tables[tableName].Columns[columnsName[i]].MaxLength;
dataTable.Columns.Add(column);
}
for(inti=0;i<ds.Tables[tableName].Rows.Count;i++)
...{
row=dataTable.NewRow();
for(intj=0;j<columnsName.Length;j++)
...{
if(ds.Tables[tableName].Rows[i][columnsName[j]].GetType().FullName=="System.DateTime")
...{
row[columnsName[j]]=this.GetStringForDataTime(ds.Tables[tableName].Rows[i][columnsName[j]]);//将时间类型的转换为为-06-05这样的格式
}
elseif(ds.Tables[tableName].Rows[i][columnsName[j]].GetType().FullName=="System.Double")
...{
row[columnsName[j]]=this.GetStringForDouble(ds.Tables[tableName].Rows[i][columnsName[j]]);//将小数转换为只带两位小数的格式
}
elseif(ds.Tables[tableName].Rows[i][columnsName[j]].GetType().FullName=="System.DBNull")
...{
row[columnsName[j]]=""+((char)6);
}
else
...{
row[columnsName[j]]=this.Getstring(ds.Tables[tableName].Rows[i][columnsName[j]]);
}
//row[columnsName[j]]=ds.Tables[tableName].Rows[i][columnsName[j]];
if(columnsLength[j]<row[columnsName[j]].ToString().Length)
...{
columnsLength[j]=row[columnsName[j]].ToString().Length;
}
}
dataTable.Rows.Add(row);
}
returndataTable;
}
/**////<summary>
///将日期类型转化为-06-12形式的字符串
///</summary>
///<paramname="var">要转换的对象</param>
///<returns返回的字符串</returns>
privatestringGetStringForDataTime(objectvar)
...{
try
...{
return""+Convert.ToDateTime(var).ToString("yyyy-MM-dd");
}
catch
...{
return"";
}
}
/**////<summary>
///将Double类型的数据转化成两们小数的字符串
///</summary>
///<paramname="var">要转换的字符串</param>
///<returns>返回的字符串</returns>
privatestringGetStringForDouble(objectvar)
...{
System.Globalization.NumberFormatInfodoubleNfi=newCultureInfo("en-US",false).NumberFormat;//小数字符串保留两位小数
doubleNfi.NumberDecimalDigits=2;
try
...{
return""+Convert.ToString(var).ToString(doubleNfi);
}
catch
...{
return"";
}
}
/**////<summary>
///字符串转换
///</summary>
///<paramname="var">要装换的对象</param>
///<returns>返回的字符串</returns>
privatestringGetstring(objectvar)
...{
try
...{
return""+Convert.ToString(var);
}
catch
...{
return"";
}
}
/**////<summary>
///将Double型字符串转换成Int型字符串
///</summary>
///<paramname="var"></param>
///<returns></returns>
privateintGetIntForDouble(objectvar)
...{
try
...{
returnConvert.ToInt32(var);
}
catch
...{
return0;
}
}
/**////<summary>
///获取报表对象启始坐标位置
///</summary>
///<paramname="coloumLength"></param>
privatevoidGetPosition(int[]coloumLength)
...{
inttotalLength=0;
int[]temp=newint[coloumLength.Length];
for(inti=0;i<coloumLength.Length;i++)
...{
totalLength+=coloumLength[i];
temp[i]=coloumLength[i];
}
if(totalLength==0)
...{
return;
}
for(inti=0;i<coloumLength.Length;i++)
...{
coloumLength[i]=this.GetIntForDouble(temp[i]*11260/totalLength);
}
}
/**////<summary>
///弹出提示窗口
///</summary>
///<paramname="Message">提示信息</param>
privatevoidPrintStr(stringMessage)
...{
System.Text.RegularExpressions.Regexdigitregex=newSystem.Text.RegularExpressions.Regex("[']");
Message=digitregex.Replace(Message,"’");
Page.RegisterStartupScript(newRandom().Next(1000000).ToString(),"<script>alert('"+Message+"');</script>");
}
/**////<summary>
///根据DataSet获取表名及字段名数组
///</summary>
///<paramname="ds"></param>
///<paramname="tableName"></param>
///<paramname="columnsNames"></param>
privatevoidGetTableNameAndeColName(DataSetds,stringtableName,string[]columnsNames)
...{
for(inti=0;i<ds.Tables[tableName].Columns.Count;i++)
...{
columnsNames[i]=ds.Tables[tableName].Columns[i].ColumnName.ToString();
}
}
Web窗体设计器生成的代码#regionWeb窗体设计器生成的代码
overrideprotectedvoidOnInit(EventArgse)
...{
//
//CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**////<summary>
///设计器支持所需的方法-不要使用代码编辑器修改
///此方法的内容。
///</summary>
privatevoidInitializeComponent()
...{
this.Load+=newSystem.EventHandler(this.Page_Load);
}
#endregion
}
}
发表评论
-
Webpart部件概述
2007-08-05 12:52 647一、什么是Web部件 目前 ... -
创建一个简单的WebPart应用示例
2007-08-05 12:53 664创建WebPart的简单应用并不困难,在创建WebPart简单 ... -
创建自定义的WebPart
2007-08-05 12:57 660创建一个自定义的WebPart控件类似与创建自定义服务器控件, ... -
实现WebPart编辑功能
2007-08-05 12:58 739实现WebPart的编辑功能需要用到VS2005提供的Edit ... -
实现WebPart管理功能
2007-08-05 13:00 632实现WebPart管理功能需要用到CatalogZone、De ... -
实现WebPart通信功能
2007-08-05 13:02 685在一个页面中的WebPart控件之间是相互独立的,依赖与它的通 ... -
打包并自动安装SQL数据库
2007-08-05 13:04 543NET平台下WEB应用程序的 ... -
官方水晶报表.NET 应用程序实例下载(C#、Visual C++.NET)
2007-08-05 13:10 578一、数据库连通性 1、cs ... -
Windows mobile Install the Tools
2007-08-23 17:39 553Install Visual Studio 2005 ... -
Windows Mobile中的WebService应用
2007-09-07 15:03 602Web Service对于开发者来说已经不再是一个陌生概念了。 ... -
C#中对文件夹及文件信息的操作
2007-09-10 14:10 506C#中如何判断指定文件或文件夹是否存在? using Sy ... -
DataBinder.Eval用法收集
2007-09-24 17:24 565一、DataBinder.Eval的基本格式 在绑定数据 ... -
使用嵌套 Repeater 控件和 Visual C# .Net 显示分层数据
2007-09-25 10:15 752绑定到父表 <script type=&quo ... -
日志记录组件[Log4net]详细介绍
2007-10-11 11:52 1330一Log4net简介 Log4net是基于.net开发 ... -
HashMap和Hashtable及HashSet的区别
2008-04-10 12:10 546Hashtable类 Hashtable继承Map接口,实 ...
相关推荐
c#中动态加载水晶报表自定义字段
6 如何在水晶报表中添加合计字段 7 如何在水晶报表中制作数据图表 8 如何在水晶报表中使用计算公式 9 如何在水晶报表中制作超级链接 10 如何在水晶报表中显示比例数据 11 如何在水晶报表中实现邮件列表 12 如何在...
第一部分 报表编写基础 第1章 创建一个报表 第2章 修改报表 第3章 格式化字段和对象 第二部分 使报表元素...第11章 在水晶报表中使用SQL 第12章 可视化分析数据 第13章 报表模版 第14章 报表引擎处理模型 。。。。。
如何报表数据分组 如何报表中筛选数据 如何对分组报表中的页码进行设置 报表的应用技巧 如何在水晶报表中使用交叉表 如何在水晶报表中使用子报表 如何动态显示子报表 如何...
4.4.1 选择报表类型及数据源.................................83 4.4.2 在“设计”选项卡上处理报表元素.......................84 4.4.3 使用其他报表功能.....................................86 第 5 章报表...
可拖动对象功能增强(现在AC不仅可以支持强大的表格功能,也可以使用AC Report 像传统的报表工具例如FastReport或水晶报表那样设计报表了)。 2.在新建页面时,增加了“数据模块”类型,用来存放报表中的数据控件...
0997 如何设置水晶报表中节的背景图片 583 0998 如何设置水晶报表中节的背景色 584 0999 如何设置水晶报表的页面 584 1000 如何在报表中添加节 584 1001 如何在报表中移动节的顺序 585 1002 如何在报表中...
1.可拖动对象功能增强(现在AC不仅可以支持强大的表格功能,也可以使用AC Report 像传统的报表工具例如FastReport或水晶报表那样设计报表了) 2.在新建页面时,增加了“数据模块”类型,用来存放报表中的数据控件,...
案例7 利用水晶报表分组统计数据库中的数据 案例8 利用水晶报表筛选数据库中的数据 案例9 图表在水晶报表中的应用 本章小结 第7章 Visual C#2008与Windows系统设置 案例1 任务栏的显示与隐藏 案例2 开始按钮的...
案例7 利用水晶报表分组统计数据库中的数据 案例8 利用水晶报表筛选数据库中的数据 案例9 图表在水晶报表中的应用 本章小结 第7章 VisualC#2008与Windows系统设置 案例1 任务栏的显示与隐藏 案例2 开始按钮的显示与...
案例7 利用水晶报表分组统计数据库中的数据 案例8 利用水晶报表筛选数据库中的数据 案例9 图表在水晶报表中的应用 本章小结 第7章 VisualC#2008与Windows系统设置 案例1 任务栏的显示与隐藏 案例2 开始按钮的显示与...
案例7 利用水晶报表分组统计数据库中的数据 案例8 利用水晶报表筛选数据库中的数据 案例9 图表在水晶报表中的应用 本章小结 第7章 VisualC#2008与Windows系统设置 案例1 任务栏的显示与隐藏 案例2 开始按钮的显示与...
15.2 添加字段 15.3 写程序填充数据 15.4 设置数据源和数据抽取验证 第16章 一般数据源 16.1 数据库视图的创建 16.2 一般数据源的创建 16.3 GeneticDelta的设置 第17章 CO—PA数据源 17.1 CO.PA的原理 17.2...
15.2 添加字段 15.3 写程序填充数据 15.4 设置数据源和数据抽取验证 第16章 一般数据源 16.1 数据库视图的创建 16.2 一般数据源的创建 16.3 GeneticDelta的设置 第17章 CO—PA数据源 17.1 CO.PA的原理 17.2...
15.2 添加字段 15.3 写程序填充数据 15.4 设置数据源和数据抽取验证 第16章 一般数据源 16.1 数据库视图的创建 16.2 一般数据源的创建 16.3 GeneticDelta的设置 第17章 CO—PA数据源 17.1 CO.PA的原理 17.2...
15.2 添加字段 15.3 写程序填充数据 15.4 设置数据源和数据抽取验证 第16章 一般数据源 16.1 数据库视图的创建 16.2 一般数据源的创建 16.3 GeneticDelta的设置 第17章 CO—PA数据源 17.1 CO.PA的原理 17.2...
15.2 添加字段 15.3 写程序填充数据 15.4 设置数据源和数据抽取验证 第16章 一般数据源 16.1 数据库视图的创建 16.2 一般数据源的创建 16.3 GeneticDelta的设置 第17章 CO—PA数据源 17.1 CO.PA的原理 17.2...