thinreports 0.6.0.pre3 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +37 -32
- data/doc/yardoc_templates/default/layout/html/footer.erb +1 -1
- data/lib/thinreports.rb +2 -1
- data/lib/thinreports/config.rb +21 -0
- data/lib/thinreports/core/errors.rb +14 -1
- data/lib/thinreports/core/format/builder.rb +6 -1
- data/lib/thinreports/core/page.rb +6 -6
- data/lib/thinreports/core/shape.rb +8 -9
- data/lib/thinreports/core/shape/base/internal.rb +6 -12
- data/lib/thinreports/core/shape/basic.rb +3 -0
- data/lib/thinreports/core/shape/basic/block_format.rb +12 -0
- data/lib/thinreports/core/shape/basic/block_interface.rb +25 -0
- data/lib/thinreports/core/shape/basic/block_internal.rb +33 -0
- data/lib/thinreports/core/shape/basic/interface.rb +37 -11
- data/lib/thinreports/core/shape/basic/internal.rb +3 -12
- data/lib/thinreports/core/shape/image_block.rb +15 -0
- data/lib/thinreports/core/shape/image_block/format.rb +13 -0
- data/lib/thinreports/core/shape/image_block/interface.rb +19 -0
- data/lib/thinreports/core/shape/image_block/internal.rb +16 -0
- data/lib/thinreports/core/shape/list/events.rb +19 -2
- data/lib/thinreports/core/shape/list/manager.rb +17 -4
- data/lib/thinreports/core/shape/list/page.rb +2 -2
- data/lib/thinreports/core/shape/list/page_state.rb +4 -0
- data/lib/thinreports/core/shape/list/section_internal.rb +4 -0
- data/lib/thinreports/core/shape/manager/format.rb +1 -1
- data/lib/thinreports/core/shape/manager/internal.rb +24 -11
- data/lib/thinreports/core/shape/manager/target.rb +2 -2
- data/lib/thinreports/core/shape/style.rb +15 -0
- data/lib/thinreports/core/shape/style/base.rb +149 -0
- data/lib/thinreports/core/shape/style/basic.rb +17 -0
- data/lib/thinreports/core/shape/style/graphic.rb +60 -0
- data/lib/thinreports/core/shape/style/text.rb +138 -0
- data/lib/thinreports/core/shape/text/internal.rb +4 -0
- data/lib/thinreports/core/shape/text_block.rb +16 -0
- data/lib/thinreports/core/shape/{tblock → text_block}/format.rb +3 -3
- data/lib/thinreports/core/shape/{tblock → text_block}/formatter.rb +7 -7
- data/lib/thinreports/core/shape/{tblock → text_block}/formatter/basic.rb +1 -1
- data/lib/thinreports/core/shape/{tblock → text_block}/formatter/datetime.rb +1 -1
- data/lib/thinreports/core/shape/{tblock → text_block}/formatter/number.rb +1 -1
- data/lib/thinreports/core/shape/{tblock → text_block}/formatter/padding.rb +10 -8
- data/lib/thinreports/core/shape/{tblock → text_block}/interface.rb +2 -21
- data/lib/thinreports/core/shape/{tblock → text_block}/internal.rb +16 -10
- data/lib/thinreports/core/utils.rb +0 -8
- data/lib/thinreports/generator.rb +2 -2
- data/lib/thinreports/generator/configuration.rb +30 -0
- data/lib/thinreports/generator/pdf.rb +13 -10
- data/lib/thinreports/generator/pdf/configuration.rb +28 -0
- data/lib/thinreports/generator/pdf/document.rb +16 -56
- data/lib/thinreports/generator/pdf/document/draw_shape.rb +35 -17
- data/lib/thinreports/generator/pdf/document/font.rb +25 -9
- data/lib/thinreports/generator/pdf/document/graphics.rb +1 -1
- data/lib/thinreports/generator/pdf/document/graphics/attributes.rb +18 -4
- data/lib/thinreports/generator/pdf/document/graphics/basic.rb +1 -1
- data/lib/thinreports/generator/pdf/document/graphics/image.rb +18 -1
- data/lib/thinreports/generator/pdf/document/graphics/text.rb +29 -6
- data/lib/thinreports/generator/pdf/document/page.rb +70 -0
- data/lib/thinreports/generator/pdf/document/parse_color.rb +1 -1
- data/lib/thinreports/generator/pdf/document/parse_svg.rb +1 -1
- data/lib/thinreports/generator/pdf/drawer.rb +1 -1
- data/lib/thinreports/generator/pdf/drawer/base.rb +5 -7
- data/lib/thinreports/generator/pdf/drawer/list.rb +4 -4
- data/lib/thinreports/generator/pdf/drawer/list_section.rb +8 -3
- data/lib/thinreports/generator/pdf/drawer/page.rb +10 -3
- data/lib/thinreports/generator/pdf/prawn_ext.rb +16 -21
- data/lib/thinreports/layout/format.rb +2 -2
- data/lib/thinreports/layout/version.rb +2 -2
- data/lib/thinreports/report/base.rb +68 -31
- data/tasks/test.rake +48 -4
- data/test/benchmark/basic_estimate.tlf +1 -0
- data/test/benchmark/bench_basic_estimate.rb +95 -0
- data/test/case/character_spacing/character_spacing.rb +7 -0
- data/test/case/character_spacing/character_spacing.tlf +1 -0
- data/test/case/dynamic_image/dynamic_image.rb +41 -0
- data/test/case/dynamic_image/dynamic_image.tlf +1 -0
- data/test/case/dynamic_image/img200x100.png +0 -0
- data/test/case/dynamic_image/img50x50.png +0 -0
- data/test/case/dynamic_style/dynamic_style.rb +154 -0
- data/test/case/dynamic_style/dynamic_style.tlf +1 -0
- data/test/case/dynamic_style/dynamic_style_in_list.tlf +1 -0
- data/test/case/dynamic_style/image.png +0 -0
- data/test/case/eudc/eudc.rb +20 -0
- data/test/case/eudc/eudc.tlf +1 -0
- data/test/case/eudc/eudc.ttf +0 -0
- data/test/case/helper.rb +27 -0
- data/test/case/hidden_shapes/hidden_shapes.rb +13 -0
- data/test/case/hidden_shapes/hidden_shapes.tlf +1 -0
- data/test/case/list_events/list_events.rb +32 -0
- data/test/case/list_events/list_events.tlf +1 -0
- data/test/case/list_header_inheriting/list_header_inheriting.rb +19 -0
- data/test/case/list_header_inheriting/list_header_inheriting.tlf +1 -0
- data/test/case/list_manual_generation/list_manual_generation.rb +24 -0
- data/test/case/list_manual_generation/list_manual_generation.tlf +1 -0
- data/test/case/single_line_tblock/single_line_tblock.rb +15 -0
- data/test/case/single_line_tblock/single_line_tblock.tlf +1 -0
- data/test/case/tblock_styles/tblock_styles.rb +27 -0
- data/test/case/tblock_styles/tblock_styles.tlf +1 -0
- data/test/case/text_align/text_align.rb +9 -0
- data/test/case/text_align/text_align.tlf +1 -0
- data/test/unit/core/shape/base/test_internal.rb +65 -85
- data/test/unit/core/shape/basic/test_basic_format.rb +30 -0
- data/test/unit/core/shape/basic/test_basic_interface.rb +27 -0
- data/test/unit/core/shape/basic/test_basic_internal.rb +55 -0
- data/test/unit/core/shape/basic/test_interface.rb +84 -36
- data/test/unit/core/shape/basic/test_internal.rb +32 -24
- data/test/unit/core/shape/image_block/test_format.rb +58 -0
- data/test/unit/core/shape/image_block/test_interface.rb +23 -0
- data/test/unit/core/shape/image_block/test_internal.rb +28 -0
- data/test/unit/core/shape/list/test_events.rb +19 -11
- data/test/unit/core/shape/list/test_manager.rb +112 -0
- data/test/unit/core/shape/list/test_page.rb +57 -0
- data/test/unit/core/shape/list/test_section_format.rb +1 -1
- data/test/unit/core/shape/list/test_section_interface.rb +37 -30
- data/test/unit/core/shape/list/test_section_internal.rb +39 -14
- data/test/unit/core/shape/manager/test_format.rb +12 -18
- data/test/unit/core/shape/manager/test_internal.rb +127 -93
- data/test/unit/core/shape/manager/test_target.rb +63 -56
- data/test/unit/core/shape/styles/test_base.rb +219 -0
- data/test/unit/core/shape/styles/test_basic.rb +24 -0
- data/test/unit/core/shape/styles/test_graphic.rb +69 -0
- data/test/unit/core/shape/styles/test_text.rb +318 -0
- data/test/unit/core/shape/{tblock → text_block}/formatter/test_basic.rb +2 -2
- data/test/unit/core/shape/{tblock → text_block}/formatter/test_datetime.rb +2 -2
- data/test/unit/core/shape/{tblock → text_block}/formatter/test_number.rb +2 -2
- data/test/unit/core/shape/{tblock → text_block}/formatter/test_padding.rb +11 -6
- data/test/unit/core/shape/text_block/test_format.rb +160 -0
- data/test/unit/core/shape/{tblock → text_block}/test_formatter.rb +2 -2
- data/test/unit/core/shape/text_block/test_interface.rb +46 -0
- data/test/unit/core/shape/text_block/test_internal.rb +128 -0
- data/test/unit/core/test_shape.rb +31 -6
- data/test/unit/data/basic_layout1.tlf +1 -0
- data/test/unit/data/basic_layout2.tlf +1 -0
- data/test/unit/data/basic_list_layout.tlf +1 -0
- data/test/unit/generator/pdf/document/graphics/test_attributes.rb +81 -52
- data/test/unit/generator/pdf/document/graphics/test_text.rb +159 -0
- data/test/unit/generator/pdf/document/test_font.rb +21 -6
- data/test/unit/generator/pdf/document/test_graphics.rb +2 -2
- data/test/unit/generator/pdf/document/test_page.rb +95 -0
- data/test/unit/generator/pdf/document/test_parse_color.rb +2 -2
- data/test/unit/generator/pdf/test_configuration.rb +24 -0
- data/test/unit/generator/pdf/test_document.rb +28 -0
- data/test/unit/generator/test_configuration.rb +25 -0
- data/test/unit/generator/test_pdf.rb +19 -0
- data/test/unit/helper.rb +18 -0
- data/test/unit/layout/test_format.rb +24 -7
- data/test/unit/layout/test_version.rb +61 -27
- data/test/unit/report/test_base.rb +185 -89
- data/test/unit/test_config.rb +22 -0
- data/test/unit/test_report.rb +4 -4
- metadata +94 -43
- data/lib/thinreports/core/shape/tblock.rb +0 -16
- data/lib/thinreports/generator/pxd.rb +0 -75
- data/lib/thinreports/generator/pxd/helper.rb +0 -33
- data/lib/thinreports/generator/pxd/list_renderer.rb +0 -58
- data/lib/thinreports/generator/pxd/page_renderer.rb +0 -75
- data/tasks/clean.rake +0 -6
- data/test/unit/core/shape/tblock/test_format.rb +0 -125
- data/test/unit/core/shape/tblock/test_interface.rb +0 -40
- data/test/unit/core/shape/tblock/test_internal.rb +0 -139
@@ -0,0 +1 @@
|
|
1
|
+
{"version":"0.6.0.pre3","finger-print":1232709718,"config":{"title":"","option":{},"page":{"paper-type":"A4","orientation":"portrait","margin-top":"20","margin-bottom":"20","margin-left":"20","margin-right":"20"}},"svg":"<svg width=\"595.2\" height=\"841.8\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" preserveAspectRatio=\"none\" viewBox=\"0 0 595.2 841.8\"><g class=\"canvas\"><rect stroke=\"none\" stroke-width=\"1\" fill=\"#ff0000\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"172.1\" height=\"84\" x=\"69\" y=\"75\"></rect><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" font-size=\"36\" font-family=\"Times New Roman\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"279.1\" x-height=\"40\" x-left=\"20\" x-top=\"19\" x-valign=\"center\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"279.1\" height=\"40\" x=\"20\" y=\"19\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"159.6\" y=\"46.5\">Visible</text></g><line stroke=\"#000000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x1=\"297.6\" x2=\"297.6\" y1=\"20\" y2=\"821.8\"></line><!--LAYOUT<rect stroke=\"none\" stroke-width=\"1\" fill=\"#ff0000\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"false\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"172.1\" height=\"84\" x=\"349\" y=\"74\"></rect>LAYOUT--><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"Times New Roman\" font-size=\"36\" text-anchor=\"middle\" x-valign=\"center\" text-decoration=\"none\" x-width=\"279.1\" x-height=\"40\" x-left=\"297\" x-top=\"19\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"279.1\" height=\"40\" x=\"297\" y=\"19\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"436.6\" y=\"46.5\">Hidden</text></g><ellipse stroke=\"#000000\" stroke-width=\"1\" fill=\"#FFFFFF\" fill-opacity=\"1\" class=\"s-ellipse\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"57.55\" ry=\"50.55\" cx=\"205.55\" cy=\"161.55\"></ellipse><!--LAYOUT<ellipse stroke=\"#000000\" stroke-width=\"1\" fill=\"#FFFFFF\" fill-opacity=\"1\" class=\"s-ellipse\" x-display=\"false\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"57.55\" ry=\"50.55\" cx=\"485.55\" cy=\"161.55\"></ellipse>LAYOUT--><image image-rendering=\"optimizeQuality\" preserveAspectRatio=\"none\" class=\"s-image\" x-display=\"true\" x-id=\"\" x=\"96.1\" y=\"177\" xlink:href=\"data:image/jpeg;base64,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\" x-natural-width=\"209\" x-natural-height=\"241\" width=\"123.6\" height=\"142\"></image><!--LAYOUT<image image-rendering=\"optimizeQuality\" preserveAspectRatio=\"none\" class=\"s-image\" x-display=\"false\" x-id=\"\" xlink:href=\"data:image/jpeg;base64,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\" x-natural-width=\"209\" x-natural-height=\"241\" width=\"123.6\" height=\"142\" x=\"376\" y=\"177\"></image>LAYOUT--><g class=\"s-text\" stroke-width=\"0\" fill=\"#c00000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" font-size=\"36\" font-family=\"Times New Roman\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"200\" x-height=\"40\" x-left=\"64\" x-top=\"333.1\" x-valign=\"center\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"200\" height=\"40\" x=\"64\" y=\"333.1\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"164\" y=\"360.6\">Ruby</text></g><!--LAYOUT<g class=\"s-text\" stroke-width=\"0\" fill=\"#c00000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"false\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"Times New Roman\" font-size=\"36\" text-anchor=\"middle\" x-valign=\"center\" text-decoration=\"none\" x-width=\"200\" x-height=\"40\" x-left=\"339\" x-top=\"333.1\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"200\" height=\"40\" x=\"339\" y=\"333.1\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"439\" y=\"360.6\">Ruby</text></g>LAYOUT--><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"v_thinreports\",\"display\":\"true\",\"desc\":null,\"multiple\":\"false\",\"valign\":\"\",\"line-height\":\"\",\"box\":{\"x\":45,\"y\":376.1,\"width\":236.1,\"height\":19},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"ThinReports\",\"ref-id\":\"\",\"svg\":{\"tag\":\"text\",\"attrs\":{\"x\":163.1,\"y\":388.1,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"Times New Roman\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-anchor\":\"middle\",\"text-decoration\":\"none\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"ThinReports\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"false\" x-id=\"v_thinreports\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"Times New Roman\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"236.1\" x-height=\"19\" x-left=\"45\" x-top=\"376.1\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"236.1\" height=\"19\" x=\"45\" y=\"376.1\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"47\" y=\"387.1\">v_thinreports</text></g>LAYOUT--><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"h_thinreports\",\"display\":\"false\",\"desc\":null,\"multiple\":\"false\",\"valign\":\"\",\"line-height\":\"\",\"box\":{\"x\":320,\"y\":376.1,\"width\":236.1,\"height\":19},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"ThinReports\",\"ref-id\":\"\",\"svg\":{\"tag\":\"text\",\"attrs\":{\"x\":438.1,\"y\":388.1,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"Times New Roman\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"middle\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"ThinReports\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"false\" x-multiple=\"false\" x-id=\"h_thinreports\" x-width=\"236.1\" x-height=\"19\" x-left=\"320\" x-top=\"376.1\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"Times New Roman\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"middle\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"236.1\" height=\"19\" x=\"320\" y=\"376.1\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"322\" y=\"387.1\">h_thinreports</text></g>LAYOUT--><!--SHAPE{\"type\":\"s-list\",\"id\":\"List\",\"display\":\"true\",\"desc\":null,\"footer\":{},\"footer-enabled\":\"false\",\"page-footer\":{},\"page-footer-enabled\":\"false\",\"detail\":{\"height\":46,\"svg\":{\"tag\":\"g\",\"content\":\"<g class=\\\"s-text\\\" stroke-width=\\\"0\\\" fill=\\\"#000000\\\" fill-opacity=\\\"1\\\" kerning=\\\"auto\\\" x-display=\\\"true\\\" x-id=\\\"\\\" stroke=\\\"none\\\" font-weight=\\\"normal\\\" font-style=\\\"normal\\\" font-family=\\\"IPAMincho\\\" font-size=\\\"24\\\" text-anchor=\\\"middle\\\" text-decoration=\\\"none\\\" x-width=\\\"200\\\" x-height=\\\"24\\\" x-left=\\\"63\\\" x-top=\\\"516.6\\\"><rect class=\\\"s-text-box\\\" stroke=\\\"none\\\" fill=\\\"#000000\\\" fill-opacity=\\\"0.001\\\" width=\\\"200\\\" height=\\\"24\\\" x=\\\"63\\\" y=\\\"516.6\\\"></rect><text class=\\\"s-text-l0\\\" xml:space=\\\"preserve\\\" stroke=\\\"none\\\" fill=\\\"inherit\\\" fill-opacity=\\\"1\\\" text-decoration=\\\"none\\\" x=\\\"163\\\" y=\\\"537.6\\\">\\u8868\\u793a</text></g><!---LAYOUT<g class=\\\"s-text\\\" stroke-width=\\\"0\\\" fill=\\\"#000000\\\" fill-opacity=\\\"1\\\" kerning=\\\"auto\\\" x-display=\\\"false\\\" x-id=\\\"\\\" stroke=\\\"none\\\" font-weight=\\\"normal\\\" font-style=\\\"normal\\\" font-family=\\\"IPAMincho\\\" font-size=\\\"24\\\" text-anchor=\\\"middle\\\" text-decoration=\\\"none\\\" x-width=\\\"200\\\" x-height=\\\"24\\\" x-left=\\\"338\\\" x-top=\\\"516.6\\\"><rect class=\\\"s-text-box\\\" stroke=\\\"none\\\" fill=\\\"#000000\\\" fill-opacity=\\\"0.001\\\" width=\\\"200\\\" height=\\\"24\\\" x=\\\"338\\\" y=\\\"516.6\\\"></rect><text class=\\\"s-text-l0\\\" xml:space=\\\"preserve\\\" stroke=\\\"none\\\" fill=\\\"inherit\\\" fill-opacity=\\\"1\\\" text-decoration=\\\"none\\\" x=\\\"438\\\" y=\\\"537.6\\\">\\u975e\\u8868\\u793a</text></g>LAYOUT--->\"},\"translate\":{\"x\":0,\"y\":-22.5}},\"header\":{\"height\":51.1,\"svg\":{\"tag\":\"g\",\"content\":\"<g class=\\\"s-text\\\" stroke-width=\\\"0\\\" fill=\\\"#000000\\\" fill-opacity=\\\"1\\\" kerning=\\\"auto\\\" x-display=\\\"true\\\" x-id=\\\"\\\" font-size=\\\"24\\\" font-family=\\\"IPAMincho\\\" font-weight=\\\"normal\\\" font-style=\\\"normal\\\" text-anchor=\\\"middle\\\" text-decoration=\\\"none\\\" x-width=\\\"200\\\" x-height=\\\"24\\\" x-left=\\\"63\\\" x-top=\\\"443\\\"><rect class=\\\"s-text-box\\\" stroke=\\\"none\\\" fill=\\\"#000000\\\" fill-opacity=\\\"0.001\\\" width=\\\"200\\\" height=\\\"24\\\" x=\\\"63\\\" y=\\\"443\\\"></rect><text class=\\\"s-text-l0\\\" xml:space=\\\"preserve\\\" stroke=\\\"none\\\" fill=\\\"inherit\\\" fill-opacity=\\\"1\\\" text-decoration=\\\"none\\\" x=\\\"163\\\" y=\\\"464\\\">\\u8868\\u793a</text></g><!---LAYOUT<g class=\\\"s-text\\\" stroke-width=\\\"0\\\" fill=\\\"#000000\\\" fill-opacity=\\\"1\\\" kerning=\\\"auto\\\" x-display=\\\"false\\\" x-id=\\\"\\\" stroke=\\\"none\\\" font-weight=\\\"normal\\\" font-style=\\\"normal\\\" font-family=\\\"IPAMincho\\\" font-size=\\\"24\\\" text-anchor=\\\"middle\\\" text-decoration=\\\"none\\\" x-width=\\\"200\\\" x-height=\\\"24\\\" x-left=\\\"338\\\" x-top=\\\"443\\\"><rect class=\\\"s-text-box\\\" stroke=\\\"none\\\" fill=\\\"#000000\\\" fill-opacity=\\\"0.001\\\" width=\\\"200\\\" height=\\\"24\\\" x=\\\"338\\\" y=\\\"443\\\"></rect><text class=\\\"s-text-l0\\\" xml:space=\\\"preserve\\\" stroke=\\\"none\\\" fill=\\\"inherit\\\" fill-opacity=\\\"1\\\" text-decoration=\\\"none\\\" x=\\\"438\\\" y=\\\"464\\\">\\u975e\\u8868\\u793a</text></g>LAYOUT--->\"},\"translate\":{\"x\":0,\"y\":0}},\"header-enabled\":\"true\",\"svg\":{\"tag\":\"g\",\"attrs\":{}},\"content-height\":255.00000000000003,\"page-break\":\"true\"}SHAPE--><!--LAYOUT<g class=\"s-list\" x-id=\"List\" x-header-enabled=\"true\" x-page-footer-enabled=\"false\" x-footer-enabled=\"false\" x-changing-page=\"true\" x-display=\"true\" width=\"555.2\" height=\"306.1\" x=\"20\" y=\"430.1\"><g class=\"s-list-header\" transform=\"translate(0,0) rotate(0 0 0)\" x-top=\"430.1\" x-height=\"51.1\"><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" font-size=\"24\" font-family=\"IPAMincho\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"200\" x-height=\"24\" x-left=\"63\" x-top=\"443\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"200\" height=\"24\" x=\"63\" y=\"443\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"163\" y=\"464\">\u8868\u793a</text></g><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"false\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"IPAMincho\" font-size=\"24\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"200\" x-height=\"24\" x-left=\"338\" x-top=\"443\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"200\" height=\"24\" x=\"338\" y=\"443\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"438\" y=\"464\">\u975e\u8868\u793a</text></g></g><g class=\"s-list-detail\" transform=\"translate(0,-22.5) rotate(0 0 0)\" x-top=\"481.2\" x-height=\"46\"><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"IPAMincho\" font-size=\"24\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"200\" x-height=\"24\" x-left=\"63\" x-top=\"516.6\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"200\" height=\"24\" x=\"63\" y=\"516.6\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"163\" y=\"537.6\">\u8868\u793a</text></g><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"false\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"IPAMincho\" font-size=\"24\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"200\" x-height=\"24\" x-left=\"338\" x-top=\"516.6\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"200\" height=\"24\" x=\"338\" y=\"516.6\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"438\" y=\"537.6\">\u975e\u8868\u793a</text></g></g><g class=\"s-list-page-footer\" transform=\"translate(0,-50.1) rotate(0 0 0)\" x-top=\"527.2\" x-height=\"0\" display=\"none\"></g><g class=\"s-list-footer\" transform=\"translate(0,-105.3) rotate(0 0 0)\" x-top=\"527.2\" x-height=\"0\" display=\"none\"></g><text class=\"s-list-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"22\" y=\"440.9\">List</text><rect stroke-dasharray=\"5\" stroke=\"#BBBBBB\" stroke-width=\"1\" fill=\"#FFFFFF\" fill-opacity=\"0\" class=\"s-list-face\" width=\"555.2\" height=\"306.1\" x=\"20\" y=\"430.1\"></rect></g>LAYOUT--></g></svg>"}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
CaseRunner.current :list_events
|
4
|
+
|
5
|
+
ThinReports::Report.generate_file(CaseRunner.output_file) do
|
6
|
+
use_layout(CaseRunner.layout_file) do |config|
|
7
|
+
config.list(:details) do
|
8
|
+
events.on :page_footer_insert do |e|
|
9
|
+
e.section.item(:event_name).value(':page_footer_insert')
|
10
|
+
end
|
11
|
+
events.on :footer_insert do |e|
|
12
|
+
e.section.item(:event_name).value(':footer_insert')
|
13
|
+
end
|
14
|
+
events.on :page_finalize do |e|
|
15
|
+
e.list.header.item(:event_name).value(':page_finalize')
|
16
|
+
e.page.item(:event_name).value(':page_finalize')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
start_new_page
|
22
|
+
|
23
|
+
2.times do |t|
|
24
|
+
page.list(:details).add_row :row_name => t + 1
|
25
|
+
end
|
26
|
+
|
27
|
+
start_new_page
|
28
|
+
|
29
|
+
8.times do |t|
|
30
|
+
page.list(:details).add_row :row_name => t + 1
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":"0.7.0","finger-print":-409445868,"config":{"title":"List Events","option":{},"page":{"paper-type":"A4","orientation":"portrait","margin-top":"20","margin-bottom":"20","margin-left":"20","margin-right":"20"}},"svg":"<svg width=\"595.2\" height=\"841.8\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" preserveAspectRatio=\"none\" viewBox=\"0 0 595.2 841.8\"><g class=\"canvas\"><!--SHAPE{\"type\":\"s-list\",\"id\":\"details\",\"display\":\"true\",\"desc\":null,\"footer\":{\"height\":50,\"svg\":{\"tag\":\"g\",\"content\":\"<line stroke=\\\"#000000\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" class=\\\"s-line\\\" x-display=\\\"true\\\" x-stroke-type=\\\"solid\\\" stroke-dasharray=\\\"none\\\" x-id=\\\"\\\" x2=\\\"575.2\\\" y1=\\\"421.5\\\" y2=\\\"421.5\\\" x1=\\\"20\\\"></line><!---SHAPE{\\\"type\\\":\\\"s-tblock\\\",\\\"id\\\":\\\"event_name\\\",\\\"display\\\":\\\"true\\\",\\\"desc\\\":null,\\\"multiple\\\":\\\"false\\\",\\\"valign\\\":\\\"\\\",\\\"line-height\\\":\\\"\\\",\\\"box\\\":{\\\"x\\\":181.1,\\\"y\\\":387.5,\\\"width\\\":251.3,\\\"height\\\":18},\\\"format\\\":{\\\"base\\\":\\\"{value} event.\\\",\\\"type\\\":\\\"\\\"},\\\"value\\\":\\\"\\\",\\\"ref-id\\\":\\\"\\\",\\\"svg\\\":{\\\"tag\\\":\\\"text\\\",\\\"attrs\\\":{\\\"x\\\":181.1,\\\"y\\\":400.5,\\\"xml:space\\\":\\\"preserve\\\",\\\"kerning\\\":\\\"auto\\\",\\\"fill\\\":\\\"#000000\\\",\\\"fill-opacity\\\":\\\"1\\\",\\\"font-size\\\":\\\"18\\\",\\\"font-family\\\":\\\"Helvetica\\\",\\\"font-weight\\\":\\\"normal\\\",\\\"font-style\\\":\\\"normal\\\",\\\"text-decoration\\\":\\\"none\\\",\\\"text-anchor\\\":\\\"start\\\"}}}SHAPE---><g class=\\\"s-text\\\" stroke-width=\\\"0\\\" fill=\\\"#000000\\\" fill-opacity=\\\"1\\\" kerning=\\\"auto\\\" x-display=\\\"true\\\" x-id=\\\"\\\" stroke=\\\"none\\\" font-weight=\\\"normal\\\" font-style=\\\"normal\\\" font-family=\\\"Helvetica\\\" font-size=\\\"18\\\" text-anchor=\\\"middle\\\" text-decoration=\\\"none\\\" x-width=\\\"27.5\\\" x-height=\\\"20\\\" x-left=\\\"153.6\\\" x-top=\\\"386.5\\\"><rect class=\\\"s-text-box\\\" stroke=\\\"none\\\" fill=\\\"#000000\\\" fill-opacity=\\\"0.001\\\" width=\\\"27.5\\\" height=\\\"20\\\" x=\\\"153.6\\\" y=\\\"386.5\\\"></rect><text class=\\\"s-text-l0\\\" xml:space=\\\"preserve\\\" stroke=\\\"none\\\" fill=\\\"inherit\\\" fill-opacity=\\\"1\\\" text-decoration=\\\"none\\\" x=\\\"167.4\\\" y=\\\"399.5\\\">By </text></g>\"},\"translate\":{\"x\":0,\"y\":-218.5}},\"footer-enabled\":\"true\",\"page-footer\":{\"height\":50,\"svg\":{\"tag\":\"g\",\"content\":\"<!---SHAPE{\\\"type\\\":\\\"s-tblock\\\",\\\"id\\\":\\\"event_name\\\",\\\"display\\\":\\\"true\\\",\\\"desc\\\":null,\\\"multiple\\\":\\\"false\\\",\\\"valign\\\":\\\"\\\",\\\"line-height\\\":\\\"\\\",\\\"box\\\":{\\\"x\\\":181.1,\\\"y\\\":330.9,\\\"width\\\":251.3,\\\"height\\\":18},\\\"format\\\":{\\\"base\\\":\\\"{value} event.\\\",\\\"type\\\":\\\"\\\"},\\\"value\\\":\\\"\\\",\\\"ref-id\\\":\\\"\\\",\\\"svg\\\":{\\\"tag\\\":\\\"text\\\",\\\"attrs\\\":{\\\"x\\\":181.1,\\\"y\\\":343.9,\\\"xml:space\\\":\\\"preserve\\\",\\\"kerning\\\":\\\"auto\\\",\\\"fill\\\":\\\"#000000\\\",\\\"fill-opacity\\\":\\\"1\\\",\\\"font-size\\\":\\\"18\\\",\\\"font-family\\\":\\\"Helvetica\\\",\\\"font-weight\\\":\\\"normal\\\",\\\"font-style\\\":\\\"normal\\\",\\\"text-anchor\\\":\\\"start\\\",\\\"text-decoration\\\":\\\"none\\\"}}}SHAPE---><line stroke=\\\"#000000\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" class=\\\"s-line\\\" x-display=\\\"true\\\" x-stroke-type=\\\"solid\\\" stroke-dasharray=\\\"none\\\" x-id=\\\"\\\" x2=\\\"575.2\\\" y1=\\\"364.9\\\" y2=\\\"364.9\\\" x1=\\\"20\\\"></line><g class=\\\"s-text\\\" stroke-width=\\\"0\\\" fill=\\\"#000000\\\" fill-opacity=\\\"1\\\" kerning=\\\"auto\\\" x-display=\\\"true\\\" x-id=\\\"\\\" font-size=\\\"18\\\" font-family=\\\"Helvetica\\\" font-weight=\\\"normal\\\" font-style=\\\"normal\\\" text-anchor=\\\"middle\\\" text-decoration=\\\"none\\\" x-width=\\\"27.5\\\" x-height=\\\"20\\\" x-left=\\\"153.6\\\" x-top=\\\"329.9\\\"><rect class=\\\"s-text-box\\\" stroke=\\\"none\\\" fill=\\\"#000000\\\" fill-opacity=\\\"0.001\\\" width=\\\"27.5\\\" height=\\\"20\\\" x=\\\"153.6\\\" y=\\\"329.9\\\"></rect><text class=\\\"s-text-l0\\\" xml:space=\\\"preserve\\\" stroke=\\\"none\\\" fill=\\\"inherit\\\" fill-opacity=\\\"1\\\" text-decoration=\\\"none\\\" x=\\\"167.4\\\" y=\\\"342.9\\\">By </text></g>\"},\"translate\":{\"x\":0,\"y\":-161.9}},\"page-footer-enabled\":\"true\",\"detail\":{\"height\":50,\"svg\":{\"tag\":\"g\",\"content\":\"<!---SHAPE{\\\"type\\\":\\\"s-tblock\\\",\\\"id\\\":\\\"row_name\\\",\\\"display\\\":\\\"true\\\",\\\"desc\\\":null,\\\"multiple\\\":\\\"false\\\",\\\"valign\\\":\\\"\\\",\\\"line-height\\\":\\\"\\\",\\\"box\\\":{\\\"x\\\":37,\\\"y\\\":255.5,\\\"width\\\":521.2,\\\"height\\\":18},\\\"format\\\":{\\\"base\\\":\\\"List Detail #{value}\\\",\\\"type\\\":\\\"\\\"},\\\"value\\\":\\\"\\\",\\\"ref-id\\\":\\\"\\\",\\\"svg\\\":{\\\"tag\\\":\\\"text\\\",\\\"attrs\\\":{\\\"x\\\":297.6,\\\"y\\\":268.5,\\\"xml:space\\\":\\\"preserve\\\",\\\"kerning\\\":\\\"auto\\\",\\\"fill\\\":\\\"#000000\\\",\\\"fill-opacity\\\":\\\"1\\\",\\\"font-size\\\":\\\"18\\\",\\\"font-family\\\":\\\"Helvetica\\\",\\\"font-weight\\\":\\\"normal\\\",\\\"font-style\\\":\\\"normal\\\",\\\"text-decoration\\\":\\\"none\\\",\\\"text-anchor\\\":\\\"middle\\\"}}}SHAPE---><line stroke=\\\"#000000\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" class=\\\"s-line\\\" x-display=\\\"true\\\" x-stroke-type=\\\"solid\\\" stroke-dasharray=\\\"none\\\" x-id=\\\"\\\" x2=\\\"575.2\\\" y1=\\\"289.5\\\" y2=\\\"289.5\\\" x1=\\\"20\\\"></line>\"},\"translate\":{\"x\":0,\"y\":-86.5}},\"header\":{\"height\":50,\"svg\":{\"tag\":\"g\",\"content\":\"<line stroke=\\\"#000000\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" class=\\\"s-line\\\" x-display=\\\"true\\\" x-stroke-type=\\\"solid\\\" stroke-dasharray=\\\"none\\\" x-id=\\\"\\\" x1=\\\"20\\\" x2=\\\"575.2\\\" y1=\\\"214.1\\\" y2=\\\"214.1\\\"></line><!---SHAPE{\\\"type\\\":\\\"s-tblock\\\",\\\"id\\\":\\\"event_name\\\",\\\"display\\\":\\\"true\\\",\\\"desc\\\":null,\\\"multiple\\\":\\\"false\\\",\\\"valign\\\":\\\"\\\",\\\"line-height\\\":\\\"\\\",\\\"box\\\":{\\\"x\\\":181.1,\\\"y\\\":180.1,\\\"width\\\":251.3,\\\"height\\\":18},\\\"format\\\":{\\\"base\\\":\\\"{value} event.\\\",\\\"type\\\":\\\"\\\"},\\\"value\\\":\\\"\\\",\\\"ref-id\\\":\\\"\\\",\\\"svg\\\":{\\\"tag\\\":\\\"text\\\",\\\"attrs\\\":{\\\"x\\\":181.1,\\\"y\\\":193.1,\\\"xml:space\\\":\\\"preserve\\\",\\\"kerning\\\":\\\"auto\\\",\\\"fill\\\":\\\"#000000\\\",\\\"fill-opacity\\\":\\\"1\\\",\\\"font-size\\\":\\\"18\\\",\\\"font-family\\\":\\\"Helvetica\\\",\\\"font-weight\\\":\\\"normal\\\",\\\"font-style\\\":\\\"normal\\\",\\\"text-decoration\\\":\\\"none\\\",\\\"text-anchor\\\":\\\"start\\\"}}}SHAPE---><g class=\\\"s-text\\\" stroke-width=\\\"0\\\" fill=\\\"#000000\\\" fill-opacity=\\\"1\\\" kerning=\\\"auto\\\" x-display=\\\"true\\\" x-id=\\\"\\\" stroke=\\\"none\\\" font-weight=\\\"normal\\\" font-style=\\\"normal\\\" font-family=\\\"Helvetica\\\" font-size=\\\"18\\\" text-anchor=\\\"middle\\\" text-decoration=\\\"none\\\" x-width=\\\"27.5\\\" x-height=\\\"20\\\" x-left=\\\"153.6\\\" x-top=\\\"179.1\\\"><rect class=\\\"s-text-box\\\" stroke=\\\"none\\\" fill=\\\"#000000\\\" fill-opacity=\\\"0.001\\\" width=\\\"27.5\\\" height=\\\"20\\\" x=\\\"153.6\\\" y=\\\"179.1\\\"></rect><text class=\\\"s-text-l0\\\" xml:space=\\\"preserve\\\" stroke=\\\"none\\\" fill=\\\"inherit\\\" fill-opacity=\\\"1\\\" text-decoration=\\\"none\\\" x=\\\"167.4\\\" y=\\\"192.1\\\">By </text></g>\"},\"translate\":{\"x\":0,\"y\":-61.1}},\"header-enabled\":\"true\",\"svg\":{\"tag\":\"g\",\"attrs\":{}},\"content-height\":250,\"page-break\":\"true\"}SHAPE--><!--LAYOUT<g class=\"s-list\" x-id=\"details\" x-header-enabled=\"true\" x-page-footer-enabled=\"true\" x-footer-enabled=\"true\" x-changing-page=\"true\" x-display=\"true\" width=\"555.2\" height=\"300\" x=\"20\" y=\"103\"><g class=\"s-list-header\" transform=\"translate(0,-61.1) rotate(0 0 0)\" x-top=\"103\" x-height=\"50\"><line stroke=\"#000000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x1=\"20\" x2=\"575.2\" y1=\"214.1\" y2=\"214.1\"></line><g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"{value} event.\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"false\" x-id=\"event_name\" x-width=\"251.3\" x-height=\"18\" x-left=\"181.1\" x-top=\"180.1\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"251.3\" height=\"18\" x=\"181.1\" y=\"180.1\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"183.1\" y=\"191.1\">event_name</text></g><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"Helvetica\" font-size=\"18\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"27.5\" x-height=\"20\" x-left=\"153.6\" x-top=\"179.1\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"27.5\" height=\"20\" x=\"153.6\" y=\"179.1\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"167.4\" y=\"192.1\">By </text></g></g><g class=\"s-list-detail\" transform=\"translate(0,-86.5) rotate(0 0 0)\" x-top=\"153\" x-height=\"50\"><g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"List Detail #{value}\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"false\" x-id=\"row_name\" x-width=\"521.2\" x-height=\"18\" x-left=\"37\" x-top=\"255.5\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"middle\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"521.2\" height=\"18\" x=\"37\" y=\"255.5\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"39\" y=\"266.5\">row_name</text></g><line stroke=\"#000000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"575.2\" y1=\"289.5\" y2=\"289.5\" x1=\"20\"></line></g><g class=\"s-list-page-footer\" transform=\"translate(0,-111.9) rotate(0 0 0)\" x-top=\"203\" x-height=\"50\"><g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"{value} event.\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"false\" x-id=\"event_name\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"251.3\" x-height=\"18\" x-left=\"181.1\" x-top=\"330.9\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"251.3\" height=\"18\" x=\"181.1\" y=\"330.9\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"183.1\" y=\"341.9\">event_name</text></g><line stroke=\"#000000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"575.2\" y1=\"364.9\" y2=\"364.9\" x1=\"20\"></line><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" font-size=\"18\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"27.5\" x-height=\"20\" x-left=\"153.6\" x-top=\"329.9\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"27.5\" height=\"20\" x=\"153.6\" y=\"329.9\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"167.4\" y=\"342.9\">By </text></g></g><g class=\"s-list-footer\" transform=\"translate(0,-118.5) rotate(0 0 0)\" x-top=\"253\" x-height=\"50\"><line stroke=\"#000000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"575.2\" y1=\"421.5\" y2=\"421.5\" x1=\"20\"></line><g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"{value} event.\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"false\" x-id=\"event_name\" x-width=\"251.3\" x-height=\"18\" x-left=\"181.1\" x-top=\"387.5\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"251.3\" height=\"18\" x=\"181.1\" y=\"387.5\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"183.1\" y=\"398.5\">event_name</text></g><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"Helvetica\" font-size=\"18\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"27.5\" x-height=\"20\" x-left=\"153.6\" x-top=\"386.5\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"27.5\" height=\"20\" x=\"153.6\" y=\"386.5\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"167.4\" y=\"399.5\">By </text></g></g><text class=\"s-list-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"22\" y=\"113.8\">details</text><rect stroke-dasharray=\"5\" stroke=\"#BBBBBB\" stroke-width=\"1\" fill=\"#FFFFFF\" fill-opacity=\"0\" class=\"s-list-face\" width=\"555.2\" height=\"300\" x=\"20\" y=\"103\"></rect></g>LAYOUT--><rect stroke=\"#000000\" stroke-width=\"1\" fill=\"none\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"518.2\" height=\"75\" x=\"38.5\" y=\"427.2\"></rect><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" font-size=\"26\" font-family=\"Times New Roman\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"315.1\" x-height=\"48\" x-left=\"140.1\" x-top=\"32\" x-valign=\"center\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"315.1\" height=\"48\" x=\"140.1\" y=\"32\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"297.7\" y=\"61\">List Events</text></g><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"event_name\",\"display\":\"true\",\"desc\":null,\"multiple\":\"false\",\"valign\":\"\",\"line-height\":\"\",\"box\":{\"x\":184.5,\"y\":456.2,\"width\":251.3,\"height\":18},\"format\":{\"base\":\"{value} event.\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"text\",\"attrs\":{\"x\":184.5,\"y\":469.2,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"Helvetica\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"start\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"{value} event.\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"false\" x-id=\"event_name\" x-width=\"251.3\" x-height=\"18\" x-left=\"184.5\" x-top=\"456.2\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"251.3\" height=\"18\" x=\"184.5\" y=\"456.2\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"186.5\" y=\"467.2\">event_name</text></g>LAYOUT--><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"Helvetica\" font-size=\"18\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"27.5\" x-height=\"20\" x-left=\"157\" x-top=\"455.2\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"27.5\" height=\"20\" x=\"157\" y=\"455.2\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"170.8\" y=\"468.2\">By </text></g></g></svg>"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
CaseRunner.current :list_header_inheriting
|
4
|
+
|
5
|
+
ThinReports::Report.generate_file(:pdf, CaseRunner.output_file) do
|
6
|
+
use_layout(CaseRunner.layout_file)
|
7
|
+
|
8
|
+
3.times do |t|
|
9
|
+
start_new_page
|
10
|
+
|
11
|
+
page.list(:list).header do |section|
|
12
|
+
section.item(:header).value("Header##{t}")
|
13
|
+
end
|
14
|
+
|
15
|
+
((t + 1) * 3).times do
|
16
|
+
page.list(:list).add_row
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":"0.6.0.pre3","finger-print":298993480,"config":{"title":"List Header","option":{},"page":{"paper-type":"A4","orientation":"portrait","margin-top":"20","margin-bottom":"20","margin-left":"20","margin-right":"20"}},"svg":"<svg width=\"595.2\" height=\"841.8\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" preserveAspectRatio=\"none\" viewBox=\"0 0 595.2 841.8\"><g class=\"canvas\"><!--SHAPE{\"type\":\"s-list\",\"id\":\"list\",\"display\":\"true\",\"desc\":null,\"footer\":{},\"footer-enabled\":\"false\",\"page-footer\":{},\"page-footer-enabled\":\"false\",\"detail\":{\"height\":39,\"svg\":{\"tag\":\"g\",\"content\":\"<g class=\\\"s-text\\\" stroke-width=\\\"0\\\" fill=\\\"#000000\\\" fill-opacity=\\\"1\\\" kerning=\\\"auto\\\" x-display=\\\"true\\\" x-id=\\\"\\\" font-size=\\\"18\\\" font-family=\\\"Times New Roman\\\" font-weight=\\\"normal\\\" font-style=\\\"normal\\\" text-anchor=\\\"middle\\\" text-decoration=\\\"none\\\" x-width=\\\"200\\\" x-height=\\\"19\\\" x-left=\\\"197.6\\\" x-top=\\\"102.4\\\" x-valign=\\\"center\\\"><rect class=\\\"s-text-box\\\" stroke=\\\"none\\\" fill=\\\"#000000\\\" fill-opacity=\\\"0.001\\\" width=\\\"200\\\" height=\\\"19\\\" x=\\\"197.6\\\" y=\\\"102.4\\\"></rect><text class=\\\"s-text-l0\\\" xml:space=\\\"preserve\\\" stroke=\\\"none\\\" fill=\\\"inherit\\\" fill-opacity=\\\"1\\\" text-decoration=\\\"none\\\" x=\\\"297.6\\\" y=\\\"115.4\\\">Detail</text></g>\"},\"translate\":{\"x\":0,\"y\":-26.4}},\"header\":{\"height\":45,\"svg\":{\"tag\":\"g\",\"content\":\"<!---SHAPE{\\\"type\\\":\\\"s-tblock\\\",\\\"id\\\":\\\"header\\\",\\\"display\\\":\\\"true\\\",\\\"desc\\\":null,\\\"multiple\\\":\\\"false\\\",\\\"valign\\\":\\\"\\\",\\\"line-height\\\":\\\"\\\",\\\"box\\\":{\\\"x\\\":236.1,\\\"y\\\":33,\\\"width\\\":123,\\\"height\\\":19},\\\"format\\\":{\\\"base\\\":\\\"\\\",\\\"type\\\":\\\"\\\"},\\\"value\\\":\\\"\\\",\\\"ref-id\\\":\\\"\\\",\\\"svg\\\":{\\\"tag\\\":\\\"text\\\",\\\"attrs\\\":{\\\"x\\\":297.6,\\\"y\\\":45,\\\"xml:space\\\":\\\"preserve\\\",\\\"fill\\\":\\\"#000000\\\",\\\"fill-opacity\\\":\\\"1\\\",\\\"font-size\\\":\\\"18\\\",\\\"font-family\\\":\\\"Times New Roman\\\",\\\"font-weight\\\":\\\"normal\\\",\\\"font-style\\\":\\\"normal\\\",\\\"text-anchor\\\":\\\"middle\\\",\\\"text-decoration\\\":\\\"none\\\",\\\"kerning\\\":\\\"null\\\"}}}SHAPE--->\"},\"translate\":{\"x\":0,\"y\":1}},\"header-enabled\":\"true\",\"svg\":{\"tag\":\"g\",\"attrs\":{}},\"content-height\":188.1,\"page-break\":\"true\"}SHAPE--><!--LAYOUT<g class=\"s-list\" x-id=\"list\" x-header-enabled=\"true\" x-page-footer-enabled=\"false\" x-footer-enabled=\"false\" x-changing-page=\"true\" x-display=\"true\" width=\"555.2\" height=\"233.1\" x=\"20\" y=\"21\"><g class=\"s-list-header\" transform=\"translate(0,1) rotate(0 0 0)\" x-top=\"21\" x-height=\"45\"><g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" x-display=\"true\" x-multiple=\"false\" x-id=\"header\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"Times New Roman\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"123\" x-height=\"19\" x-left=\"236.1\" x-top=\"33\" kerning=\"null\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"123\" height=\"19\" x=\"236.1\" y=\"33\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"238.1\" y=\"44\">header</text></g></g><g class=\"s-list-detail\" transform=\"translate(0,-26.4) rotate(0 0 0)\" x-top=\"66\" x-height=\"39\"><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" font-size=\"18\" font-family=\"Times New Roman\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"200\" x-height=\"19\" x-left=\"197.6\" x-top=\"102.4\" x-valign=\"center\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"200\" height=\"19\" x=\"197.6\" y=\"102.4\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"297.6\" y=\"115.4\">Detail</text></g></g><g class=\"s-list-page-footer\" transform=\"translate(0,-59.8) rotate(0 0 0)\" x-top=\"105\" x-height=\"0\" display=\"none\"></g><g class=\"s-list-footer\" transform=\"translate(0,-114.1) rotate(0 0 0)\" x-top=\"105\" x-height=\"0\" display=\"none\"></g><text class=\"s-list-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"22\" y=\"31.8\">list</text><rect stroke-dasharray=\"5\" stroke=\"#BBBBBB\" stroke-width=\"1\" fill=\"#FFFFFF\" fill-opacity=\"0\" class=\"s-list-face\" width=\"555.2\" height=\"233.1\" x=\"20\" y=\"21\"></rect></g>LAYOUT--></g></svg>"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
CaseRunner.current :list_manual_generation
|
4
|
+
|
5
|
+
ThinReports::Report.generate_file(:pdf, CaseRunner.output_file) do
|
6
|
+
use_layout(CaseRunner.layout_file)
|
7
|
+
|
8
|
+
start_new_page
|
9
|
+
|
10
|
+
page.list(:list).header do |h|
|
11
|
+
h.item(:header).value(page.no)
|
12
|
+
end
|
13
|
+
|
14
|
+
25.times do |t|
|
15
|
+
if page.list(:list).overflow?
|
16
|
+
start_new_page
|
17
|
+
page.list(:list).header :header => page.no
|
18
|
+
end
|
19
|
+
|
20
|
+
page.list(:list).page_break if t == 15
|
21
|
+
|
22
|
+
page.list(:list).add_row :detail => t
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":"0.6.0.pre3","finger-print":-1006854256,"config":{"title":"List Manual Generation","option":{},"page":{"paper-type":"A4","orientation":"portrait","margin-top":"20","margin-bottom":"20","margin-left":"20","margin-right":"20"}},"svg":"<svg width=\"595.2\" height=\"841.8\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" preserveAspectRatio=\"none\" viewBox=\"0 0 595.2 841.8\"><g class=\"canvas\"><!--SHAPE{\"type\":\"s-list\",\"id\":\"list\",\"display\":\"true\",\"desc\":null,\"footer\":{},\"footer-enabled\":\"false\",\"page-footer\":{},\"page-footer-enabled\":\"false\",\"detail\":{\"height\":57.7,\"svg\":{\"tag\":\"g\",\"content\":\"<!---SHAPE{\\\"type\\\":\\\"s-tblock\\\",\\\"id\\\":\\\"detail\\\",\\\"display\\\":\\\"true\\\",\\\"desc\\\":null,\\\"multiple\\\":\\\"false\\\",\\\"valign\\\":\\\"\\\",\\\"line-height\\\":\\\"\\\",\\\"box\\\":{\\\"x\\\":211.4,\\\"y\\\":124.5,\\\"width\\\":172.5,\\\"height\\\":36},\\\"format\\\":{\\\"base\\\":\\\"Detail#{value}\\\",\\\"type\\\":\\\"\\\"},\\\"value\\\":\\\"\\\",\\\"ref-id\\\":\\\"\\\",\\\"svg\\\":{\\\"tag\\\":\\\"text\\\",\\\"attrs\\\":{\\\"x\\\":297.7,\\\"y\\\":155.5,\\\"xml:space\\\":\\\"preserve\\\",\\\"kerning\\\":\\\"auto\\\",\\\"fill\\\":\\\"#000000\\\",\\\"fill-opacity\\\":\\\"1\\\",\\\"font-size\\\":\\\"36\\\",\\\"font-family\\\":\\\"Helvetica\\\",\\\"font-weight\\\":\\\"normal\\\",\\\"font-style\\\":\\\"normal\\\",\\\"text-anchor\\\":\\\"middle\\\",\\\"text-decoration\\\":\\\"none\\\"}}}SHAPE--->\"},\"translate\":{\"x\":0,\"y\":-46.3}},\"header\":{\"height\":46.3,\"svg\":{\"tag\":\"g\",\"content\":\"<!---SHAPE{\\\"type\\\":\\\"s-tblock\\\",\\\"id\\\":\\\"header\\\",\\\"display\\\":\\\"true\\\",\\\"desc\\\":null,\\\"multiple\\\":\\\"false\\\",\\\"valign\\\":\\\"\\\",\\\"line-height\\\":\\\"\\\",\\\"box\\\":{\\\"x\\\":160.6,\\\"y\\\":62.2,\\\"width\\\":274.1,\\\"height\\\":36},\\\"format\\\":{\\\"base\\\":\\\"Header#{value}\\\",\\\"type\\\":\\\"\\\"},\\\"value\\\":\\\"\\\",\\\"ref-id\\\":\\\"\\\",\\\"svg\\\":{\\\"tag\\\":\\\"text\\\",\\\"attrs\\\":{\\\"x\\\":297.7,\\\"y\\\":93.2,\\\"xml:space\\\":\\\"preserve\\\",\\\"kerning\\\":\\\"auto\\\",\\\"fill\\\":\\\"#000000\\\",\\\"fill-opacity\\\":\\\"1\\\",\\\"font-size\\\":\\\"36\\\",\\\"font-family\\\":\\\"Helvetica\\\",\\\"font-weight\\\":\\\"normal\\\",\\\"font-style\\\":\\\"normal\\\",\\\"text-decoration\\\":\\\"none\\\",\\\"text-anchor\\\":\\\"middle\\\"}}}SHAPE--->\"},\"translate\":{\"x\":0,\"y\":-36}},\"header-enabled\":\"true\",\"svg\":{\"tag\":\"g\",\"attrs\":{}},\"content-height\":273.8,\"page-break\":\"false\"}SHAPE--><!--LAYOUT<g class=\"s-list\" x-id=\"list\" x-header-enabled=\"true\" x-page-footer-enabled=\"false\" x-footer-enabled=\"false\" x-changing-page=\"false\" x-display=\"true\" width=\"555.2\" height=\"320.1\" x=\"20\" y=\"21\"><g class=\"s-list-header\" transform=\"translate(0,-36) rotate(0 0 0)\" x-top=\"21\" x-height=\"46.3\"><g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"Header#{value}\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"false\" x-id=\"header\" x-width=\"274.1\" x-height=\"36\" x-left=\"160.6\" x-top=\"62.2\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"36\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"middle\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"274.1\" height=\"36\" x=\"160.6\" y=\"62.2\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"162.6\" y=\"73.2\">header</text></g></g><g class=\"s-list-detail\" transform=\"translate(0,-46.3) rotate(0 0 0)\" x-top=\"67.3\" x-height=\"57.7\"><g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"Detail#{value}\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"false\" x-id=\"detail\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"36\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"172.5\" x-height=\"36\" x-left=\"211.4\" x-top=\"124.5\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"172.5\" height=\"36\" x=\"211.4\" y=\"124.5\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"213.4\" y=\"135.5\">detail</text></g></g><g class=\"s-list-page-footer\" transform=\"translate(0,-45.2) rotate(0 0 0)\" x-top=\"125\" x-height=\"0\" display=\"none\"></g><g class=\"s-list-footer\" transform=\"translate(0,-87.7) rotate(0 0 0)\" x-top=\"125\" x-height=\"0\" display=\"none\"></g><text class=\"s-list-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"22\" y=\"31.8\">list</text><rect stroke-dasharray=\"5\" stroke=\"#BBBBBB\" stroke-width=\"1\" fill=\"#FFFFFF\" fill-opacity=\"0\" class=\"s-list-face\" width=\"555.2\" height=\"320.1\" x=\"20\" y=\"21\"></rect></g>LAYOUT--></g></svg>"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
CaseRunner.current :single_line_tblock
|
4
|
+
|
5
|
+
ThinReports::Report.generate_file(CaseRunner.output_file) do
|
6
|
+
use_layout(CaseRunner.layout_file)
|
7
|
+
|
8
|
+
start_new_page
|
9
|
+
|
10
|
+
# When Japanese is set to the Tblock to which the Helvetica font is set.
|
11
|
+
page.item(:fallback_to_ipafont).value('IPA明朝に自動的にフォールバックされる')
|
12
|
+
|
13
|
+
# When multi-line text is set.
|
14
|
+
page.item(:set_multiline_text).value("1行目\n2行目\n3行目\n4行目\n5行目")
|
15
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":"0.6.0.pre3","finger-print":-140430337,"config":{"title":"Single Line Tblock","option":{},"page":{"paper-type":"A4","orientation":"portrait","margin-top":"20","margin-bottom":"20","margin-left":"20","margin-right":"20"}},"svg":"<svg width=\"595.2\" height=\"841.8\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" preserveAspectRatio=\"none\" viewBox=\"0 0 595.2 841.8\"><g class=\"canvas\"><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"fallback_to_ipafont\",\"display\":\"true\",\"desc\":null,\"multiple\":\"false\",\"valign\":\"\",\"line-height\":\"\",\"box\":{\"x\":37,\"y\":102,\"width\":291.1,\"height\":26},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"text\",\"attrs\":{\"x\":37,\"y\":123,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#ff0000\",\"fill-opacity\":\"1\",\"font-size\":\"24\",\"font-family\":\"Helvetica\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-anchor\":\"start\",\"text-decoration\":\"none\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"false\" x-id=\"fallback_to_ipafont\" fill=\"#ff0000\" fill-opacity=\"1\" font-size=\"24\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"291.1\" x-height=\"26\" x-left=\"37\" x-top=\"102\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"291.1\" height=\"26\" x=\"37\" y=\"102\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"39\" y=\"113\">fallback_to_ipafont</text></g>LAYOUT--><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" font-size=\"16\" font-family=\"IPAMincho\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"488\" x-height=\"36\" x-left=\"38\" x-top=\"51\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"488\" height=\"36\" x=\"38\" y=\"51\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"38\" y=\"65\">Helvetica\u30d5\u30a9\u30f3\u30c8\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308bTblock\u306b\u65e5\u672c\u8a9e\u3092\u30bb\u30c3\u30c8\u3059\u308b\u3002</text><text class=\"s-text-l1\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"38\" y=\"81\">\u6ea2\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u306f\u8868\u793a\u3055\u308c\u306a\u3044\u3002</text></g><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"set_multiline_text\",\"display\":\"true\",\"desc\":null,\"multiple\":\"false\",\"valign\":\"\",\"line-height\":\"\",\"box\":{\"x\":37,\"y\":178,\"width\":291.1,\"height\":24},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"text\",\"attrs\":{\"x\":37,\"y\":199,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#ff0000\",\"fill-opacity\":\"1\",\"font-size\":\"24\",\"font-family\":\"IPAMincho\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"start\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"false\" x-id=\"set_multiline_text\" x-width=\"291.1\" x-height=\"24\" x-left=\"37\" x-top=\"178\" fill=\"#ff0000\" fill-opacity=\"1\" font-size=\"24\" font-family=\"IPAMincho\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"291.1\" height=\"24\" x=\"37\" y=\"178\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"39\" y=\"189\">set_multiline_text</text></g>LAYOUT--><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"IPAMincho\" font-size=\"16\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"208\" x-height=\"16\" x-left=\"38\" x-top=\"147\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"208\" height=\"16\" x=\"38\" y=\"147\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"38\" y=\"161\">\u8907\u6570\u884c\u30c6\u30ad\u30b9\u30c8\u3092\u30bb\u30c3\u30c8\u3059\u308b</text></g><rect stroke=\"#000000\" stroke-width=\"1\" fill=\"none\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"291.1\" height=\"26\" x=\"37\" y=\"102\"></rect><rect stroke=\"#000000\" stroke-width=\"1\" fill=\"none\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"291.1\" height=\"24\" x=\"37\" y=\"178\"></rect></g></svg>"}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
CaseRunner.current :tblock_styles
|
4
|
+
|
5
|
+
ThinReports::Report.generate_file(:pdf, CaseRunner.output_file) do
|
6
|
+
use_layout(CaseRunner.layout_file)
|
7
|
+
|
8
|
+
start_new_page
|
9
|
+
|
10
|
+
page.item(:space_single_helvetica).value('Char Space in Single(Helvetica)')
|
11
|
+
page.item(:space_single_ipamincho).value('文字間隔 in 単行(IPA明朝)')
|
12
|
+
|
13
|
+
page.item(:space_multi_times).value("Char Space\nin Multiple(Times New Roman)")
|
14
|
+
page.item(:space_multi_ipamincho).value("文字間隔\nin 複数行(IPA明朝)")
|
15
|
+
|
16
|
+
page.values(:left_top => '左上揃え',
|
17
|
+
:left_center => '左中央揃え',
|
18
|
+
:left_bottom => '左下揃え',
|
19
|
+
:center_top => '中央上揃え',
|
20
|
+
:center_center => '中央揃え',
|
21
|
+
:center_bottom => '中央下揃え',
|
22
|
+
:right_top => '右上揃え',
|
23
|
+
:right_center => '右中央揃え',
|
24
|
+
:right_bottom => '右下揃え')
|
25
|
+
|
26
|
+
page.item(:line_height).value("行間隔2.0\n日本語\nThinReports")
|
27
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":"0.6.0.pre3","finger-print":-1000472906,"config":{"title":"Tblock Styles","option":{},"page":{"paper-type":"A4","orientation":"portrait","margin-top":"20","margin-bottom":"20","margin-left":"20","margin-right":"20"}},"svg":"<svg width=\"595.2\" height=\"841.8\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" preserveAspectRatio=\"none\" viewBox=\"0 0 595.2 841.8\"><g class=\"canvas\"><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"5\" x-display=\"true\" x-id=\"\" font-size=\"18\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"555.2\" x-height=\"18\" x-left=\"20\" x-top=\"21\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"555.2\" height=\"18\" x=\"20\" y=\"21\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"20\" y=\"38\">Char Space in Single(Helvetica)</text></g><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"space_single_helvetica\",\"display\":\"true\",\"desc\":null,\"multiple\":\"false\",\"valign\":\"\",\"line-height\":\"\",\"box\":{\"x\":20,\"y\":50,\"width\":555.2,\"height\":18},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"text\",\"attrs\":{\"x\":20,\"y\":67,\"xml:space\":\"preserve\",\"kerning\":\"5\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"Helvetica\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-anchor\":\"start\",\"text-decoration\":\"none\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"5\" x-display=\"true\" x-multiple=\"false\" x-id=\"space_single_helvetica\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"555.2\" x-height=\"18\" x-left=\"20\" x-top=\"50\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"555.2\" height=\"18\" x=\"20\" y=\"50\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"22\" y=\"61\">space_single_helvetica</text></g>LAYOUT--><line stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x1=\"426\" x2=\"426\" y1=\"20\" y2=\"78\"></line><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"5\" x-display=\"true\" x-id=\"\" font-size=\"18\" font-family=\"IPAMincho\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"323\" x-height=\"18\" x-left=\"20\" x-top=\"82\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"323\" height=\"18\" x=\"20\" y=\"82\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"20\" y=\"98\">\u6587\u5b57\u9593\u9694 in \u5358\u884c\uff08IPA\u660e\u671d\uff09</text></g><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"space_single_ipamincho\",\"display\":\"true\",\"desc\":null,\"multiple\":\"false\",\"valign\":\"\",\"line-height\":\"\",\"box\":{\"x\":20,\"y\":110,\"width\":555.2,\"height\":18},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"text\",\"attrs\":{\"x\":20,\"y\":126,\"xml:space\":\"preserve\",\"kerning\":\"5\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"IPAMincho\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"start\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"5\" x-display=\"true\" x-multiple=\"false\" x-id=\"space_single_ipamincho\" x-width=\"555.2\" x-height=\"18\" x-left=\"20\" x-top=\"110\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"IPAMincho\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"555.2\" height=\"18\" x=\"20\" y=\"110\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"22\" y=\"121\">space_single_ipamincho</text></g>LAYOUT--><line stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"333\" y1=\"80\" y2=\"138\" x1=\"333\"></line><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"5\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"Times New Roman\" font-size=\"18\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"555.2\" x-height=\"38\" x-left=\"20\" x-top=\"148\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"555.2\" height=\"38\" x=\"20\" y=\"148\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"20\" y=\"160\">Char Space</text><text class=\"s-text-l1\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"20\" y=\"179\">in Multiple(Times New Roman)</text></g><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"space_multi_times\",\"display\":\"true\",\"desc\":null,\"multiple\":\"true\",\"valign\":\"\",\"line-height\":\"\",\"box\":{\"x\":20,\"y\":199.9,\"width\":555.2,\"height\":51.2},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"textArea\",\"attrs\":{\"x\":20,\"y\":197.9,\"width\":555.2,\"height\":51.2,\"xml:space\":\"preserve\",\"kerning\":\"5\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"Times New Roman\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"start\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"5\" x-display=\"true\" x-multiple=\"true\" x-id=\"space_multi_times\" x-width=\"555.2\" x-height=\"51.2\" x-left=\"20\" x-top=\"199.9\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"Times New Roman\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"555.2\" height=\"51.2\" x=\"20\" y=\"199.9\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"22\" y=\"210.9\">space_multi_times</text></g>LAYOUT--><line stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"386\" y1=\"165\" y2=\"251.1\" x1=\"386\"></line><line stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"149\" y1=\"148\" y2=\"234.1\" x1=\"149\"></line><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"5\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"IPAMincho\" font-size=\"18\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"323\" x-height=\"36\" x-left=\"20\" x-top=\"275\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"323\" height=\"36\" x=\"20\" y=\"275\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"20\" y=\"291\">\u6587\u5b57\u9593\u9694</text><text class=\"s-text-l1\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"20\" y=\"309\">in \u8907\u6570\u884c\uff08IPA\u660e\u671d\uff09</text></g><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"space_multi_ipamincho\",\"display\":\"true\",\"desc\":null,\"multiple\":\"true\",\"valign\":\"\",\"line-height\":\"\",\"box\":{\"x\":20,\"y\":324,\"width\":555.2,\"height\":52.1},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"textArea\",\"attrs\":{\"x\":20,\"y\":324,\"width\":555.2,\"height\":52.1,\"xml:space\":\"preserve\",\"kerning\":\"5\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"IPAMincho\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"start\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"5\" x-display=\"true\" x-multiple=\"true\" x-id=\"space_multi_ipamincho\" x-width=\"555.2\" x-height=\"52.1\" x-left=\"20\" x-top=\"324\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"IPAMincho\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"555.2\" height=\"52.1\" x=\"20\" y=\"324\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"22\" y=\"335\">space_multi_ipamincho</text></g>LAYOUT--><line stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"249\" y1=\"292\" y2=\"378.1\" x1=\"249\"></line><line stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"107\" y1=\"273\" y2=\"359.1\" x1=\"107\"></line><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"left_top\",\"display\":\"true\",\"desc\":null,\"multiple\":\"true\",\"valign\":\"\",\"line-height\":\"\",\"box\":{\"x\":20,\"y\":406.1,\"width\":165.1,\"height\":69.1},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"textArea\",\"attrs\":{\"x\":20,\"y\":406.1,\"width\":165.1,\"height\":69.1,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"IPAGothic\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-anchor\":\"start\",\"text-decoration\":\"none\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"true\" x-id=\"left_top\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"IPAGothic\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"165.1\" x-height=\"69.1\" x-left=\"20\" x-top=\"406.1\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"165.1\" height=\"69.1\" x=\"20\" y=\"406.1\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"22\" y=\"417.1\">left_top</text></g>LAYOUT--><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"left_center\",\"display\":\"true\",\"desc\":null,\"multiple\":\"true\",\"valign\":\"center\",\"line-height\":\"\",\"box\":{\"x\":215.1,\"y\":406.1,\"width\":165.1,\"height\":69.1},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"textArea\",\"attrs\":{\"x\":215.1,\"y\":406.1,\"width\":165.1,\"height\":69.1,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"IPAGothic\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"start\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"true\" x-id=\"left_center\" x-width=\"165.1\" x-height=\"69.1\" x-left=\"215.1\" x-top=\"406.1\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"IPAGothic\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" x-valign=\"center\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"165.1\" height=\"69.1\" x=\"215.1\" y=\"406.1\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"217.1\" y=\"417.1\">left_center</text></g>LAYOUT--><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"left_bottom\",\"display\":\"true\",\"desc\":null,\"multiple\":\"true\",\"valign\":\"bottom\",\"line-height\":\"\",\"box\":{\"x\":410,\"y\":406.1,\"width\":165.1,\"height\":69.1},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"textArea\",\"attrs\":{\"x\":410,\"y\":406.1,\"width\":165.1,\"height\":69.1,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"IPAGothic\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"start\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"true\" x-id=\"left_bottom\" x-width=\"165.1\" x-height=\"69.1\" x-left=\"410\" x-top=\"406.1\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"IPAGothic\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" x-valign=\"bottom\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"165.1\" height=\"69.1\" x=\"410\" y=\"406.1\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"412\" y=\"417.1\">left_bottom</text></g>LAYOUT--><rect stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"165.1\" height=\"69.1\" x=\"20\" y=\"406.1\"></rect><rect stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"165.1\" height=\"69.1\" x=\"215.1\" y=\"406.1\"></rect><rect stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"165.1\" height=\"69.1\" x=\"410\" y=\"406.1\"></rect><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"line_height\",\"display\":\"true\",\"desc\":null,\"multiple\":\"true\",\"valign\":\"\",\"line-height\":36,\"box\":{\"x\":311.1,\"y\":678,\"width\":179.1,\"height\":90},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"textArea\",\"attrs\":{\"x\":311.1,\"y\":678,\"width\":179.1,\"height\":90,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"IPAPGothic\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-anchor\":\"start\",\"text-decoration\":\"none\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"true\" x-id=\"line_height\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"IPAPGothic\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"179.1\" x-height=\"90\" x-left=\"311.1\" x-top=\"678\" x-line-height=\"36\" x-line-height-ratio=\"2\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"179.1\" height=\"90\" x=\"311.1\" y=\"678\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"313.1\" y=\"689\">line_height</text></g>LAYOUT--><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" font-size=\"18\" font-family=\"IPAPGothic\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"179.1\" x-height=\"142.8\" x-left=\"99\" x-top=\"678\" x-line-height=\"36\" x-line-height-ratio=\"2\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"179.1\" height=\"142.8\" x=\"99\" y=\"678\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"99\" y=\"693\">\u884c\u9593\u96942.0</text><text class=\"s-text-l1\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"99\" y=\"729\">\u65e5\u672c\u8a9e</text><text class=\"s-text-l2\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"99\" y=\"765\">ThinReports</text></g><line stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x1=\"93\" x2=\"511.2\" y1=\"692.8\" y2=\"692.8\"></line><line stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"511.2\" y1=\"727.8\" y2=\"727.8\" x1=\"93\"></line><line stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"511.2\" y1=\"766.8\" y2=\"766.8\" x1=\"93\"></line><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"center_top\",\"display\":\"true\",\"desc\":null,\"multiple\":\"true\",\"valign\":\"\",\"line-height\":\"\",\"box\":{\"x\":20,\"y\":481,\"width\":165.1,\"height\":69.1},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"textArea\",\"attrs\":{\"x\":20,\"y\":481,\"width\":165.1,\"height\":69.1,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"IPAGothic\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"middle\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"true\" x-id=\"center_top\" x-width=\"165.1\" x-height=\"69.1\" x-left=\"20\" x-top=\"481\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"IPAGothic\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"middle\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"165.1\" height=\"69.1\" x=\"20\" y=\"481\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"22\" y=\"492\">center_top</text></g>LAYOUT--><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"center_center\",\"display\":\"true\",\"desc\":null,\"multiple\":\"true\",\"valign\":\"center\",\"line-height\":\"\",\"box\":{\"x\":215.1,\"y\":481,\"width\":165.1,\"height\":69.1},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"textArea\",\"attrs\":{\"x\":215.1,\"y\":481,\"width\":165.1,\"height\":69.1,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"IPAGothic\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"middle\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"true\" x-id=\"center_center\" x-width=\"165.1\" x-height=\"69.1\" x-left=\"215.1\" x-top=\"481\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"IPAGothic\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"middle\" x-valign=\"center\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"165.1\" height=\"69.1\" x=\"215.1\" y=\"481\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"217.1\" y=\"492\">center_center</text></g>LAYOUT--><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"center_bottom\",\"display\":\"true\",\"desc\":null,\"multiple\":\"true\",\"valign\":\"bottom\",\"line-height\":\"\",\"box\":{\"x\":410,\"y\":481,\"width\":165.1,\"height\":69.1},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"textArea\",\"attrs\":{\"x\":410,\"y\":481,\"width\":165.1,\"height\":69.1,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"IPAGothic\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"middle\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"true\" x-id=\"center_bottom\" x-width=\"165.1\" x-height=\"69.1\" x-left=\"410\" x-top=\"481\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"IPAGothic\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"middle\" x-valign=\"bottom\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"165.1\" height=\"69.1\" x=\"410\" y=\"481\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"412\" y=\"492\">center_bottom</text></g>LAYOUT--><rect stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"165.1\" height=\"69.1\" x=\"20\" y=\"481\"></rect><rect stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"165.1\" height=\"69.1\" x=\"215.1\" y=\"481\"></rect><rect stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"165.1\" height=\"69.1\" x=\"410\" y=\"481\"></rect><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"right_top\",\"display\":\"true\",\"desc\":null,\"multiple\":\"true\",\"valign\":\"\",\"line-height\":\"\",\"box\":{\"x\":20,\"y\":556,\"width\":165.1,\"height\":69.1},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"textArea\",\"attrs\":{\"x\":20,\"y\":556,\"width\":165.1,\"height\":69.1,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"IPAGothic\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"end\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"true\" x-id=\"right_top\" x-width=\"165.1\" x-height=\"69.1\" x-left=\"20\" x-top=\"556\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"IPAGothic\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"end\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"165.1\" height=\"69.1\" x=\"20\" y=\"556\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"22\" y=\"567\">right_top</text></g>LAYOUT--><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"right_center\",\"display\":\"true\",\"desc\":null,\"multiple\":\"true\",\"valign\":\"center\",\"line-height\":\"\",\"box\":{\"x\":215.1,\"y\":556,\"width\":165.1,\"height\":69.1},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"textArea\",\"attrs\":{\"x\":215.1,\"y\":556,\"width\":165.1,\"height\":69.1,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"IPAGothic\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"end\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"true\" x-id=\"right_center\" x-width=\"165.1\" x-height=\"69.1\" x-left=\"215.1\" x-top=\"556\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"IPAGothic\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"end\" x-valign=\"center\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"165.1\" height=\"69.1\" x=\"215.1\" y=\"556\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"217.1\" y=\"567\">right_center</text></g>LAYOUT--><!--SHAPE{\"type\":\"s-tblock\",\"id\":\"right_bottom\",\"display\":\"true\",\"desc\":null,\"multiple\":\"true\",\"valign\":\"bottom\",\"line-height\":\"\",\"box\":{\"x\":410,\"y\":556,\"width\":165.1,\"height\":69.1},\"format\":{\"base\":\"\",\"type\":\"\"},\"value\":\"\",\"ref-id\":\"\",\"svg\":{\"tag\":\"textArea\",\"attrs\":{\"x\":410,\"y\":556,\"width\":165.1,\"height\":69.1,\"xml:space\":\"preserve\",\"kerning\":\"auto\",\"fill\":\"#000000\",\"fill-opacity\":\"1\",\"font-size\":\"18\",\"font-family\":\"IPAGothic\",\"font-weight\":\"normal\",\"font-style\":\"normal\",\"text-decoration\":\"none\",\"text-anchor\":\"end\"}}}SHAPE--><!--LAYOUT<g class=\"s-tblock\" x-format-type=\"\" x-value=\"\" x-format-base=\"\" x-ref-id=\"\" kerning=\"auto\" x-display=\"true\" x-multiple=\"true\" x-id=\"right_bottom\" x-width=\"165.1\" x-height=\"69.1\" x-left=\"410\" x-top=\"556\" fill=\"#000000\" fill-opacity=\"1\" font-size=\"18\" font-family=\"IPAGothic\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"end\" x-valign=\"bottom\"><rect class=\"s-tblock-box\" stroke=\"#7C4007\" fill=\"#f4e2c4\" stroke-width=\"0.28\" fill-opacity=\"0.8\" width=\"165.1\" height=\"69.1\" x=\"410\" y=\"556\"></rect><text class=\"s-tblock-id\" font-size=\"11\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-decoration=\"none\" text-anchor=\"start\" kerning=\"auto\" stroke=\"none\" fill=\"#7C4007\" fill-opacity=\"1\" x=\"412\" y=\"567\">right_bottom</text></g>LAYOUT--><rect stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"165.1\" height=\"69.1\" x=\"20\" y=\"556\"></rect><rect stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"165.1\" height=\"69.1\" x=\"215.1\" y=\"556\"></rect><rect stroke=\"#ff0000\" stroke-width=\"1\" fill=\"none\" fill-opacity=\"1\" class=\"s-rect\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" rx=\"0\" ry=\"0\" width=\"165.1\" height=\"69.1\" x=\"410\" y=\"556\"></rect></g></svg>"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":"0.6.0.pre3","finger-print":755674500,"config":{"title":"Case: Text Align","option":{},"page":{"paper-type":"A4","orientation":"portrait","margin-top":"20","margin-bottom":"20","margin-left":"20","margin-right":"20"}},"svg":"<svg width=\"595.2\" height=\"841.8\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" preserveAspectRatio=\"none\" viewBox=\"0 0 595.2 841.8\"><g class=\"canvas\"><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" font-size=\"36\" font-family=\"Helvetica\" font-weight=\"normal\" font-style=\"normal\" text-anchor=\"end\" text-decoration=\"none\" x-width=\"555.2\" x-height=\"72\" x-left=\"20\" x-top=\"19\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"555.2\" height=\"72\" x=\"20\" y=\"19\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"575.2\" y=\"50\">Align Right</text><text class=\"s-text-l1\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"575.2\" y=\"86\">Helvetica</text></g><line stroke=\"#000000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x1=\"297.6\" x2=\"297.6\" y1=\"20\" y2=\"821.8\"></line><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"IPAMincho\" font-size=\"36\" text-anchor=\"end\" text-decoration=\"none\" x-width=\"555.2\" x-height=\"72\" x-left=\"20\" x-top=\"105\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"555.2\" height=\"72\" x=\"20\" y=\"105\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"575.2\" y=\"137\">\u53f3\u5bc4\u305b</text><text class=\"s-text-l1\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"575.2\" y=\"173\">IPA\u660e\u671d</text></g><line stroke=\"#000000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"297.6\" y1=\"20\" y2=\"821.8\" x1=\"297.6\"></line><line stroke=\"#000000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"575.2\" y1=\"20\" y2=\"821.8\" x1=\"575.2\"></line><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"Helvetica\" font-size=\"36\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"555.2\" x-height=\"72\" x-left=\"20\" x-top=\"240\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"555.2\" height=\"72\" x=\"20\" y=\"240\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"297.6\" y=\"271\">Align Center</text><text class=\"s-text-l1\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"297.6\" y=\"307\">Helvetica</text></g><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"IPAMincho\" font-size=\"36\" text-anchor=\"middle\" text-decoration=\"none\" x-width=\"555.2\" x-height=\"72\" x-left=\"20\" x-top=\"330\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"555.2\" height=\"72\" x=\"20\" y=\"330\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"297.6\" y=\"362\">\u4e2d\u592e\u5bc4\u305b</text><text class=\"s-text-l1\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"297.6\" y=\"398\">IPA\u660e\u671d</text></g><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"Helvetica\" font-size=\"36\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"555.2\" x-height=\"72\" x-left=\"20\" x-top=\"490\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"555.2\" height=\"72\" x=\"20\" y=\"490\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"20\" y=\"521\">Align Left</text><text class=\"s-text-l1\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"20\" y=\"557\">Helvetica</text></g><g class=\"s-text\" stroke-width=\"0\" fill=\"#000000\" fill-opacity=\"1\" kerning=\"auto\" x-display=\"true\" x-id=\"\" stroke=\"none\" font-weight=\"normal\" font-style=\"normal\" font-family=\"IPAMincho\" font-size=\"36\" text-anchor=\"start\" text-decoration=\"none\" x-width=\"555.2\" x-height=\"72\" x-left=\"20\" x-top=\"580\"><rect class=\"s-text-box\" stroke=\"none\" fill=\"#000000\" fill-opacity=\"0.001\" width=\"555.2\" height=\"72\" x=\"20\" y=\"580\"></rect><text class=\"s-text-l0\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"20\" y=\"612\">\u5de6\u5bc4\u305b</text><text class=\"s-text-l1\" xml:space=\"preserve\" stroke=\"none\" fill=\"inherit\" fill-opacity=\"1\" text-decoration=\"none\" x=\"20\" y=\"648\">IPA\u660e\u671d</text></g><line stroke=\"#000000\" stroke-width=\"1\" fill=\"none\" class=\"s-line\" x-display=\"true\" x-stroke-type=\"solid\" stroke-dasharray=\"none\" x-id=\"\" x2=\"20\" y1=\"20\" y2=\"821.8\" x1=\"20\"></line></g></svg>"}
|
@@ -5,105 +5,85 @@ require 'test/unit/helper'
|
|
5
5
|
class ThinReports::Core::Shape::Base::TestInternal < MiniTest::Unit::TestCase
|
6
6
|
include ThinReports::TestHelpers
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
def create_internal(format_config = {}, &block)
|
9
|
+
format = unless format_config.empty?
|
10
|
+
format_klass = ::Class.new(ThinReports::Core::Shape::Basic::Format) {
|
11
|
+
config_reader(*format_config.keys.map {|k| k.to_sym })
|
12
|
+
}
|
13
|
+
format_klass.new(format_config)
|
14
|
+
else
|
15
|
+
ThinReports::Core::Shape::Basic::Format.new({})
|
16
|
+
end
|
17
|
+
|
18
|
+
klass = ::Class.new(ThinReports::Core::Shape::Base::Internal, &block)
|
19
|
+
klass.new(flexmock('parent'), format)
|
10
20
|
end
|
11
21
|
|
12
|
-
def
|
13
|
-
|
14
|
-
|
22
|
+
def test_self_format_delegators_should_defines_method_delegated_from_format
|
23
|
+
internal = create_internal('m1' => 'm1_value') {
|
24
|
+
format_delegators :m1
|
25
|
+
}
|
26
|
+
assert_respond_to internal, :m1
|
15
27
|
end
|
16
28
|
|
17
|
-
def
|
18
|
-
|
19
|
-
|
29
|
+
def test_method_delegated_from_format_should_return_same_value_as_an_format
|
30
|
+
internal = create_internal('m1' => 'm1 value') {
|
31
|
+
format_delegators :m1
|
32
|
+
}
|
33
|
+
assert_same internal.m1, internal.format.m1
|
20
34
|
end
|
21
35
|
|
22
|
-
def
|
23
|
-
|
24
|
-
|
36
|
+
def test_switch_parent_should_replace_a_parent_property_to_the_specified_new_parent
|
37
|
+
new_parent = flexmock('new_parent')
|
38
|
+
|
39
|
+
internal = create_internal
|
40
|
+
internal.switch_parent!(new_parent)
|
41
|
+
|
42
|
+
assert_same internal.parent, new_parent
|
25
43
|
end
|
26
44
|
|
27
|
-
def
|
45
|
+
def test_copied_internal_should_have_the_new_value_specified_as_a_parent_property
|
28
46
|
new_parent = flexmock('new_parent')
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
47
|
+
internal = create_internal {
|
48
|
+
def style
|
49
|
+
@style ||= ThinReports::Core::Shape::Style::Base.new(format)
|
50
|
+
end
|
51
|
+
}
|
52
|
+
assert_same internal.copy(new_parent).parent, new_parent
|
33
53
|
end
|
34
54
|
|
35
|
-
def
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
55
|
+
def test_copied_internal_should_have_style_copied_from_original
|
56
|
+
internal = create_internal {
|
57
|
+
def style
|
58
|
+
@style ||= ThinReports::Core::Shape::Style::Base.new(format)
|
59
|
+
end
|
60
|
+
}
|
61
|
+
internal.style.write_internal_style(:foo, 'bar')
|
62
|
+
new_internal = internal.copy(flexmock('new_parent'))
|
63
|
+
|
64
|
+
assert_equal new_internal.style.read_internal_style(:foo), 'bar'
|
41
65
|
end
|
42
66
|
|
43
|
-
def
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
internal.attrs['stroke'] = '#000000'
|
54
|
-
|
55
|
-
assert_equal internal.attributes, {'fill' => '#ff0000',
|
56
|
-
'stroke' => '#000000',
|
57
|
-
'x' => 100,
|
58
|
-
'y' => 100,
|
59
|
-
'width' => 200}
|
67
|
+
def test_copied_internal_should_have_states_property_copied_from_original
|
68
|
+
internal = create_internal {
|
69
|
+
def style
|
70
|
+
@style ||= ThinReports::Core::Shape::Style::Base.new(format)
|
71
|
+
end
|
72
|
+
}
|
73
|
+
internal.states[:foo] = 'bar'
|
74
|
+
new_internal = internal.copy(flexmock('new_parent'))
|
75
|
+
|
76
|
+
assert_equal new_internal.states[:foo], 'bar'
|
60
77
|
end
|
61
78
|
|
62
|
-
def
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
# Test for parent property
|
72
|
-
refute_same @internal.parent, new_internal.parent
|
73
|
-
|
74
|
-
# Test for format property
|
75
|
-
assert_same @internal.format, new_internal.format
|
76
|
-
|
77
|
-
# Test for attrs
|
78
|
-
args_attrs_test = [@internal.attrs, new_internal.attrs]
|
79
|
-
|
80
|
-
assert_equal(*args_attrs_test)
|
81
|
-
refute_same(*args_attrs_test)
|
82
|
-
|
83
|
-
# Test for value of attrs
|
84
|
-
args_attr_values_test = [@internal.attrs['stroke'],
|
85
|
-
new_internal.attrs['stroke']]
|
86
|
-
|
87
|
-
assert_equal(*args_attr_values_test)
|
88
|
-
refute_same(*args_attr_values_test)
|
89
|
-
|
90
|
-
@internal.attrs['fill'] = 'black'
|
91
|
-
assert_nil new_internal.attrs['fill']
|
92
|
-
|
93
|
-
# Test for states
|
94
|
-
args_states_test = [@internal.states, new_internal.states]
|
95
|
-
|
96
|
-
assert_equal(*args_states_test)
|
97
|
-
refute_same(*args_states_test)
|
98
|
-
|
99
|
-
# Test for value of states
|
100
|
-
args_state_values_test = [@internal.states[:value],
|
101
|
-
new_internal.states[:value]]
|
102
|
-
|
103
|
-
assert_equal(*args_state_values_test)
|
104
|
-
refute_same(*args_state_values_test)
|
105
|
-
|
106
|
-
@internal.states[:value].reverse!
|
107
|
-
refute_equal(*args_state_values_test)
|
79
|
+
def test_copy_should_execute_block_with_new_internal_as_argument
|
80
|
+
internal = create_internal {
|
81
|
+
def style
|
82
|
+
@style ||= ThinReports::Core::Shape::Style::Base.new(format)
|
83
|
+
end
|
84
|
+
}
|
85
|
+
internal.copy(flexmock('new_parent')) do |new_internal|
|
86
|
+
assert_equal new_internal.is_a?(ThinReports::Core::Shape::Base::Internal), true
|
87
|
+
end
|
108
88
|
end
|
109
89
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require 'test/unit/helper'
|
4
|
+
|
5
|
+
class ThinReports::Core::Shape::Basic::TestBlockFormat < MiniTest::Unit::TestCase
|
6
|
+
include ThinReports::TestHelpers
|
7
|
+
|
8
|
+
TEST_BLOCK_FORMAT = {
|
9
|
+
"value" => "default value",
|
10
|
+
"box" => {
|
11
|
+
"x" => 100.0,
|
12
|
+
"y" => 100.0,
|
13
|
+
"width" => 100.0,
|
14
|
+
"height" => 100.0
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
def test_value_reader_via_TEST_BLOCK_FORMAT
|
19
|
+
assert_equal format.value, 'default value'
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_box_reader_via_TEST_BLOCK_FORMAT
|
23
|
+
assert_equal format.box.values_at('x', 'y', 'width', 'height'),
|
24
|
+
[100.0, 100.0, 100.0, 100.0]
|
25
|
+
end
|
26
|
+
|
27
|
+
def format
|
28
|
+
ThinReports::Core::Shape::Basic::BlockFormat.new(TEST_BLOCK_FORMAT)
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require 'test/unit/helper'
|
4
|
+
|
5
|
+
class ThinReports::Core::Shape::Basic::TestBlockInterface < MiniTest::Unit::TestCase
|
6
|
+
include ThinReports::TestHelpers
|
7
|
+
|
8
|
+
Basic = ThinReports::Core::Shape::Basic
|
9
|
+
|
10
|
+
def setup
|
11
|
+
parent = flexmock('parent')
|
12
|
+
format = Basic::BlockFormat.new({})
|
13
|
+
internal = Basic::BlockInternal.new(parent, Basic::BlockFormat.new({}))
|
14
|
+
|
15
|
+
@interface = Basic::BlockInterface.new(parent, format, internal)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_value_should_work_as_reader_with_no_arguments
|
19
|
+
@interface.internal.write_value('new value')
|
20
|
+
assert_equal @interface.value, 'new value'
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_value_should_work_as_writer_with_arguments
|
24
|
+
@interface.value('new value')
|
25
|
+
assert_equal @interface.internal.read_value, 'new value'
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require 'test/unit/helper'
|
4
|
+
|
5
|
+
class ThinReports::Core::Shape::Basic::TestBlockInternal < MiniTest::Unit::TestCase
|
6
|
+
include ThinReports::TestHelpers
|
7
|
+
|
8
|
+
Basic = ThinReports::Core::Shape::Basic
|
9
|
+
|
10
|
+
def test_box_should_return_value_of_format
|
11
|
+
internal = init_internal('box' => 'box of format')
|
12
|
+
assert_equal internal.box, 'box of format'
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_read_value_should_return_value_from_format
|
16
|
+
internal = init_internal('value' => 'default value')
|
17
|
+
assert_equal internal.read_value, 'default value'
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_read_value_should_return_value_from_state_with_value_key
|
21
|
+
internal = init_internal
|
22
|
+
internal.states[:value] = 'new value'
|
23
|
+
assert_equal internal.read_value, 'new value'
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_real_value_should_return_the_same_value_as_a_read_value_method
|
27
|
+
internal = init_internal
|
28
|
+
internal.states[:value] = 'foo'
|
29
|
+
assert_same internal.real_value, internal.read_value
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_write_value_should_save_value_to_states_store_as_value
|
33
|
+
internal = init_internal
|
34
|
+
internal.write_value('new value')
|
35
|
+
assert_equal internal.states[:value], 'new value'
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_type_of_asker_should_return_true_when_given_the_block_value
|
39
|
+
assert_equal init_internal.type_of?(:block), true
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_value_should_works_the_same_as_read_value_method
|
43
|
+
internal = init_internal
|
44
|
+
internal.write_value('new value')
|
45
|
+
assert_same internal.read_value, internal.value
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_type_of_asker_should_return_false_otherwise
|
49
|
+
assert_equal [:iblock, :tblock, :text, :list].all? {|t| !init_internal.type_of?(t)}, true
|
50
|
+
end
|
51
|
+
|
52
|
+
def init_internal(format = {})
|
53
|
+
Basic::BlockInternal.new(flexmock('parent'), Basic::BlockFormat.new(format))
|
54
|
+
end
|
55
|
+
end
|
@@ -8,6 +8,11 @@ class ThinReports::Core::Shape::Basic::TestInterface < MiniTest::Unit::TestCase
|
|
8
8
|
# Alias
|
9
9
|
Basic = ThinReports::Core::Shape::Basic
|
10
10
|
|
11
|
+
def create_interface(format_config = {})
|
12
|
+
Basic::Interface.new(flexmock('parent'),
|
13
|
+
Basic::Format.new(format_config))
|
14
|
+
end
|
15
|
+
|
11
16
|
def setup
|
12
17
|
format = flexmock('format')
|
13
18
|
format.should_receive(:display? => true)
|
@@ -15,56 +20,99 @@ class ThinReports::Core::Shape::Basic::TestInterface < MiniTest::Unit::TestCase
|
|
15
20
|
@basic = Basic::Interface.new(flexmock('parent'), format)
|
16
21
|
end
|
17
22
|
|
18
|
-
def
|
19
|
-
|
20
|
-
|
21
|
-
|
23
|
+
def test_id_should_return_id_with_reference_to_internal
|
24
|
+
basic = create_interface('id' => 'foo')
|
25
|
+
assert_equal basic.id, basic.internal.id
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_id_should_return_cloned_id
|
29
|
+
basic = create_interface('id' => 'basic-id')
|
30
|
+
refute_same basic.id, basic.internal.id
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_type_should_operate_as_delegator_of_internal
|
34
|
+
basic = create_interface('type' => 's-rect')
|
35
|
+
assert_same basic.type, basic.internal.type
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_visible_asker_should_return_result_with_reference_to_style_of_internal
|
39
|
+
basic = create_interface('display' => 'false')
|
40
|
+
assert_equal basic.visible?, basic.internal.style.visible
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_visible_should_properly_set_visibility_to_style_of_internal
|
44
|
+
basic = create_interface('display' => 'false')
|
45
|
+
basic.visible(true)
|
46
|
+
|
47
|
+
assert_equal basic.internal.style.visible, true
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_style_should_operate_as_reader_when_one_argument_is_given
|
51
|
+
basic = create_interface('svg' => {'attrs' => {'fill' => '#ff0000'}})
|
52
|
+
|
53
|
+
assert_equal basic.style(:fill_color), '#ff0000'
|
22
54
|
end
|
23
55
|
|
24
|
-
def
|
25
|
-
|
26
|
-
|
56
|
+
def test_style_should_operate_as_writer_when_two_arguments_are_given
|
57
|
+
basic = create_interface
|
58
|
+
basic.style(:border_color, '#000000')
|
27
59
|
|
28
|
-
assert_equal
|
29
|
-
'stroke' => '#0000ff'}
|
30
|
-
assert_raises ThinReports::Errors::UnknownShapeStyleName do
|
31
|
-
@basic.style(:unknown, 'unknown value')
|
32
|
-
end
|
60
|
+
assert_equal basic.style(:border_color), '#000000'
|
33
61
|
end
|
34
62
|
|
35
|
-
def
|
36
|
-
|
63
|
+
def test_style_should_operate_as_writer_for_border_style_when_three_arguments_are_given
|
64
|
+
basic = create_interface
|
65
|
+
basic.style(:border, 1, '#ffffff')
|
37
66
|
|
38
|
-
assert_equal
|
39
|
-
'stroke' => 'blue'}
|
40
|
-
assert_raises ThinReports::Errors::UnknownShapeStyleName do
|
41
|
-
@basic.styles(:fill => 'blue', :unknown => 'black')
|
42
|
-
end
|
67
|
+
assert_equal basic.style(:border), [1, '#ffffff']
|
43
68
|
end
|
44
69
|
|
45
|
-
def
|
46
|
-
|
47
|
-
assert_equal @basic.visible?, false
|
70
|
+
def test_style_should_return_self_when_two_arguments_are_given
|
71
|
+
assert_instance_of Basic::Interface, create_interface.style(:border_width, 1)
|
48
72
|
end
|
49
73
|
|
50
|
-
def
|
51
|
-
|
52
|
-
@basic.show
|
53
|
-
assert_equal @basic.visible?, true
|
74
|
+
def test_style_should_return_self_when_three_arguments_are_given
|
75
|
+
assert_instance_of Basic::Interface, create_interface.style(:border, 1, '#000000')
|
54
76
|
end
|
55
77
|
|
56
|
-
def
|
57
|
-
|
58
|
-
|
78
|
+
def test_styles_should_properly_set_the_specified_styles_as_Hash
|
79
|
+
basic = create_interface
|
80
|
+
basic.styles(:fill_color => '#ff0000',
|
81
|
+
:border_color => '#000000',
|
82
|
+
:border_width => 5,
|
83
|
+
:visible => false)
|
59
84
|
|
60
|
-
|
61
|
-
|
62
|
-
|
85
|
+
assert_equal [basic.style(:fill_color),
|
86
|
+
basic.style(:border_color),
|
87
|
+
basic.style(:border_width),
|
88
|
+
basic.style(:visible)],
|
89
|
+
['#ff0000', '#000000', 5, false]
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_styles_should_return_self
|
93
|
+
basic = create_interface
|
94
|
+
assert_instance_of Basic::Interface, basic.styles(:fill => '#ff0000')
|
95
|
+
end
|
96
|
+
|
97
|
+
def test_hide_should_properly_set_false_to_visibility
|
98
|
+
basic = create_interface
|
99
|
+
basic.hide
|
63
100
|
|
64
|
-
|
65
|
-
|
101
|
+
assert_equal basic.visible?, false
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_hide_should_return_self
|
105
|
+
assert_instance_of Basic::Interface, create_interface.hide
|
106
|
+
end
|
107
|
+
|
108
|
+
def test_show_should_properly_set_true_to_visibility
|
109
|
+
basic = create_interface
|
110
|
+
basic.show
|
66
111
|
|
67
|
-
|
68
|
-
|
112
|
+
assert_equal basic.visible?, true
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_show_should_return_self
|
116
|
+
assert_instance_of Basic::Interface, create_interface.show
|
69
117
|
end
|
70
118
|
end
|