Trees in reports
Hi all,
I'm reporting informations that have a tree-like structure. I bet I'm not the first.
In the datamodel, I've created a (non-portable but I'll see later how I can deal with that) SELECT statement containing CONNECT BY and START WITH clause. And it works well.
But, now, I wanted my report to display the hierarchy of my tree with indentation. I first used the hint from this guy : http://www.arsdigita.com/books/sql/trees.html
And it worked well... until I displayed it in HTML/HTMLCSS (PDF was ok). That was because HTML browsers tend to ignore multiple leading spaces.
So, I created a format trigger. When reporting for PDF or whatever is not HTML, I do the space padding (instead of in the SELECT of my datamodel). When reporting for HTML/HTMLCSS, even if the W3C doesn't approve it, I pad a number of based on the level in the tree. As you may guess, I need to specify that the field contains HTML tags if I don't want to read lots of in my fields.
My problem (finally) is that when I mark the field to contains HTML tags, it looses all its formatting on the HTML display (and that's kind of annoying ;-). Does it mean that I have to add HTML tags for the font face, font size, etc... when I mark as containing HTML tags? How then should I refer to the generated styles when in HTMLCSS? Will I not be too dependent on the way the HTMLCSS is generated? Or maybe, there's something I've missed somewhere and there's a simple way to keep the formatting in the fields... Or maybe that's a bug... Or maybe my computer is drunk...
Any help would be greatly appreciated :-)
Frederic
may be try erasing the message that you have put earlier and check it.
Similar Messages
-
Web Service Error - No Result Tree to Report On
After successfully creating a web service reference and then using the 'Form and Report on Web Service' wizard I get an error, after defining the input items, at the 'Web Service results' Stage.
It states :
"No Result Tree to Report On
This Web service does not have a result tree in its definition that is appropriate for a report. You may wish to run the Form on Web Service wizard instead."
This web service returns an array of records and runs successfully outside of HTML_DB. Has anyone else had this problem ? I cannot find any information about this so far. I am using App Ex v2, 10g App Server and 9i (9.2.0.4.0) DB. The WSDL file for the web service is below.
Thanks
<?xml version="1.0" encoding="UTF-8" ?>
- <!-- Generated by the Oracle JDeveloper 10g Web Services WSDL Generator
-->
- <!-- Date Created: Wed Jun 21 10:10:07 BST 2006
-->
- <definitions name="18_WS" targetNamespace="http://TESTDB/18_WS.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://TESTDB/18_WS.wsdl" xmlns:ns1="http://TESTDB/_WS.xsd">
- <types>
- <schema targetNamespace="http://TESTDB/_WS.xsd" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
- <complexType name="TESTDB_CollectCountTable" jdev:packageName="TESTDB" xmlns:jdev="http://xmlns.oracle.com/jdeveloper/webservices">
- <all>
<element name="array" type="ns1:ArrayOfTESTDB_CollectCountRecordUser" />
</all>
</complexType>
- <complexType name="TESTDB_CollectCountRecordUser" jdev:packageName="TESTDB" xmlns:jdev="http://xmlns.oracle.com/jdeveloper/webservices">
- <all>
<element name="code" type="string" />
<element name="category" type="string" />
<element name="total" type="decimal" />
</all>
</complexType>
- <complexType name="ArrayOfTESTDB_CollectCountRecordUser" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
- <complexContent>
- <restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="ns1:TESTDB_CollectCountRecordUser[]" />
</restriction>
</complexContent>
</complexType>
</schema>
</types>
- <message name="getCollectionCount0Request">
<part name="pNumlink" type="xsd:decimal" />
</message>
- <message name="getCollectionCount0Response">
<part name="return" type="ns1:TESTDB_CollectCountTable" />
</message>
- <portType name="_WSPortType">
- <operation name="getCollectionCount">
<input name="getCollectionCount0Request" message="tns:getCollectionCount0Request" />
<output name="getCollectionCount0Response" message="tns:getCollectionCount0Response" />
</operation>
</portType>
- <binding name="_WSBinding" type="tns:_WSPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="getCollectionCount">
<soap:operation soapAction="" style="rpc" />
- <input name="getCollectionCount0Request">
<soap:body use="encoded" namespace="18_WS" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
- <output name="getCollectionCount0Response">
<soap:body use="encoded" namespace="18_WS" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
- <service name="18_WS">
- <port name="_WSPort" binding="tns:_WSBinding">
<soap:address location="http://testserver:7778/RCAHMS_WebServices-NMRSPK18_WS-context-root/_WS" />
</port>
</service>
</definitions>This has been the subject of bug 5394491 for several weeks now without any resolution. It looks like this error will prevent the use of Jdeveloper web services that use array parameters in the current versions of Application Express. We are not planning to use Application Express for this purpose any more as there is no information about the bug (or fix) forthcoming.
-
I have a view which returns holding data in a parent-child hierarchy.
holding
instrument_id
parent_instrument id
level
I looked at creating hierarchy and go through “Connect By” example from the Admin manual, but it seems like I already have parent/child structure returned from my DB View.
How can I create a tree like report? Is it possible?
DeepakHi,
If you have the tree level in your report you can create a tree like report by using the LPAD function to add spaces in front of your data. eg.
LPAD(' ', ' ', (level-1)*3)||instrument_idHope that helps,
Rod West -
Hi all,
Can anyone give sample code for TREE TYPE REPORT(simple code), like for example: The list should contain 2 main items (parent item) and when i expand each item i should have 1 item(child item) .and when i double click on that it should perform some action say it should go to new list.
like :
+ food
+ tools
(this is in first list , 2 main items) when i expand this
- food
noodles
- tools
hammer
(this sub item , when i click on this it should go to new list)
thanks in advance.
kumaran.cHI Kumaran,
Have a look at the following code of simple tree control ...Its in module pool style.. will copy each include as well..
*& Module Pool ZKM_SIMPLETREE_CONTROL
REPORT ZKM_SIMPLETREE_CONTROL.
INCLUDE ZKM_TOP.
INCLUDE ZKM_CL.
INCLUDE ZKM_PBO_100O01.
INCLUDE ZKM_FORM01.
INCLUDE ZKM_PAI_100I01.
START-OF-SELECTION.
create the application object
this object is needed to handle the ABAP Objects Events of
Controls
CREATE OBJECT G_APPLICATION.
SET SCREEN 1000.
*& Include ZKM_TOP
*REPORT ZKM_SIMPLETREE_CONTROL MESSAGE-ID TREE_CONTROL_MSG.
CLASS lcl_application DEFINITION DEFERRED.
CLASS cl_gui_cfw DEFINITION LOAD.
TYPES: node_table_type LIKE STANDARD TABLE OF zkm_treesnode
WITH DEFAULT KEY.
CAUTION: MTREESNODE is the name of the node structure which must
be defined by the programmer. DO NOT USE MTREESNODE!
*internal table and work area for storing all the nodes that are created
DATA: gt_nodetable TYPE node_table_type,
gw_nodetable TYPE zkm_treesnode.
*objects refering to the classes used.
DATA: g_application TYPE REF TO lcl_application,
g_custom_container TYPE REF TO cl_gui_custom_container,
g_tree TYPE REF TO cl_gui_simple_tree.
Fields on Dynpro 1000
DATA: g_event(30),
g_key TYPE i,
g_node_key TYPE tv_nodekey.
Fields on Dynpro 2000
DATA: g_relatship TYPE i,
g_cb_sub,
g_cb_same,
g_cb_under VALUE 'X',
g_nodename(30).
Structure for preserving the skeleton
TYPES: BEGIN OF ty_flag,
relatkey TYPE tv_nodekey,
node_key TYPE tv_nodekey,
flag TYPE i, "1 = skeleton
"2 = service line
"3 = levels
END OF ty_flag.
DATA: gt_flag TYPE TABLE OF ty_flag,
gw_flag TYPE ty_flag.
*structure storing the hierarchy and the nodes under them.
***INCLUDE ZKM_PBO_100O01 .
*& Module PBO_1000 OUTPUT
text
MODULE pbo_1000 OUTPUT.
SET PF-STATUS 'ZMAIN'.
SET TITLEBAR 'ZTITLE'.
IF g_tree IS INITIAL.
" The Tree Control has not been created yet.
" Create a Tree Control and insert nodes into it.
PERFORM create_and_init_tree.
ENDIF.
*registering keys which can trigger the event
PERFORM register_key_strokes.
*checking status of the actions performed
CASE sy-ucomm.
WHEN 'ADD'. "node successfully added
MESSAGE s002(zkm_class).
WHEN 'YES'. "node successfully deleted
MESSAGE s003(zkm_class).
WHEN 'NO' OR 'CANCEL'. "action cancelled
MESSAGE s007(zkm_class).
ENDCASE.
ENDMODULE. " PBO_1000 OUTPUT
*& Module PBO_2000 OUTPUT
text
MODULE pbo_2000 OUTPUT.
SET PF-STATUS 'ZDIALOG'.
SET TITLEBAR 'ZADD'.
*setting the attributes of the screen field depending on node attributes
READ TABLE gt_flag INTO gw_flag WITH KEY node_key = g_node_key.
IF gw_flag-flag = 3.
LOOP AT SCREEN.
IF screen-name = 'BRANCH'.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE. " PBO_2000 OUTPUT
*& Module PBO_3000 OUTPUT
text
MODULE pbo_3000 OUTPUT.
SET PF-STATUS 'ZDIALOG'.
SET TITLEBAR 'ZCONFIRM'.
ENDMODULE. " PBO_3000 OUTPUT
***INCLUDE ZKM_PAI_100I01 .
*& Module PAI_1000 INPUT
text
MODULE pai_1000 INPUT.
DATA: return_code TYPE i.
CL_GUI_CFW=>DISPATCH must be called if events are registered
that trigger PAI
this method calls the event handler method of an event
CALL METHOD cl_gui_cfw=>dispatch
IMPORTING
return_code = return_code.
IF return_code <> cl_gui_cfw=>rc_noevent.
"a control event occured => exit PAI.
EXIT.
ENDIF.
CASE sy-ucomm.
WHEN 'ADDND'.
*check whether node has been selected or not
IF g_event NE 'NODE_DOUBLE_CLICK'. "AND g_node_key EQ ' '.
MESSAGE e000(zkm_class).
ELSE.
*whether selected node can have sub-branches or not
READ TABLE gt_nodetable INTO gw_nodetable WITH KEY node_key = g_node_key.
IF gw_nodetable-isfolder = ' '.
MESSAGE e006(zkm_class).
ELSE.
*call screen for adding the node.
CALL SCREEN 2000 STARTING AT 20 10.
ENDIF.
ENDIF.
CLEAR g_event.
WHEN 'DELND'.
*check whether node has been selected or not
IF g_event NE 'NODE_DOUBLE_CLICK'.
MESSAGE e000(zkm_class).
ELSE.
*skeleton should not be deleted.
IF g_node_key EQ 'Capgemini' OR
g_node_key EQ 'TSP-SAP-CRM' OR
g_node_key EQ 'MANAGERS' OR
g_node_key EQ 'TEAM LEAD'.
MESSAGE e004(zkm_class).
ENDIF.
*call screen for confirmation
CALL SCREEN 3000 STARTING AT 20 10.
ENDIF.
CLEAR g_event.
WHEN 'TEST'.
CALL METHOD g_tree->expand_node
EXPORTING
node_key = 'New1'.
WHEN 'BACK'. " Finish program
IF NOT g_custom_container IS INITIAL.
destroy tree container (detroys contained tree control, too)
CALL METHOD g_custom_container->free
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2.
IF sy-subrc <> 0.
MESSAGE a000.
ENDIF.
CLEAR g_custom_container.
CLEAR g_tree.
ENDIF.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " PAI_1000 INPUT
*& Module pai_2000 INPUT
text
MODULE pai_2000 INPUT.
DATA: node_table TYPE node_table_type,
node LIKE zkm_treesnode.
CASE sy-ucomm.
WHEN 'BACK'.
CALL SCREEN 1000.
WHEN 'ADD'.
IF g_nodename IS INITIAL. "Has to enter the Node name
MESSAGE s005(zkm_class).
CALL SCREEN 2000 STARTING AT 20 10.
ELSE.
*Checking whether specified node already exists or not
READ TABLE gt_nodetable INTO gw_nodetable WITH KEY node_key = g_nodename.
IF sy-subrc EQ 0.
CLEAR gw_flag.
MESSAGE s008(zkm_class).
CALL SCREEN 2000 STARTING AT 20 10.
ENDIF.
*assigning attributes to the node
CLEAR node.
CLEAR node_table.
node-node_key = g_nodename. "Key of the Node.
node-relatkey = g_node_key. "Relationship with the selected node
node-relatship = cl_gui_simple_tree=>relat_last_child.
*checking whether the node would be a folder or a leaf
READ TABLE gt_flag INTO gw_flag WITH KEY node_key = g_node_key.
IF gw_flag-flag = 1 OR gw_flag-flag = 2.
node-hidden = ' '.
node-disabled = ' '.
node-isfolder = 'X'.
CLEAR node-n_image.
CLEAR node-exp_image.
CLEAR node-expander.
IF gw_flag-flag EQ 1.
gw_flag-flag = 2.
ELSE.
gw_flag-flag = 3.
ENDIF.
ELSEIF gw_flag-flag = 3.
node-n_image = '@XY@'.
node-isfolder = ' '.
node-expander = ' '.
gw_flag-flag = 3.
ENDIF.
CLEAR node-exp_image.
node-text = g_nodename.
APPEND node TO node_table.
*keeping records of all the nodes added in the tree
gw_nodetable = node.
APPEND gw_nodetable TO gt_nodetable.
CLEAR gw_nodetable.
*append structure 'FLAG' to group the added node according to position
gw_flag-relatkey = g_node_key.
gw_flag-node_key = g_nodename.
APPEND gw_flag TO gt_flag.
CLEAR gw_flag.
*adding nodes in the tree
CALL METHOD g_tree->add_nodes
EXPORTING
table_structure_name = 'ZKM_TREESNODE'
node_table = node_table
EXCEPTIONS
error_in_node_table = 1
failed = 2
dp_error = 3
table_structure_name_not_found = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR g_nodename. "clearing screen field
CALL SCREEN 1000.
ENDIF.
WHEN 'CANCEL'.
CALL SCREEN 1000.
ENDCASE.
ENDMODULE. " pai_2000 INPUT
*& Module PAI_3000 INPUT
text
MODULE pai_3000 INPUT.
CASE sy-ucomm.
WHEN 'YES'. "user agrees to delete the node
CALL METHOD g_tree->delete_node
EXPORTING
node_key = g_node_key
EXCEPTIONS
failed = 1
node_not_found = 2
cntl_system_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
gw_nodetable-node_key = g_node_key.
gw_flag-node_key = g_node_key.
READ TABLE gt_nodetable INTO gw_nodetable WITH KEY node_key = g_node_key.
IF sy-subrc EQ 0.
DELETE gt_nodetable INDEX sy-tabix.
ENDIF.
READ TABLE gt_flag INTO gw_flag WITH KEY node_key = g_node_key.
IF sy-subrc EQ 0.
DELETE gt_flag INDEX sy-tabix.
ENDIF.
CLEAR gw_flag.
CLEAR gw_nodetable.
CALL SCREEN 1000.
ENDIF.
WHEN 'NO'. "user clicks the cancel button
CALL SCREEN 1000.
ENDCASE.
ENDMODULE. " PAI_3000 INPUT
***INCLUDE ZKM_FORM01 .
*& Form create_and_init_tree
text
--> p1 text
<-- p2 text
FORM create_and_init_tree .
DATA: node_table TYPE node_table_type,
events TYPE cntl_simple_events,
event TYPE cntl_simple_event.
*create a container for the tree control.
CREATE OBJECT g_custom_container
EXPORTING
" the container is linked to the custom control with the
" name 'TREE_CONTAINER' on the dynpro
container_name = 'TREE_CONTAINER'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*create tree control.
CREATE OBJECT g_tree
EXPORTING
parent = g_custom_container
node_selection_mode = cl_gui_simple_tree=>node_sel_mode_single
EXCEPTIONS
lifetime_error = 1
cntl_system_error = 2
create_error = 3
failed = 4
illegal_node_selection_mode = 5
OTHERS = 6
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*define events which will be passed to the backend.
"node double click.
event-eventid = cl_gui_simple_tree=>eventid_node_double_click.
event-appl_event = 'X'. "process PAI if event occurs.
APPEND event TO events.
"expand no children.
event-eventid = cl_gui_simple_tree=>eventid_expand_no_children.
event-appl_event = 'X'.
APPEND event TO events.
"node key press
event-eventid = cl_gui_simple_tree=>eventid_node_keypress.
event-appl_event = 'X'.
APPEND event TO events.
"NODE_CONTEXT_MENU_REQUEST
event-eventid = cl_gui_simple_tree=>eventid_node_context_menu_req.
event-appl_event = 'X'.
APPEND event TO events.
"event node_context_menu_select is automatically registered on registering
" the event NODE_CONTEXT_MENU_REQUEST
" process PAI if context menu select event occurs
CALL METHOD g_tree->set_ctx_menu_select_event_appl
EXPORTING
appl_event = 'X'.
CALL METHOD g_tree->set_registered_events
EXPORTING
events = events
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
illegal_event_combination = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*assign event handlers in the application class to each desired event.
SET HANDLER g_application->handle_node_double_click FOR g_tree.
SET HANDLER g_application->handle_expand_no_children FOR g_tree.
SET HANDLER g_application->handle_node_keypress FOR g_tree.
SET HANDLER g_application->handle_node_context_menu_req FOR g_tree.
SET HANDLER g_application->handle_node_context_menu_sel FOR g_tree.
add some nodes to the tree control
NOTE: the tree control does not store data at the backend. If an
application wants to access tree data later, it must store the
tree data itself.
PERFORM build_node_table USING node_table.
CALL METHOD g_tree->add_nodes
EXPORTING
table_structure_name = 'ZKM_TREESNODE'
node_table = node_table
EXCEPTIONS
error_in_node_table = 1
failed = 2
dp_error = 3
table_structure_name_not_found = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " create_and_init_tree
*& Form BUILD_NODE_TABLE
text
-->P_NODE_TABLE text
FORM build_node_table
USING node_table TYPE node_table_type.
DATA: node LIKE zkm_treesnode.
Build the node table.
Caution: The nodes are inserted into the tree according to the order
in which they occur in the table. In consequence, a node must not
occur in the node table before its parent node.
*Node with key 'Capgemini'.
node-node_key = 'Capgemini'. "Key of the node.
CLEAR node-relatkey. "Special case.. A root node has no parent node.
CLEAR node-relatship.
node-hidden = ' '. "Node is visible.
node-disabled = ' '. "Selectable.
node-isfolder = 'X'. "folder.
CLEAR node-n_image. "Folder-/ Leaf-Symbol in state "closed":
"use default.
CLEAR node-exp_image. "Folder-/ Leaf-Symbol in state "open".
"use default.
CLEAR node-expander.
node-text = 'Capgemini'.
APPEND node TO node_table.
gw_nodetable = node.
APPEND gw_nodetable TO gt_nodetable.
CLEAR gw_nodetable.
CLEAR gw_flag-relatkey.
gw_flag-node_key = 'Capgemini'.
gw_flag-flag = 1. "Skeleton
APPEND gw_flag TO gt_flag.
CLEAR gw_flag.
CLEAR node.
*Node with key 'TSP-SAP-CRM'.
node-node_key = 'TSP-SAP-CRM'. "Key of the Node.
"Node is inserted as child of the node with key 'Root'.
node-relatkey = 'Capgemini'.
node-relatship = cl_gui_simple_tree=>relat_last_child.
node-hidden = ' '. "Node is visible.
node-disabled = ' '. "Selectable.
node-isfolder = 'X'. "folder.
CLEAR node-n_image. "Folder-/ Leaf-Symbol in state "closed":
"use default.
CLEAR node-exp_image. "Folder-/ Leaf-Symbol in state "open".
"use default.
CLEAR node-expander.
node-text = 'TSP-SAP-CRM'.
APPEND node TO node_table.
gw_nodetable = node.
APPEND gw_nodetable TO gt_nodetable.
CLEAR gw_nodetable.
*adding the node for corresponding relatkey
gw_flag-relatkey = 'Capgemini'.
gw_flag-node_key = 'TSP-SAP-CRM'.
gw_flag-flag = 2. "Service line
APPEND gw_flag TO gt_flag.
CLEAR gw_flag.
*creating new relatkey in gt_flag
gw_flag-relatkey = 'TSP-SAP-CRM'.
gw_flag-node_key = ' '.
gw_flag-flag = '2'.
APPEND gw_flag TO gt_flag.
*Node with key 'Managers'
node-node_key = 'MANAGERS'.
node-relatkey = 'TSP-SAP-CRM'.
node-relatship = cl_gui_simple_tree=>relat_last_child.
CLEAR node-n_image.
CLEAR node-exp_image.
CLEAR node-expander. " = ' '.
node-isfolder = 'X'.
node-text = 'Managers'.
APPEND node TO node_table.
gw_nodetable = node.
APPEND gw_nodetable TO gt_nodetable.
CLEAR gw_nodetable.
gw_flag-relatkey = 'TSP-SAP-CRM'.
gw_flag-node_key = 'MANAGERS'.
gw_flag-flag = 3. "Levels
APPEND gw_flag TO gt_flag.
CLEAR gw_flag.
gw_flag-relatkey = 'MANAGERS'.
gw_flag-node_key = ' '.
gw_flag-flag = '2'.
APPEND gw_flag TO gt_flag.
*Node with key 'Team Lead'.
node-node_key = 'TEAM LEAD'.
node-relatkey = 'TSP-SAP-CRM'.
node-relatship = cl_gui_simple_tree=>relat_last_child.
CLEAR node-n_image.
CLEAR node-exp_image.
CLEAR node-expander. " = ' '.
node-isfolder = 'X'.
node-text = 'TEAM LEAD'.
APPEND node TO node_table.
gw_nodetable = node.
APPEND gw_nodetable TO gt_nodetable.
CLEAR gw_nodetable.
gw_flag-relatkey = 'TSP-SAP-CRM'.
gw_flag-node_key = 'Team_Lead'.
gw_flag-flag = 3. "Levels
APPEND gw_flag TO gt_flag.
CLEAR gw_flag.
gw_flag-relatkey = 'TEAM LEAD'.
gw_flag-node_key = ' '.
gw_flag-flag = '2'.
APPEND gw_flag TO gt_flag.
ENDFORM. " BUILD_NODE_TABLE
*& Form register_key_strokes
text
--> p1 text
<-- p2 text
FORM register_key_strokes .
g_key = cl_tree_control_base=>key_delete.
"process PAI if node key press occurs
CALL METHOD g_tree->add_key_stroke
EXPORTING
key = g_key
EXCEPTIONS
failed = 1
illegal_key = 2
cntl_system_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
g_key = cl_tree_control_base=>key_enter.
"process PAI if node key press occurs
CALL METHOD g_tree->add_key_stroke
EXPORTING
key = g_key
EXCEPTIONS
failed = 1
illegal_key = 2
cntl_system_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
g_key = cl_tree_control_base=>key_insert.
CALL METHOD g_tree->add_key_stroke
EXPORTING
key = g_key
EXCEPTIONS
failed = 1
illegal_key = 2
cntl_system_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " register_key_strokes
***INCLUDE ZKM_CL .
*& Class LCL_APPLICATION
Text
CLASS lcl_application DEFINITION.
PUBLIC SECTION.
METHODS:
handle_node_double_click
FOR EVENT node_double_click
OF cl_gui_simple_tree
IMPORTING node_key,
handle_expand_no_children
FOR EVENT expand_no_children
OF cl_gui_simple_tree
IMPORTING node_key,
handle_node_keypress
FOR EVENT node_keypress
OF cl_gui_simple_tree
IMPORTING node_key key,
handle_node_context_menu_req
FOR EVENT node_context_menu_request
OF cl_gui_simple_tree
IMPORTING node_key menu,
handle_node_context_menu_sel
FOR EVENT node_context_menu_select
OF cl_gui_simple_tree
IMPORTING node_key fcode.
ENDCLASS. "LCL_APPLICATION
*& Class (Implementation) LCL_APPLICATION
Text
CLASS lcl_application IMPLEMENTATION.
METHOD handle_node_double_click.
" this method handles the node double click event of the tree
" control instance
" show the key of the double clicked node in a dynpro field
g_event = 'NODE_DOUBLE_CLICK'.
g_node_key = node_key.
ENDMETHOD. "HANDLE_NODE_DOUBLE_CLICK
METHOD handle_expand_no_children.
" this method handles the expand no children event of the tree
" control instance
DATA: node_table TYPE node_table_type,
node TYPE zkm_treesnode.
"show the key of the double clicked node on the dynpro field.
g_event = 'EXPAND_NO_CHILDREN'.
g_node_key = node_key.
IF node_key = 'TSP-SAP-CRM'.
*add two nodes to the tree control (The children of Child1).
*Node with key 'New1'.
CLEAR node.
node-node_key = 'Managers'.
node-relatkey = 'TSP-SAP-CRM'.
node-relatship = cl_gui_simple_tree=>relat_last_child.
node-n_image = '@XY@'.
CLEAR node-exp_image.
node-expander = ' '.
node-isfolder = ' '.
node-text = 'Managers'.
APPEND node TO node_table.
*Node with key 'New2'.
CLEAR node.
node-node_key = 'Team_Lead'.
node-relatkey = 'TSP-SAP-CRM'.
node-relatship = cl_gui_simple_tree=>relat_last_child.
node-n_image = '10'.
CLEAR node-exp_image.
node-expander = ' '.
node-isfolder = ' '.
node-text = 'Team Lead'.
APPEND node TO node_table.
ENDIF.
CALL METHOD g_tree->add_nodes
EXPORTING
table_structure_name = 'MTREESNODE'
node_table = node_table
EXCEPTIONS
error_in_node_table = 1
failed = 2
dp_error = 3
table_structure_name_not_found = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDMETHOD. "HANDLE_EXPAND_NO_CHILDREN
METHOD handle_node_keypress.
g_node_key = node_key.
CASE key.
WHEN 2.
g_event = 'DELETE KEY PRESSED'.
READ TABLE gt_flag INTO gw_flag WITH KEY node_key = g_node_key.
IF gw_flag-flag EQ 1.
MESSAGE e004(zkm_class).
ENDIF.
CALL SCREEN 3000 STARTING AT 20 10.
CLEAR g_event.
WHEN 3.
g_event = 'INSERT KEY PRESSED'.
READ TABLE gt_nodetable INTO gw_nodetable WITH KEY node_key = g_node_key.
IF gw_nodetable-isfolder = ' '.
MESSAGE e006(zkm_class).
ELSE.
CALL SCREEN 2000 STARTING AT 20 10.
MESSAGE s001(zkm_class).
ENDIF.
CLEAR g_event.
WHEN 5.
g_event = 'ENTER KEY PRESSED'.
READ TABLE gt_nodetable INTO gw_nodetable WITH KEY node_key = node_key.
IF gw_nodetable-isfolder = ' '.
MESSAGE e009(zkm_class).
ELSE.
CALL METHOD g_tree->expand_node
EXPORTING
node_key = node_key
EXCEPTIONS
failed = 1
illegal_level_count = 2
cntl_system_error = 3
node_not_found = 4
cannot_expand_leaf = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDCASE.
CALL METHOD g_tree->remove_all_key_strokes
EXCEPTIONS
failed = 1
cntl_system_error = 2.
ENDMETHOD. "HANDLE_NODE_KEYPRESS.
METHOD handle_node_context_menu_req.
g_event = 'NODE_CONTEXT_MENU_REQ'.
g_node_key = node_key.
CALL METHOD menu->add_function
EXPORTING
fcode = 'ADD'
text = 'Add Node'.
CALL METHOD menu->add_function
EXPORTING
fcode = 'DELETE'
text = 'Delete Node'.
ENDMETHOD. "handle_node_context_menu_req
METHOD handle_node_context_menu_sel.
g_event = 'NODE_CONTEXT_MENU_SELECT'.
CASE fcode.
WHEN 'ADD'.
READ TABLE gt_nodetable INTO gw_nodetable WITH KEY node_key = g_node_key.
IF gw_nodetable-isfolder = ' '.
MESSAGE e006(zkm_class).
ELSE.
CALL SCREEN 2000 STARTING AT 20 10.
MESSAGE s001(zkm_class).
ENDIF.
CLEAR g_event.
WHEN 'DELETE'.
IF g_node_key EQ 'Capgemini' OR
g_node_key EQ 'TSP-SAP-CRM' OR
g_node_key EQ 'MANAGERS' OR
g_node_key EQ 'TEAM LEAD'.
MESSAGE e004(zkm_class).
ENDIF.
CALL SCREEN 3000 STARTING AT 20 10.
CLEAR g_event.
ENDCASE.
ENDMETHOD. "handle_node_context_menu_sel
ENDCLASS. "LCL_APPLICATION
This is a complete tree control application.. I am sure it will solve all your problems.
Pls pls reward points if useful.
Regards,
Karan -
WSDL - No Result Tree to Report On
Hi -
I was trying to create a report based on web services. I got the below error message:
'This Web service does not have a result tree in its definition that is appropriate for a report. You may wish to run the Form on Web Service wizard instead.'
Am I doing sth wrong? even when I create only Form, then no data is presented.
How can I create a report based on data from web service when I have WSDL provided?
Thanks,
Tom
Message was edited by:
Tom01This has been the subject of bug 5394491 for several weeks now without any resolution. It looks like this error will prevent the use of Jdeveloper web services that use array parameters in the current versions of Application Express. We are not planning to use Application Express for this purpose any more as there is no information about the bug (or fix) forthcoming.
-
Tree Matrix Report with double line heading
Hi,
I am very new to HTML-DB and HTML as well.
I need to create a matrix report with a tree functionality and with two line heading.
Basically This is what I need to generate
REGION1 REGION2 REGION3
COL1 COL2 TOTAL COL1 COL2 TOTAL COL1 COL2 TOTAL
===========================================================
CAT1+
Sub_CAT1
Sub_CAT2
CAT2+
Sub_SCAT3
Sub_SCAT4
Where CAT1 , CAT2 needs to be collapsible rows. SCAT1..SCAT4 are sub categories under main categories.
REGION1.... REGION3 are top level headings. And COL1,COL2 are sub headings under top level headings.
Thanks,
ShriPlease help me on this!
Thanks,
Shri -
Organization/Tree structure report in BOBJ
Hello All,
Recently received a requirement for a "report" which to me initially did not look like a report, but rather a model of an organization chart/tree. I am trying to figure out if something like this is possible to do in any of the BOBJ tools (WEBI/Crystal/Dashboards). The Level0, Level1 and Level2 objects are all dynamic and there would be multiple Overall Processes - Level 0s (let's say 15). Each process is then broken down into the respective Level1 and then further into Level 2. All these levels are dynamic (there could be 2 level1s, 5, etc) and would come from a database (I'm not sure exactly what the data structure would look like, but it can be modeled specifically for this reason). I see it as a type of hierarchy (but vertical) , but I am having trouble reproducing it in WEBI / Crystal. I tried a CrossTable report in WEBI, and it almost gets me there but it shows all the Level 2s for each level 1 - can't do that type of breakdown where it compresses the rows dynamically. What it looks like we are trying to do here is create a horizontal table for Level 0 and Level 1, but then a vertical table for Level 2. I'm just looking for any ideas on how this may be possible as this is not your typical report.The issue we seem to be having is the fact that we need to create multiple vertical tables (level 2s) for each column (Level1).
The data looks as such
Level 0 Level 1 System
Overall Process Create System1
Overall Process Create System2
Overall Process Create System3
Overall Process Create System4
Overall Process Create System5
Overall Process Create System6
Overall Process Create System7
Overall Process Create System8
Overall Process Develop System1
Overall Process Develop System2
Overall Process Develop System3
Overall Process Develop System4
Overall Process Develop System5
Overall Process Develop System6
Overall Process Develop System7
Overall Process Award System7
Overall Process Award System1
Overall Process Award System2
So the Level 1s (Create/Develop/Award...) are rows and have a relation to the systems. But the systems are required to be shown as columns, each related to level 1. But the level 0/1s are dynamic..there could be 1 to 15 Level 0s and 1 to 16 Level 1s. I can make this relationship show as a cross table, but having a hard time (without doing some Excel Magic in Dasboards) to make it show as a "chart" -
How to Display Heading for TREE Structure (report)
hi,
tell me how display the heading for the TREE Report.
With Regards,
Shakthi Raj N.Hi,
If you are using object oriented approach for developing the Tree report, then you can use below shown example for creating header for the report.
first create tree control
CREATE OBJECT TREE1
EXPORTING
PARENT = G_CONTAINER_OBJECT
NODE_SELECTION_MODE = CL_GUI_COLUMN_TREE=>NODE_SEL_MODE_SINGLE
ITEM_SELECTION = ''
NO_HTML_HEADER = ''
NO_TOOLBAR = ''
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
ILLEGAL_NODE_SELECTION_MODE = 5
FAILED = 6
ILLEGAL_COLUMN_NAME = 7.
CLEAR GT_HEADER.
GT_HEADER-TYP = 'H'.
GT_HEADER-INFO = 'Output'.
APPEND GT_HEADER.
CLEAR GT_HEADER.
GT_HEADER-TYP = 'S'.
GT_HEADER-KEY = 'Display'.
GT_HEADER-INFO = 'Report'.
APPEND GT_HEADER.
then create empty tree-control
CALL METHOD TREE1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_HIERARCHY_HEADER = G_HIERARCHY_HEADER
I_BACKGROUND_ID = 'ALV_BACKGROUND'
IT_LIST_COMMENTARY = GT_HEADER[]
CHANGING
IT_OUTTAB = GT_SPFLI[] "empty table
IT_FIELDCATALOG = GT_FIELDCAT_LVC[].
In this way header can be given for Tree report.
Hope this answers your query.
Regards,
Brajvir -
Tree structured Report programming
Hi,
I have a requirement of a Report which has to have a Tree structure similar to SE09 Transaction. When we give the User id in the SE09 and hit on Display button the next screen lists all the Transport requests under the user in a Tree structure which can be exploded or collapsed.
I want to know how complicated is this to code, is there any Function module that can help acheive this. Also let me if there is a sample program.
Appreciate your help on this.
Thanks and Regards,
Saleem.Hi Saleem,
Check this sample code,
REPORT Z_AZAZ_TEST_TREE_1 .
TYPE-POOLS : FIBS,STREE.
DATA : T_NODE TYPE SNODETEXT.
DATA : NODE_TAB LIKE T_NODE OCCURS 0 WITH HEADER LINE.
CLEAR : NODE_TAB, NODE_TAB[].
NODE_TAB-TYPE = 'T'.
NODE_TAB-NAME = 'Earth'.
NODE_TAB-TLEVEL = '01'.
NODE_TAB-NLENGTH = '5'.
NODE_TAB-COLOR = '4'.
NODE_TAB-TEXT = 'Hello'.
NODE_TAB-TLENGTH ='5'.
NODE_TAB-TCOLOR = 3.
APPEND NODE_TAB.
CLEAR NODE_TAB.
NODE_TAB-TYPE = 'P'.
NODE_TAB-NAME = 'Europe'.
NODE_TAB-TLEVEL = '02'.
NODE_TAB-NLENGTH = '6'.
NODE_TAB-COLOR = '1'.
NODE_TAB-TEXT = 'Hello'.
NODE_TAB-TLENGTH ='5'.
NODE_TAB-TCOLOR = 4.
APPEND NODE_TAB.
CLEAR NODE_TAB.
NODE_TAB-TYPE = 'P'.
NODE_TAB-NAME = 'Germany'.
NODE_TAB-TLEVEL = '03'.
NODE_TAB-NLENGTH = '7'.
NODE_TAB-COLOR = '4'.
NODE_TAB-TEXT = 'Hello'.
NODE_TAB-TLENGTH ='5'.
NODE_TAB-TCOLOR = 4.
APPEND NODE_TAB.
CLEAR NODE_TAB.
NODE_TAB-TYPE = 'P'.
NODE_TAB-NAME = 'Berlin'.
NODE_TAB-TLEVEL = '04'.
NODE_TAB-NLENGTH = '6'.
NODE_TAB-COLOR = '4'.
NODE_TAB-TEXT = 'Hello'.
NODE_TAB-TLENGTH ='5'.
NODE_TAB-TCOLOR = 3.
APPEND NODE_TAB.
CLEAR NODE_TAB.
NODE_TAB-TYPE = 'P'.
NODE_TAB-NAME = 'Asia'.
NODE_TAB-TLEVEL = '02'.
NODE_TAB-NLENGTH = '4'.
NODE_TAB-COLOR = '1'.
NODE_TAB-TEXT = 'Hello'.
NODE_TAB-TLENGTH ='5'.
NODE_TAB-TCOLOR = 3.
APPEND NODE_TAB.
CLEAR NODE_TAB.
NODE_TAB-TYPE = 'P'.
NODE_TAB-NAME = 'India'.
NODE_TAB-TLEVEL = '03-'.
NODE_TAB-NLENGTH = '5'.
NODE_TAB-COLOR = '1'.
NODE_TAB-TEXT = 'Hello'.
NODE_TAB-TLENGTH ='5'.
NODE_TAB-TCOLOR = 3.
APPEND NODE_TAB.
CLEAR NODE_TAB.
NODE_TAB-TYPE = 'P'.
NODE_TAB-NAME = 'Bombay'.
NODE_TAB-TLEVEL = '04-'.
NODE_TAB-NLENGTH = '6'.
NODE_TAB-COLOR = '1'.
NODE_TAB-TEXT = 'Hello'.
NODE_TAB-TLENGTH ='5'.
NODE_TAB-TCOLOR = 3.
APPEND NODE_TAB.
CLEAR NODE_TAB.
CALL FUNCTION 'RS_TREE_CONSTRUCT'
EXPORTING
INSERT_ID = '000000'
RELATIONSHIP = ' '
LOG =
TABLES
NODETAB = NODE_TAB
EXCEPTIONS
TREE_FAILURE = 1
ID_NOT_FOUND = 2
WRONG_RELATIONSHIP = 3
OTHERS = 4
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
DATA: TYPE_MAPPING TYPE STREE_CTL_TYPE_MAPPING_TAB.
DATA: WA_TYPE TYPE STREE_CTL_TYPE_MAPPING.
CLEAR: TYPE_MAPPING[].
WA_TYPE-TYPE = 'A'.
WA_TYPE-ICON = '@BL@'.
APPEND WA_TYPE TO TYPE_MAPPING.
*CALL FUNCTION 'RS_TREE_CONTROL_PREPARE'
EXPORTING
CONTROL_PATTERN = STREE_CTL_GENERIC
CONTROL_PATTERN = 'PH'
HIERARCHY_HEADER =
INITIAL_HEADER_WIDTH =
LIST_ITEM_HEADER =
MULTIPLE_SELECTION = 'X'
ITEM_SELECTION = STREE_FALSE
SUPPRESS_NODE_ICON = STREE_FALSE
SUPPRESS_FOLDER_ICON = STREE_FALSE
CALLBACK_PROGRAM =
CALLBACK_ITEM_DISPLAY =
COLOR_MAPPING =
TYPE_MAPPING = type_mapping
IMPORTING
SUBSCREEN_PROGRAM =
SUBSCREEN_DYNNR =
EXCEPTIONS
NOT_AVAILABLE = 1
OTHERS = 2
*IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.
*CALL FUNCTION 'RS_TREE_SET_CURRENT_LAYOUT'
EXPORTING
CURSOR_COLUMN = 3
CURSOR_LINE = 2
FIRST_NODE = 1
FIRST_NODE_TYPE = ' '
LIST_COLUMN = 1
LIST_LINE = 1
LAYOUT_MODE = STREE_LAYOUT_NORMAL
IMPORTING
INCONSISTENT_LAYOUT =
TABLES
LAYOUT =
CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
EXPORTING
CALLBACK_PROGRAM =
CALLBACK_USER_COMMAND =
CALLBACK_TEXT_DISPLAY =
CALLBACK_MOREINFO_DISPLAY =
CALLBACK_COLOR_DISPLAY =
CALLBACK_TOP_OF_PAGE =
CALLBACK_GUI_STATUS =
CALLBACK_CONTEXT_MENU =
STATUS = 'IMPLICIT'
CHECK_DUPLICATE_NAME = '1'
COLOR_OF_NODE = '4'
COLOR_OF_MARK = '3'
COLOR_OF_LINK = '1'
COLOR_OF_MATCH = '5'
LOWER_CASE_SENSITIVE = ' '
MODIFICATION_LOG = ' '
NODE_LENGTH = 30
TEXT_LENGTH = 75
TEXT_LENGTH1 = 0
TEXT_LENGTH2 = 0
RETURN_MARKED_SUBTREE = ' '
SCREEN_START_COLUMN = 0
SCREEN_START_LINE = 0
SCREEN_END_COLUMN = 0
SCREEN_END_LINE = 0
SUPPRESS_NODE_OUTPUT = ' '
LAYOUT_MODE = ' '
USE_CONTROL = STREE_USE_LIST
USE_CONTROL = 'L'.
IMPORTING
F15 =
Regards,
Azaz Ali. -
Help required to attach CO-PA reports to Report Tree.
HI experts,
Me and my functional are in urgent need of important information. My functional has generate CO-PA reports and now they have asked us to attach those reports to a report tree. My problem is that I have got the transaction SERP which seems useful in attaching the reports the tree. Kindly suggest what is to be done.
Points will be rewarded.
Thanks and Regards,
Saurabh ChhatreHi,
Check the following links:
http://www.sap-img.com/abap/tree-type-report-in-abap.htm
http://www.sap-img.com/ge002.htm
Regards,
Bhaskar -
Dear all,
I am currently working on a tree alv report. Here i have 3 levels of heirearchy each heirearchy level has different fields to be displayed. Can anyone please help me out how to build the fieldcatalog when the field changes for each heirearchy level? If anyone can help me with sample report will be rewarded with points.
Example:
1st level - Netwrok Activity -- Display Fields from AFVC table
2nd level - Components of Activity - Display fields from RESB Table
3rd Level - Items of Component - Display fields from STPO table
We dont have such example in BCLAVTREE if so pls help me with some sample code of program how to build fieldcatolog.
Thanks & Regards
SathishHi,
If it's going three level drill down list then you can use can see following piece of code. declaration should be like this.
top_of_page type slis_formname value 'TOP_OF_PAGE',
end_of_page type slis_formname value 'END_OF_PAGE',
user_command type slis_formname value 'USER_COMMAND',
pf_status_set type slis_formname value 'PF_STATUS_SET',
user_command1 type slis_formname value 'USER_COMMAND1',
pf_status_set1 type slis_formname value 'PF_STATUS_SET1',
and displaying the first list will be.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
i_callback_program = name
i_callback_pf_status_set = pf_status_set
i_callback_user_command = user_command
* I_STRUCTURE_NAME =
i_callback_top_of_page = 'TOP-OF-PAGE'
i_grid_title = 'CUSTOMER GROUP WISE REPORT'
is_layout = layout
it_fieldcat = fieldcat_t
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* it_sort = SORT_T
* IT_FILTER =
* IS_SEL_HIDE =
i_default = 'X'
i_save = 'A'
* IS_VARIANT =
* it_events = events_t
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* IT_ADD_FIELDCAT = FIELDCAT_T1
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = it_basic.
and capturing user command will be like this.
form user_command using ucomm like sy-ucomm
selfield type slis_selfield.
case ucomm.
when '&IC1'.
read table it_basic index selfield-tabindex.
perform get_data_first_list using it_basic-kdgrp.
when '&PLEVEL'.
when '&CUST'.
when '&F15'.
leave to screen 0.
endcase.
endform. "user_command
you may be able to display the similar when the double click a line or clicking on a button.
if you want have mulitple header lines on the top of page you can this.
form top-of-page.
*ALV Header declarations
data: t_header type slis_t_listheader,
wa_header type slis_listheader.
wa_header-typ = 'H'.
wa_header-info = xhead.
append wa_header to t_header.
clear wa_header.
concatenate sy-datum+6(2) sy-datum+4(2) sy-datum+0(4) into xhead1
separated by '.'.
wa_header-typ = 'H'.
wa_header-info = xhead1.
append wa_header to t_header.
clear wa_header.
* append t_header.
*append t_header.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
* i_logo = 'Z_LOGO'.
endform. "top-of-page
May it helps you.
Regards.
DS -
CR 2008 report not displaying until Group Tree clicked
We are having an issue with our CR 2008 web based reports. The reports run correctly locally, but not when launched from a Windows 2008 Server on which we installed Crystal Reports 2008 Fix Pack 3.3 - Redist Install. This is a web based application written in ASP.NET and .NET framework 3.5.
When the report viewer is invoked, the Group Tree in the left hand pane appears with valid group data. The report viewer pane, however, is blank. If we click a node in the Group Tree, the report appears. If we click in the Page Number field and press ENTER, the report appears. As I previously mentioned, it works correctly when run locally from our development workstation.
This happens on all reports. We've created a brand new report with no groups and the same situation occurs. We've turned off the Group Tree in code with the same result. We've tried setting various properties on the viewer itself, and have even tried adding a bit of Javascript to have the page refresh the report after it appears, all to no avail.
Has anyone else seen this issue that might be able to suggest what we do differently to work around this issue?
Thanks in advance.Thanks for the suggestion David. I tried that this morning but the issue still remained. Are there any known issues with the latest 3.3 patch and the viewer?
As an added note, the issue is not browser specific. It happens in both IE and Firefox.
Thank you. -
Is it possible to create hierarchical tree report (not group tree) CR2008?
Hi,
Is it possible to create hierarchical tree kind report using CR 2008(no group tree in the report)? The report somewhat look like below and a node can have multiple Child and so and so. Is there any magical way either as a chart or any object which supports the below structure.
Parent1
Child1 Child2 Child3 Child4 Child5
Child1A Child1B Child1C
Child1Aa Child1Ab
its hierarchical tree structure and it should be in detail section of the report so that print in paper is possible.
Please help first of all, can we able to create a report in above structure(each item needs to be surronuded with box and the each last child will contain a table valued data.
(if I post this thread, it may look like plain text, please consider the above data as a hierarchical tree structure with child having N number of children)
ThanksMoved from .NET Development - Crystal Reports forum to Crystal Reports Design forum.
Ludek -
Report is Blank Until you Click Group Tree
Hello,
I have a report that is opening as a totally blank page (except for group tree). When you click on group tree, the report appears. Once this happens, you can refresh the report, and it is fine.
Can someone tell me what is happening, and how I can fix it?
Thanks.As you've discovered, this can be caused when the Preview app on a Mac saves a PDF form. Any script you download has to be installed in the correct location and then Acrobat has to be restarted. Here's a link to an updated script that works with Reader: http://kb2.adobe.com/community/publishing/885/cpsid_88564.html
An alternative to using a script with Acrobat is to export the form data and then reimporting it into the form. -
Report Header is hided when navigating in the Group Tree
Hello there,
I have an issue when navigating in CR reports by using the Group Tree. When I chose an entry in the tree, the Report header is hided. Please advise what needs to be changed in order to keep the report header during Group Tree navigation
thanksReport Header is only visible on the first page of the report. If you click on an entry that is on the first page of the report, is the report header visible then?
If you want the information in the report header visible on every page, consider moving it to a page header.
Maybe you are looking for
-
Reg: ME21 Purchase Order Creation BDC Codes
Hi All, Ritenow Im working with ME21 purchase order creation, i have to create a upload program for this past twodays im geting hectic with this prog, if i create a prog using me21n transaction it is not running, and in ME21 i cant record in SHDB( it
-
Depreciation to different accounts
Dear all, I have a requirement for vehicle depreciation. Company rents cars and when a car is rented, we want to post the depreciation to account 700, but when the car is not rented, we want to post the depreciation to account 780. Is this possible?
-
I recently subscribed for the free trial of Napster-to-Go, as my Creative Zen Touch was not on the list of incompatible players. However, when I tried to transfer the music files on to my Zen Touch, it said it was not a compatible player. Does anyone
-
I have lost all my pictures in Organizer in PS Elements 11 I have tried "File - Manage Catalogue- to no avail - what next?
-
We generated a SAS for Table Access and could not get Access. var tableUri = table.Uri.AbsoluteUri; var sharedAccessSignature = table.GetSharedAccessSignature(policy, null, partitionKey, rowKey, partitionKey, rowKey);