易飞报表转化WEB报表过程剖析.docx

上传人:b****5 文档编号:7507282 上传时间:2023-01-24 格式:DOCX 页数:16 大小:1.21MB
下载 相关 举报
易飞报表转化WEB报表过程剖析.docx_第1页
第1页 / 共16页
易飞报表转化WEB报表过程剖析.docx_第2页
第2页 / 共16页
易飞报表转化WEB报表过程剖析.docx_第3页
第3页 / 共16页
易飞报表转化WEB报表过程剖析.docx_第4页
第4页 / 共16页
易飞报表转化WEB报表过程剖析.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

易飞报表转化WEB报表过程剖析.docx

《易飞报表转化WEB报表过程剖析.docx》由会员分享,可在线阅读,更多相关《易飞报表转化WEB报表过程剖析.docx(16页珍藏版)》请在冰豆网上搜索。

易飞报表转化WEB报表过程剖析.docx

易飞报表转化WEB报表过程剖析

易飞报表转化WEB报表过程剖析

(适用于:

程序员)整理人:

杜坤。

一、转化原理2

二、转化步骤2

2.1前端画面转化2

2.2网页上报表的测试6

2.3有问题报表的自定义开发9

一、转化原理

画面XML包括:

画面上所有控件的属性

开窗XML包括:

控件名称、开窗的编号

传入后端的XML包括:

传入报表后端的条件的控件名称(这些表存于数据库WEBReport)

二、转化步骤

(以INVR19为例,环境为服务器:

192.168.11.7)

2.1前端画面转化

(1)了解要转化的报表前端画面。

DELPHI打开报表前端SOURCE,并必须保证前端窗体FORM中基本选项卡显示在前面。

为了防止转换后的窗体界面上高级选项与基本选项错位。

前端SOURCE检查注意:

1、控件命名是否规范,如sp,ed,chk、cbo等。

2、SetRptOptStr函数中生成的条件顺序数组是否规范。

如xValue[1]:

=VarArrayOf([sp01.Caption,sp01.name]);。

sp01.name是否为传入报表后端的控件的名称。

这个数组是否为二维的。

如作业COPR61中xValue[14]:

=mMA001;,这个生成到XML中就会有问题。

3、SetRptOption函数中传入后端的值是否规范。

sp控件一般不会有问题。

EDIT控件传一个值到后端,如:

xValue[5]:

=ed06.Text;。

checkBox传一个值到后端,如:

xValue[3]:

=iif(chk04.checked,'Y','N');。

radiobox,combox传二个值到后端,如xValue[5]:

=VarArrayOf([cbo06.ItemIndex+1,cbo06.Text]);。

4、OpenF2Window中是否有树型开窗,如会计科目。

若有则需要自定义SQL。

5、查看是否有多格式。

如果一个控件控制格式,直接在表中修改。

两个以上的控件要通过修改程序。

强调一下多格式的实现代码必须放在SetRptOption函数中。

(2)用WEB报表专用O盘重新编译程序。

用192.168.11.7服务器上的O盘编译,将DLL放到DSchangeX前端程序搜寻路径。

具体环境如下图。

(3)通过工具BatTranWebRep将报表前端画面转化到WEBReport报表数据库。

首先,配置好config.ini文件,登录BatTranWebRep工具。

界面如下图。

[SQLSERVER]

AdoConnectStr=Provider=SQLOLEDB.1;Password=238173;PersistSecurityInfo=True;UserID=sa;InitialCatalog=WebReport90;DataSource=192.168.11.7

然后,在程序编号中输入:

INVR19后回车,

这时会先自动弹出INVR19作业的前端FORM界面,点击FORM中的

按钮;随即弹出OpenWinList窗口,点击

按钮;最后再一次弹出INVR19的前端界面,点

后如上图。

(3次弹出窗体)转换前端生成的3个XML文件见图右侧选项卡。

生成开窗时注意:

1、生成前端画面时如上图左边红框内所示,一般不会有问题,最多是字体被控件遮挡之类,这个可以在右侧选项XML中找到对应控件XML直接修改。

2、生成开窗时可能会出现报错,所以可能要手动修改开窗的XML档。

3、对于开窗时,是以别的控件的值做为参数的,例如分类方式控制类别,工厂控制仓库开窗等,要修改参数的来源。

如上图sp03的参数1肯定不对的,这个时候可以直接鼠标右击此行-修改参数为cbo02即可。

4、如果开窗是因为别的控件的值变化而不同的,要增加一个开窗项。

5、对有多格式报表来说,要点击格式按钮查看工具是否正确生成。

若有问题可直接在弹出窗体中修改。

(4)确认生成无误后,点击工具栏中的

按钮将三个XML保存到WEBReport报表数据库中。

XML相关知识可以参见XML基础知识.ppt.

2.2网页上报表的测试

(1)在系统中录入程序。

在YF中CALL起作业WRPI01录入。

注意是否有动态的标题或者栏位数目。

