随笔-19  评论-2  文章-1  trackbacks-0
  2008年11月7日
 

 

马上过年喽,不知道大家是不是也跟我一样无心工作等放假~嘿嘿,提前拜年啦,年后公司要登记员工信息,我又得干活ing!忿啊~于是乎~我做了个员工登记表,这玩意看着简单,还是很需要实力的 哈哈哈哈哈哈,我这样的实力派,就把做法分享给大家,又需要的同学可以借鉴一下。其实这是个表需要填写完信息之后,直接保存到数据库里,就是所谓的填报是也~其实很简单。

数据库中的数据表我重新建了个表,把它命名为Employee,用来保存员工信息用。表中共有namesexbirthdatenationalpoliticaloriginheightweighthealthconditionqualificationgsschoolmajoraddresszipcodeEmailtlelanguagelevelcomputergraduatedatereportdatetitleeducationexperienceworkexperiencephotowritedate等几个列

打开设计器,先来新建一张报表,然后排好样式,比如下面这个。


打开
报表|报表填报属性对话框。

点击智能添加字段按钮,用来将模板中的字段和数据表中的字段对应,可以自由选择所需对应的字段。

可选列中包含数据表中所有的字段,值对应模板中的数据字段,这里需要建立数据表中的字段和模板字段的一一对应关系,选择右边的智能添加单元格按钮,可选列自动选择name,值选择时只需要点击相应的单元格B3,单元格值就会自动传入对话框界面,这里还可以把姓名作为主键,然后依次当可选列选择性别,值选择对应D3,以此类推,birthdate对应F3national对应B4political对应D4origin对应F4……这个样子~

 

填报属性就设置完成喽~

 

 

 

报表的填报属性设置完成后,需要设置模板中单元格的填报属性,选中B3单元格,右键选择单元格填报属性,设置单元格的填报属性,

然后就可以填报啦~~啊哈哈哈哈哈

在里面把自己记录写上,就可以保存到数据库里啦~怎么样~我是不是个人才呢~

不过~这个也是偷学来的~

关于这个要说的东西太多了,就作为第一部分先发给大家吧~

下按此讲什么呢~讲一下怎么智能显示出你想要写的内容好了~吼吼

 

我这么努力 大家要支持哦~

posted @ 2009-02-04 14:19 javareport 阅读(331) | 评论 (1)编辑 收藏
 

好久没记笔记了,嘿嘿~太偷懒咯~这次写个刚学会的东东~就是我平时通过浏览器填写表格的时候,常常会遇到这样的情况,在选择省份之后,后面城市的内容要和该省份的城市对应==!。就是参数之间有关联的关系~第一个变了 第二个跟着变咯~不知道要通过什么参数进行相关设置,来达到参数连动的效果呢~~见本人制作过程~~嘿嘿~

    下面就拿我上次做的省份城市的例子看一下~
     
  
      

就是上面这个效果啦~,当我们选择浙江省后,后面城市选择即为浙江省相关城市~是不是很神奇 嘿嘿~

制作过程来咯~


     1.新建个报表数据集ds1,添加数据列
     

      

像上面这样哦~


     2.设计报表,将ds1中的字段 省份拖拽到A5单元格中,保留其默认的扩展分组并且扩展方向从上到下的设置。同理,将其它与标题呼应的字段拖拽到对应的单元格中,采用与A5同样的设置~同时在A6单元格中输入公式=sum(D5),A5扩展出来的数据求和。设置完成之后就想下图这个样子啦~
     

    3.添加数据字典:点击服务器,选择服务器数据字典。打开服务器数据字典后,点击左上角的 + ,选择自定义,分别添加"省份""城市""省份城市"三个数据字典。
    
    4.通过插入行,对三个数据字典各自添加key(键值)value(数值)注意"省份城市"数据字典中,key(键值)"城市"数据字典key(键值)一致,value(数值)"省份"数据字典中key(键值)一致。

    5.报表|报表参数中定义参数:
     参数$Province,默认值为"江苏省",编辑器为下拉框,数据字典类型为服务器数据字典。数据字典的来源为刚刚自定义的名为"省份"的服务器数据字典;

     参数$City,默认值为"南京市",编辑器为下拉框,数据字典类型为报表数据字典。数据字典的来源为刚刚自定义的名为"城市"的服务器数据字典。在过滤条件中,写入公式=MAP($$$,"省份城市")==$Province。该公式中,"$$$"代表当前值,整个公式表示当前值(键值)在名字为省份城市的数据字典中,返回所对应的值与参数$Province的一一对应

     
   
     双击A5单元格,数据列|过滤对话框中,添加参数为省份等于$Province,同理,双击B5单元格,在出现的数据列|过滤中,添加参数为城市等于$City,即给报表添加了两个参数控制。如下图所示:

    

      

