fukuoka ruby award 2012

38
Open Source Reporting Solution 株式会社マツケイ 日高 克也 Katsuya Hidaka Twitter: @hidakatsuya github: hidakatsuya Email: [email protected]

Upload: thinreports

Post on 28-May-2015

3.625 views

Category:

Technology


10 download

DESCRIPTION

第4回フクオカRuby大賞で「大賞」を受賞しました。その授賞式で発表した資料です。

TRANSCRIPT

Page 1: Fukuoka Ruby Award 2012

Open Source Reporting Solution

株式会社マツケイ日高 克也Katsuya Hidaka

Twitter: @hidakatsuyagithub: hidakatsuyaEmail: [email protected]

Page 2: Fukuoka Ruby Award 2012

RubyによるRubyのための帳票ソリューション

Page 3: Fukuoka Ruby Award 2012

提供

株式会社マツケイ(島根県)

Page 4: Fukuoka Ruby Award 2012

しまねけん?

Page 5: Fukuoka Ruby Award 2012

なぜRubyの帳票ツール?

Page 6: Fukuoka Ruby Award 2012

✗ 日本語未対応...

✗ GUIデザイナがない

✗ さすがに高い

✗ さすがに遅い

✗ 使いにくい...

満足できるものが無くて困っていた

Page 7: Fukuoka Ruby Award 2012

なら、作ればいい✓ Pure Ruby!✓オープンソース✓業務システムでも使える

Page 8: Fukuoka Ruby Award 2012

特徴

Page 9: Fukuoka Ruby Award 2012

ThinReports Editor

Page 10: Fukuoka Ruby Award 2012

๏ 専用デザイナ๏ マルチプラットフォーム対応๏ GNU GPLv3๏ 多くのOSS、標準技術で実現

Webkit/Qt/HTML5/CSS3/SVG/JavaScript/Closure Tools etc..

ThinReports Editor

Page 11: Fukuoka Ruby Award 2012

ThinReports Generator

Page 12: Fukuoka Ruby Award 2012

๏ Editorで作成したレイアウトから帳票を生成するライブラリ (PDF)

๏ Pure Ruby๏ マルチプラットフォーム対応๏ The MIT License

ThinReports Generator

Page 13: Fukuoka Ruby Award 2012

こうやって使います。

Page 14: Fukuoka Ruby Award 2012

1. 帳票レイアウトを作る

Page 15: Fukuoka Ruby Award 2012

# coding: utf-8require 'thinreports' report = ThinReports::Report.new :layout => 'question.tlf'

report.start_new_page do item(:answer).value('Ruby!!!')end

report.generate_file('question.pdf')

2. スクリプトを書いて実行

% ruby question.rb⏎

Page 16: Fukuoka Ruby Award 2012

3. PDFのできあがり

Page 17: Fukuoka Ruby Award 2012

できること

Page 18: Fukuoka Ruby Award 2012

一覧表の自動生成

詳細行が領域を溢れた場合は、自動的に改頁される。現時点では「ヘッダー/フッター/ページフッター/詳細行」を持つ一覧表を作成できる。

Page 19: Fukuoka Ruby Award 2012

外字の表示

Windowsの外字エディタで作成した外字ファイル(EUDC.TTE)をThinReportsに指定することで、外字データを含むPDFを正しく表示することが可能。

Page 20: Fukuoka Ruby Award 2012

グラフやバーコードの表示

イメージブロック機能(動的画像の埋込み機能)とグラフやバーコード画像を生成するライブラリを組み合わせることで、柔軟に対応できる。

Page 21: Fukuoka Ruby Award 2012

パスワード/操作制限

Page 22: Fukuoka Ruby Award 2012

仕様書の自動生成

Editor から HTML/CSV 形式で仕様書を生成することが可能。これによって「デザインとコードの分離」をサポート。

Page 23: Fukuoka Ruby Award 2012

Railsでも# Gemfilegem 'thinreports'

# app/controller/test_controller.rbclass TestController < ApplicationController def render_reports report = ThinReports::Report.new :layout => '/path/to/layout.tlf' report.start_new_page do # do something end

send_data report.generate, :filename => 'foo.pdf', :type => 'application/pdf', :disposition => 'attachment' endend

Page 24: Fukuoka Ruby Award 2012

その他๏ 画像の埋め込み(静的・動的)๏ 動的なスタイル操作

など

Page 25: Fukuoka Ruby Award 2012

できないことイマイチなこと

Page 26: Fukuoka Ruby Award 2012

フォントは4種類のみ๏ Helvetica (Sans-serif)๏ Courier New (Monospace)๏ Times New Roman (Serif)๏ IPAフォント (明朝/ゴシック)

Page 27: Fukuoka Ruby Award 2012

一覧表の機能がまだまだ๏ 小計行を簡単には実現できない現在は、詳細行/ページフッター/フッターのみ

๏ 高さが可変な行は実現できないかなり難しいかもしれない...

๏ Editor 上の操作性がイマイチ

Page 28: Fukuoka Ruby Award 2012

今後

Page 29: Fukuoka Ruby Award 2012

0.7.5リリース๏ 2012.2 2012.4予定๏ Editorの国際化๏カスタムフォント機能๏操作性の改善

Page 30: Fukuoka Ruby Award 2012

thinreports-rails๏ 2012.2 2012.3予定๏Rails3用拡張ライブラリ๏Rails3で、より簡単にThinReportsを使える

Page 31: Fukuoka Ruby Award 2012

ご案内

Page 32: Fukuoka Ruby Award 2012

www.thinreports.org

ThinReports に興味のある方は、まずはこちらへ

Page 33: Fukuoka Ruby Award 2012

github

ThinReports の全てのソースコードは、github で公開

Page 34: Fukuoka Ruby Award 2012

osc.matsukei.net

ロードマップやタスク、進捗状況の閲覧に加えて、ドキュメントやフォーラムも

Page 36: Fukuoka Ruby Award 2012

お知らせ

Page 37: Fukuoka Ruby Award 2012

有償サポート始めました๏メールによるQAが基本๏メニューはありません๏公式サイトよりお問い合せ下さい

Page 38: Fukuoka Ruby Award 2012

ありがとうございました