(2)打开程序,查看生成的画面、开窗等是否正常。

打开IE,在地址栏中键入http:

//192.168.11.7/webreport/User_Login.aspx登录。

然后在网页左边导航栏内输入报表作业编号INVR19,点击

按钮打开报表。

选择画面上的日期、类别等开窗打开查看是否成功,如下图。

开窗报错问题注意:

1、检查开窗的XML语法或者传入的参数是否有误。

建议如传入的参数有空格,不要使用BatTranWebRep修改,可以在DateView中修改XML,特别是中不要输入回车,可能导致开窗异常;

2、日期开窗:

无法找到该页面,这是正常情况。

解决方法:

服务器:

IIS-Web扩展服务-启用ActiveServerPages服务(XP2003之前系统会出现此问题)

(3)确认没问题后,点击画面右边的查询报表按钮

,由于此时报表后端DLL还没编译,会提示有问题。

报表后端需用最新标准O盘编译后放至服务器指定目录(S_modi)。

查询WEB报表时注意:

1、在Web中点击查询按钮,长时间没有响应

其处理状态STATES为,N:

等待中;X:

已锁定;P:

处理中;F:

有问题;D:

已完成,

若一直为N,说明服务器ReportCenter可能没有开启,尝试开启服务器的报表处理元件;

若一直为P,说明报表处理比较耗时,尝试重新登陆并选择条件以确定更小的查询范围;

若一直为F,说明报表条件有错误,这类现象最难解决,只能用排除法处理。

检查自定义代码或转换得到的条件XML或将JOBOPTION里的条件XML与易飞前端传给后端的Variant做对比。

没问题的话,就要跟踪报表后端了,通常要做后端个案喔。

报表后端跟踪方法已经整理到Web报表撰写经验.xls文档!

2.3有问题报表的自定义开发

简单类工厂介绍:

注:

餐店的例子,快餐店提供很多食物,比如面条,米饭,面包。

首先定义了一个Food接口,然后这些食物都从它来继承,定义了一个大厨他包办所有食物的制作工作。

类图:

继承类说明:

(1)对有问题的报表,确定要修改的功能,如控件的大小、位置、状态等。

如下图所示,分类方式管控类别开窗,工厂管控仓库开窗,这就要进行.NET开发。

打开VS,创建项目/解决方案INVR19,如下图。

具体撰写步骤:

1、继承类ReprotCustomBase,增加空间引用:

 

2、修改命名空间:

YFReportCustom.Reports.INV,其中INV为模块名称,也就是程序名称的前三位,对于不是程序名称前三位的作业做特殊处理。

3、增加要处理的三个常用事件函数,如:

BeforeControlCreate控件创建前,生成控件要处理的写在这个里面,返回处理是否错误,AfterControlCreate控件生成后,调整控件、增加控件等写在这个里面,返回处理是否错误,AfterOpenWin生成开窗的处理方法有问题的写在这个里面,返回是否存在处理的开窗。

publicoverrideboolBeforeControlCreate()

{

returnbase.BeforeControlCreate();

}

publicoverrideboolAfterControlCreate()

{

returnbase.AfterControlCreate();

}

publicoverrideboolAfterOpenWin()

{

returnbase.AfterOpenWin();

}

4、在对应的事件中增加功能,特殊报表特殊处理。

以分类方式管控类别开窗为例:

函数定义与实现过程如下:

publicoverrideboolAfterControlCreate()

{

if(base.AfterControlCreate())

{

DropDownListcbo02=ReportCustomUtil.FindControl(FtabContainer,"cbo02")asDropDownList;

Fill_ItemCategory(cbo02);

cbo02.AutoPostBack=true;

cbo02.TextChanged+=cbo02_TextChanged;

returntrue;

}

else

returnfalse;

}

publicvoidcbo02_TextChanged(objectsender,EventArgse)

{

wrSelectPanelsp03=ReportCustomUtil.FindControl(FtabContainer,"sp03")aswrSelectPanel;

sp03.TxtValueHide1.Value="";

sp03.TxtValueHide2.Value="";

}

 

控件对应关系:

注:

具体的.NET开发以及开发过程中遇到的特殊类报表和异常问题的解决等,涉及到C#语法以及VS的使用方法,这里就不做具体阐述了。

5、测试-画面测试、开窗测试、查询结果测试等。

(2)待.net开发完成,在调试确认无误后将DLL放入服务器指定目录ReportC_PKG。

然后查询生成报表。

(3)测试、制作报表格式。

WEB报表生成后,制作报表格式档RDL。

RDL生成在服务器指定目录ReportS_RDL中,使用工具ReportBuilder2进行修改与制作。

具体遇到问题见相关视频和Web报表撰写经验.xls。

 

Ps:

WEB报表的数据结构、目录结构、继承关系参见Web报表结构说明.xlsx。

易飞WEB报表的所有源代码以及工具基类都已经放在VSS172.16.1.202/tools/WebReport目录下。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1