808abb6d8ba977db444ef38acbbe05559bc34563.svn-base
8.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<HTML>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="../temp1.css" type="text/css">
<script type="text/javascript" src="functable.js"></script>
<script>
function gentable()
{
var xmlDoc = getXMLDoc("func_report.xml?81");
genfunctable('TagFuncTable', 'TagFunc', xmlDoc);
}
</script>
</head>
<body onLoad="gentable()" bgcolor=#ffffff vlink=#0000ff>
<div id="Tag30"/>
<Table cols=2 border=0 width=100%>
<col width=60%>
<col width=40%>
<tr height=91><td/><td><img src='../../res/tradereport.jpg'></td></tr>
</table>
<h3> <font color=#3366ff>Supcan Report组件</font></h3><hr color=#2266ee size=1>
Supcan Report组件是一个集自定义设计、编辑、查询、打印功能的通用报表组件,并作为一个组件供插件/加载项展示到浏览器页面。<br>
和Supcan Treelist组件相比,Supcan Report实现了格式不固定的表格处理的功能,并允许程序员、实施人员、最终客户参与对格式的修改,Supcan Report通常用于展现,实现类似自由报表的功能。<br>
Supcan Report组件依赖于Supcan Treelist组件。<br>
<div id="Tag301"/><br><br><br>
<font style='font-size:15pt'>1.创建实例</font><hr color=#2266ee size=1>
Supcan Report组件是通过插件/加载项创建的,所以应该用<a href="act.htm?81#Tag205" target=_blank>使用指南 \ 页面语法</a>中叙述的插件/加载项的页面创建语法创建,
<Object>中的某几个Param参数规则如下:<br>
<pre class='xml'>
<Object ...(略)>
<Param name="CtlName" value="<Font color=red>LuxForm</Font>"> //固定
<Param name="ZipUrl" value="<Font color=red>BCV1.bin,LuxForm.bin</Font>"> //也可以是绝对URL
<Param name="CtlPara" value="Border=single,3D; Ruler=Horz; Rebar=Print,Property,Font; print=11, 216"> //例子
...</pre>
如果页面是直接调用dynaload.js,那么可能就是这样:<br>
<pre class='cpp'>insertReport('AF', 'Border=single,3D; Ruler=Horz; Rebar=Print,Property,Font; print=11, 216')</pre>
CtlPara参数决定了如何在页面上展现Supcan Report实例,在上面的例子中,参数串中可包含多个子串,子串间以 ";" 分隔。<br>
子串的 名-值对 的规范如下:<br>
<table width=98% cellpadding=4 cellspacing=0 border=1 borderColorLight=#999999 borderColorDark=#999999 align="center">
<tr bgcolor=#eaeaea><td>子串名</td><td>含义</td><td>可用值</td><td>默认值</td></tr>
<tr><td>Border</td><td>边界</td><td>
1.none - 无边界<br>
2.single - 单线条边界<br>
3.3dLower(或3d) - 3D凹进边界<br>
4.3dRaise - 3D凸起边界
</td><td>single</td></tr>
<tr><td>BorderColor</td><td>边界色</td><td>颜色,仅用于Border=single</td><td>#7f9db9</td></tr>
<tr><td>Hue</td><td>强制更改色调</td><td>
LightGray - 浅灰色<br>
Caramel - 焦糖色<br>
Lilian - 百合花色<br>
Lividity - 青黑色<br>
注:更改结果将保存至系统文件,永久有效.
</td><td>(无)</td></tr>
<tr><td>FadeInStep</td><td>淡入淡出效果</td><td>打开报表时的淡入淡出效果<br>0 至 255,数值越小效果越明显, 0表示关闭此效果</td><td>5</td></tr>
<tr><td>UserRebar</td><td>自定义工具条</td><td>
URL(绝对或相对),指向一个包含自定义信息的Zip包
</td><td>无</td></tr>
<tr><td>Rebar</td><td>工具条</td><td>
1.none - 无工具条<br>
2.Main - 主工具条<br>
3.Print - 打印功能的工具条<br>
4.Form - 常用功能工具条<br>
5.Font - 字体工具条<br>
6.Property - 工具箱等功能的工具条<br>
7.Text - 文字输入工具条<br>
注:含空串表示在该处强制断行,请参见默认值
</td><td>Main, Print, Form,,Font, Property,,Text</td></tr>
<tr><td>CollapseToolbar</td><td>是否折叠工具条</td><td>true/false - 折叠/不折叠.<br>备注: 下图为折叠控制按钮.<br><img src='report5.png'></td><td>false</td></tr>
<tr><td>SeperateBar</td><td>分隔条</td><td>1.Vert - 垂直分隔条<br>2.Horz - 水平分隔条<br>注: 组件内置了2根分隔条,可以把窗口分为4份,分隔条通常隐藏在左侧、顶部,可用鼠标拖动</td><td>Vert, Horz</td></tr>
<tr><td>Ruler</td><td>标尺</td><td>1.Vert - 垂直标尺<br>2.Horz - 水平标尺</td><td>Vert, Horz</td></tr>
<tr><td>Main</td><td>主工具条图标</td><td>
<img src='Toolbar1.bmp'><br>这些图标的功能号分别为102, 103, 104, 1074, 105, 100, 189, 20, 32, 106, 107
</td><td>102, 103, 104, 1074, 105, 100, 189, 0, 20, 32, 106, 107</td></tr>
<tr><td>Print</td><td>打印工具条图标</td><td><img src='Toolbar2.bmp'><br>这些图标的功能号分别为11, 216, 18
</td><td>11, 216, 18</td></tr>
<tr><td>Form</td><td>常用工具条图标</td><td><img src='Toolbar4.bmp'><br>左侧6个图标的功能号分别为110, 162, 164, 163, 140, 717
</td><td>110, 162, 164, 163, 140, 717</td></tr>
<tr><td>Property</td><td>工具箱工具条图标</td><td><img src='Toolbar32.bmp'><br>这些图标的功能号分别为301, 2, 112, 192, 144, 478, 382, 274
</td><td>301, 2, 0, 112, 192, 144, 478, 382, 274</td></tr>
<tr><td>Text</td><td>文字输入工具条图标</td><td><img src='text.png'><br>这3个图标的功能号分别为541, 23, 585.<br>注:"23"完全用于自定义功能,Supcan report是没有针对23的功能的.
</td><td>541, 585</td></tr>
<tr><td>PagesTabPercent</td><td>底部滑动条的左侧Tab区长度比例</td><td>百分比,0至100</td><td>30</td></tr>
<tr><td>TabScrollBar</td><td>底部整个滑动条(含左侧Tab)显示与否</td><td>show - 始终显示;<br>none - 设置不显示<br>moresheet - 多于1个工作表时才显示;<br>outofsize - 宽度超出时才显示<br>moresheet,outofsize - 合并上述二者(“或”的关系)</td><td>show</td></tr>
<tr><td>DSCenterDialogHeader</td><td>中心数据源对话框的顶部布局</td><td>url - 显示中心数据源URL下拉框<br>search - 显示搜索选项<br>none - 无顶部内容</td><td>url</td></tr>
<tr><td>WorkMode</td><td>工作方式</td><td><b>DesignTime</b> - 设计时;<br><b>RunTime</b> - 运行时;<br> 二者差别有:<br>
1."运行时"的界面略有简化、提示略少些专业性;<br>
2."设计时"插入的树列表是虚拟的,不可输入:<br>
3."设计时"工具条属性中的这个选项是不生效的:<br>
<center><img src='report4.png'></center><br>
4."设计时"数据源的高级功能更多;<br>
5."设计时"的工具条“打开”按钮有20个历史文件的弹出菜单;<br>
6."运行时"文本框单击即进入编辑("设计时"需要双击);<br>
<br>如下2种模式用于报表的上报汇总:<br>
<b>UploadDesignTime</b> - 上报报表的设计时;<br>
<b>UploadRunTime</b> - 上报报表的填报时;</td><td>DesignTime</td></tr>
<tr><td>isHiLightProtect</td><td>是否在被保护的单元格的左侧显示红色醒目标记</td><td>true / false</td><td>true</td></tr>
<tr><td>isHiLightTabOrder</td><td>填报时是否在 TabOrder 单元格左侧显示红色醒目标记</td><td>true / false<br>注: 仅用于上报的填报时(workMode="UploadRunTime")</td><td>true</td></tr>
<tr><td>image.功能号</td><td>强制设定某功能号的图标</td><td>图标文件的URL, 例如:<br>image.102=../icons/jd.bmp; image.301=icons/bp.ico</td><td>(无)</td></tr>
<tr><td>tip.功能号</td><td>强制设定某功能号的tip</td><td>文字串, 例如:<br>tip.102=打开|Open; tip.301=工具盒|Tool box</td><td>(无)</td></tr>
<tr><td>EventLog</td><td>事件日志</td><td>文件名,建议后缀是txt, 不必带路径,系统将自动在 BC 目录下创建. 该文件能自动记录本组件实例的所有事件, 用于程序调试.<br>注:正式运行时请不要使用,因为频繁读写磁盘会导致性能下降.</td><td>无</td></tr>
<tr><td>FuncLog</td><td>函数调用日志</td><td>文件名,建议后缀是txt, 不必带路径,系统将自动在 BC 目录下创建. 该文件能自动记录本组件实例被调用的所有函数, 用于程序调试.<br>注:正式运行时请不要使用,因为频繁读写磁盘会导致性能下降.</td><td>无</td></tr>
<tr><td>FuncParaChars</td><td>函数日志中参数最大字数</td><td>数字,当启用函数日志时,函数的参数最多保留字数.</td><td>128</td></tr>
<tr><td>FuncReturnChars</td><td>函数日志中返回值最大字数</td><td>数字,当启用函数日志时,函数的返回值最多保留字数.</td><td>0</td></tr>
</table>
注1: 所谓“默认值”就是在没有设定值的情况下,Supcan Report自动采用的值.<br>
注2: Main、Print... 这些工具条,除了允许含系统功能号以外,还允许含自定义功能号(大于3000的功能号就是自定义功能号).<br>
<div id="Tag302"/><br><br><br>
<font style='font-size:15pt'>2.函数</font><hr color=#2266ee size=1>
Supcan Report的函数是通过插件/加载项的 func( string funcname, string paras ) 函数间接调用的,在此列举了Supcan Report组件的可用funcname及用途说明。<br>
<div id="TagFuncTable"></div>
<div id="TagFunc"></div>
<div id="Tag3021"/><br><br><br>
<font style='font-size:15pt'>3.扩展函数和全局函数</font><hr color=#2266ee size=1>
<i>3.1 扩展函数</i><br>
上述API中,涉及对单元格、行列的操作都是相对于当前工作表而言,如果要存取其它工作表,就必须要先切换工作表。<br>
为了方便存取其它工作表的内容,可以采用Report的扩展函数语法:首先通过GetHandle( )函数取得该工作表的句柄,然后在函数名前加句柄调用。下面是例子:<br>
<pre class='cpp'>
var handle = AF.func("GetHandle", "3"); //取得第四个工作表的句柄
var data = AF.func(handle + "GetCellData", "B5"); //取得该工作表B5单元格的内容</pre>
<br>
<i>3.2 全局函数</i><br>
Report还拥有和Treelist、Freeform完全一样的全局函数,请参见<a href="globalfunction.htm?81" target=_blank>全局函数</a>介绍。<br><br>
<br><br><br>
<script type='text/javascript' src='nstd.js'></script>
</body></html>