2013-02-15 1 views
0

Я создаю pdf-реестр, используя креветку в рубине на рельсах. У меня будет около 100 строк в моем столе, и он не будет помещаться на одной странице, когда будет вертикально. То, что я хочу сделать, - это обернуть таблицу, как только она дойдет до нижней части страницы, и запустите новые строки справа от предыдущих строк. До сих пор у меня есть следующий код, который (в зависимости от параметров, выбранных для реестре pdf) создает одну длинную таблицу, которая помещается на шесть страниц.Пытается позиционировать стол, используя креветку

user_list.in_groups_of(26,false) do |ul| #26 reaches the bottom of the page 
    ul.each do |u| 
    row = Array(u.first_name + " " + u.last_name) #Individual Row 
     columns.to_i.times do |c| 
     row << "  " #Optional columns being added 
     end 
    data << row #Individual row being added to the table data 
    end 
    table(data,:row_colors => ["E0E0E0", "FFFFFF"]) 
    data = Array.new 
end 

Я попытался сделать ограничительную рамку, но я не мог заставить ее работать. Есть ли какая-то команда позиционирования, которую я мог бы добавить, а затем увеличивать ее каждый раз, когда она захватывает следующую группу из 26 человек?

Заранее спасибо

ответ

0

Я закончил с использованием column_box, чтобы получить этот нужный макет. Мой конец код теперь выглядит

column_box([0, cursor], :columns => 5, :width => bounds.width) do 
    user_list.each do |u| 
     row = Array(u.first_name + " " + u.last_name) 
     columns.to_i.times do |c| 
     row << "  " 
     end #END OF COLUMN LOOP 
     data << row 
    end #END OF USERLIST LOOP 
    table(data,:row_colors => ["E0E0E0", "FFFFFF"],:width => 160 + (columns.to_i-1) * 30) 
    end #END OF COLUMN_BOX 

Более подробную информацию о column_box можно найти here.