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

 

马上过年喽,不知道大家是不是也跟我一样无心工作等放假~嘿嘿,提前拜年啦,年后公司要登记员工信息,我又得干活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)编辑 收藏
 

自由分栏

 

最近忙了一阵子 教程有些日子没做咯~~ 有没有人期待啊 哈哈

说这次要进阶的 之前做的都是很初级的报表制作 几分钟搞定的事。

这次中级的做什么好呢 第一次的中级的就分享个相对不是很难的吧 做个员工档案卡

其实员工档案卡很简单 为什么要归到中级里呢 我想了一下

这里我要用到自由分栏 之前用别的方法试过 不是做不了 就是比较麻烦 所以这里归到中级里 也有这种问题的朋友可以看看 能不能帮到你

废话不多说了 老规矩 先放个图吧



 

就是这个预览效果哦~在我的工作中,常常会遇到把一片的数据进行分栏的情况,比如一片数据是一个标签的情况,不知道大家是不是也一样了。

finereport来做这个表 难度其实也说不上有

先列一下我的制作过程吧

新建一个自由报表,导入数据源这些都不用说的吧 必做步棸哦~

然后我们画一个表样

象这样:

 

然后把相应的数据拖到对应的格子里 就成了这样:


 

把除了姓名这一格之外的格子的父格都设置为B2(包括A2 哦) 这样的效果就是一个名字对应一个性别 专业等信息 达到每一个姓名相关的记录都在同一片的目的。

然后我把得每一个标签都区分开来,也就是把整个连贯在一起的报表,添加空格我的办法就是在是在A8这一行当中,选择任意一个单元格,右键,选择父格设置,将其左父格自定义为B2单元格,也就是每一个完整的数据标签下面,都会跟随一个空白的行,这样每一个标签,在行方向上就隔开了哦~o(_)o…看看效果吧

 

隔开了哦~嘿嘿

这时候预览报表,可以看到整个报表只占据了页面左侧的部分位置。并且由于长度超过了预设的A4纸大小哦……..所以这里就要开始分栏了~

选则finereport里的 报表|报表分栏 写一下开始分栏行列号 和结束的行列号

我们这里是从第1行到第8 就写1 8 就可以了

Ok 了哦~~搞定了

看下效果



 

这个分栏的效果就出来喽~

今天的课就到这里啦~有问题的同学尽管提哦~一起学习吧~

                                          


posted @ 2008-09-01 15:49 javareport 阅读(136) | 评论 (0)编辑 收藏
 

 

说这次要进阶的 之前做的都时候很初级的报表制作 几分钟搞定的事。

这次拿到手要做的 居然又只是做一个收入支出的图表 又是一个初级图表

不过 这次有点不同的是 在这一张图表里 设置显示两种图表样式。

我选用了柱形图和折线图两种

感觉比较好的是 收入用柱形图 然后支出用折线 在饼图中折线把柱形图分隔成两端

那么上一段就是净利润哦 呵呵

废话不多说

老规矩 放个图

这张图跟之前做的基本没什么区别 具体的我就不啰嗦了

导入数据 插入悬浮元素图表 设置数据区域 配个色什么的

说说这里我注意到的地方吧

就是我在考虑一张图里有两中图表样式的解决方法

我看了一下FineReport的解决办法 双击图表 在出现的图表设置窗口 选择 其他样式

——编辑  (如图)

 

里面的默认样式 就是你选择的样式 这里我选择的是柱形图 样式序列里选择2

然后可以选择第2中图表样式了 我选择了柱形图 这个设置可以方便你选择多个样式出现在一个图表里 呵呵 我也是后来来发现的

然后确定  图表就自动出现两种样式了

 

这里本来想给finereport 提个建议的 是我有的时候会用到需要两个X轴刻度,左右各一个

这样做起来又会方便很多 本来打算再放各比例的图示的 不过这个小功能据说在新版本6.2里解决了

 

老样子 再放个设计视图

下期 我准备告别初级报表 做中级报表制作教程 总不能老不进步呀 是吧,

posted @ 2008-08-05 13:52 javareport 阅读(144) | 评论 (0)编辑 收藏
 

 

老样子,先看下效果图

FineReport 做这个简单的Newspaper Readership by Education Level 统计的折线图

这个统计,数据量很少,我还是手动输入的数据,选择插入悬浮元素图表,

我使用格子数据源,然后选择好XY轴和系列名称

系列名称学习笔记里已经解释过了~不啰嗦了~

这个折线图的Y轴是百分比,所以双击图例,在坐标轴设置里的Y轴设置一下格式

格式我选择了0.00%,finereport里可以选择的格式有 日期型、时间型、货币型、百分比等等的……

X轴的单位标成year~

夏天天气好闷热 选个清凉点的配色。

下面放一个我的设计界面。

这个图表真的好简单== 下期的我要进阶了,这么简单的,做起来都没激情。哈哈~

posted @ 2008-07-30 15:06 javareport 阅读(120) | 评论 (0)编辑 收藏