这样就搞定了哦~

当选择省份之后,城市下拉框中所有选项都是该省份的城市,就是实现了参数连动~~

   怎么样?这个也不难吧?呵呵~
    
    

posted @ 2008-12-26 15:04 javareport 阅读(191) | 评论 (0)编辑 收藏
        常常遇到这样的情况,数据库当中存储的数据都有一个时间戳。但是这个时间戳往往不是连贯的。例如我们下面将要提到的例子,比如一个员工业绩考核年报。假设一月份是假期,所有员工都没有业绩记录。那么按照普通的做法,在报表当中展示数据的时候,则不显示有一月这样一个月。

但是我们在查看数据的时候,往往希望一整年的数据是连贯显示的。但是这时,不可能通过修改数据库达到目的,就只能通过报表工具来弥补数据的不足。

下面是用FineReport做的一个例子:

       

 

该表的数据库结构很简单,共包含4个列,分别是编号,员工姓名,时间,业绩。按照普通的做法,就是将序号,员工姓名分别拖拽至单元格当中,设置纵向扩展。时间列设置横向扩展。数据放置到交叉的位置,也就是这是一个最简单的交叉表。

但是从效果图里面可以看到,1月是全部没有数据的。如果直接从数据库当中读取数据来展现,报表当中就不会有1月这一列。所以这里的连贯月份就需要我们用报表来实现。

FineReport当中,有一个list的功能,也就是手工设置一串数据。这里我们就设置了一个list 112。并且通过高亮将单纯的数字改成了1月,2月这样的形式。

然后当然,我们list出来的月份数据和统计数据需要通过关联达到准确计算的目的。这时候就需要在统计数据格子的过滤条件当中,添加关联的条件了。具体的大家可以参考附件的CPT文件。

因为是共享版面,所以无法直接上传附件,感兴趣的朋友可以留下自己的电子邮箱,然后我发到你的邮箱就可以咯~

posted @ 2008-11-28 15:52 javareport 阅读(150) | 评论 (0)编辑 收藏

        隔了好久又开始写学习笔记了,工作忙的差点荒废了做笔记,呵呵,自我检讨一下先吧。

    这次的中级报表制作做什么呢,想了一下,还是做个不是很复杂的,举个用列名称控制显示列的例子好了。

    我想要什么效果呢,就是数据库里存了好多的数据列,但是我不想都显示出来,只想要我想看的固定的那几个列,所以我就想要访问报表的时候,他把可以选看的列名称都显示给我,我可以自己选几个想看的列。

   其实操作起来也不是很难的。老规矩,放个图先:


 

    这个图里面,有六个列可以选,课程号,课程,年纪,姓名等等,但是我只想看课程号,名字和他们对应的性别,这里我就多选这三个列,得到的效果见下图喽~
   
     

    废话不多说了,简单介绍下我的制作方法吧~

    首先 把数据导入到Finereport里来。直接select * from StScore.

    StScore这个表里有六个列: Class No, Name, Sex, Course, Grade, Student No.

    然后新建一张空白的自由报表。 定义一个参数,名称为Para。类型选为复选框,如图:



 

然后我们来定义一个报表数据字典,选择定义|自定义,然后写入6个列名,分别为复选框中的可选项,确定。设置如下图:


 

B2单元格中,写入一个公式:=split($para, ",")。意思就是啊在B1单元格中写入了一个函数split ( )。该函数在此处可以获取从参数中传入的列名作为值,并将每一个值写一个单元格。

然后我们鼠标选中B2单元格,将他设置为从左到右扩展。

A3单元格中写入如下公式:=ds1.select(#0),这个公式的意义就是取得ds1数据源当中的所有行号。就是呢ds1当中有多少行数据,那么这个公式返回该结果的行号,1,2,3……

A3单元格设置为从上到下扩展。

然后在B3单元格中写入如下公式:=ds1.column(b2),这个公式的意义就是要获取B2单元格所指定的列的列内容。其返回记录的排列顺序是按照A3当中所获取的行号进行排列的。

预览就有我们要的效果喽~搞定!嘿嘿~

中级的报表相对以前写的初级确实是多了很多步骤呢,也不知道自己描述的清不清楚~还有问题的同学欢迎提问喽~恩恩~

posted @ 2008-11-07 14:52 javareport 阅读(189) | 评论 (0)编辑 收藏