对于 html 和 SketchUp 中的循环数据
For Looping data in html and SketchUp
我在 SketchUp 中有一组数据,需要以 table 格式呈现给 html。我有一个硬编码的代码示例。
ID = [["Harry", "22", "Male"],["Sam", "19", "Male"],["Christine", "23", "Female"]]
dialog = UI::HtmlDialog.new(
{
:dialog_title => "Personal Info",
:scrollable => true,
:resizable => true,
:width => 500,
:height => 250,
:left => 200,
:top => 200,
:min_width => 50,
:min_height => 50,
:max_width =>1000,
:max_height => 500,
:style => UI::HtmlDialog::STYLE_DIALOG
})
for i in 0...Facelayers.length do
html = "
<!DOCTYPE html>
<html>
<style>
table, th, td {
border:1px solid black;
}
</style>
<body>
<h2>Personal Info</h2>
<table style='width:75%'>
<tr>
<td>Name</td>
<td>Age</td>
<td>Gender</td>
</tr>
<tr>
<td>#{ID[0][0]}</td>
<td>#{ID[0][1]}</td>
<td>#{ID[0][2]}</td>
</tr>
<tr>
<td>#{ID[1][0]}</td>
<td>#{ID[1][1]}</td>
<td>#{ID[1][2]}</td>
</tr>
<tr>
<td>#{ID[2][0]}</td>
<td>#{ID[2][1]}</td>
<td>#{ID[2][2]}</td>
</tr>
</table>
</body>
</html>
"
dialog.set_html(html)
dialog.show
i=i+1
end
如果你在 SketchUp 中 运行 这个程序,你将得到以下输出...
输出非常完美,再好不过了。但问题是它是硬编码的。
您会注意到 'ID' 数组中有三个不同姓名、年龄和性别的人。但是如果我有四个人呢?还是五个?甚至十个?
这部分需要以某种方式循环播放。有人可以帮我创建一个循环,它将打印 html 所需的所有信息吗?
感谢您的帮助!
Ruby 脚本
ids = [%w[Harry 22 Male], %w[Sam 19 Male], %w[Christine 23 Female], %w[Rafael 39 Male]]
@rows = ""
@dialog = UI::HtmlDialog.new(
{
dialog_title: 'Personal Info',
scrollable: true,
resizable: true,
width: 500,
height: 250,
left: 200,
top: 200,
min_width: 50,
min_height: 50,
max_width: 1000,
max_height: 500,
style: UI::HtmlDialog::STYLE_DIALOG
}
)
ids.each do |data|
@rows.concat "<tr><td>#{data[0]}</td><td>#{data[1]}</td><td>#{data[2]}</td></tr>"
end
html = "
<!DOCTYPE html>
<html>
<style>
table, th, td {
border:1px solid black;
}
</style>
<body>
<h2>Personal Info</h2>
<table style='width:75%'>
<tr>
<td>Name</td>
<td>Age</td>
<td>Gender</td>
</tr>
#{@rows}
</table>
</body>
</html>
"
@dialog.set_html(html)
@dialog.show
结果
我在 SketchUp 中有一组数据,需要以 table 格式呈现给 html。我有一个硬编码的代码示例。
ID = [["Harry", "22", "Male"],["Sam", "19", "Male"],["Christine", "23", "Female"]]
dialog = UI::HtmlDialog.new(
{
:dialog_title => "Personal Info",
:scrollable => true,
:resizable => true,
:width => 500,
:height => 250,
:left => 200,
:top => 200,
:min_width => 50,
:min_height => 50,
:max_width =>1000,
:max_height => 500,
:style => UI::HtmlDialog::STYLE_DIALOG
})
for i in 0...Facelayers.length do
html = "
<!DOCTYPE html>
<html>
<style>
table, th, td {
border:1px solid black;
}
</style>
<body>
<h2>Personal Info</h2>
<table style='width:75%'>
<tr>
<td>Name</td>
<td>Age</td>
<td>Gender</td>
</tr>
<tr>
<td>#{ID[0][0]}</td>
<td>#{ID[0][1]}</td>
<td>#{ID[0][2]}</td>
</tr>
<tr>
<td>#{ID[1][0]}</td>
<td>#{ID[1][1]}</td>
<td>#{ID[1][2]}</td>
</tr>
<tr>
<td>#{ID[2][0]}</td>
<td>#{ID[2][1]}</td>
<td>#{ID[2][2]}</td>
</tr>
</table>
</body>
</html>
"
dialog.set_html(html)
dialog.show
i=i+1
end
如果你在 SketchUp 中 运行 这个程序,你将得到以下输出...
输出非常完美,再好不过了。但问题是它是硬编码的。
您会注意到 'ID' 数组中有三个不同姓名、年龄和性别的人。但是如果我有四个人呢?还是五个?甚至十个?
这部分需要以某种方式循环播放。有人可以帮我创建一个循环,它将打印 html 所需的所有信息吗?
感谢您的帮助!
Ruby 脚本
ids = [%w[Harry 22 Male], %w[Sam 19 Male], %w[Christine 23 Female], %w[Rafael 39 Male]]
@rows = ""
@dialog = UI::HtmlDialog.new(
{
dialog_title: 'Personal Info',
scrollable: true,
resizable: true,
width: 500,
height: 250,
left: 200,
top: 200,
min_width: 50,
min_height: 50,
max_width: 1000,
max_height: 500,
style: UI::HtmlDialog::STYLE_DIALOG
}
)
ids.each do |data|
@rows.concat "<tr><td>#{data[0]}</td><td>#{data[1]}</td><td>#{data[2]}</td></tr>"
end
html = "
<!DOCTYPE html>
<html>
<style>
table, th, td {
border:1px solid black;
}
</style>
<body>
<h2>Personal Info</h2>
<table style='width:75%'>
<tr>
<td>Name</td>
<td>Age</td>
<td>Gender</td>
</tr>
#{@rows}
</table>
</body>
</html>
"
@dialog.set_html(html)
@dialog.show