动态报表制作实例.doc_第1页
动态报表制作实例.doc_第2页
动态报表制作实例.doc_第3页
动态报表制作实例.doc_第4页
动态报表制作实例.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IUFO系统业务查询与动态区域的综合应用案例在NC项目IUFO系统的实施中,除了最基本的三大表及附表之外,常常需要编制一些明细表,例如:应收(付)账款明细表、在建工程明细表等,尤其是在大型国企中,几乎是必做的报表,而且出于报表管理的要求,企业一般不愿意接受仅仅通过账簿查询得到数据,而更希望能够在报表系统实现,进行展现、上下级报送和查询。IUFO系统V3版本,已经具备了一些新的功能,如:业务查询、动态区域、WHX和YHX函数,对这些功能加以灵活利用,就可以比较理想地满足企业编制明细报表的需求。下面,我就以最为典型的应收账款明细表为例,详细阐述关于IUFO系统业务查询、动态区域、WHX函数的综合应用,并从实战角度出发,介绍在编制过程中可能遇到的一些问题以及小技巧。首先,我们先观察一下企业一般期望的应收账款明细表格式,例如:序号发生时间对方单位摘 要年初金额期末金额账 龄计提坏账准备1年以内1-2年2-3年3-5年5年以上地区分类属于集团内部的客商客户集团内部小计地区分类属于集团外部的客商客户外部单位小计合计从上表的这张报表可以看出有三个关键的问题需要解决:(1) 对方单位(一般在NC系统中建立为客商档案)这一项我们无法通过目前的IUFO函数来取数获得,按以前的处理方法,必须要手工录入对方单位编码或名称;(2) 该表的行数不确定,每一次编制报表的时候,需要根据当前的账务数据中有余额数的对方往来单位来增减行数;(3) 账龄数据如何获取?怎么样根据当前报表的时间关键字自动地取出按账龄区间划分的往来历史数据?经过仔细考虑, 以上三个问题可以分别利用IUFO系统中的业务查询、动态区域以及WHX函数来实现。(就本例来说,要实现WHX函数的取数,必须使用总账模块中的往来核销子模块)业务查询是以数据字典或其他业务查询为基础构建而成,主要的作用是从业务系统中提取数据,对IUFO取数进行补充。动态区域可以根据实际数据自动地扩展行或列。WHX函数是按所选往来科目、辅助项、方向、发生开始日期、发生结束日期、核销开始日期、核销结束日期、公司条件取出尚未被核销的金额。业务查询既可以查询出基本档案数据,也可以根据凭证或业务单据查询出相关的发生数据。但由于NC系统中涉及到凭证或业务单据的表比较多,结构关系复杂,往往需要花费很大的精力,并且要对NC数据库结构非常清楚,熟悉SQL语句才能设计出来,所以,个人认为,尽量使用简单一些的业务查询,再加以其他方法进行完善。一旦业务查询涉及到的表超过6个,基本上做起来会非常困难, 即使数据出来了,相应的格式设计和报表引用都会比较麻烦。另外,从我和同事的交流、以及NCZX论坛中的讨论来看,也反映出在实施中设计复杂的业务查询往往是很难达到理想的效果。下面结合基础档案的业务查询、动态区域、WHX函数,谈一谈怎样在IUFO系统中实现一张应收账款明细表的编制。一、 基础档案的业务查询注意:(1) 在设计IUFO系统中的业务查询之前,请先检查一下NC系统中“客户化-二次开发工具-自定义查询-查询引擎环境设置”中的查询所用数据源是否已经把NC系统和IUFO两个数据源都增加了,否则,可能会在IUFO系统业务查询中添加业务查询时出现“找不到数据源”之类的错误提示。(2) 进入IUFO系统-业务查询后,必须使当前定义的数据源切换为IUFO数据源,也就是说,我们要做的业务查询是定义在IUFO这个数据源下,才可以被同样是在IUFO数据源下的报表所引用。(3) 随后设置的业务查询中对象所参照的数据源必须设置为NC系统的数据源,也就是说,所做的业务查询引用的数据来源是NC系统。进入IUFO系统-业务查询节点,创建文件夹及对象。保存对象后,进入“查询模型-SQL设计-向导设计”,按照提示逐步进行下面的操作。如果对象设置参照的数据源不对,则可能会出现调用不出NC数据字典的情况。(1)“选择表”,增加查询中所需要用的NC数据表。本例中需要查询出客户编号(在动态区域中作为私有关键字)、客户名称、公司编码(映射报表中的“单位”主关键字)、地区分类名称(作为报表数据中分组统计的依据列),同时,从客商档案中还要判断出客户。因此,根据数据字典,必须添加4张表:公司目录、地区分类、客商基本档案、客商管理档案。(2)设置“连接条件”。由于需要查询的信息涉及到4张数据表,因此,需要在“连接条件”中按照各表之间可以依赖的相同内容字段将它们关联起来。提示:左连接取出左侧关系中所有与右侧关系的任一元组都不匹配的元组,用空值填充所有来自右侧关系的属性,再把产生的元组加到内连接的结果上。右连接与左连接完全对称,“表A左连接表B”与“表B右连接表A”的效果是一样的。以下述的表A和表B为例,它们以字段K作为键值进行不同连接后会得到不同结果集。KV2011000330005500表BKV1011002200330表A内连接(select A.K, A.V1, B.K, B.V2 from A inner join B on A.K=B.K)的结果是:A.KA.V1B.KB.V2011001100033003300左连接(select A.K, A.V1, B.V2 from A left join B on A.K=B.K)的结果是:A.KA.V1B.KB.V20110011000220033003300右连接(select A.K, A.V1, B.V2 from A right join B on A.K=B.K)的结果是:A.KA.V1B.KB.V201100110003300330005500简单地描述,就是看所做的业务查询是以哪张表为主,则以该表为中心进行连接,如上图,可以看出,以客商管理档案为主,其他表向该表进行连接。(3)“选择字段”,在本例中,选择“公司编码”、“地区分类名称”、“客商编号”、“客商名称”。(4)“筛选条件”设置。由于在此例中,只需要查询出客商属性为“客户”的档案,因此,在“筛选条件”中设置如下:提示:bd_cumandoc中的custflag字段表示客商属性:供应商:对应两条记录,其custflag分别为:null 或者 1客户:对应两条记录,其custflag分别为: 0 或者 4客商:对应两条记录,其custflag分别为2 或者 3(2代表客商中客户 3代表客商中的供应商)(4)最后按照提示进行排序,并确定保存即可。完成后,可点击“浏览”对设计好的业务查询进行检查,看查询结果是否满足要求。二、报表动态区域格式设计1、进入报表工具-格式设计,对表样进行设计,通过选择“格式-动态区域设置”,指定数据行为动态区域,随后进行指标提取及私有关键字设置。(提示:动态区域内的关键字称之为私有关键字,一般区域格式上的关键字称之为主关键字)一般在动态区域中提取指标时,会自动将最左列名字作为私有关键字进行设置(以动态行为例),并默认私有关键字的名称为“行号”,也可以手工修改该名字,如上图所示。2、进入“数据-查询-创建”,按提示进行操作。注意:在下图中选择“所属数据源”的时候,必须选择iufo数据源,而不是NC数据源。3、选择查询字段,并与报表中关键字、指标进行映射。注意:集团在V3正式发版的IUFO产品基础上制作了一个补丁,使业务查询中的公司编码与报表中的“单位”主关键字自动进行参数传递,达到按公司过滤业务查询数据的目的。必须打上该补丁,这一步才能正常进行,否则,可能会出现“没有完全匹配主关键字”的提示。4、过滤报表数据。由于在本例中,所引用的业务查询是所有的客户档案,这样,在生成应收账款明细表的时候,则可能会出现某个客户并没有余额数据,但也被引用到报表中的动态区域中了。因此,可以利用对动态区域的数据处理功能将没有余额的行去掉不显示。选中动态区域的任意一处,选取“数据-数据处理-筛选”,将筛选条件设置好,本例中筛选条件如下:5、对数据进行分组以及分组统计。从本例中可以看出,还需要按地区分类对生成的数据进行分组并计算小计。同样,选中动态区域的任意一处,选取“数据-数据处理-分组”,将分组依赖项目选中,如果需要将该项目作为标题区显示,则在选中“已选项目”中的一项后,再点击下面的项目属性选择-标题区。注意:必须选中“已选项目”后,再勾选“标题区”,否则标题区会无法生效。如果需要按一定的编码规则进行分段的大小分类汇总,则设置好编码拆分规则。动态区域一旦做了数据处理-分组后,原有一行的区域将会自动增加为5行,其中:最上面和最下面的两行为表头和表尾,底色为绿色,第二行和倒数第二行为组头和组尾,底色为淡蓝色,这四行不能再提取指标,也不定义函数公式,只能定义指标公式。可利用“数据处理-分组统计函数”来进行一些统计计算,如常用的按金额分组小计。提示:定义在组头(尾)的分组统计函数会自动按该组的数据行进行统计,定义在表头(尾)的分组统计函数会自动按整表的数据行进行统计。三、 单元取数公式定义:WHX函数本例是按客户进行应收款计算,并分账龄。因此,可以利用WHX函数来实现。在动态区域定义公式,必须在对该动态区域做数据处理之前,如:分组,建议在提取指标前进行公式的设置,提取指标后,有的时候,无法利用单元公式复制功能。本例应收账款明细表WHX取数公式示范如下:年初金额=GLWHX(113101,客户辅助核算=+k(客户编号)+,借,1949-01-01,STR(zyear()+-01-01)-GLWHX(113101,客户辅助核算=+k(客户编号)+,贷,1949-01-01,STR(zyear()+-01-01);期末金额=GLWHX(113101,客户辅助核算=+k(客户编号)+,借,1949-01-01,zdate(-)-GLWHX(113101,客户辅助核算=+k(客户编号)+,贷,1949-01-01,zdate(-);一年以内的往来金额=GLWHX(113101,客户辅助核算=+k(客户编号)+,借,STR(zyear()-1)+SUBSTR(zdate(-),5,10),zdate(-)-GLWHX(113101,客户辅助核算=+k(客户编号)+,贷,STR(zyear()-1)+SUBSTR(zdate(-),5,10),zdate(-);其他公式以此类推。注意:最初发版的IUFO产品中WHX函数计算时会出错,必须打上以下两个补丁。a. NC-GL-V3.0-Patch-20040831-00001补丁:解决了系统中的公式GLWHX()是按业务日期(或凭证日期)将未核销金额减少已核销金额,而不是按实际的需要,取出规定时间段中未核销的金额。b. NC-GL-V3.0-Patch-20041126-00016补丁:WHX,YH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论