Contrain PointAt to z-axis of object
I'm trying to use the point at method but I only want the
model to point at the target with one axis. How can I do this?
Thanks.
Have you looked at the pointAtOrientation property of 3D
objects?
Alternatively you can do some 3D mathematics, and rotate the
model by hand. To rotate your model, you can use the syntax:
myModel.rotate(vPosition, vAxis, vAngle, #world)
You'll need to work out vAxis and vAngle from the current
orientation of the model:
vPosition = myModel.worldPosition
vZAxis = myModel.getWorldTransform().zAxis -- current
vPointToPointAt = <some vector>
vDirection - vPointToPointAt - vPosition -- desired
vAxis = vZAxis.cross(vDirection)
vAngle = angleBetween(vZAxis, vDirection)
If vAxis has a magnitude of 0, but vAngle is not 0, then your
model is pointing in diametrically the opposite direction: vAngle
will be 180. Rotating your model about any axis of rotation will
make it point in the right direction, but it will probably be
tilted or upside down. You will need to choose your rotatition
vector with care to make sure that your model ends up the right way
up.
Similar Messages
-
How do i change axis label object type from label to text? (to allow wrapping)
In the example of a barChart, how does one change the LABEL type from "Label" to "Text"?
I am trying to allow for long labels to wrap (ie. multi-line labels), but the default object type of labels is "Label" (which are single-line only).
I have been researching this issue all day, and have enountered a similar situation for changing the Legend component labels where a method override is implemented in a custom itemRenderer.
But I have not been able to figure out how to do this for an Axis label.
Any help would be greatly appreciated!
JYes, thank you. I am aware of the AxisRenderer.... but I'm not sure how to implement it to change the label type from "Label" to "Text" to allow for wrapping.
I guess what I'm looking for is a good example.... -
Two universe objects on the same graph axis
I am trying to create a bar-stacked graph in the Web Intelligence document. I add \[Period\] universe object to X axis, \[Total\] object to Y axis. Then I want to add two objects to Z axis:
\[Sector\] (has values: Europe, Asia, America) and \[Status\] (has values: Active, Validating)
The problem that it makes a cartezian product between all value, so the output is:
Europe/Active
Europe/Validating
Asia/Active
Asia/Validating
America/Active
America/Validating
But, what I want is:
Europe
Asia
America
Active
Validaing
Is there any way to do this? Maybe with the help of some universe parameters, or REBean SDK...this is cross topic
-
how can I draw a coordinate axis in java3d? I want to draw a 3 lines but there's a problem with displaying it on screen.
It's only part of my code:
.... {... LineArray line = new LineArray(4,GeometryArray.COORDINATES);
line.setCoordinate( 2, new Point3f(0.0f, 0.2f, 0.0f));
shape.setGeometry(line);
root.addChild(objTrans);}....and that's ok, there's a line and everything is ok but....if I add another line
LineArray line2 = new LineArray(4,GeometryArray.COORDINATES);
line2.setCoordinate( 2, new Point3f(0.0f, 0.2f, 0.0f));
shape.setGeometry(line2);
LineArray line = new LineArray(4,GeometryArray.COORDINATES);
line.setCoordinate( 2, new Point3f(0.2f, 0.0f, 0.0f));
shape.setGeometry(line);
root.addChild(objTrans);I can see only one line :/
I don't know if I use this objects well :/. Anybody know what's wrong?
PS. I'm not good enough at Java3d (I've just started and I have to write this program to school for 2 days:/)
Thanks in advanceYou have not gone throught the Chapter2 of Java3D for Creating Geometry.
[http://java.sun.com/developer/onlineTraining/java3d/j3d_tutorial_ch2.pdf]
In the link below, there are samples , you can read those.
[http://java.sun.com/developer/onlineTraining/java3d/index.html]
* Axis.java 1.0 98/11/25
* Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved.
* Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
* modify and redistribute this software in source and binary code form,
* provided that i) this copyright notice and license appear on all copies of
* the software; and ii) Licensee does not utilize the software in a manner
* which is disparaging to Sun.
* This software is provided "AS IS," without a warranty of any kind. ALL
* EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
* IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
* LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
* OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
* LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
* INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
* CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
* OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
* This software is not designed or intended for use in on-line control of
* aircraft, air traffic, aircraft navigation or aircraft communications; or in
* the design, construction, operation or maintenance of any nuclear
* facility. Licensee represents and warrants that it will not use or
* redistribute the Software for such purposes.
* Getting Started with the Java 3D API
* written in Java 3D
* This program demonstrates:
* 1. writing a visual object class
* In this program, Axis class defines a visual object
* This particular class extends Shape3D
* See the text for a discussion.
* 2. Using LineArray to draw 3D lines.
import javax.media.j3d.*;
import javax.vecmath.*;
public class Axis extends Shape3D{
// create axis visual object
public Axis() {
this.setGeometry(createGeometry());
private Geometry createGeometry(){
// create line for X axis
IndexedLineArray axisLines = new IndexedLineArray(18, GeometryArray.COORDINATES, 30);
axisLines.setCoordinate( 0, new Point3f(-1.0f, 0.0f, 0.0f));
axisLines.setCoordinate( 1, new Point3f( 1.0f, 0.0f, 0.0f));
axisLines.setCoordinate( 2, new Point3f( 0.9f, 0.1f, 0.1f));
axisLines.setCoordinate( 3, new Point3f( 0.9f,-0.1f, 0.1f));
axisLines.setCoordinate( 4, new Point3f( 0.9f, 0.1f,-0.1f));
axisLines.setCoordinate( 5, new Point3f( 0.9f,-0.1f,-0.1f));
axisLines.setCoordinate( 6, new Point3f( 0.0f,-1.0f, 0.0f));
axisLines.setCoordinate( 7, new Point3f( 0.0f, 1.0f, 0.0f));
axisLines.setCoordinate( 8, new Point3f( 0.1f, 0.9f, 0.1f));
axisLines.setCoordinate( 9, new Point3f(-0.1f, 0.9f, 0.1f));
axisLines.setCoordinate(10, new Point3f( 0.1f, 0.9f,-0.1f));
axisLines.setCoordinate(11, new Point3f(-0.1f, 0.9f,-0.1f));
axisLines.setCoordinate(12, new Point3f( 0.0f, 0.0f,-1.0f));
axisLines.setCoordinate(13, new Point3f( 0.0f, 0.0f, 1.0f));
axisLines.setCoordinate(14, new Point3f( 0.1f, 0.1f, 0.9f));
axisLines.setCoordinate(15, new Point3f(-0.1f, 0.1f, 0.9f));
axisLines.setCoordinate(16, new Point3f( 0.1f,-0.1f, 0.9f));
axisLines.setCoordinate(17, new Point3f(-0.1f,-0.1f, 0.9f));
axisLines.setCoordinateIndex( 0, 0);
axisLines.setCoordinateIndex( 1, 1);
axisLines.setCoordinateIndex( 2, 2);
axisLines.setCoordinateIndex( 3, 1);
axisLines.setCoordinateIndex( 4, 3);
axisLines.setCoordinateIndex( 5, 1);
axisLines.setCoordinateIndex( 6, 4);
axisLines.setCoordinateIndex( 7, 1);
axisLines.setCoordinateIndex( 8, 5);
axisLines.setCoordinateIndex( 9, 1);
axisLines.setCoordinateIndex(10, 6);
axisLines.setCoordinateIndex(11, 7);
axisLines.setCoordinateIndex(12, 8);
axisLines.setCoordinateIndex(13, 7);
axisLines.setCoordinateIndex(14, 9);
axisLines.setCoordinateIndex(15, 7);
axisLines.setCoordinateIndex(16,10);
axisLines.setCoordinateIndex(17, 7);
axisLines.setCoordinateIndex(18,11);
axisLines.setCoordinateIndex(19, 7);
axisLines.setCoordinateIndex(20,12);
axisLines.setCoordinateIndex(21,13);
axisLines.setCoordinateIndex(22,14);
axisLines.setCoordinateIndex(23,13);
axisLines.setCoordinateIndex(24,15);
axisLines.setCoordinateIndex(25,13);
axisLines.setCoordinateIndex(26,16);
axisLines.setCoordinateIndex(27,13);
axisLines.setCoordinateIndex(28,17);
axisLines.setCoordinateIndex(29,13);
return axisLines;
} // end of Axis createGeometry()
} // end of class Axis -
Hello XI SDN'ers,
Can any one tell me, How to use this HandlerBean to read the Set-Cookie from the header of the SOAP response message?
Thanks & Regards,
Satish.Hi,
Handlers are important elements of the Axis framework. They are processing steps at runtime that process and forward a message. You can assemble them into processing chains like modules in the module processor.
The following modules are provided for using the Axis framework in the SOAP adapter:
● The HandlerBean module (AF_Adapters/axis/HandlerBean) calls an Axis handler.
You use the module to call the Axis handler that you want to use.
● The Adapter Framework module (AF_Adapters/axis/AFAdapterBean) converts the Axis message object to an Adapter Framework message object and the other way around.
You use the module at the boundary between message processing in the Adapter Framework and in the Axis framework.
To transfer the HTTP header parameter Set-Cookie to the XIu2019s Dynamic Configuration header called SetCookie add a module of type AF_Adapters/axis/HandlerBean to your processing sequence of the SOAP receiver Communication Channel created before. It has to be inserted just before the predefined module u201Cxiresu201D. You may choose an arbitrary name as module key.
Have a look into this and refer to last 3 settings link
http://help.sap.com/saphelp_nw04/helpdata/en/45/a4f8bbdfdc0d36e10000000a114a6b/content.htm
Regards
Aashish Sinha
PS : reward points if helpful -
Alignment off upon object placement
I just started to do a new project for a lower 3rd title. I placed a shape and opened up the 3d adjust tool. When i tried to rotate the object (along the x axis) the object wasn't aligned straight (i could see the back of the 3d circle instead of it just looking like a line as it would if i were looking straight on.) I checked both the object and the camera in the inspector and none showed any rotation. Further more when the object was rotated to what looked like 90 degrees it was actually at 80.3 degrees.
any ideas?
thanksHave you checked the camera's position? If it's off center, then that might explain it. An object will only look like a line if viewed at 90 degree rotation at the center of the frame.
Andy -
Hi
I use the GFW classes to show a chart ! I works fine! When I leave the dynpro who show the chart, I call the method CALL METHOD GP_INST->IF_GRAPHIC_PROXY~FREE.
When I call this Dynpro again It dow not show the chart not again! The Problem is that the USER can edit the chart Data in the dynpro which call the dynpro who show the chart!
What can I do that the user can edit the data? When I do not call CALL METHOD GP_INST->IF_GRAPHIC_PROXY~FREE. Than the Chart do not consider the new Data in the Chart! How I can delete teh data of a Chart ??
Thanx for help??
sicnerly
Arnehi this is the code
retval = cl_gfw=>ok.
if dc_manage is initial.
*erstellen und initallieren des Datencontainers
CREATE OBJECT dc_inst.
if sy-subrc <> 0.
clear dc_inst.
else.
dc_manage = dc_inst.
call method dc_manage->init
IMPORTING
id = my_id_at_dc
retval = retval.
if retval <> cl_gfw=>ok.
clear dc_inst.
clear dc_manage.
else.
**kann man mit Daten füllen
endif.
endif.
endif.
if retval <> cl_gfw=>ok.
call method cl_gfw=>show_msg
EXPORTING
msgno = retval.
endif.
*****ENDE Erstellen eines Datencontainers
*Dem Datencontainer mitteilen, das Änderungen der Daten der Grafik mitgeteilt werden
if not dc_manage is initial.
call method dc_manage->distribute_changes
IMPORTING
retval = retval.
if retval <> cl_gfw=>ok.
CALL METHOD cl_gfw=>show_msg
EXPORTING
msgno = retval.
endif.
endif.
*Aktivierung des Multiplexers
CALL METHOD cl_gfw_mux=>activate
IMPORTING
retval = retval.
*Überprüfen ob start des Multiplexers erfolgreich war
if retval <> cl_gfw=>ok.
CALL METHOD cl_gfw=>show_msg
EXPORTING
msgno = retval.
endif.
*Objekt Chart daten anlegen!
IF Chart_Daten IS INITIAL.
CREATE OBJECT Chart_Daten.
ENDIF.
*Daten für den Chart füllen
Loop at IT_erg_anz where selected ne 'X'.
read table it_erg into wa_erg index sy-tabix.
CALL METHOD Chart_Daten->fuellen
EXPORTING
DC_MANAGE = dc_manage
wa_data = wa_erg
IMPORTING
RETVAL = retval.
CALL METHOD Chart_Daten->fuellen_ogw
EXPORTING
DC_MANAGE = dc_manage
wa_data = wa_erg
IMPORTING
RETVAL = retval.
CALL METHOD Chart_Daten->fuellen_ugw
EXPORTING
DC_MANAGE = dc_manage
wa_data = wa_erg
IMPORTING
RETVAL = retval.
endloop.
*Container erzeugen
create object custom_container
exporting container_name = 'LINE_DIAGRAMM'.
*DEM Grafik-proxy die Attribute mitteilen
CREATE OBJECT GP_INST.
create, initialize and activate graphics proxy
CREATE OBJECT GP_INST.
CALL METHOD GP_INST->IF_GRAPHIC_PROXY~INIT
EXPORTING DC = DC_INST
PARENT = CUSTOM_CONTAINER
prod_id = cl_gui_gp_pres=>co_prod_chart
IMPORTING RETVAL = RETVAL.
IF RETVAL = CL_GFW=>OK.
set DC names
CALL METHOD GP_INST->SET_DC_NAMES
EXPORTING
OBJ_ID = 'OBJID'
DIM1 = 'X_VAL'
DIM2 = 'Y_VAL'
GRP_ID = 'GRPID'
IMPORTING RETVAL = RETVAL.
ENDIF. "// set dc names
*setzen von customizing einstellungen
set default display context
create object bundle_display exporting instance_id = 'GFWTA'.
set background color
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_bg_clr_plt_id
value = 18. " grey
gitterraster
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_visibility
value = 1.
disable lines
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_bl_style
value = 1. " no line
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_pt_alignment
value = '4'.
tell the proxy where to use the bundle
call method gp_inst->if_graphic_proxy~add_cu_bundle
exporting port = if_graphic_proxy=>co_port_diagram
bundle = bundle_display
importing retval = retval.
drawing area (used to set chart title)
create object bundle_drawing exporting instance_id = 'GFWTAS'.
set title
call method bundle_drawing->if_customizing~set
exporting attr_id = cl_cu_drawing_area=>co_title
value = uschrift.
*call method bundle_drawing->if_customizing~set
exporting attr_id = cl_cu_drawing_area=>CO_LEGEND_CONTEXT
value = 1.
tell the proxy where to use the bundle
call method gp_inst->if_graphic_proxy~add_cu_bundle
exporting port = if_graphic_proxy=>co_port_chart
bundle = bundle_drawing
importing retval = retval.
Für Chart 1***********************************************
values (group 1)
create object bundle_values1 exporting instance_id = 'GFWTA1'.
prepare display context for values
create object bundle_display exporting instance_id = 'dummy'.
set color of line and markers
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_bl_clr_plt_id
value = 1. " schwarz
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_mr_style
value = 2.
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_mr_bg_clr_plt_id
value = 1.
copy display context into values
call method bundle_values1->if_customizing~set
exporting attr_id = cl_cu_values=>co_curve_context
value = bundle_display.
set chart type
call method bundle_values1->if_customizing~set
exporting attr_id = cl_cu_values=>co_style
value = 34. " xy scatter
tell the proxy where to use the bundle
call method gp_inst->if_graphic_proxy~add_cu_bundle
exporting port = if_graphic_proxy=>co_port_chart
key = 'Mittelwert'
bundle = bundle_values1
importing retval = retval.
Für unterer Grenzertwert***********************************************
values (group 1)
create object bundle_values1 exporting instance_id = 'GFWTA2'.
prepare display context for values
create object bundle_display exporting instance_id = 'dummy'.
set color of line and markers
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_bl_clr_plt_id
value = 3. " rot
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_mr_style
value = 0.
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_mr_bg_clr_plt_id
value = 2.
copy display context into values
call method bundle_values1->if_customizing~set
exporting attr_id = cl_cu_values=>co_curve_context
value = bundle_display.
set chart type
call method bundle_values1->if_customizing~set
exporting attr_id = cl_cu_values=>co_style
value = 34. " xy scatter
tell the proxy where to use the bundle
call method gp_inst->if_graphic_proxy~add_cu_bundle
exporting port = if_graphic_proxy=>co_port_chart
key = 'u.Grenzwert' "Name
bundle = bundle_values1
importing retval = retval.
*Für oberer Grenzertwert***********************************************
values (group 1)
create object bundle_values1 exporting instance_id = 'GFWTA3'.
prepare display context for values
create object bundle_display exporting instance_id = 'dummy'.
set color of line and markers
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_bl_clr_plt_id
value = 7. " schwarz
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_mr_style
value = 0.
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_mr_bg_clr_plt_id
value = 2.
copy display context into values
call method bundle_values1->if_customizing~set
exporting attr_id = cl_cu_values=>co_curve_context
value = bundle_display.
set chart type
call method bundle_values1->if_customizing~set
exporting attr_id = cl_cu_values=>co_style
value = 34. " xy scatter
tell the proxy where to use the bundle
call method gp_inst->if_graphic_proxy~add_cu_bundle
exporting port = if_graphic_proxy=>co_port_chart
key = 'o.Grenzwert' "Name
bundle = bundle_values1
importing retval = retval.
****X-ACHSE
primary x-axis
create object bundle_axis_x exporting instance_id = 'GFWTA_X'.
prepare display context for axis title
create object bundle_display exporting instance_id = 'dummy'.
disable axis title
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_bl_style
value = 1.
call method bundle_axis_x->if_customizing~set
exporting attr_id = cl_cu_axis=>co_title
value = 'Zähler'.
enable scrollbar of axis and set view port
call method bundle_axis_x->if_customizing~set
exporting attr_id = cl_cu_axis=>CO_VISIBLE_CATEGORIES_AUTO
value = gfw_false.
call method bundle_axis_x->if_customizing~set
exporting attr_id = cl_cu_axis=>CO_VISIBLE_CATEGORIES
value = 7.
call method bundle_axis_x->if_customizing~set
exporting attr_id = cl_cu_axis=>CO_START_CATEGORY
value = 1.
copy display context into axis
call method bundle_axis_x->if_customizing~set
exporting attr_id = cl_cu_axis=>co_title_context
value = bundle_display.
tell the proxy where to use the bundle
call method gp_inst->if_graphic_proxy~add_cu_bundle
exporting port = if_graphic_proxy=>co_port_chart_x_prim_axis
bundle = bundle_axis_x
importing retval = retval.
***X-ACHSE GRID
create object bundle_grid_x exporting instance_id = 'GFWTA_X_GRID'.
prepare display context for grid
create object bundle_display exporting instance_id = 'dummy'.
minor grid lines should be invisible
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_visibility
value = gfw_false.
copy display context into grid (for minor lines)
call method bundle_grid_x->if_customizing~set
exporting attr_id = cl_cu_grid=>co_minor_context
value = bundle_display.
copy display context into grid (for major lines)
call method bundle_grid_x->if_customizing~set
exporting attr_id = cl_cu_grid=>co_MAJOR_context
value = bundle_display.
tell the proxy where to use the bundle
call method gp_inst->if_graphic_proxy~add_cu_bundle
exporting port = if_graphic_proxy=>co_port_chart_x_prim_axis
bundle = bundle_grid_x
importing retval = retval.
***Y-ACHSE GRID
create object bundle_grid_y exporting instance_id = 'GFWTAYGRID'.
prepare display context for grid
create object bundle_display exporting instance_id = 'dummy'.
minor grid lines should be invisible
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_visibility
value = gfw_false.
copy display context into grid (for minor lines)
call method bundle_grid_y->if_customizing~set
exporting attr_id = cl_cu_grid=>co_minor_context
value = bundle_display.
copy display context into grid (for major lines)
call method bundle_grid_y->if_customizing~set
exporting attr_id = cl_cu_grid=>co_MAJOR_context
value = bundle_display.
tell the proxy where to use the bundle
call method gp_inst->if_graphic_proxy~add_cu_bundle
exporting port = if_graphic_proxy=>co_port_chart_y_prim_axis
bundle = bundle_grid_y
importing retval = retval.
*Y_ACHSE----
primary y-axis
create object bundle_axis_y exporting instance_id = 'GFWTA_Y'.
create object bundle_display exporting instance_id = 'dummy'.
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_visibility
value = gfw_false.
*min range title
CALL METHOD BUNDLE_AXIS_Y->IF_CUSTOMIZING~SET
EXPORTING ATTR_ID = CL_CU_AXIS=>CO_MIN_RANGE_TITLE
VALUE = 'MIN'.
CALL METHOD BUNDLE_AXIS_Y->IF_CUSTOMIZING~SET
EXPORTING ATTR_ID = CL_CU_AXIS=>CO_MIN_RANGE_VALUE
VALUE = 400.
CALL METHOD BUNDLE_AXIS_Y->IF_CUSTOMIZING~SET
EXPORTING ATTR_ID = CL_CU_AXIS=>CO_RANGE_CONTEXT
VALUE = BUNDLE_DISPLAY.
prepare display context for axis title
create object bundle_display exporting instance_id = 'dummy'.
axis title
call method bundle_display->if_customizing~set
exporting attr_id = cl_cu_display_context=>co_bl_style
value = 1.
call method bundle_axis_y->if_customizing~set
exporting attr_id = cl_cu_axis=>co_title
value = wa_erg_anz-prueflosa.
copy display context into axis
call method bundle_axis_y->if_customizing~set
exporting attr_id = cl_cu_axis=>co_title_context
value = bundle_display.
CALL METHOD GP_INST->IF_GRAPHIC_PROXY~ADD_CU_BUNDLE
EXPORTING PORT = IF_GRAPHIC_PROXY=>CO_PORT_CHART_Y_PRIM_AXIS
BUNDLE = BUNDLE_AXIS_Y
IMPORTING RETVAL = RETVAL.
CALL METHOD GP_INST->FREE.
IF RETVAL <> CL_GFW=>OK.
CALL METHOD GP_INST->IF_GRAPHIC_PROXY~FREE. "//ignore return value(keep 1st)
CALL METHOD dc_manage->FREE.
CLEAR GP_INST.
free gp_inst.
ELSE.
CALL METHOD GP_INST->IF_GRAPHIC_PROXY~ACTIVATE
IMPORTING RETVAL = RETVAL.
CALL METHOD dc_manage->FREE.
ENDIF.
IF RETVAL <> CL_GFW=>OK.
CALL METHOD CL_GFW=>SHOW_MSG EXPORTING MSGNO = RETVAL.
free gp_inst.
ENDIF.
*CALL METHOD GP_INST->if_dc_access~del_object.
abt user command this code will be executed:
when 'BACK'.
CALL METHOD GP_INST->IF_GRAPHIC_PROXY~FREE. "//ignore return value(keep 1st)
CALL METHOD dc_manage->FREE.
CLEAR GP_INST.
free gp_inst.
CLEAR dc_manage.
free dc_manage.
leave to screen 0. -
Is it possible to create a hyperlink in a WebI chart?
Hi,
I am trying to create a grouped bar chart in WebI (BO XI 3.1) in which clicking on a column should open a different WebI report, passing the selected values as parameters to the report. I have tried to create a hyperlink on the x-axis dimension object, but even when the "read content as hyperlink" option is checked, the axis labels still show the "<a href=http .... " text instead of the hyperlink interpretation and the hyperlink does not work.
When the same link is applied to a table, it works fine.
Any suggestions are appreciated.
Thanks,
SanderHi Praven,
Thanks for your reply. However, the problem is not in creating a hyperlink in a cell. As I mentioned in the initial question, the hyperlink works perfectly when part of a table. It will show the other report with the dimension objects filtered as you would expect.
The table holds three columns:
- Shoporder
- Operation
- Count
I have set the hyperlink on the operation dimension and when a row is clicked, the target report is opened for that operation and that shoporder.
The problem is that this hyperlink functionality seems not available (or not working correctly) in a chart.
Thanks,
Sander -
Mapping Java Types to XML Types
Hi, I have a small doubt in web services,
1) how a java data type can match with xml data type in wsdl,
2) how and where the java program can find the matching java
data type to xml data type and vice versa
3) whether any mechanism is available for this data conversion?
4) where can i find that one?
Please advice me
Regards
Marimuthu.NHi Marimuthu.N,
My answers for your question, Kindly let me know if you need some more inputs.
+1) how a java data type can match with xml data type in wsdl,+
In SOAP 1.1 you have the following data types which is in XSD(XML Schema Definition), the same data type is also available in Java. For example (string, normalizedstring in xml is available as java.lang.String)
The complete list can be found in the table below.
XSD to Java Mapping.
XSD Type--------------------------------Java Type
base64Binary----------------------------byte[]
hexBinary---------------------------------byte[]
boolean------------------------------------Boolean
byte-----------------------------------------Byte
dateTime----------------------------------java.util.Calendar
date-----------------------------------------java.util.Calendar
time-----------------------------------------java.util.Calendar
decimal------------------------------------java.math.BigDecimal
double-------------------------------------Double
float-----------------------------------------Float
hexBinary---------------------------------byte[]
int--------------------------------------------Int
unsignedShort---------------------------Int
integer--------------------------------------java.math.BigInteger
long------------------------------------------Long
unsignedInt-------------------------------Long
QName-------------------------------------javax.xml.namespace.QName
short----------------------------------------Short
unsignedByte---------------------------Short
string---------------------------------------java.lang.String
anySimpleType-------------------------java.lang.String
+2) how and where the java program can find the matching java+
data type to xml data type and vice versa
Here is my WSDL which has a method getHello --> Pass Input as String --> Get Response as String.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://zackria.googlepages.com" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://zackria.googlepages.com" xmlns:intf="http://zackria.googlepages.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->
<wsdl:types>
<schema elementFormDefault="qualified" targetNamespace="http://zackria.googlepages.com" xmlns="http://www.w3.org/2001/XMLSchema">
<element name="getHello">
<complexType>
<sequence>
<element name="s" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getHelloResponse">
<complexType>
<sequence>
<element name="getHelloReturn" type="xsd:string"/>
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="getHelloResponse">
<wsdl:part element="impl:getHelloResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="getHelloRequest">
<wsdl:part element="impl:getHello" name="parameters"/>
</wsdl:message>
<wsdl:portType name="Test">
<wsdl:operation name="getHello">
<wsdl:input message="impl:getHelloRequest" name="getHelloRequest"/>
<wsdl:output message="impl:getHelloResponse" name="getHelloResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TestSoapBinding" type="impl:Test">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getHello">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getHelloRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getHelloResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TestService">
<wsdl:port binding="impl:TestSoapBinding" name="Test">
<wsdlsoap:address location="http://localhost:8080/TestWebService/services/Test"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>I use apache axis for the client side code. I also suggest to start using this to get quickly into SOA(Service Oriented Architecture)
package com.googlepages.zackria;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
* TestClient for Webservice
* @author $author$Mohammed Zackria
* @version $Revision$1.00
public class TestClient {
* main method
* @param args pass nothing as far now
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8080/TestWebService/services/Test";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://zackria.googlepages.com", "getHello"));
//String Conversion
String ret = (String) call.invoke(new Object[] { "Zack" });
System.out.println("Sent 'Zack', got '" + ret + "'");
} catch (Exception e) {
System.err.println(e.toString());
}+3) whether any mechanism is available for this data conversion?+
Check the above code which has the following portion
//String Conversion
String ret = (String) call.invoke(new Object[] { "Zack" });
By default APACHE Axis returns Object Array which can be Casted to your WSDL defined data type.
+4) where can i find that one?+
[Eclipse Webservice|http://www.eclipse.org/webtools/jst/components/ws/1.5/tutorials/BottomUpWebService/BottomUpWebService.html]
Hope this helps out, Kindly Let me know if you need some more or if i have not answered your question.
Regards,
Zack
Edited by: zack on Nov 22, 2008 1:47 PM
Edited by: zack on Nov 22, 2008 1:49 PM -
Hi,
I intend to create a custom policy step for OWSM.
In the execute method of my step (that extends AbstractStep) I want to set the Response Message using the setResponseMessage() method. According to the Extensibility Guide, this method should be passed a com.cfluent.ccore.message.SOAPMessage object as parameter.
Basically, the code looks something like this:
public IResult execute(IMessageContext messageContext) throws Fault {
MessageContext msgCtxt = (MessageContext)messageContext;
Result result = new Result();
msgCtxt.setResponseMessage(msgCtxt.getRequestMessage());
result.setStatus(IResult.SUCCEEDED);
return result;
At compile time however, JDeveloper throws the following error:
SOAPMessage not found in class nl.amis.soa.CustomStep
and points to the line
msgCtxt.setResponseMessage(msgCtxt.getRequestMessage());
Should I use AXIS SOAP objects (knowing OWSM is based on AXIS or uses it)? Or a MessageFactory? Or ... ?
Any tips and preferably a code sample is much appreciated!
Thanks, SjoerdHi Sjoerd ,
Looks like documentation error. Are you importing the om.cfluent.ccore.message.SOAPMessage class? Try compiling without the import. I was able to compile your code with no issues. All I have is coresv-4.0.jar added to my jDev project.
FYI MessageContext.get/setRequestMessage() really takes javax.xml.soap.SOAPMessage as parameter.
Here is the code I can compile:
package com.junk.wsm;
import com.cfluent.pipelineengine.container.MessageContext;
import com.cfluent.policysteps.sdk.AbstractStep;
import com.cfluent.policysteps.sdk.IMessageContext;
import com.cfluent.policysteps.sdk.IResult;
import com.cfluent.policysteps.sdk.Result;
public class junkStep extends AbstractStep {
public junkStep() {
public IResult execute(IMessageContext messageContext) {
MessageContext msgCtxt = (MessageContext)messageContext;
Result result = new Result();
msgCtxt.setResponseMessage(msgCtxt.getRequestMessage());
result.setStatus(IResult.SUCCEEDED);
return result;
Regards,
Rajesh -
Unable to deploy Webservice through NWDI
I have created a DC for Webservice and after activate the DC
able to view the Webservice at Visual Administration>server>services-->deploy -->application , and the status of the webservcie was started but the Webservice does not exist in WebServiceNavigator ((http://<hostname>:<portno>/index.html)
and click on WebserviceNavigator).
Please find the Default Trace log
java.rmi.RemoteException: Error in getting status of application WEB SERVICE PORTS:
/AdminPartySrvc/AdminPartySrvc
- webservices : Application WEB SERVICE PORTS:
/AdminPartySrvc~AdminPartySrvc
- webservices is not deployed on cluster element Server 0 0_87195 and it is not possible to get its status.
at com.sap.engine.services.deploy.server.DeployServiceImpl.getApplicationStatus(DeployServiceImpl.java:1370)
at com.sap.engine.services.deploy.server.DeployServiceImpl.getApplicationStatus(DeployServiceImpl.java:1387)
at com.sap.engine.services.deploy.server.DeployRuntimeControlImpl.getApplicationStatus(DeployRuntimeControlImpl.java:409)
at sun.reflect.GeneratedMethodAccessor502.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.sap.pj.jmx.introspect.DefaultMBeanInvoker.invoke(DefaultMBeanInvoker.java:58)
at com.sap.pj.jmx.mbeaninfo.AdditionalInfoProviderMBean.invoke(AdditionalInfoProviderMBean.java:289)
at com.sap.pj.jmx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:944)
at com.sap.pj.jmx.server.interceptor.MBeanServerWrapperInterceptor.invoke(MBeanServerWrapperInterceptor.java:288)
at com.sap.engine.services.jmx.CompletionInterceptor.invoke(CompletionInterceptor.java:409)
at com.sap.pj.jmx.server.interceptor.BasicMBeanServerInterceptor.invoke(BasicMBeanServerInterceptor.java:277)
at com.sap.jmx.provider.ProviderInterceptor.invoke(ProviderInterceptor.java:258)
at com.sap.engine.services.jmx.RedirectInterceptor.invoke(RedirectInterceptor.java:340)
at com.sap.pj.jmx.server.interceptor.MBeanServerInterceptorChain.invoke(MBeanServerInterceptorChain.java:330)
at com.sap.engine.services.jmx.MBeanServerSecurityWrapper.invoke(MBeanServerSecurityWrapper.java:287)
at com.sap.engine.services.jmx.MBeanServerInvoker.invokeMbs(MBeanServerInvoker.java:131)
at com.sap.engine.services.jmx.ClusterInterceptor.invokeMbs(ClusterInterceptor.java:212)
at com.sap.engine.services.jmx.ClusterInterceptor.invoke(ClusterInterceptor.java:766)
at com.sap.engine.services.jmx.MBeanServerInterceptorInvoker.invokeMbs(MBeanServerInterceptorInvoker.java:102)
at com.sap.engine.services.jmx.connector.p4.P4ConnectorServerImpl.invokeMbs(P4ConnectorServerImpl.java:61)
at com.sap.engine.services.jmx.connector.p4.P4ConnectorServerImplp4_Skel.dispatch(P4ConnectorServerImplp4_Skel.java:64)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)Friends,
I looked at the javadocs for axis and came to know the following points
bq. quote: \\ ----- \\ Gets the axis configuration object by loading the repository. The order of initialization is according the the following precedence: \\ If the parameter axis2.repository.path is present, this folder is used as the location to the repository. \\ Otherwise, if the parameter axis2.repository.url is present, the URL is used as the location to the repository. \\ Otherwise, when both of the above init parameters are not present, the web applications WEB-INF folder is used as the folder for the repository -----
When I have deployed the application in weblogic 9.2 the directory structure is as follows
bq. code: \\ ----- \\ {noformat}domain-name \\ |- servers \\ |-Trac \\ |- data \\ |- logs \\ |- security \\ |- stage \\ |- tmp \\ |- .internal \\ |- WLinternal \\ |- WLuser \\ |- Trac \\ |- ptntnw \\ |- public \\ |- war \\ |- axis2-web \\ |- META-INF \\ |- WEB-INF \\ |- classes \\ |- conf \\ |- modules \\ |- services{noformat} \\ -----
conf folder has axis2.xml and services folder has all the services I had deployed. Now if I mention absolute path in web.xml for axis2.xml.path and absolute path for axis2.repository.path then everything works fine.. I am able to see all the webservices I have deployed when I hit the above url.
Can anyone tell me how can I specify the relative path? If I dont specify any init param tag in web.xml, still it doesnt work.
Can anyone please help me ?
Thanks
Rohit.
Edited by: Rohit_India on Dec 11, 2008 10:02 PM -
I am trying to convert latitude and longitude into UTM coordinates.
I am trying to convert latitude and longitude into UTM coordinates. can sombody please help
Hi....I am 'anu' from india.
I want to draw 3D plot of aircraft trajetory by using the latitude,longittude and altitude of aircraft is it possible with labview8.5. If you have any similar VI pls share. And is it possible to define a 3D object like aircraft, 2 axis moving objects?
Thanks in Advance -
Hi,
In motion 3, I have to simple objects in a 3d group and then I added a camera and a light.
I made sure my 3d overlays was checked on, and the 3d scene icons was checked on and the 3d grid and compass were checked on as well. When I click on a view in the compass say top view, or right view I can't see the added camera, can't see the added light I can't even see the lines of my objects either. I can see the grid, and the compass but no scene icons.
help, please!
thanksyes and yes. Nada. I have plenty of room on my monitor to fit the window. When select the camera in the layers pallette and press F, to frame the camera, Motion zooms in to some point displaying nothing at all but the grid.
The only thing that I can see are grid, and the red, green and blue lines representing the x,y, and z axis'. I see the objects themselves but ONLY if they are not perpendicular to an axis (the objects are simple 2d illustrations, a clock and a pair of scissors). If they are perpendicular to an axis in a view, say the top view, all see are the colored axis lines and the grid. -
Graphical representation of report
hi ..
How do we provide graphical representation of report output.Hi
1st example
report GRAPHICS_GUI_CE_DEMO.
global data
data: G_CE_CONTAINER type ref to CL_GUI_CUSTOM_CONTAINER.
data: G_CE_NEW_CONTAINER type ref to CL_GUI_CUSTOM_CONTAINER.
data: G_CE_VIEWER type ref to CL_GUI_CHART_ENGINE.
data: G_CE_VIEWER_NEW type ref to CL_GUI_CHART_ENGINE.
data: G_IXML type ref to IF_IXML.
data: G_IXML_SF type ref to IF_IXML_STREAM_FACTORY.
data: G_DESIGN_MODE type C.
data: G_VALUE_CHANGE type C.
data: G_SAVE_OKCODE like SY-UCOMM.
dynpro data
data: OKCODE like SY-UCOMM,
GT_SFLIGHT type table of SFLIGHT,
G_REPID like SY-REPID,
G_MAX type I value 100,
MYCONTAINER type SCRFNAME value 'NEW_CONTAINER',
reference to custom container: neccessary to bind ALV Control
CUSTOM_CONTAINER type ref to CL_GUI_CUSTOM_CONTAINER,
GRID1 type ref to CL_GUI_ALV_GRID.
'x_save' contains a flag to control which kind of a layout the user
can save (see below).
'gs_layout' identifies a layout. It must contain
at least the report-id.
§ 1.Declare a structure of type DISVARIANT to identify a layout
and a variable to define the saving options for users.
data: X_SAVE, "for Parameter I_SAVE
GS_LAYOUT type DISVARIANT. "for parameter IS_VARIANT
event handler
class LCL_CE_VIEWER_EH definition.
public section.
methods ON_CLICK for event CLICK of CL_GUI_CHART_ENGINE
importing
ELEMENT SERIES POINT.
methods ON_VALUE_CHANGE for event VALUE_CHANGE of
CL_GUI_CHART_ENGINE
importing
SERIES POINT VALUE.
methods ON_PROPERTY_CHANGE for event PROPERTY_CHANGE of
CL_GUI_CHART_ENGINE
importing
ELEMENT NAME VALUE.
endclass. "lcl_ce_viewer_eh DEFINITION
data: G_CE_VIEWER_EH type ref to LCL_CE_VIEWER_EH.
data: G_CE_VIEWER_EH_NEW type ref to LCL_CE_VIEWER_EH.
entry point
start-of-selection.
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
start-of-selection.
select * from SFLIGHT into table GT_SFLIGHT up to G_MAX rows.
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
clear GS_LAYOUT.
create global objects
G_IXML = CL_IXML=>CREATE( ).
G_IXML_SF = G_IXML->CREATE_STREAM_FACTORY( ).
G_REPID = SY-REPID.
§ 2.At least field REPORT of this structure has to be filled!
GS_LAYOUT-REPORT = G_REPID.
X_SAVE = 'A'. "The user may save all types of a layout
call screen '100'.
ENDREPORT GRAPHICS_GUI_CE_DEMO.
*& Module STATUS_0100 OUTPUT
text
module STATUS_0100 output.
data: L_IXML_DATA_DOC type ref to IF_IXML_DOCUMENT,
L_IXML_CUSTOM_DOC type ref to IF_IXML_DOCUMENT,
L_OSTREAM type ref to IF_IXML_OSTREAM,
L_XSTR type XSTRING.
set pf-status '100'.
if G_CE_CONTAINER is initial.
create object G_CE_CONTAINER
exporting
CONTAINER_NAME = 'CONTAINER'.
create object G_CE_VIEWER
exporting
PARENT = G_CE_CONTAINER.
create object G_CE_VIEWER_EH.
set handler G_CE_VIEWER_EH->ON_CLICK for G_CE_VIEWER.
set handler G_CE_VIEWER_EH->ON_VALUE_CHANGE for G_CE_VIEWER.
set handler G_CE_VIEWER_EH->ON_PROPERTY_CHANGE for G_CE_VIEWER.
perform CREATE_DATA_DEMO using L_IXML_DATA_DOC.
L_OSTREAM = G_IXML_SF->CREATE_OSTREAM_XSTRING( L_XSTR ).
call method L_IXML_DATA_DOC->RENDER
exporting
OSTREAM = L_OSTREAM.
G_CE_VIEWER->SET_DATA( XDATA = L_XSTR ).
clear L_XSTR.
perform CREATE_CUSTOM_DEMO using L_IXML_CUSTOM_DOC.
L_OSTREAM = G_IXML_SF->CREATE_OSTREAM_XSTRING( L_XSTR ).
call method L_IXML_CUSTOM_DOC->RENDER
exporting
OSTREAM = L_OSTREAM.
G_CE_VIEWER->SET_CUSTOMIZING( XDATA = L_XSTR ).
endif.
call method G_CE_VIEWER->RENDER.
if CUSTOM_CONTAINER is initial.
create a custom container control for our ALV Control
create object CUSTOM_CONTAINER
exporting
CONTAINER_NAME = MYCONTAINER
exceptions
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.
if SY-SUBRC ne 0.
add your handling, for example
call function 'POPUP_TO_INFORM'
exporting
TITEL = G_REPID
TXT2 = SY-SUBRC
TXT1 = 'The control could not be created'(510).
endif.
create object GRID1
exporting I_PARENT = CUSTOM_CONTAINER.
§ 4.Transfer your structure and your variable using parameters
IS_VARIANT and I_SAVE of method set_table_for_first_display.
call method GRID1->SET_TABLE_FOR_FIRST_DISPLAY
exporting
I_STRUCTURE_NAME = 'SFLIGHT'
IS_VARIANT = GS_LAYOUT "&see below
I_SAVE = X_SAVE "&see below
I_DEFAULT = 'X'
changing
IT_OUTTAB = GT_SFLIGHT.
& If you leave out the these parameters, the menu beneath
the layout icon disappears.
endif.
endmodule. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
text
module USER_COMMAND_0100 input.
G_SAVE_OKCODE = OKCODE.
clear OKCODE.
case G_SAVE_OKCODE.
when 'DESIGN'.
perform TOGGLE_DESIGN_MODE.
when 'VALUE'.
perform TOGGLE_VALUE_CHANGE.
when 'SAVE'.
perform SAVE_CUSTOMIZING.
when 'PRINT'.
perform PRINT.
when 'EXIT'.
leave program.
when 'BACK'.
leave program.
endcase.
endmodule. " USER_COMMAND_0100 INPUT
*& IMPLEMENTATION
text
class CL_ABAP_CHAR_UTILITIES definition load.
*& Form create_data_demo
text
form CREATE_DATA_DEMO using P_IXML_DOC type ref to IF_IXML_DOCUMENT.
data: L_SIMPLECHARTDATA type ref to IF_IXML_ELEMENT,
L_CATEGORIES type ref to IF_IXML_ELEMENT,
L_SERIES type ref to IF_IXML_ELEMENT,
L_ELEMENT type ref to IF_IXML_ELEMENT,
L_ENCODING type ref to IF_IXML_ENCODING.
P_IXML_DOC = G_IXML->CREATE_DOCUMENT( ).
L_ENCODING = G_IXML->CREATE_ENCODING(
BYTE_ORDER = IF_IXML_ENCODING=>CO_LITTLE_ENDIAN
CHARACTER_SET = 'utf-8' ).
P_IXML_DOC->SET_ENCODING( L_ENCODING ).
L_SIMPLECHARTDATA = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'SimpleChartData' PARENT = P_IXML_DOC ).
L_CATEGORIES = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'Categories' PARENT = L_SIMPLECHARTDATA ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'C' PARENT = L_CATEGORIES ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '1st quarter' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'C' PARENT = L_CATEGORIES ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '2nd quarter' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'C' PARENT = L_CATEGORIES ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '3rd quarter' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'C' PARENT = L_CATEGORIES ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '4th quarter' ).
L_SERIES = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'Series' PARENT = L_SIMPLECHARTDATA ).
L_SERIES->SET_ATTRIBUTE( NAME = 'label' VALUE = 'Coffee' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'S' PARENT = L_SERIES ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '94' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'S' PARENT = L_SERIES ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '110' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'S' PARENT = L_SERIES ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '139' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'S' PARENT = L_SERIES ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '192' ).
L_SERIES = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'Series' PARENT = L_SIMPLECHARTDATA ).
L_SERIES->SET_ATTRIBUTE( NAME = 'label' VALUE = 'Espresso' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'S' PARENT = L_SERIES ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '35' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'S' PARENT = L_SERIES ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '39' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'S' PARENT = L_SERIES ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '38' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'S' PARENT = L_SERIES ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '59' ).
endform. " create_data_demo
*& Form create_custom_demo
text
form CREATE_CUSTOM_DEMO using P_IXML_DOC type ref to IF_IXML_DOCUMENT.
data: L_ROOT type ref to IF_IXML_ELEMENT,
L_GLOBALSETTINGS type ref to IF_IXML_ELEMENT,
L_DEFAULT type ref to IF_IXML_ELEMENT,
L_ELEMENTS type ref to IF_IXML_ELEMENT,
L_CHARTELEMENTS type ref to IF_IXML_ELEMENT,
L_TITLE type ref to IF_IXML_ELEMENT,
L_ELEMENT type ref to IF_IXML_ELEMENT,
L_ENCODING type ref to IF_IXML_ENCODING.
P_IXML_DOC = G_IXML->CREATE_DOCUMENT( ).
L_ENCODING = G_IXML->CREATE_ENCODING(
BYTE_ORDER = IF_IXML_ENCODING=>CO_LITTLE_ENDIAN
CHARACTER_SET = 'utf-8' ).
P_IXML_DOC->SET_ENCODING( L_ENCODING ).
L_ROOT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'SAPChartCustomizing' PARENT = P_IXML_DOC ).
L_ROOT->SET_ATTRIBUTE( NAME = 'version' VALUE = '1.1' ).
L_GLOBALSETTINGS = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'GlobalSettings' PARENT = L_ROOT ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'FileType' PARENT = L_GLOBALSETTINGS ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( 'PNG' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'Dimension' PARENT = L_GLOBALSETTINGS ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( 'PseudoThree' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'Width' PARENT = L_GLOBALSETTINGS ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '640' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'Height' PARENT = L_GLOBALSETTINGS ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( '360' ).
L_DEFAULT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'Defaults' PARENT = L_GLOBALSETTINGS ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'FontFamily' PARENT = L_DEFAULT ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( 'Arial' ).
L_ELEMENTS = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'Elements' PARENT = L_ROOT ).
L_CHARTELEMENTS = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'ChartElements' PARENT = L_ELEMENTS ).
L_TITLE = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'Title' PARENT = L_CHARTELEMENTS ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'Extension' PARENT = L_TITLE ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( 'href="sapevent:onclick?Title"' ).
L_ELEMENT = P_IXML_DOC->CREATE_SIMPLE_ELEMENT(
NAME = 'Caption' PARENT = L_TITLE ).
L_ELEMENT->IF_IXML_NODE~SET_VALUE( 'Caffeine Consumption' ).
endform. " create_custom_demo
*& Form toggle_design_mode
text
form TOGGLE_DESIGN_MODE .
data: L_WIN_CHART type ref to CL_GUI_CHART_ENGINE_WIN.
catch system-exceptions MOVE_CAST_ERROR = 1.
L_WIN_CHART ?= G_CE_VIEWER->GET_CONTROL( ).
endcatch.
if SY-SUBRC is initial.
if G_DESIGN_MODE is initial.
G_DESIGN_MODE = 'X'.
else.
G_DESIGN_MODE = ' '.
endif.
L_WIN_CHART->SET_DESIGN_MODE( FLAG = G_DESIGN_MODE EVENT = 'X' ).
L_WIN_CHART->RESTRICT_CHART_TYPES( CHARTTYPES = 'Columns|Lines' ).
L_WIN_CHART->RESTRICT_PROPERTY_EVENTS( EVENTS = 'ChartType' ).
endif.
endform. " toggle_design_mode
*& Form toggle_value_change
text
form TOGGLE_VALUE_CHANGE .
data: L_WIN_CHART type ref to CL_GUI_CHART_ENGINE_WIN.
catch system-exceptions MOVE_CAST_ERROR = 1.
L_WIN_CHART ?= G_CE_VIEWER->GET_CONTROL( ).
endcatch.
if SY-SUBRC is initial.
if G_VALUE_CHANGE is initial.
G_VALUE_CHANGE = 'X'.
L_WIN_CHART->ENABLE_VALUE_CHANGE( ).
else.
G_VALUE_CHANGE = ' '.
L_WIN_CHART->DISABLE_VALUE_CHANGE( ).
endif.
endif.
endform. " toggle_value_change
*& Form save_customizing
text
form SAVE_CUSTOMIZING .
data: L_XML_CUSTOMIZING type W3HTMLTABTYPE,
L_WIN_CHART type ref to CL_GUI_CHART_ENGINE_WIN,
L_FILENAME type STRING,
L_FILEPATH type STRING,
L_FILESIZE type I,
L_PATH type STRING.
catch system-exceptions MOVE_CAST_ERROR = 1.
L_WIN_CHART ?= G_CE_VIEWER->GET_CONTROL( ).
endcatch.
if SY-SUBRC is initial.
L_WIN_CHART->GET_CUSTOMIZING(
importing
DATA_TABLE = L_XML_CUSTOMIZING
describe table L_XML_CUSTOMIZING lines L_FILESIZE.
multiply L_FILESIZE by 255.
L_FILENAME = 'customizing.xml'.
call method CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
exporting
DEFAULT_FILE_NAME = L_FILENAME
changing
FILENAME = L_FILENAME
PATH = L_PATH
FULLPATH = L_FILEPATH.
if not L_FILEPATH is initial.
call method CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
exporting
FILETYPE = 'BIN'
FILENAME = L_FILEPATH
BIN_FILESIZE = L_FILESIZE
changing
DATA_TAB = L_XML_CUSTOMIZING
exceptions
FILE_WRITE_ERROR = 1
others = 22.
endif.
endif.
endform. " save_customizing
*& Form print
text
form PRINT .
data: L_WIN_CHART type ref to CL_GUI_CHART_ENGINE_WIN,
L_S_PRINT_PARAMETERS type PRI_PARAMS.
call function 'GET_PRINT_PARAMETERS'
exporting
DESTINATION = 'LOCL'
MODE = 'CURRENT'
NO_DIALOG = ''
importing
OUT_PARAMETERS = L_S_PRINT_PARAMETERS
VALID = L_VALID
exceptions
ARCHIVE_INFO_NOT_FOUND = 1
INVALID_PRINT_PARAMS = 2
INVALID_ARCHIVE_PARAMS = 3
others = 4.
if SY-SUBRC <> 0.
BREAK USCGXS22.
endif.
catch system-exceptions MOVE_CAST_ERROR = 1.
L_WIN_CHART ?= G_CE_VIEWER->GET_CONTROL( ).
endcatch.
if SY-SUBRC is initial.
new-page print on parameters L_S_PRINT_PARAMETERS no dialog.
L_WIN_CHART->PRINT( ).
new-page print off.
endif.
endform. " print
*& Clas lcl_ce_viewer_eh
text
class LCL_CE_VIEWER_EH implementation.
method ON_CLICK.
data: L_MSG type STRING,
L_SERIES type STRING,
L_POINT type STRING.
L_SERIES = SERIES.
L_POINT = POINT.
concatenate 'Element clicked:'(M01) ELEMENT
'Series:'(T01) L_SERIES
'Point:'(T02) L_POINT
into L_MSG separated by SPACE.
message L_MSG type 'S'.
endmethod. "on_click
method ON_VALUE_CHANGE.
data: L_MSG type STRING,
L_SERIES type STRING,
L_POINT type STRING,
L_VALUE type STRING.
L_SERIES = SERIES.
L_POINT = POINT.
L_VALUE = VALUE.
concatenate 'Value changed:'(M02)
'Series:'(T01) L_SERIES
'Point:'(T02) L_POINT
'Value:'(T03) L_VALUE
into L_MSG separated by SPACE.
message L_MSG type 'S'.
endmethod. "on_value_change
method ON_PROPERTY_CHANGE.
data: L_MSG type STRING.
concatenate 'Property changed:'(M03)
'Element:'(T04) ELEMENT
'Name:'(T05) NAME
'Value:'(T03) VALUE
into L_MSG separated by SPACE.
message L_MSG type 'S'.
endmethod. "on_property_change
endclass. "lcl_ce_viewer_eh IMPLEMENTATION
2nd Example:
REPORT zmar_graphics .
This program illustrates a call to SAP Business Graphics. *
Each row in the DATA table contains one text label and a *
single numeric value. *
DATA: BEGIN OF data OCCURS 1,
text(25),
value TYPE p,
END OF data.
DATA: tcol1(5) VALUE '#1991'.
DATA: title(25) VALUE 'Sales'.
SET PF-STATUS 'GRAF'.
data-text = 'Product_1'.
data-value = 153470.
APPEND data.
data-text = 'Product_2'.
data-value = 253150.
APPEND data.
data-text = 'Product_3'.
data-value = 53470.
APPEND data.
data-text = 'Product_4'.
data-value = 182000.
APPEND data.
data-text = 'Product_5'.
data-value = 92410.
APPEND data.
WRITE: / 'Products',22 tcol1.
SKIP 2.
LOOP AT data.
WRITE: / data-text, 12 data-value.
ENDLOOP.
PF11: Put out a 2D graphic *
AT PF11.
CALL FUNCTION 'GRAPH_2D'
EXPORTING
titl = title
TABLES
data = data.
2nd Example:
REPORT zmar_graphics1.
Data for 2D-Modification
DATA: BEGIN OF data OCCURS 1,
text(25),
value TYPE p,
END OF data.
DATA: tcol1(5) VALUE '#1993'.
DATA: title(25) VALUE 'Merchandise 1993'.
DATA: tit2(10) VALUE 'Product'.
DATA: mod_row(5), mod_col(5), mod_val(20).
DATA: m_typ, b_typ, busg_stat.
FIELD-SYMBOLS: .
data-text = 'Refrigerators'.
data-value = 12345.
APPEND data.
data-text = 'Freezers'.
data-value = 22222.
APPEND data.
data-text = 'Ovens'.
data-value = 11111.
APPEND data.
data-text = 'Dishwashers'.
data-value = 54321.
APPEND data.
PERFORM output_2d.
AT PF08.
busg_stat = space. "// start and wait
Event-Loop
DO.
CALL FUNCTION 'GRAPH_2D'
EXPORTING
stat = busg_stat
inform = '7' "// allow modify
mail_allow = 'X' "// allow mail
IMPORTING
m_typ = m_typ
b_typ = b_typ
mod_row = mod_row
mod_col = mod_col
mod_val = mod_val
TABLES
data = data.
busg_stat = '4'. "// Just wait next time
CASE m_typ.
WHEN 'D'. "// Programm ended
EXIT.
WHEN 'I'. "// Valid message
IF b_typ = 'M'. "// Modify-event
READ TABLE data INDEX mod_row.
ASSIGN COMPONENT mod_col OF STRUCTURE data TO = mod_val.
MODIFY data INDEX mod_row.
ENDIF.
IF b_typ = 'S'. "// Select-event (ignored)
ENDIF. "// For element (MOD_ROW-MOD_COL)
ENDCASE.
ENDDO.
PERFORM output_2d.
FORM OUTPUT_2D (Show the actual data)
FORM output_2d.
WRITE: / 'Products',22 tcol1.
SKIP 2.
LOOP AT data.
WRITE: / data-text, 22 data-value.
ENDLOOP.
ENDFORM.
3rd Example:
REPORT zmar_graphics3.
DATA: BEGIN OF hpgl OCCURS 1,
entry(128),
END OF hpgl.
hpgl = 'SP6;PUPA0,0;'. APPEND hpgl.
hpgl = 'PDPA100,100,100,200,200,200,200,100,100,100;'. APPEND hpgl.
hpgl = 'SP1;PUPA100,150;'. APPEND hpgl.
hpgl = 'PDPA100,150,150,200,200,150,150,100,100,150;'. APPEND hpgl.
CALL FUNCTION 'GRAPH_HPGL'
TABLES
data = hpgl.
4th Example:
REPORT zmar_graphics4.
DATA: BEGIN OF objt OCCURS 1. "// Object Attributes
INCLUDE STRUCTURE gpoobjt.
DATA: END OF objt.
DATA: BEGIN OF area_tab OCCURS 1. "// Areas (unused)
INCLUDE STRUCTURE gpoarea.
DATA: END OF area_tab.
DATA: BEGIN OF col_text OCCURS 1, "// Value columns
c(40),
END OF col_text.
DATA: BEGIN OF values OCCURS 1, "// Object fields
p1 TYPE p,
p2 TYPE p,
p3 TYPE p,
p4 TYPE p,
p5 TYPE p,
p6 TYPE p,
p7 TYPE p,
p8 TYPE p,
p9 TYPE p,
END OF values.
DATA: BEGIN OF axis OCCURS 4.
INCLUDE STRUCTURE gpoaxis.
DATA: END OF axis.
DATA save LIKE sy-tabix.
SET PF-STATUS 'GRAF'.
Constraints: Number of VALUES rows == Number of OBJT rows
: Num of VALUES columns == Number of COL_TEXT rows
Column title for $OBJD::VALTIT
col_text = '% Market share'. APPEND col_text.
col_text = '% Growth'. APPEND col_text.
col_text = 'Sales'. APPEND col_text.
col_text = 'Market share trend'. APPEND col_text.
col_text = 'Growth trend'. APPEND col_text.
col_text = 'Fixed costs'. APPEND col_text.
col_text = 'Overhead costs'. APPEND col_text.
col_text = 'Admin. costs'. APPEND col_text.
col_text = 'Estimated profits'. APPEND col_text.
Attributes for $AXIS
axis-pos = 'RIGHT'.
axis-backclr = 'DARKGRAY'.
axis-textclr = 'WHITE'.
axis-scalclr = 'WHITE'.
axis-shadow = 'N'.
axis-ticks = '50'.
axis-start = '0'.
axis-end = '100'.
APPEND axis.
axis-pos = 'TOP'.
axis-backclr = 'DARKGRAY'.
axis-textclr = 'WHITE'.
axis-scalclr = 'WHITE'.
axis-shadow = space.
axis-ticks = '50'.
axis-start = '0'.
axis-end = '100'.
APPEND axis.
axis-pos = 'LEFT'.
axis-backclr = 'DARKGRAY'.
axis-textclr = 'WHITE'.
axis-scalclr = 'WHITE'.
axis-shadow = 'N'.
axis-ticks = '10'.
axis-start = '0'.
axis-end = '100'.
APPEND axis.
axis-pos = 'BOTTOM'.
axis-backclr = 'DARKGRAY'.
axis-textclr = 'WHITE'.
axis-scalclr = 'WHITE'.
axis-shadow = 'N'.
axis-ticks = '50'.
axis-start = '0'.
axis-end = '100'.
APPEND axis.
Objects
*BJT-LINECLR = 'WHITE'.
1. Trend line
objt-form = 'RECTANGLE'.
objt-fillclr = 'YELLOW'.
objt-textclr = 'BLUE'.
objt-title = 'Clarion 1990'.
objt-info = 'Sales in 1990'.
values-p1 = 10.
values-p2 = 20.
values-p3 = 10000.
values-p4 = 22.
values-p5 = 22.
values-p6 = 400.
values-p7 = 300.
values-p8 = 200.
values-p9 = 100.
APPEND objt.
APPEND values.
objt-form = 'RECTANGLE'.
objt-fillclr = 'YELLOW'.
objt-textclr = 'BLUE'.
objt-title = 'Clarion 1991'.
objt-info = 'Sales in 1991'.
values-p1 = 22.
values-p2 = 22.
values-p3 = 15000.
values-p4 = 45.
values-p5 = 35.
values-p6 = 100.
values-p7 = 200.
values-p8 = 300.
values-p9 = 400.
APPEND objt.
APPEND values.
objt-form = 'RECTANGLE'.
objt-fillclr = 'YELLOW'.
objt-textclr = 'BLUE'.
objt-title = 'Clarion 1992'.
objt-info = 'Sales in 1992'.
values-p1 = 45.
values-p2 = 35.
values-p3 = 22000.
values-p4 = 62.
values-p5 = 33.
values-p6 = 20.
values-p7 = 40.
values-p8 = 80.
values-p9 = 160.
APPEND objt.
APPEND values.
objt-form = 'RECTANGLE'.
objt-fillclr = 'YELLOW'.
objt-textclr = 'BLUE'.
objt-title = 'Clarion 1993'.
objt-info = 'Sales in 1993'.
values-p1 = 62.
values-p2 = 33.
values-p3 = 12000.
values-p4 = 62.
values-p5 = 33.
values-p6 = 600.
values-p7 = 700.
values-p8 = 600.
values-p9 = 700.
APPEND objt.
APPEND values.
2. Trend line
objt-form = 'CIRCLE'.
objt-fillclr = 'GREEN'.
objt-textclr = 'BLUE'.
objt-title = 'Sony 1988'.
objt-info = 'Sony UX400/CD, Sales in 1988'.
values-p1 = 2.
values-p2 = 50.
values-p3 = 2500.
values-p4 = 26.
values-p5 = 57.
values-p6 = 100.
values-p7 = 700.
values-p8 = 20.
values-p9 = 50.
APPEND objt.
APPEND values.
objt-form = 'CIRCLE'.
objt-fillclr = 'GREEN'.
objt-textclr = 'BLUE'.
objt-title = 'Sony 1989'.
objt-info = 'Sony UX400/CD, Sales in 1989'.
values-p1 = 26.
values-p2 = 57.
values-p3 = 3500.
values-p4 = 58.
values-p5 = 70.
values-p6 = 100.
values-p7 = 600.
values-p8 = 20.
values-p9 = 70.
APPEND objt.
APPEND values.
objt-form = 'CIRCLE'.
objt-fillclr = 'GREEN'.
objt-textclr = 'BLUE'.
objt-title = 'Sony 1990'.
objt-info = 'Sony UX400/CD, Sales in 1990'.
values-p1 = 58.
values-p2 = 70.
values-p3 = 11000.
values-p4 = 79.
values-p5 = 68.
values-p6 = 100.
values-p7 = 500.
values-p8 = 25.
values-p9 = 90.
APPEND objt.
APPEND values.
objt-form = 'CIRCLE'.
objt-fillclr = 'GREEN'.
objt-textclr = 'BLUE'.
objt-title = 'Sony 1991'.
objt-info = 'Sony UX400/CD, Sales 1991'.
values-p1 = 79.
values-p2 = 68.
values-p3 = 13000.
values-p4 = 87.
values-p5 = 54.
values-p6 = 100.
values-p7 = 430.
values-p8 = 45.
values-p9 = 120.
APPEND objt.
APPEND values.
objt-form = 'CIRCLE'.
objt-fillclr = 'GREEN'.
objt-textclr = 'BLUE'.
objt-title = 'Sony 1992'.
objt-info = 'Sony UX400/CD, Sales in 1992'.
values-p1 = 87.
values-p2 = 54.
values-p3 = 13500.
values-p4 = 80.
values-p5 = 34.
values-p6 = 90.
values-p7 = 390.
values-p8 = 44.
values-p9 = 150.
APPEND objt.
APPEND values.
objt-form = 'CIRCLE'.
objt-fillclr = 'GREEN'.
objt-textclr = 'BLUE'.
objt-title = 'Sony 1993'.
objt-info = 'Sony UX400/CD, Sales in 1993'.
values-p1 = 80.
values-p2 = 34.
values-p3 = 23000.
values-p4 = 80. "// Line to itself
values-p5 = 34.
values-p6 = 90.
values-p7 = 370.
values-p8 = 47.
values-p9 = 165.
APPEND objt.
APPEND values.
area_tab-form = 'RECTANGLE'.
area_tab-fillclr = 'RED'.
area_tab-xfrom = '10'.
area_tab-yfrom = '70'.
area_tab-xto = '40'.
area_tab-yto = '90'.
area_tab-title = 'Winner takes all'.
APPEND area_tab.
LOOP AT objt.
WRITE: / objt-title(20).
save = sy-tabix.
READ TABLE values INDEX save.
WRITE 25 values-p3.
ENDLOOP.
AT PF11.
CALL FUNCTION 'GRAPH_PORT'
EXPORTING
title_title = 'Trend-Portfolio for Sony and Clarion Radio'
title_info = 'The two objects over several years'
title_textclr = 'YELLOW'
title_backclr = 'DARKGRAY'
title_size = '2'
frm_backclr = 'GRAY'
frm_cordclr = 'WHITE'
frm_scalclr = 'WHITE'
frm_scalmod = 'LONGDASH'
frm_gridx = '10'
frm_gridy = '10'
frm_shadow = 'X'
obj_xval = '0'
obj_yval = '1'
obj_sval = '2'
obj_xarr = '3'
obj_yarr = '4'
TABLES
axis = axis
col_text = col_text
objt = objt
values = values
area_tab = area_tab.[/code]
Reward if usefull -
Howdy,
I've got some vector objects in Flash that start out real small--like 20-30 pixels square. When I change their position on the Z axis to 'zoom in' on them, the larger they get, the blurrier they get.
When I just tween the x/y size, and not move the z axis they look fine.
For example draw a 20x20 square on the stage.
Convert it to a movie clip so that I can 3D it.
Scale it up to 300 pixels.
Looks fine.
Adjust the Z axis by 1.
Blllluuuurrrrrrrrr.
Did I miss a setting somewhere or is this just a limitation that needs to be worked around?
Thanks in advance,
-TedRothrock, Excellent link, thanks for that! Have some points.
After reading it:
crap.
Looks like I need to learn about hand coding the 3d effects, or using scaling instead and adding switch when I need the z....
Hmmm...that'll require a little mor coffee.
Maybe you are looking for
-
Can you create a family id without a credit card
Hi I dont have a credit card and want to create a family id for my daughter, is this possible?
-
Sales order not reflecting in the stock reqmt list
we have a MTO scenario.after the sales order is created we are not able to see the sales order in the stock requirement list.kindly please help.
-
Hi, Im uploading an excel file in sap using gui_upload in binary format.In the internal table my data is stored in one column of char type.Now i want to store that internal table data into a single column in my Ztable.Pls tell me how to do that in su
-
Seriously don't hold your breath for too long... Nokia are truly awful at this, they treat the customers who buy their most expensive handsets with such apparent contempt it is nothing short of disgusting. I bought an N93 which was quickly superceded
-
Is there a way I can create a folder for storage and put on desktop?
Is there a way I can create a folder for storage and put on desktop?