class Birt::Core::RptDesign
Attributes
data_sets[RW]
数据集
data_sources[RW]
数据源
display_name[RW]
报表的名字
reports[RW]
图表
rpt_design_path[RW]
design文件路径
Public Class Methods
new(rpt_design_path)
click to toggle source
# File lib/birt/core/rpt_design.rb, line 19 def initialize(rpt_design_path) self.rpt_design_path = rpt_design_path @data_sources, @data_sets = {}, {} @reports = {tables: {}} end
Public Instance Methods
parse_rpt()
click to toggle source
解析文件
# File lib/birt/core/rpt_design.rb, line 35 def parse_rpt _root = REXML::Document.new(File.read(self.rpt_design_path)).root #报表名称 @display_name = self.display_name(_root) #数据源 _root.each_element(xpath = '/report/data-sources/oda-data-source') do |item| p @data_sources[item.attribute(:name).value] = Birt::Core::DataSource.new(item) end #数据集 _root.each_element(xpath='/report/data-sets/oda-data-set') do |item| @data_sets[item.attribute(:name).value] = Birt::Core::DataSet.new(item) do |data_set| data_set.data_source = @data_sources[item.get_elements("property[@name='dataSource']")[0].text] end end #报表 _root.each_element(xpath='/report/body/table') do |item| @reports[:tables]["#{item.attribute(:id).value}"] = Birt::Core::TableReport.new(item) do |report| report.data_set = @data_sets[item.get_elements("property[@name='dataSet']")[0].text] end end end