lib/reports/ReportTable.rb in taskjuggler-0.0.7 vs lib/reports/ReportTable.rb in taskjuggler-0.0.8
- old
+ new
@@ -129,19 +129,30 @@
table
end
# Convert the intermediate representation into an Array of Arrays. _csv_ is
# the destination Array of Arrays. It may contain columns already.
- def to_csv(csv = nil)
- csv = [ [ ] ] unless csv
- @columns.each { |col| col.to_csv(csv) }
+ def to_csv(csv = [[ ]], startColumn = 0)
+ # Generate the header line.
+ columnIdx = startColumn
+ @columns.each do |col|
+ columnIdx += col.to_csv(csv, columnIdx)
+ end
- @lines.each do |line|
- # Insert a new Array for each line.
- csv << []
- line.to_csv(csv)
+ if @embedded
+ columnIdx - startColumn
+ else
+ # Content of embedded tables is inserted when generating the
+ # respective Line.
+ lineIdx = 1
+ @lines.each do |line|
+ # Insert a new Array for each line.
+ csv[lineIdx] = []
+ line.to_csv(csv, startColumn, lineIdx)
+ lineIdx += 1
+ end
+ csv
end
- csv
end
private
# Some columns need to be indented when the data is sorted in tree mode.