- 浏览: 81859 次
- 性别:
- 来自: 珠海
文章分类
最新评论
-
kennyluo:
网页上发布的代码上缺少了"//",注意&q ...
apply a Texture Image to a Cube -
kyng:
图片放到目录下。。。修改对应名称 。。怎么还出错!!!
Ex ...
apply a Texture Image to a Cube
using System; using System.Data; using FastReport; using Szcx.GeneralDB; using System.Collections.Generic; namespace CxFastReport { //基类 public abstract class BasePlugin :IfrxUserDataSet, IfrxUserDataSetEvents, IfrxDataSet, IfrxPlugin { private int itemIndex; /// <summary> /// 报表行索引,包括报表头,尾和数据行 /// </summary> public int ItemIndex { get { return itemIndex; } set { itemIndex = value; } } private int columnCount; /// <summary> /// 列数 /// </summary> public int ColumnCount { get { return columnCount; } set { columnCount = value; } } int rowCount = 0; /// <summary> /// 数据项总行数 /// </summary> public int RowCount { get { return rowCount; } set { rowCount = value; } } #region IfrxUserDataSet 成员 string fields; /// <summary> /// 报表列集合,格式:('column1'/n'column1'/n........) /// </summary> public string Fields { get { return fields; } set { fields = value; } } string name; public string Name { get { return name; } set { name = value; } } #endregion #region IfrxUserDataSetEvents 成员 public void OnFirst() { ItemIndex = 0; } public void OnNext() { ItemIndex++; } public void OnPrior() { ItemIndex--; } public void OnCheckEOF(out bool IsEOF) { IsEOF = (ItemIndex >= rowCount); } /// <summary> /// 报表时获取数据 /// </summary> /// <param name="VarName">列名</param> /// <param name="Value">值</param> public abstract void OnGetValue(object columanName, out object Value); #endregion #region IfrxDataSet 成员 public int CurrentRecordNo { get { return ItemIndex; } } public void GoFirst() { ItemIndex = 0; } public void GoNext() { ItemIndex++; } public void GoPrior() { ItemIndex--; } public int FieldsCount { get { return ColumnCount; } } public int RecordsCount { get { return this.rowCount; } } public int RangeEndCount { get { // TODO: Add ReportDataTable.RangeEndCount getter implementation return 0; } set { // TODO: Add ReportDataTable.RangeEndCount setter implementation } } public FastReport.frxRangeBegin RangeBegin { get { // TODO: Add ReportDataTable.RangeBegin getter implementation return new FastReport.frxRangeBegin(); } set { // TODO: Add ReportDataTable.RangeBegin setter implementation } } public abstract object ValueOfField(string FieldName); string userName = ""; public string UserName { get { return userName; } set { userName = value; } } public FastReport.frxRangeEnd RangeEnd { get { // TODO: Add ReportDataTable.RangeEnd getter implementation return new FastReport.frxRangeEnd(); } set { // TODO: Add ReportDataTable.RangeEnd setter implementation } } #endregion #region IfrxPlugin 成员 public FastReport.frxPluginType PluginType { get { return FastReport.frxPluginType.ptDataSet; } } #endregion } } using System; using System.Data; using FastReport; using Szcx.GeneralDB; using System.Collections.Generic; using Szcx.Misc; namespace CxFastReport { //实现Table数据的转换 public class ReportDataTable : BasePlugin { private DataTable dataTable; /// <summary> /// 构造方法,构建列 /// </summary> /// <param name="table">数据表</param> /// <param name="dataSourceName">生成的数据源名称</param> public ReportDataTable(DataTable table,string dataSourceName) { dataTable = table; FeildMap.Clear(); //初始化 this.Name = dataSourceName; this.UserName = dataSourceName; this.RowCount = table.Rows.Count; this.Fields = null; this.ColumnCount = table.Columns.Count; //构建列 foreach (DataColumn col in dataTable.Columns) { FeildMap.Add(field.FLD_DESC, field); this.Fields += field.FLD_DESC + "/n"; } } /// <summary> /// 实现报表时获取数据 /// </summary> /// <param name="columnName">列名</param> /// <param name="Value">获取的值</param> public override void OnGetValue(object columnName, out object Value) { //报表时获取值 object value = dataTable.Rows[this.ItemIndex][columnName.ToString()]; //将Decimal数据类型装换为Int32,FastReport不能识别Decimal数据类型 if (Value is Decimal) { Value = Decimal.ToInt32((Decimal)Value); } } public override object ValueOfField(string FieldName) { throw new Exception("The method or operation is not implemented."); } } } using System; using System.Collections.Generic; using System.Text; using FastReport; using System.Data; namespace CxFastReport { //数据绑定类 public class ReportBinding { private List<BasePlugin> reportBasePlugins = new List<BasePlugin>(); public void BindToReport(List<BasePlugin> plugins, TfrxReportClass report) { reportBasePlugins.Clear(); foreach (BasePlugin plugin in plugins) { this.reportBasePlugins.Add(plugin); report.BindObject(plugin); report.SelectDataset(true, plugin); } } /// <summary> /// 卸载数据源 /// </summary> public void UnbindFromReport(TfrxReportClass report) { foreach (BasePlugin local_table in this.reportBasePlugins) { report.SelectDataset(false, local_table); } reportBasePlugins.Clear(); } } } //继承FastReporet的新类 using System; using System.Collections.Generic; using System.Text; using FastReport; using System.Data; using System.Windows.Forms; using System.Collections; namespace CxFastReport { public class FrxFastReport : TfrxReportClass { Form form; bool secondLang; public bool SecondLang { get { return secondLang; } set { secondLang = value; } } /// <summary> /// 绑定数据源对象的类 /// </summary> private ReportBinding reportBinding = null; /// <summary> /// 数据源插件对象:分别是由:ReportDataTable,ReportList实现的 /// </summary> List<BasePlugin> plugins = new List<BasePlugin>(); private IList list = null; public FrxFastReport(Form form, bool secondLang) { this.secondLang = secondLang; this.reportBinding = new ReportBinding(); this.form = form; } Dictionary<string, object> listDataSource = new Dictionary<string, object>(); /// <summary> /// 数据源和名称,键值对,object为数据源,string数据源名称, /// 如:ListDataSource.Add(new Dictionary<tableName,dataTable>); /// </summary> public Dictionary<string, object> ListDataSource { get { return listDataSource; } set { listDataSource = value; } } /// <summary> /// 绑定数据到报表 /// </summary> public void BindToReport() { IEnumerator ienumeratorKey = ListDataSource.Keys.GetEnumerator(); while (ienumeratorKey.MoveNext()) { string key = ienumeratorKey.Current.ToString(); object reportDataSource = this.ListDataSource[key]; if (reportDataSource is DataTable) { this.plugins.Add(new ReportDataTable((DataTable)reportDataSource, key)); continue; } if (reportDataSource is DataView) { DataTable tempTable = ((DataView)reportDataSource).Table; this.plugins.Add(new ReportDataTable(tempTable, key)); continue; } if (reportDataSource is IList) { this.list = (IList)reportDataSource; this.plugins.Add(new ReportList(this.list, key)); continue; } } this.reportBinding.BindToReport(this.plugins, this); } /// <summary> /// 卸载数据源 /// </summary> public void UnbindFromReport() { this.reportBinding.UnbindFromReport(this); } } } //掉用方法 //设置FastReport数据源 Dictionary<string, DataTable> listDataSource = new Dictionary<string, DataTable>(); /// <summary> /// 数据源和名称,键值对,object为数据源,string数据源名称, /// 如:ListDataSource.Add(new Dictionary<tableName,dataTable>); /// </summary> public Dictionary<string, DataTable> ListDataSource { get { return listDataSource; } set { listDataSource = value; } } /// <summary> /// 绑定数据到报表 /// </summary> public void BindToReport() { IEnumerator ienumeratorKey = ListDataSource.Keys.GetEnumerator(); while (ienumeratorKey.MoveNext()) { string key = ienumeratorKey.Current.ToString(); DataTable reportDataSource = this.ListDataSource[key]; this.plugins.Add(new ReportDataTable((DataTable)reportDataSource, key)); this.reportBinding.BindToReport(this.plugins, this); }
发表评论
-
FastReport问题整理
2012-06-09 19:58 3261部分来自网上,部分 ... -
FastReport studio 动态加载数据集 (zhuan)
2012-06-09 19:56 1308测试使用的FastReport S ... -
[转载]了解IL反编译工具Ildasm.exe
2012-05-29 22:06 0Ildasm.exe 的使用方法 示例: 在应用 ... -
从ipa提取图片资源,还原PNG文件
2012-05-14 15:44 5127iOS 开发过程中,在code和测试阶段结束后,你需要用xco ... -
PHP缓存技术:memcache函数详解之一
2012-02-14 04:59 982Memcache函数库是在PECL( ... -
PHP缓存技术:memcache函数详解之二
2012-02-14 04:56 1301memcache::debug bool memcac ... -
PHP企业级应用之常见缓存技术篇
2012-02-14 04:50 1220php的缓冲器: 有eaccelerator, apc ... -
php缓存技术详解
2012-02-14 04:48 916一、缓存技术: 有些信息比方经常不变的,但是还是 ... -
PHP企业级应用之常见缓存技术篇
2012-02-14 04:47 832别每天OO,这个配置怎么改,这段代码哪错了,没劲,好的程 ... -
FreeFileSync 文件比较同步系统
2012-02-04 00:06 1243http://sourceforge.net/proj ... -
[图文]Openfiler应用篇(五)Accounts之AD认证
2012-02-03 20:16 1243一、Win2003服务器域控制器准备 首先 ... -
[图文]Openfiler应用篇(四) FTP和Quota
2012-02-03 20:14 2281本篇我们讨论openfiler FTP ... -
[图文]Openfiler应用篇(三) Accounts
2012-02-03 20:12 954openfiler帐户(Accounts)设置,是openfi ... -
[图文]Openfiler应用篇(二) SMB/CIFS server
2012-02-03 20:12 1342一、建立share-1逻辑卷 本篇我们讨论openfile ... -
[图文]Openfiler应用篇(一)iSCSI
2012-02-03 20:11 1322本文主要讲解Openfile iSCSI 设置和应用,首 ... -
手机产品交互设计样式
2012-01-28 15:51 835很多人都说,手机产品交互限制因素很多,过小的屏幕分辨率, ... -
Domain Locking SWFs
2011-08-12 14:05 815By domain locking (or site lock ... -
CentOS系统下如何打开端口
2011-07-21 10:48 1123在CentOS系统使用中,我们会遇到很多的问题。例如CentO ... -
基于角色管理的系统访问控制(2)
2010-02-21 11:24 1128方案设计 3.1. 安全保护 ... -
基于角色管理的系统访问控制(1)
2010-02-21 11:24 1027安全管理系统核心思想是在基于角色控制思想的基础上提取改进而来的 ...
相关推荐
c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制...
近期做项目整理的资料,fastreport 4.6 破解版使用、c# winform demo、部署说明
Log4net在C# WinForm中应用的一个简单示例:LogDemo.rar; VS2013下工程源码,解压后可直接参考使用; 也可参考该资源对应博客内容:http://blog.csdn.net/sean4m/article/details/53192944
我们将讲解C#调用FastReport的核心概念、使用步骤以及如何处理Delphi编译的BaseReport.dll。 1. **FastReport简介** FastReport是一款用于.NET平台的报表设计和生成工具,提供了丰富的预定义组件,如表格、图表、...
C# Winform实现图像的动态采集,采集到的流媒体按照*.wam或者任意一种Windows Media Player 11可以播放的文件格式, 并获取流媒体采集结束时的最后画面作为流媒体的封面。 要求有录像功能:“开始录像”、“暂停...
在C#编程环境中,Windows Forms(Winform)是一种常用的桌面应用程序开发框架,它允许开发者创建交互式的用户界面。本文将详细讲解如何利用C# Winform调用本机摄像头,包括多摄像头切换、多分辨率切换以及拍照功能。...
在C# WinForm应用开发中,FastReport是一个强大的报表设计工具,它允许开发者创建复杂的报告并集成到他们的应用程序中。而PrintDialog组件是.NET Framework提供的一种标准控件,用于显示一个对话框,让用户选择和...
C# winform 万能打印模板,可以打印证书,修改证书参数,C#窗体程序,代码注释详细 C# winform 万能打印模板,可以打印证书,修改证书参数,C#窗体程序,代码注释详细 C# winform 万能打印模板,可以打印证书,修改...
4. **交互控制**:开发者可以使用C#代码控制DsoFramer的属性和方法,比如设置文档的显示模式(阅读模式或编辑模式)、禁用/启用Office菜单和工具栏等。 5. **事件处理**:DsoFramer提供了丰富的事件,如Document...
FastReport是一款强大的报表工具,广泛应用于C#编程环境中,支持WinForm、WebForm以及MVC三种不同的应用程序架构。它的灵活性和易用性使得开发者能够快速创建复杂的数据报告,提高开发效率,同时也为用户提供友好的...
1. **C# Winform界面设计**:C#是.NET框架下的主要编程语言,Winform是它用于构建桌面应用的库,提供了丰富的控件和API,允许开发者创建功能完备的用户界面。在Winform中,开发者可以使用设计工具直接拖放控件,如...
"198个经典C#WinForm实例源码"包括: 1-窗体技巧 2-控件操作 3-图像操作 4-报表打印 5-系统操作 6-文件处理 7-网络操作 8-数据库操作 9-加密解密 10-硬件读写 11-游戏设计 "超赞的198个经典C#WinForm实例源码.zip " ...
Microsoft Visual Studio 2010做的C# winform类的静态成员及静态方法,主要代码: public class Student { private int IDBase = 20080000; private int ID; public static int StudentNumber; public string ...
C#winform窗体间传值,三种方法示例,注释详细。使用方法:使用vs2013打开编译运行即可; 工程中总共介绍了三种方法: ###方法1:通过保存对象的引用调用其方法实现对子窗体的控制; ###方法2:通过委托,在子窗体...
使用"C#Winform图标素材"这个压缩包,你可以找到各种风格和主题的图标,如通用的文件操作图标(例如新建、打开、保存、复制、粘贴等)、导航图标(前进、后退、主页等)、状态图标(成功、警告、错误等)以及自定义...
在C# Winform应用开发中,常常需要使用各种图标来增强界面的美观性和用户体验。Font Awesome是一个广泛使用的矢量图标库,它提供了大量的图标供开发者选择。本文将详细讲解如何在C# Winform项目中使用Font Awesome...
在C#中,我们可以使用`DllImport`属性来标记外部方法,指出该方法是存在于DLL中的,然后通过`Assembly.Load`或`Assembly.LoadFrom`方法加载DLL。 然而,将DLL作为嵌入资源处理有以下好处: 1. 防止DLL地狱问题:...
C# WinForm允许开发者自定义控件样式,使用SkinForm或DevExpress等第三方库进行界面美化。实例中的一些项目可能展示了如何利用这些技术打造美观的用户界面,包括主题切换、动画效果等。 通过深入学习这200个经典...
C# WinForm开发框架是一种基于.NET Framework的桌面应用程序开发工具,它为开发者提供了一套完整的控件、设计模式和架构,使得创建具有丰富用户界面的Windows应用程序变得更加便捷和高效。这款框架尤其适合初学者,...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用时,WinForm是一个常用的框架。WebAPI则是.NET Framework或.NET Core中用于构建RESTful服务的技术,它允许开发者创建HTTP服务,可以被各种客户端...