VS2005 C# web
可以运行的,详细注释的例子,很急!!
目的:1. 在页面ddl控件中输入日期,单击Button, 报表显示符合该日期的内容;
2. 根据后台查出的变量为条件,决定报表内容的显示。
本人学浅,很菜,拜托各位前辈照顾下了!!!
E-Mail :lxl.jsj@163.com
------解决方案--------------------
1. 在页面ddl控件中输入日期,单击Button, 报表显示符合该日期的内容;
这是你程序根据日期去数据库提取数据,然后传给报表再显示
2. 根据后台查出的变量为条件,决定报表内容的显示。
这个不懂什么意思,要做动态的?
------解决方案--------------------
安装VS时如果选了CR,会在安装目录下带有详细的例子
一般位于如下位置:
D:\Program Files\Microsoft Visual Studio 9.0\Crystal Reports\Samples\
我装的是2008,所以与你的位置可能稍微有些不同
是个压缩包,解压缩
每个例子都用VB.Net/C# 做了APP模式和WEB模式
比如说参数这个,名字叫
CS_Win_RDObjMod_Parameters
CS_Web_RDObjMod_Parameters
虽然跟你的要求不完全一样,但是原理足够了~~
------解决方案--------------------
- C# code
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Shared; public partial class _Default : System.Web.UI.Page { private const string PARAMETER_FIELD_NAME = "City"; protected void Page_Load(object sender, EventArgs e) { } private void Page_Init(object sender, EventArgs e) { ConfigureCrystalReports(); } private void ConfigureCrystalReports() { ArrayList arrayList = new ArrayList(); string reportPath = Server.MapPath("CustomersByCity.rpt"); crystalReportViewer.ReportSource = reportPath; ParameterFields parameterFields = crystalReportViewer.ParameterFieldInfo; if (!IsPostBack) { defaultParameterValuesList.DataSource = GetDefaultValuesFromParameterField(parameterFields); defaultParameterValuesList.DataBind(); arrayList.Add("Paris"); arrayList.Add("Tokyo"); Session["arrayList"] = arrayList; } else { arrayList = (ArrayList)Session["arrayList"]; } SetCurrentValuesForParameterField(parameterFields, arrayList); } private void SetCurrentValuesForParameterField(ParameterFields parameterFields, ArrayList arrayList) { ParameterValues currentParameterValues = new ParameterValues(); foreach (object submittedValue in arrayList) { ParameterDiscreteValue parameterDiscreteValue = new ParameterDiscreteValue(); parameterDiscreteValue.Value = submittedValue.ToString(); currentParameterValues.Add(parameterDiscreteValue); } ParameterField parameterField = parameterFields[PARAMETER_FIELD_NAME]; parameterField.CurrentValues = currentParameterValues; } private ArrayList GetDefaultValuesFromParameterField(ParameterFields parameterFields) { ParameterField parameterField = parameterFields[PARAMETER_FIELD_NAME]; ParameterValues defaultParameterValues = parameterField.DefaultValues; ArrayList arrayList = new ArrayList(); foreach (ParameterValue parameterValue in defaultParameterValues) { if (!parameterValue.IsRange) { ParameterDiscreteValue parameterDiscreteValue = (ParameterDiscreteValue)parameterValue; arrayList.Add(parameterDiscreteValue.Value.ToString()); } } return arrayList; } protected void redisplay_Click(object sender, EventArgs e) { ArrayList arrayList = new ArrayList(); foreach (ListItem item in defaultParameterValuesList.Items) { if (item.Selected) { arrayList.Add(item.Value); } } Session["arrayList"] = arrayList; ConfigureCrystalReports(); } }