FastReport报表使用代码C#

更新时间:2024-06-08 12:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

using System;

using System.Data;

using System.ComponentModel; using FastReport;

namespace cx {

///

/// Summary description for FrxDataSet. ///

public class FrxDataTable : DataTable {

private int nItem;

TfrxUserDataSetClass m_ds;

private DataTable m_ChildTable;

public new string TableName {

get { return m_ds.Name; } }

public IfrxDataSet FrxTable {

get { return m_ds as IfrxDataSet; } }

private void constructor(string name) {

m_ChildTable = null;

m_ds = new TfrxUserDataSetClass();

m_ds.OnCheckEOF += new

IfrxUserDataSetEvents_OnCheckEOFEventHandler(OnCheckEOFEventHandler); m_ds.OnGetValue += new

IfrxUserDataSetEvents_OnGetValueEventHandler(OnGetValueHandler); m_ds.OnFirst += new

IfrxUserDataSetEvents_OnFirstEventHandler(OnFirstEventHandler); m_ds.OnNext += new

IfrxUserDataSetEvents_OnNextEventHandler(OnNextEventHandler); m_ds.OnPrior += new

IfrxUserDataSetEvents_OnPriorEventHandler(OnPriorEventHandler);

m_ds.Name = name;

DataColumnCollection cols = Columns; cols.CollectionChanged += new

CollectionChangeEventHandler(ColumnsCollection_Changed);

纪兆亮自学FastReport 1

}

public FrxDataTable(string name) {

constructor(name); }

public FrxDataTable(DataTable t) {

constructor(t.TableName); string FieldNames = null;

foreach (DataColumn col in t.Columns) FieldNames += col.Caption + \; m_ds.Fields = FieldNames; m_ChildTable = t; }

///

/// Assigns table to report ///

public void AssignToDataBand(string BandName, TfrxReportClass report) {

IfrxComponent frx_component;

((IfrxComponent)report).FindObject(BandName, out frx_component); ((IfrxDataBand)frx_component).DataSet = (IfrxDataSet)m_ds; }

///

/// Assigns table to report ///

public void AssignToReport(bool Enable, TfrxReportClass report) {

report.SelectDataset(Enable, m_ds); }

///

/// On First event handler ///

private void OnFirstEventHandler() {

nItem = 0; }

///

/// On Next event handler ///

private void OnNextEventHandler() {

纪兆亮自学FastReport 2

nItem++; }

///

/// On Prior evene handler ///

private void OnPriorEventHandler() {

nItem--; }

///

/// On check EndOfFile event handler ///

private void OnCheckEOFEventHandler(out bool eof) {

if (m_ChildTable == null) {

eof = (nItem >= Rows.Count); } else {

eof = (nItem >= m_ChildTable.Rows.Count); } }

///

/// On get value handler ///

private void OnGetValueHandler(object VarName, out object Val) {

if (m_ChildTable == null) {

Val = Rows[nItem][VarName.ToString()]; } else {

Val = m_ChildTable.Rows[nItem][VarName.ToString()]; }

// FastReport does not know about System.Decimal object type // so convert it to Integer if (Val is Decimal) {

Val = Decimal.ToInt32((Decimal)Val); } }

纪兆亮自学FastReport 3

///

/// Updates FastReport UserDataSet on Column addition ///

private void ColumnsCollection_Changed(object sender, CollectionChangeEventArgs e) {

DataColumnCollection cols = (DataColumnCollection)sender; string FieldNames = null;

foreach (DataColumn col in cols) FieldNames += col.Caption + \; m_ds.Fields = FieldNames; } } }

Button按钮中的代码 引用FastReport

FastReport.TfrxReportClass report = new FastReport.TfrxReportClass(); report.MainWindowHandle = (int)this.Handle;

report.LoadReportFromFile(Application.StartupPath + \);

alluse.FrxDataTable rptdataset1 = new alluse.FrxDataTable(\); SqlDataAdapter sda = new SqlDataAdapter(\, alluse.Class1.conn1);

sda.Fill(rptdataset1);

rptdataset1.AssignToReport(true, report);

rptdataset1.AssignToDataBand(\, report);// MasterData1报表中的主数据

report.ShowReport();

以上是成功代码。。。。。。。。。。。。

private void button2_Click(object sender, EventArgs e) {

FastReport.TfrxReportClass report = new FastReport.TfrxReportClass(); report.MainWindowHandle = (int)this.Handle;

report.LoadReportFromFile(\添加报表路径 FrxDataTable rptdataset1 = new FrxDataTable(\

FrxDataTable rptdataset2 = new FrxDataTable(\

OleDbDataAdapter oleDbDataAdapter1 = new OleDbDataAdapter(\* from TZ_Unit\

oleDbDataAdapter1.Fill(rptdataset1);

OleDbDataAdapter oleDbDataAdapter2 = new OleDbDataAdapter(listsql, Class1.conn1);

oleDbDataAdapter2.Fill(rptdataset2);

// rptdataset1.AssignToReport(true, report); // rptdataset2.AssignToReport(true, report);

// rptdataset2.AssignToDataBand(\

report.ShowReport(); }

4

纪兆亮自学FastReport

本文来源:https://www.bwwdw.com/article/nm56.html

Top