如何获取Crystal报表中两个文本框之间的详细信息? [英] how to get details of between two textboxes in Crystal report ?

查看:71
本文介绍了如何获取Crystal报表中两个文本框之间的详细信息?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的winform应用程序中,两个文本框和一个按钮是
当我输入值时我的意思是两个日期开始,并且在按下按钮后两个文本框中的日期我希望在水晶报表中显示记录。 。



i尝试了代码,但没有重定向到水晶报告..



可以任何人建议我吗? br $> b $ b

谢谢你。

解决方案

亲爱的



在解决方案中创建数据集并添加表并在数据集表中根据需要创建列。

例如:您的Datset是MyDataSet,我添加了一个名为table1的表。 />

  Dim  rptviewer  As   frmrReportViewer 
Dim rptclass As ReportClass
尝试
Dim query As String
Dataset DS = MyDataSet
Dim dt As DataTable

Dim As DataRow
rptclass = rptCustomerReport ' 我的报告类(水晶报告)



DS.Clear()
dt = DS.Tables( CUSTOMER' 客户是我的表名
行= dt.NewRow
row( DATE1)= 您的第一个值
行( DATE2)= 你的第二个值
dt.Rows.Add(row)

rptclass.SetDataSource(DS)' 将Datset设置为报告
rptviewer.CrystalReportViewer1.ReportSource = rptclass ' 使用Reportviwert控件显示报告
rptviewer.ShowDialog()
Catch ex 作为例外
rptclass.SetDataSource(DS)
rptviewer.CrystalReportViewer1.ReportSource = rptclass
rptviewer.ShowDialog()


尝试:

ReportDocument cryRpt = new ReportDocument();

cryRpt.Load( PUT CRYSTAL REPORT PATH HERE \\CrystalReport1.rpt );
ParameterFieldDefinitions crParameterFieldDefinitions;
ParameterFieldDefinition crParameterFieldDefinition;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();

crParameterDiscreteValue.Value = TextBox1.Text;
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions.Item [ 客户名];
crParameterValues = crParameterFieldDefinition.CurrentValues;

crParameterValues.Clear();

crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

CrystalReportViewer1.ReportSource = cryRpt;
CrystalReportViewer1.Refresh();


 private void button1_Click(object sender,EventArgs e)
{
SqlConnection con = new SqlConnection(@Data Source = ythisbug; Initial Catalog = ythisbug; User ID = sa; Password = ******;);

con.Open();

try
{

string StartDate = textBox1.Text;
string EndDate = textBox2.Text;
SqlCommand com = new SqlCommand();
SqlDataAdapter sqlda;
DataSet ds;
string str;

com.CommandType = CommandType.StoredProcedure;
com.CommandText =usp_GetDateSales;

com.Connection = con;

SqlParameter pStartDate = new SqlParameter(@ STARTDATE,SqlDbType.DateTime);
pStartDate.Value = StartDate;
com.Parameters.Add(pStartDate);
SqlParameter pEndDate = new SqlParameter(@ ENDDATE,SqlDbType.DateTime);
pEndDate.Value = EndDate;
com.Parameters.Add(pEndDate);

DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(com);
da.Fill(dt);

com.Dispose();
con.Close();

sqlda = new SqlDataAdapter(com);
ds = new DataSet();
sqlda.Fill(ds,tblPurchase);
con.Close();
ReportDocument r1 = new ReportDocument();
r1.Load(@C:\ Users \admin \Documents\Visual Studio 2008 \Projects\WindowsFormsApplication1 \WindowsFormsApplication1 \Reports \CrystalReport1.rpt);

r1.SetDataSource(ds);
crystalReportViewer1.ReportSource = r1;
crystalReportViewer1.Refresh();
}
catch(例外情况)
{


}
最后
{
con.Close( );
}


}


hi in my winform application two textboxes and one button is der
when i enter value i mean two dates start and and date in two textboxes after hitting button i want to display records in crystal report..

i tried code but not redirecting to crystal report..

can any one suggest me?

thank u.

解决方案

Dear

Create a dataset in your solution and add a table and create the columns as you need inside the data set table.
for eg: Your Datset is MyDataSet and I add a table called table1.

Dim rptviewer As New frmrReportViewer
        Dim rptclass As ReportClass
        Try
            Dim query As String
            Dataset DS = New MyDataSet
            Dim dt As DataTable

            Dim row As DataRow
            rptclass = New rptCustomerReport      ' My Report Class (crystal report)

         

            DS.Clear() 
            dt = DS.Tables("CUSTOMER")     ' Customer is My Table Name
            row = dt.NewRow
            row("DATE1") ="Your First Value"
            row("DATE2") = "Your second Value"
            dt.Rows.Add(row)   
           
            rptclass.SetDataSource(DS)  'Set the Datset to the report
            rptviewer.CrystalReportViewer1.ReportSource = rptclass  ' Show the report by using a Reportviwert control
            rptviewer.ShowDialog()
        Catch ex As Exception
            rptclass.SetDataSource(DS)
            rptviewer.CrystalReportViewer1.ReportSource = rptclass
            rptviewer.ShowDialog()


Try:

ReportDocument cryRpt = new ReportDocument();

cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\\CrystalReport1.rpt");
ParameterFieldDefinitions crParameterFieldDefinitions;
ParameterFieldDefinition crParameterFieldDefinition;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();

crParameterDiscreteValue.Value = TextBox1.Text;
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions.Item["Customername"];
crParameterValues = crParameterFieldDefinition.CurrentValues;

crParameterValues.Clear();

crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

CrystalReportViewer1.ReportSource = cryRpt;
CrystalReportViewer1.Refresh();


private void button1_Click(object sender, EventArgs e)
      {
        SqlConnection con = new SqlConnection(@"Data Source=ythisbug;Initial Catalog=ythisbug; User ID=sa; Password=******;");

           con.Open();
          
          try
          {

              string StartDate = textBox1.Text;
              string EndDate = textBox2.Text;
              SqlCommand com = new SqlCommand();
                     SqlDataAdapter sqlda;
                             DataSet ds;
                     string str;
                   
                     com.CommandType = CommandType.StoredProcedure;
                     com.CommandText = "usp_GetDateSales";
                                   
                     com.Connection = con;

                     SqlParameter pStartDate = new SqlParameter("@STARTDATE", SqlDbType.DateTime);
                     pStartDate.Value = StartDate;
                     com.Parameters.Add(pStartDate);
                     SqlParameter pEndDate = new SqlParameter("@ENDDATE", SqlDbType.DateTime);
                     pEndDate.Value = EndDate;
                     com.Parameters.Add(pEndDate);

                     DataTable dt = new DataTable();
                     SqlDataAdapter da = new SqlDataAdapter(com);
                     da.Fill(dt);

                     com.Dispose();
                     con.Close();

                    sqlda = new SqlDataAdapter(com);
                    ds = new DataSet();
                    sqlda.Fill(ds, "tblPurchase");
                    con.Close();
                    ReportDocument r1 = new ReportDocument();
                    r1.Load(@"C:\Users\admin\Documents\Visual Studio 2008\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Reports\CrystalReport1.rpt");

                    r1.SetDataSource(ds);
                    crystalReportViewer1.ReportSource = r1;
                    crystalReportViewer1.Refresh();
          }
          catch(Exception ex)
          {
              
              
          }
          finally
          {
              con.Close();
          }
              

           }


这篇关于如何获取Crystal报表中两个文本框之间的详细信息?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