参考fusioncharts在sapgui中的集成Word文档下载推荐.docx
- 文档编号:21859178
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:47
- 大小:566.02KB
参考fusioncharts在sapgui中的集成Word文档下载推荐.docx
《参考fusioncharts在sapgui中的集成Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《参考fusioncharts在sapgui中的集成Word文档下载推荐.docx(47页珍藏版)》请在冰豆网上搜索。
title>
MyFirstchartusingFusionCharts-
UsingHTMLembeddingmethod-XMLfromURL<
/title>
/head>
body>
objectwidth="
400"
height="
300"
id="
Column3D"
classid="
clsid:
d27cdb6e-ae6d-11cf-96b8-0000"
codebase="
/pub/shockwave/cabs/flash/#version=8,0,0,0"
>
paramname="
movie"
value="
FusionCharts/"
/>
FlashVars"
&
dataURL=
&
chartWidth=400&
chartHeight=300
DOMId=myChartId®
isterWithJS=1&
debugMode=0"
>
quality"
high"
embedsrc="
flashVars="
width="
name="
quality="
type="
application/x-shockwave-flash"
pluginspage="
"
/object>
/body>
/html>
简单明了,省了不少脑细胞。
再看看相关的帮助文档:
WhenusingHTMLembedding,allvariablestothechartarepassedusingFlashVars.Thetablebelowlistsallsuchvariablessupported:
Variable
Description
dataURL
ThisvariabletakesthepathoftheXMLdatafile/streamasvalue.Thismethodiscalled.ItismutuallyexclusivetodataXMLvariable.
*Incaseboth&
dataURLand&
dataXMLaresettoblankornotprovided,thechartwillsearchfordefaultfileinthesamepathastheHTMLfile.
dataXML
ThisvariablepassestheXMLembeddedin<
OBEJCT>
or<
EMBED>
tag.Thismethodiscalled.ItismutuallyexclusivetodataURLvariable.
DOMId
IDforthechartusingwhichitwillberecognizedintheHTMLpage.EachchartonthepageneedstohaveauniqueID.
chartWidth
Intendedwidthforthechart(valueinpixelswithoutanypxsuffixorvalueinpercentwith%25assuffix.%25istheUrlEncodedformof%sign)
chartHeight
Intendedheightforthechart(valuesinpixelswithoutanypxsuffixorvalueinpercentwith%25assuffix.%25istheUrlEncodedformof%sign)
debugMode
WhethertostartthechartindebugmodewhichshowsaDebugWindowoverthechart.Setitto1toshowtheDebugWindow.PleaseseesectionformoredetailsonDebugMode.
registerWithJS
WhethertoregisterthechartwithJavaScript.Thisvalueshouldalwaysbesetto1togetmaximumpossibleaccesstoFusionChartsJavaScriptAPI.ButwhenusingOBJECT/EMBEDmethod,onlyminimalJavaScriptfunctionsareavailabletochart.,setDataURL,setDataXML,print,exportChartetc.)
scaleMode
Scalingoptionofthechart.Itcantakeanyvalueoutofthefour:
"
noscale"
"
exactfit"
noborder"
and"
showall"
.FusionChartsworksbestin"
noScale"
mode.
lang
(optional)Preferredlanguageforchartmessages..EN.ThepresentsupportedlanguageisEN.English.Otherlanguagescanbeaddedbyaddingtosourcecodeofchartandthencompilingit.
现在,我们清楚了FusionCharts的工作原理:
构建Flashplayer控件。
设置使用的图表对应的SWF文件。
通过Flashplayer控件的FlashVars传入相关参数。
三、在SAPGUI集成FusionCharts
清楚了工作原理,现在就可以开始在SAPGUI中实现FusionCharts的集成了。
定义FusionCharts的控件,如下:
1、建立控件类
按ABAP里边定义控件的规矩,控件必须继承CL_GUI_CONTROL。
2、定义控件属性
根据FusionCharts的参数,定义相关属性如下:
3、定义相关方法。
4、CONSTRUCTOR方法实现构建Flashplayer控件的方法,代码如下:
METHOD
constructor.
DATA
clsid(80).
DATA:
return,guitype
TYPE
i.
IF
clsid
IS
INITIAL.
NOT
activex
=
'
{D27CDB6E-AE6D-11CF-96B8-0000}'
.
ELSEIF
javabean
RAISE
error.
ELSE.
ENDIF.
CALL
super->
constructor
EXPORTING
clsid
shellstyle
shellstyle
parent
parent
lifetime
lifetime
name
name
EXCEPTIONS
OTHERS
1.
sy-subrc
NE
0.
cl_gui_cfw=>
subscribe
shellid
h_control-shellid
ref
me
ENDMETHOD.
比较眼熟吧,在FusionCharts的例子中我们就可以看出这个是Flashplayer控件的ClassID,继承CL_GUI_CONTROL后只需要修改成FlashPlayer对应的ClassID就OK了,其他的代码直接参考其他控件的构造函数。
5、实现SHOW_CHART函数,该函数负责根据类的属性对FlashPlayer进行赋值。
show_chart
fvars
string,
s
string.
dataurl
CONCATENATE
dataURL='
INTO
s.
dataXML='
dataxml
s
dataURL
OR
DOMId='
domid
chartWidth='
chartwidth
chartHeight='
chartheight
debugMode='
debugmode
registerWithJS='
registerwithjs
scaleMode='
scalemode
lang='
fvars.
call
method
call_method“实现刷新
exporting
Rewind'
p_count
SET
PROPERTY
OF
h_control-obj
Movie'
swfurl.
FlashVars'
call_method
Play'
ENDMETHOD.
四、测试
到此我们对FusionCharts的封装已经完成,建立测试程序测试一下:
REPORT
zfusionchart.
ok_code
sy-ucomm.
chart
REF
TO
zcl_gui_fusionchart.
l_container
cl_gui_custom_container.
SCREEN
0100.
MODULE
status_0100
OUTPUT.
CREATE
OBJECT
l_container
container_name
CON1'
chart
l_container.
chart->
指定图表数据文件
domid
chart1'
."
设置图标唯一名字
swfurl
指定图表采用的swf文件
show_chart."
显示图表
ENDMODULE.
其中,FusionCharts的相关swf文件放在了IIS里边,避免对每个用户都下发相关的swf文件。
内容如下:
chartcaption='
MonthlyUnitSales'
xAxisName='
Month'
yAxisName='
Units'
showValues='
0'
formatNumberScale='
showBorder='
1'
setlabel='
Jan'
value='
462'
Feb'
857'
Mar'
671'
Apr'
494'
May'
761'
Jun'
960'
Jul'
629'
Aug'
622'
Sep'
376'
Oct'
Nov'
Dec'
/chart>
运行下看看效果:
再换Bar2D方式看看效果:
OK,效果还不错。
到此我们已经完成了FusionCharts在SAPGUI中的集成,代码不到50行。
五、应用时注意问题
我们先看下FusionChartsFree下载包中有哪些内容:
SWF文件(创建图形主要靠它们了)
所有的SWF文件(共22个)都在FusionChartsFree>
Charts文件夹。
如果你需要在你的web应用里创建图形,那么就把这些SWF文件都拷到你的应用下面。
FusionChartsJavaScript文件
FusionChartsJavaScript文件放在FusionChartsFree>
JSClass文件夹。
这些文件能够帮你用一种友好的方式把图形嵌入到html页面。
示例代码
所有的代码都放在FusionChartsFree>
Code文件夹。
图形例子
我们创建了一些图形例子,放在FusionChartsFree>
Gallery文件夹。
你也可以通过文档左边的菜单SampleCharts来访问它。
文档
文档就放在FusionChartsFree>
Contents文件夹,你可以直接点击FusionChartsFree下面的来访问。
要想在SAPGUI中显示图表,有以下几个准备工作:
1.选择好你要创建的图形类型对应的SWF文件,放到指定的路径下
2.电脑中要安装Flash软件
3.XML数据文件。
FCF只接受基于XML格式的数据。
因此,你需要把你的数据转成XML格式。
为了便于测试,我们首先在浏览器中对展示图表进行测试。
要做报表,当然要有数据了。
首先我们把数据做成一个叫的XML文件(XML文件可参照测试部分的,不过图形不同,XML格式也可能不同),保存在c:
\FusionCharts\MyFirstChart文件夹路径下。
每个图形都要被放到HTML文件里才能显示,现在,我们把下面的代码保存c:
\FusionCharts\MyFirstChart\文件里。
1.<
2.
3.
My
First
FusionCharts<
4.
5.
body
bgcolor="
#ffffff"
6.
classid="
D27CDB6E-AE6D-11cf-96B8-0000"
codebase="
width="
600"
height="
500"
id="
7.
param
name="
value="
../FusionCharts/"
/>
8.
dataURL=&
chartWidth=600&
chartHeight=500"
9.
10.
embed
src="
flashVars="
chartWidth=600&
quality="
type="
pluginspage="
11.
12.<
13.<
上面的代码,其实就是一个显示flash的简单标记。
movie参数值指定我们的SWF文件,即,该参数要指定SWF文件的具体路径。
FlashVars参数值用来指定XML文件的路径以及图形的宽和高。
看到这里,如果不熟悉在网页里调用Flash的朋友,可能会有点迷惑,因为我们发现有一个embed参数,它的各个值都和param参数的值是一样的,为什么会这样呢?
其实,这是为了在不同的浏览器里都能运行Flash的一个解决办法。
IE浏览器是使用param参数来运行Flash的,而Netscape则是使用embed参数来运行Flash。
因此,为了保证我们的应用能够在大多数浏览器上运行,我们就需要加上embed参数,并且值和param完全相同。
这样我们运行该HTML文件,就能看到图表了。
测试工作完成后,我们就只要在ABAP程序中安测试的XML整理好XML,swf的路径后,参照第四部分测试调用类zcl_gui_fusionchart.,就可以实现在SAPGUI显示Fusionchart的图表了。
如果很不幸,没有在页面上看到图形,那么可能是下面的原因之一:
没有放到正确的文件夹。
2.在里,SWF的路径设置不正确。
3.没有安装FlashPlayer。
4.没有启用浏览器F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 参考 fusioncharts sapgui 中的 集成