Ruport是一个免费的Ruby报表工具,它可以令到制作报表软件变得简单一些。Ruport支持从文件或者数据库获得数据,提供工具操作数据。额外地,Ruport支持高扩展的格式化软件,目前能够支援HTML、PDF、CSV和文本输出。
Ruport可能是Ruby目前唯一的报表工具,目前在持续开发中,更多的新特性正在添加。
安装方法:
gem install ruport -y
gem install ruport-util -y
示例代码:
require "rubygems"
require "ruport"
require "ruport/util"
class GraphReport < Ruport::Report
renders_as_graph
def renderable_data(format)
graph = Graph(%w[a b c d e])
graph.series [1,2,3,4,5], "foo"
graph.series [11,22,70,2,19], "bar"
return graph
end
end
GraphReport.generate do |r|
r.save_as("foo.svg", :template => :graph)
end
生成的图形:
http://www.open001.com/projectDetail_projectId_4297_channelId_5.html ......
下文转自:
http://www.cnblogs.com/watir/archive/2009/04/25/1443440.html
ruby文件从命令行中接收参数
在命令行方法执行ruby文件时,需要从命令行中传入参数,可以使用全局变量:ARGV
如有ruby 文件test.rb,内容如下:
1 def hello(a)
2 puts a
3 end
4
5 hello(ARGV)
这时在命令行中输入:
ruby -w test.rb "hello"
程序输出为:
hello
......
Prepare
1. Download 'OCI 1.x.x.rb' (it's VERY important - execution MUST be *.rb)
2. Download 'oci8lib.so'
Install
1. Copy 'OCI8.rb' to .../ruby/lib/ruby/site_ruby/1.8/DBD/OCI8
2. Copy 'oci8.rb' to .../ruby/lib/ruby/site_ruby/1.8
3. Copy 'oci8lib.so' to .../ruby/lib/ruby/site_ruby/1.8/i386-msvcrt ......
%{String} 用于创建一个使用双引号括起来的字符串
%Q{String} 用于创建一个使用双引号括起来的字符串
%Q!Some String of “Characters”! <==> ” Some String of \”Characters\” “
%q{String} 用于创建一个使用单引号括起来的字符串
%q!Some String of “Characters”! <==> ‘Some String of Characters’
%r{String} 用于创建一个正则表达式字面值
%r{/usr/bin/} <==> /\/usr\/bin\//
%w{String} 用于将一个字符串以空白字符切分成一个字符串数组,进行较少替换
%W{String} 用于将一个字符串以空白字符切分成一个字符串数组,进行较多替换
%W(North South East West) <==> ["North", "South", "East", "West"]
%s{String} 用于生成一个符号对象
%x{String} 用于执行String所代表的命令
%x{ ls /usr/local } <==> `ls /usr/local`
PS:上面几个%表示法中用{}扩住了String,其实这个{} 只是一种分割符,可以换成别的字符,比如(),那么%表示法就是%(String),当然还可以是别的 ......
Ruport官方网站:http://www.rubyreports.org/
本例中将介绍Ruby报表的简单开发
开发环境
OS:WindowsXP
Ruby:Ruby1.8.7
Rails:Rails2.3.5
Mysql:Mysql5.0.9
IDE:Rubymine2.0.1
一、安装gem
安装命令
gem install ruport
gem install ruport-util
gem install acts_as_reportable
二、创建数据库
database: dbdevelopment
username: crystal
password: crystal
host: localhost
三、创建Rails工程RailsRuport
1)配置database.yml,内容如下:
development:
adapter: mysql
encoding: utf8
reconnect: false
database: dbdevelopment
pool: 5
username: crystal
password: crystal
host: localhost
2)通过scaffold映射Products表
参数为 Product title:string description:string price:integer
3)修改routes.rb
修改
map.resources :products
为
map.resources :products,:collection=>{:save_as_report=>:get}
表示当遇到save_as_report时,用get方式,否则默认方式将跳转到show.html执行查询
在最后添加
require "rubygems"
require ......
Bignum
+ 加
- 减
* 乘
/ 除
** 指数操作2**2 意思是2的平方
<=> 大于,等于,小于 1,0,-1
== 判断相等
abs 绝对值
Continuation 暂时不知道怎么用
Dir
chdir 切换路径(当前是进入irb的路径)
pwd 根目录
delete 删除目录,目录不是空抛SystemCallError异常
entries项,条 返回给定目录中所有文件名组成的数组,如果目录不存在抛上面的异常。其中包含文件夹的话1:文件夹没东西返回名字,有一个文件返回‘.’,有多个文件返回'..'
foreach 对给定目录中的每个项调用block
getwd 返回符号链接的 ......