为 Crystal Report 提供动态数据源

本文介绍了一个名为Totalaccount的C#类的设计与实现,该类用于处理财务总账数据,并通过Crystal Reports生成报告。文章详细展示了如何从数据库读取数据、填充对象属性以及通过Crystal Reports将这些数据呈现为报告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class Totalaccount
{
    private string _kp_voucher_no;
    private decimal  _kp_should_amt;
    private decimal   _kp_already_amt;
    private DateTime _kp_oper_date;
    private DateTime _kp_pay_date;
    private string _kp_trans_no;
 public Totalaccount()
 {
  //
  // TODO: 在此处添加构造函数逻辑
  //
 }

    public string kp_voucher_no
    {
        get { return _kp_voucher_no ; }
        set { _kp_voucher_no = value; }
   
    }
    public decimal kp_should_amt
    {
        get { return _kp_should_amt; }
        set { _kp_should_amt = value; }
   
    }
    public decimal kp_already_amt
    {
        get { return _kp_already_amt; }
        set { _kp_already_amt = value; }
   
    }
    public DateTime kp_oper_date
    {
        get { return _kp_oper_date; }
        set { _kp_oper_date = value; }   
    }
    public DateTime kp_pay_date
    {
        get { return _kp_pay_date; }
        set { _kp_pay_date = value; }
    }
    public string kp_trans_no
    {
        get { return _kp_trans_no; }
        set { _kp_trans_no = value; }
   
    }
 
    public Totalaccount(DbDataReader dr)
    {
        this._kp_voucher_no = dr["kp_voucher_no"].ToString();
        this._kp_should_amt = Convert.ToDecimal(dr["kp_should_amt"]);
        this._kp_already_amt = Convert.ToDecimal(dr["kp_already_amt"]);
        this._kp_oper_date = Convert.ToDateTime(dr["kp_oper_date"]);
        this._kp_pay_date = Convert.ToDateTime(dr["kp_pay_date"]);
        this._kp_trans_no = dr["kp_trans_no"].ToString();
    }

    public List<Totalaccount> getaccount(string kp_supcust_no)
    {
        DbCommand cmd = GenericDataAccess.createcommand();
        cmd.CommandText = "totalaccount";
        DbParameter parm = cmd.CreateParameter();
        parm.ParameterName = "@kp_supcust_no";
        parm.DbType = DbType.String;
        parm.Value = kp_supcust_no;
        cmd.Parameters.Add(parm);
        List<Totalaccount> count = new List<Totalaccount>();
        DbDataReader dr =GenericDataAccess.ExcuteDataReader(cmd);
        while (dr.Read())
        {
           count.Add(new Totalaccount(dr));

        }
        dr.Close();
        cmd.Connection.Close();
        return count;
       
    }

}
 

调用 :

 

 

 
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
 
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
   
    //private ArrayList stockValues;
    private ReportDocument stockObjectsReport;

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    private void ConfigureCrystalReports()
    {
        ////PopulateStockValuesArrayList();
        string reportPath = Server.MapPath("CrystalReport.rpt");
        Totalaccount account = new Totalaccount();
        stockObjectsReport = new ReportDocument();
        stockObjectsReport.Load(reportPath); 
        stockObjectsReport.SetDataSource(account.getaccount ("500003"));
        CrystalReportViewer1.ReportSource = stockObjectsReport;

    }
    private void Page_Init(Object sender, EventArgs e)
    {
        ConfigureCrystalReports();
    }
  
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值