FastReport.Net如何做在线编辑奖状模板 可编辑?

Access denied | www.bkjia.com used Cloudflare to restrict access
Please enable cookies.
What happened?
The owner of this website (www.bkjia.com) has banned your access based on your browser's signature (42e3ce-ua98).Fastreport.Net用户手册(十四):文本编辑
来源:&&&发布时间:&&&浏览:1269次
编辑对象的文本,只需双击文本内容,然后会弹出一个文本编辑器。
在编辑器右方有一个可以添加至文本中的数据树组件。可以通过鼠标拖拽该组件到需要的地方。在文本中嵌入该组件的另一个方法是双击该组件,然后该组件将会被添加至thecursor的当前位置。
要保存修改并关闭编辑器窗口,只需要点击OK按钮。
编辑文本的另一方法—就地编辑。选择"Text"对象,键盘上点击Enter键完成编辑,单击对象范围之外的区域或键盘上点击Ctrl+Enter键。点击键盘上的Esc键取消此次修改。
相关链接:
关于产品相关的任何问题,欢迎咨询
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 []
本文地址:
相关产品:
重庆总部 023-0-700-1020
北京公司 010-
400-700-1020c# winform 使用 fastreport.net 的模板
[问题点数:40分]
本版专家分:10
结帖率 95.83%
CSDN今日推荐
本版专家分:219637
2013年 荣获名人称号
2012年 总版技术专家分年内排行榜第一
2013年 总版技术专家分年内排行榜第七2011年 总版技术专家分年内排行榜第五2009年 总版技术专家分年内排行榜第九
2012年11月 总版技术专家分月排行榜第一
本版专家分:10
结帖率 95.83%
本版专家分:10
结帖率 95.83%
本版专家分:3120
本版专家分:10
匿名用户不能发表回复!|
CSDN今日推荐FastReport.Net使用:[10]报表栏目说明_百度经验
该经验图片、文字中可能存在外站链接或电话号码等,请注意识别,谨防上当受骗!&&&&&&&&&电脑软件FastReport.Net使用:[10]报表栏目说明听语音1234567
百度经验:jingyan.baidu.com& & 通过前面几篇系列经验介绍,对大部分报表栏目有所了解了吧。这篇经验将对报表栏目做一个整体的说明。百度经验:jingyan.baidu.comFastReport.Net(Version)百度经验:jingyan.baidu.com报表标题(Report Title):在每个报表的开始时打印。报表合计区(Report Summary):在报表结尾时打印,显示在最后一行数据后,页脚前。页眉(Page Header):在报表的每页开头打印。页脚(Page Footer):在报表的每页结尾打印。栏首(Column Header):用于多栏报表(Page Columns&1的情况),在每栏的开头(页眉下方)打印。栏尾(Column Footer):用于多栏报表,在每栏的结尾(页脚上方)打印。数据区(Data):显示数据区域。数据首(Data Header):在数据的第一行前打印。数据尾(Data Footer):在数据的最后一行后打印。分组页眉(Group Header):在每个分组的开头打印。分组页脚(Group Footer):在每个分组的结尾打印。子报表(Child):可用于每个报表栏目,包括子报表。覆盖(Overlay):做为每个报表的背景打印。END百度经验:jingyan.baidu.com1报表标题与页眉的位置可通过报表页(ReportPage)的TitleBeforeHeader属性更改标题和页眉的先后顺序。END百度经验:jingyan.baidu.com1如何配置报表栏已在【简单报表一】中说明,这里就不在详细说明。有3种方法:●直接对报表栏右键删除或添加菜单●点击菜单栏的【报表】菜单进行设置●点击【设置报表栏】进入“报表栏编辑器”进行设置2报表栏的两种显示方法可通过菜单栏的【视图】菜单中的【选项】菜单进入“选项对话框”,切换“报表页面”标签中的“段视图(Band View)”属性。也能直接点击设计界面左上方的按钮直接切换。END百度经验:jingyan.baidu.com允许扩大(Can Grow)、允许收缩(Can Shrink)该栏目能根据其中的内容扩大/收缩其大小,否则为设计时的大小。允许跨行断页(Can Break)栏目能够被截断从新页开始(Start New Page)栏目从新的一页开始,尽管当前页还有足够的空间。打印至页底部(Print On Bottom)将栏目打印到页的下方区域,紧挨页脚。每页重复(Repeat On Every Page)数据首,数据尾,分组页眉,分组页脚具有该属性。将该栏目在每个页上被打印。END百度经验:jingyan.baidu.com分组页眉和报表合计区使用了【从新页开始】属性。END百度经验:jingyan.baidu.com如果想继续学习本人经验,请关注。如果觉得经验值得学习,请分享。|经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。投票(2)已投票(2)有得(0)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆只有签约作者及以上等级才可发有得&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验121131热门杂志第1期你不知道的iPad技巧3788次分享第1期win7电脑那些事6643次分享第2期新人玩转百度经验1411次分享第1期Win8.1实用小技巧2651次分享第1期小白装大神1919次分享◆请扫描分享到朋友圈该经验图片、文字中可能存在外站链接或电话号码等,请注意识别,谨防上当受骗!记录学习工作中的点滴,自己备忘也方便他人。
在BS表单上使用fastreport.net
使用c#制作activex控件
背景:觉得现有自带的打印方案模板工具已经不够用了,想把fastreport引入进来。所以选择用activex插件的形式。另外不会c++所以选择用c#来做。
环境:开发环境vs2012中选择的framework3.5、sqlserver2008 R2数据库、tomcat的BS。
目标:在BS表单中可以实现使用fastreport进行打印、打印设计功能。(按照不同公司可以有多个打印模板)
这部分开发没有太多可以说的,主要就是在vs中引入fastreport的几个dll,贴上几个主要的代码吧。
打印部分:
public void fsPrint(string rptEntityJsonString)
rEntity = (rptEntity)JsonConvert.DeserializeObject(rptEntityJsonString, typeof(rptEntity));
DataSet ds = this.getDataSetBySql(rEntity.sqlStringList);
string rptString = string.E
//如果已经存在此类打印方案,则弹出打印模板选择界面加载之前的打印模板(如果同dataid,同branchid只有一个可供选择的打印模板则自动返回那一个)
if (this.getRptCount(rEntity) & 0)
if (this.getRptCount(rEntity) == 1)
//直接绑定之前存在的模板
rptString = GetRptString(rEntity.rptid);
openRptDialogForm form = new openRptDialogForm();
form.ReportsTable = this.getRptInfoTable(rEntity.branchid, rEntity.dataid);
if (form.ShowDialog() != DialogResult.OK)
MessageBox.Show("没有选择打印方案!");
form.Close();
rEntity.rptid = form.ReportID;
rptString = GetRptString(rEntity.rptid);
FastReport.Report report1 = new FastReport.Report();
report1.LoadFromString(rptString);
report1.RegisterData(this.getDataSetBySql(rEntity.sqlStringList), "rptDataSet");
foreach (DataTable dt in ds.Tables)
report1.GetDataSource(dt.TableName).Enabled = true;
report1.Show();
report1.Dispose();
catch (Exception ex)
打印设计:
public void designReport(string rptEntityJsonString)
//设置订制保存打印模板的方法
Config.DesignerSettings.CustomSaveReport += DesignerSettings_CustomSaveR
Config.DesignerSettings.CustomSaveDialog += DesignerSettings_CustomSaveD
//解析rptEntity的json字符串
rEntity = (rptEntity)JsonConvert.DeserializeObject(rptEntityJsonString, typeof(rptEntity));
DataSet ds = this.getDataSetBySql(rEntity.sqlStringList);
FastReport.Report rpt = new FastReport.Report();
rpt.RegisterData(ds, "rptDataSet");
//弹出新建和打开选择窗口
choseForm choseF = new choseForm();
if (choseF.ShowDialog() == DialogResult.OK)
//新建方案模板
if (choseF.option == "New")
//弹出新建form
NewForm newF = new NewForm();
newF.rptEditMode = NewForm.editMode.新建;
newF.ReportsTable = this.getRptInfoDataTable(rEntity.branchid, rEntity.dataid);
newF.ThisEntity = rE
if (newF.ShowDialog() != DialogResult.OK)
//打开方案模板
//如果已经存在此类打印方案,则弹出打印模板选择界面加载之前的打印模板(如果同dataid,同branchid只有一个可供选择的打印模板则自动返回那一个)
if (this.getRptCount(rEntity) & 0)
//弹出编辑form
NewForm editForm = new NewForm();
editForm.rptEditMode = NewForm.editMode.打开;
editForm.ReportsTable = this.getRptInfoDataTable(rEntity.branchid, rEntity.dataid);
editForm.ThisEntity = rE
if (editForm.ShowDialog() == DialogResult.OK)
rpt.LoadFromString(this.GetRptString(rEntity.rptid));
foreach (DataTable dt in ds.Tables)
rpt.GetDataSource(dt.TableName).Enabled = true;
rpt.Design();
rpt.Dispose();
catch (Exception ex)
其中值得注意的是 Config.DesignerSettings.CustomSaveReport += DesignerSettings_CustomSaveR
这个事件可以在回调函数中自定义保存方法,因此我为了方便将打印的模板直接保存到数据库中了。
另外关于c#制作activex控件的具体步骤参考了以下博客,受益匪浅。
js与activex控件的数据交互
背景:依然是由于使用的erp限制,不能直接在html页中使用object对象,注册依然是采用的如下方法 (MSComm1名字是直接复制之前电子秤里面的,懒得改了。)
function uf_GetSerPortData()
MSComm1 = new ActiveXObject("ReportTools.rptObject");
if ((typeof (MSComm1) == "undefined") || (MSComm1 == null))
// alert("创建打印工具对象失败!");
//绑定事件
// alert("创建activex对象成功!");
catch (err)
// alert(err.description);
目标:需要将数据传输到activex端,此处选择的是json字符串方式
为了方便,写了个专门转换的js方法:
function GetRptJsonStr(rptSqlStringArray, rptid, rptName, branchid, rptDescription, createtime, lastModifyTime, lastModifyUserID, dataid) {
//初始化返回对象
var retObj = {
retState: "success",
jsonString: ""
//初始化json格式
var retRptJsonObj =
"sqlStringList": [],
"rptid": "",
"rptName": "",
"branchid": "",
"rptDescription": "",
"createtime": "",
"lastModifyTime": "",
"lastModifyUserID": "",
"dataid": ""
for (var i = 0; i & rptSqlStringArray. i++) {
retRptJsonObj.sqlStringList.push(rptSqlStringArray[i]);
retRptJsonObj.rptid =
retRptJsonObj.rptName = rptN
retRptJsonObj.branchid =
retRptJsonObj.branchid =
retRptJsonObj.rptDescription = rptD
retRptJsonObj.createtime =
retRptJsonObj.lastModifyTime = lastModifyT
retRptJsonObj.lastModifyUserID = lastModifyUserID;
retRptJsonObj.dataid =
retObj.jsonString = JSON.stringify(retRptJsonObj);
catch (err) {
retObj.retState = err.
return retO
打印设计使用的方法:
function uf_printDesign()
var sqlArray = new Array();
"select top 10 rq, orderId,mail_no, send_name, send_phone,send_mobile,send_address, send_postcode, send_province, send_city,send_area, order_type,service_type,"
+"receive_name, receive_mobile,receive_phone, receive_address, receive_postcode, receive_province, receive_city,receive_area,"
+"item_name, item_number, remark, date, is_zx, is_dy,"
+"items_value,agency_fund,dbo.f_Ch2Num(agency_fund,1) as je,fenb_seqno,bigpen,username"
+" from int_waybill_yt"
sqlArray.push(sql);
var retObj= GetRptJsonStr(sqlArray,"0","测试用的打印方案","FLB","测试描述","T10:26:34.:00","T10:26:34.:00","PF","scc_waybill_yuantong");
if (retObj.retState == "success") {
MSComm1.designReport(retObj.jsonString);
alert(retObj.retState);
activex控件的部署
背景:由于c#开发的activex控件不能像ocx那样直接用regsvr32的方式注册,如果用regasm.exe注册又不靠谱,所以选择弄成安装包的形式。一番周折之后还是选择了vs2010的安装和部署工具(InstallShield 实在是折腾不下来)
生成过程:新建vs2010安装项目,选择程序集,生成。
需要注意的:
问题描述:明明选的是3.5,但是生成的安装包却提示要4.0的framework。其实是系统必备里面勾选错了。
解决方案:
右键项目--》视图--》启动条件——》属性——》Version
右键项目——》属性——》系统必备——》
去掉不必要的问题描述:转换为activex控件。
解决方案:文件系统——》右键指定dll——》属性——》Register——》选为vsdraCOM
下面贴上效果图:
博客园CSDN同步更新,博客园地址
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!}

我要回帖

更多关于 微信编辑模板 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信