Split screen or docking container help
Hi all,
My program
i have a docking control where the user configure his own programs as nodes on the left pane
Requirement:
On double click of node corresponding program has to appear or get executed on the right pane.
How do i achieve this.
Can any one help me.
Regards,
Lisa
Hi Lisa,
you must register the events in the left pane and then capture them for the right pane.
For example, if you are using a tree control, you have to register the events in this way:
DATA: EVENTS TYPE CNTL_SIMPLE_EVENTS,
event type cntl_simple_event.
* define the 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.
CALL METHOD G_TREE->SET_REGISTERED_EVENTS
EXPORTING
EVENTS = EVENTS
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
ILLEGAL_EVENT_COMBINATION = 3.
IF SY-SUBRC <> 0.
MESSAGE A000.
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.
Then you have to capture the events:
CLASS LCL_APPLICATION DEFINITION.
PUBLIC SECTION.
METHODS:
HANDLE_NODE_DOUBLE_CLICK
FOR EVENT NODE_DOUBLE_CLICK
OF CL_GUI_SIMPLE_TREE
IMPORTING NODE_KEY,
ENDCLASS.
CLASS LCL_APPLICATION IMPLEMENTATION.
METHOD HANDLE_NODE_DOUBLE_CLICK.
" this method handles the node double click event of the tree
" control instance
ENDMETHOD.
ENDCLASS.
For more information, please have a look at the Reuse Library (transaction SE83) > SAP Technology > Controls > Tree Controls, or go directly to program SAPSIMPLE_TREE_CONTROL_DEMO.
I hope it helps. Kind regards,
Alvaro
Similar Messages
-
Different screens in docking container...?
Hi gurus,
I'll try to explain what I'd like to do....
I have a dynpro with a docking container, on the left I have a tree where I can choose an activity (e.g.: go to se11, go to se38, go to se16, and so on).
I would like to run those transaction inside the docking container, without leaving to another screen, is it possible?
Thank you very much!!!Hi,
I think it is not possible, although your idea is interesting. You must think that we must use Call Transaction XXXX and that means that we´re leaving our current programme in order to execute the called programmed and screen behind transaction XXXX. We cannot use Submit since the instruction is for executable reports only.
When using the SAP´s main menu, we have to leave the main programme (SAPLSMTR_NAVIGATION, screen 0100) when double clicking a node in the tree. When using a docking container, you must insert either screens or subscreens for displaying your information. You cannot enbed a transaction into this screens since it happens what I´ve explained in my first paragraph.
If you find a way, let us know. -
Is there any way of getting split screen function in firefox 4
Being able to split screen was a very helpful feature in the previous version of firefox, however, it is not available in version 4. Is there any other way of getting this tool?
Firefox has never had a built-in option to split the screen, such a feature is added by an extension. The only one that I know of that is compatible with Firefox 4 is Split Pannel - https://addons.mozilla.org/firefox/addon/split-pannel
-
Assign subscreen to docking container
Hi All,
I have requirement to make the subscreen of mainscreen draggable/reziable. Very much similar to se80.
I have two subscreens in main screen. Now I need to give this reziable functionality to one of the subscreen .
This can be achieved through docking container. But currently I am not using any containers.
If suppose I have to use docking container then how will i assign this subscreen of main screen to docking container.
Please suggest.
Thanks.Thanks Naimesh.
I have tabstrip and subscreen inside it. For each tabstrip click we display different table controls which are again designed in different screens as subscreen. Now how will I make this subscreen in Main screen resizable. -
Help or tutorials about ABAP UI programming such as Tree and dock container
Hi,
I'm looking for help, tutorials or any ressources I can explore to undertsand how to work in ABAP with controls, containers, tree and so on.
Each time I do a search on help.sap.com, I found help on a detailed object such as tree or docking container but I never found a global view. I would like to understand the big picture, have an averview of all involved concept. For example, if I want the user screen to be splitted in 2 parts, one that will display a tree, the other one that will display "simple" screen painter trees that will change depending on what user choose using the tree on the left. How do I need to proceed ?
I'm sorry if I have not a more precise question because I don't found where to begin.
Thanks for help
Regards
MorganHi Morgan,
You can start going thorugh the concepts from help.sap.com. Have a look at the following link:
http://help.sap.com/erp2005_ehp_04/helpdata/EN/1b/337930a63011d2bd6b080009b4534c/frameset.htm
You will get the entire set of Example codes in the Transaction Code : ABAPDOCU.
You can also look for examples for Dialog Programing in SE38 using the DEMODYNPRO*.
Have a look at the Package : SLIS. This is a one point of all examples and demo of SAP Control Framework and ALV Functionality.
Hope this helps.
Thanks,
Samantak. -
Selection screen elements in docking container
Hi fellow abapers
Is there any way to create pushbutton, input fields (Parameters or select-options ) in a docking container.
Plz help.
Regards
PrabumanoharanAbhi,
I can understand what are you trying to do. But that is not possbile with a DOCKING container.
Here is a work around. Have two screens, one with the fields that you want to display and other one empty. Whenever you want to decrease the size, just replace the actual screen with fields with the dummy empty screen.
There is NO other way of doing this.
Regards,
Ravi
Note : Please mark the helpful answers -
Embedding a screen in a docking container - Is it possible at all??
I am working on a screen design similar to SE80, where I will be required to display a tree structure in screen say '0100' to the left of the screen and upon node_double_click event, I should be able to bring up another screen '0200' on to the right side with out navigating away from the screen 0100.
I have a custom control in my initial screen 0100, covering the full area, and I am instantiating the docking container object in the node_double_click handler method of the tree control. I have passed sy-repid and dynpro number '0200' but to no avail.
The following is the code sample.
IF docking_right IS INITIAL.
CREATE OBJECT docking_right
EXPORTING
repid = g_repid
dynnr = '0200'
side = cl_gui_docking_container=>dock_at_right
extension = 900.
ENDIF.
I have gone through many posts in this forum but none of them have a definitive indication if that can be possible, that is why I had to create this new thread. I will be glad if any of you could let me know if there is way accomplishing this.
Thanks in advance,
Raghu.Hi Raghu,
I was specifically interested in exploring the option (if any) of combining conventional controls and the new GUI controls because I am trying to get to a scenario where I should be able create conventional controls like list boxes and buttons dynamically based on user actions. .
For GUI controls you always need some container which is a "bridge" b/w control created in program and the screen. For standard dialogs you don't need such container. You just place them on the screen. Therefore you can combine these techniques by simply placing a container (which you already have and will use for tree control). The rest of the screen area can be used by standard controls (listoboxes, i/o fields etc). This way standard controls would be statically set, whereas container would store GUI control assinged dynamically in program.
If, on the other hand, you want both controls and GUI controls be dynamically determined, just keep you container (for GUI control) and create a subscreen area where you dynamically swap different screens. These screen must be set as subscreens and must have statically defined layout, thus only determination of the screen to be displayed is dynamic here.
Anyhow, there is no way to dynamically set standard controls on the screen. You could, however in turn switch them on/off in PBO (based on certain conditions) but this would require placing all the possible controls and just hiding/showing them. No replacment is then possible, so image empty gaps which this approach would produce.
Ironically the constructor of docking container supports repid and dynpro for no apparent utility.
As I said, container is used only to place some GUI control in it and then send this entire package (container+ GUI control) to appropriate place on the screen. That's why in container's constructor there is both repid and dynpro. These only determine where this container should be attached.
Regards
Marcin -
Help white screen no dock, no screen. no desk top!!!!
I have no screen, no dock, no desk top. nothing just a white screen. Can anyone help me restore I don't know how to fix this problem
Help please!!!!!Ok downloaed osx lion and icloud. now my mac starts up and goes to a white screen. no dock no desk top nothing. it's like a great big white cloud nothing else. I have used the option f11 key to get system preferances to come up and everything checks out. If I pull up recent under system and click on iphoto I get a white screen, If I click on icloud I get a white screen. If I click on Icloud on apple support I get a screen with the sign in screen jumping around. I'm so brain dead trying to figure this out. Please if you can help!! Much thanks!
-
Docking container in a screen with others elements.
Hy yall,
i'm trying to add a docking container at the bottom of a screen where i have already others elements like subscreen etc...
The add is ok but the dockingcontainer is pushing on the right all the elements in the dynpro.
How can i control where the docking starts ( his distance from the top) in other to keep it under the others elements?
P.s: it's a docking_left.Hello Andre
If you have already elements on the screen I would recommend to use a resizable CUSTOM_CONTROL element on the screen to which you link your docking container.
Furthermore, if the docking container should dock from the bottom why don't you use DOCKING_BOTTOM and make the width of the docking container huge (to fill the entire screen to the right side)?
Regards
Uwe -
How ...Max. Width of Docking container in Screen ??
Hi.. ^^
I want to fill two docking container in a screen(alignment Top, Left, Bottom or Right).
so I set first docking container width(300) and set 2nd docking container. I want know available maximum width of 2nd docking container.
How can i get maximum width of screen. (dynamic)
Is there any method or function module ?Hi,
Check this thread..
SIZE_CONTROL Event for docking container
regards
vijay -
Rebuild screen freeze - unable to update firmware as not docking. Help please
Hello, I've got an 8gb Zen.
Always worked fine til I tried one of those hand crank chargers, since then I turn it on and it will freeze on the rebuilding screen.
Ran scandisk on it - no joy.
Wanted to try and update firmware to see if that helped but it will not connect to computer via USB. It will charge from the usb but just not connected, nothing.
Any help appreciated. Thank youQRe: Rebuild screen freeze - unable to update firmware as not docking. Help please? So, it freezes on the rebuilding screen after formatting? It is very odd. Just to make sure... you have formatted (not cleaned up) the device from the Recovery Mode menu, right?
My only suggestion now is trying to mount the device on another computer (try one with a BSD or Linux operating system) and format it from here. With some luck, you should be able to see it as a new USB dri've. I am suggesting one of these operating systems, as you have a chance to mount your player on them even if it does not boots up properly. (I did it to recover mine just before suspecting there was a discrepancy on the FATs stored of the filesystem.) In your case, you will have a chance to format the device (using a FAT filesystem, of course) from these operating systems. I am, however, surprised to see that the Recovery Mode format function does not do its work on your player.
If your device does not boot up and freezes on the scanning/rebuilding processes there is a chance you have a problem with your filesystem instead of a fried USB port. So, there is a chance you can fix this device yourself yet. -
I'm 99% finished with my project.
I now want to display split screen for both edited clips.
I noticed I get picture in picture on and off through out the clip like in the display screen (top right)
How did that happen? It happens when I have both clips enabled.
how do I get remove picture in picture and also activate split screen?Probably to use the transform functions to crop and reposition the images. You'll probably need to to do one and then use the copy and paste attributes function to apply it to the other shots on that layer.
-
Split screen in module pool programming
Hi Sap GURUS,
Please can you provide me some help on how to create the spilt screen ( similar to IDOC screen WE05 transaction ) screen. left side the idoc nubmer are available, on click of particular IDOC, detials would be displayed in right side sceen. I need to develope the screen like this.
You inputs are highly appricated.
Thanks in advance.
Regards
HarikrishnaCheck out this code:
1) First create a docking container.
2) Docking will hold your tree
3) double clicking on the tree will open a screen on the right side.
This program only demonstrates how to create a docking container and split it...
REPORT z_sourav_splitter.
TYPE-POOLS:cndp.
DATA: docking TYPE REF TO cl_gui_docking_container,
splitter TYPE REF TO cl_gui_splitter_container,
picture_control_1 TYPE REF TO cl_gui_picture,
picture_control_2 TYPE REF TO cl_gui_picture,
dock_sub_cont1 TYPE REF TO cl_gui_container,
dock_sub_cont2 TYPE REF TO cl_gui_container,
url1 TYPE cndp_url, " URL-field in screen 200
url2 TYPE cndp_url. " URL-field in screen 200
PARAMETERS: p TYPE char1.
AT SELECTION-SCREEN OUTPUT.
IF docking IS NOT BOUND.
* create the docking container
CREATE OBJECT docking
EXPORTING
* parent =
repid = sy-repid
dynnr = sy-dynnr
side = docking->dock_at_left
extension = 200
* style =
* lifetime = lifetime_default
* caption =
* metric = 0
* ratio =
* no_autodef_progid_dynnr = 'X'
* name =
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.
CHECK splitter IS NOT BOUND.
CREATE OBJECT splitter
EXPORTING
link_dynnr = sy-dynnr
link_repid = sy-repid
* shellstyle =
* left =
* top =
* width =
height = 50
* metric = cntl_metric_dynpro
align = 15
parent = docking
rows = 2
columns = 1
* no_autodef_progid_dynnr =
* name =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3
IF sy-subrc = 0.
CALL METHOD splitter->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = dock_sub_cont1.
CREATE OBJECT picture_control_1
EXPORTING
parent = dock_sub_cont1.
CALL FUNCTION 'DP_PUBLISH_WWW_URL'
EXPORTING
objid = 'DEMOWORD97SAPLOGO'
lifetime = cndp_lifetime_transaction
IMPORTING
url = url1
EXCEPTIONS
dp_invalid_parameters = 1
no_object = 2
dp_error_publish = 3
OTHERS = 4.
* load image
IF sy-subrc = 0.
CALL METHOD picture_control_1->load_picture_from_url_async
EXPORTING
url = url1.
ENDIF.
CALL METHOD splitter->get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = dock_sub_cont2.
CREATE OBJECT picture_control_2
EXPORTING
parent = dock_sub_cont2.
CALL FUNCTION 'DP_PUBLISH_WWW_URL'
EXPORTING
objid = 'ENJOYSAP_LOGO'
lifetime = cndp_lifetime_transaction
IMPORTING
url = url2
EXCEPTIONS
dp_invalid_parameters = 1
no_object = 2
dp_error_publish = 3
OTHERS = 4.
* load image
IF sy-subrc = 0.
CALL METHOD picture_control_2->load_picture_from_url_async
EXPORTING
url = url2.
ENDIF.
ENDIF.
ENDIF.
ENDIF. -
How can I pass a docking container to a program in a non-simple context?
Dear colleagues,
I want to pass a docking container like the one in SE80 to another program.
The following code works fine:
REPORT z_moving_dock.
DATA: cl_docker type REF TO cl_gui_docking_container.
PARAMETERS: test.
INITIALIZATION.
CREATE OBJECT cl_docker EXPORTING no_autodef_progid_dynnr = 'X'.
END-OF-SELECTION.
WRITE:/ test.
But I cannot extend this to my current program. There I sourced out anything related to the GUI into a function group to obey the MVC paradigma. (That's maybe the error in reasoning, but I'm following the book Design Patterns in Object-Oriented ABAP from SAP Press and -- of course -- good and healthy programming style.)
So it's a function group which knows the dynpros and controls, the main program knows only the data.
Now I have a docking container like the one in SE80. We have many working older programs and I want to switch to them carrying the docking container with me. I have searched the Demos in SAP, the Online Help, the SAP Library, Books, the Web, this Forum, but none of them goes beyond the simpler examples that always work.
I tried the LINK method on the docking container. I tried it before calling the new program (btw. by SUBMIT). I tried it afterwards from the called program (via a function module from the aforementioned group -- but the group is tied to the old program context and therefore I am in a new "instance" of it). I tried different values for REPID and DYNNR in LINK. I debugged SE80 -- too complicated!
If it works well I get the container back when I return to the calling program. If it works badly the container is completely lost.
Perhaps I should export something to memory?
But I strongly would prefer not to alter the called programs: In the future I might also want to call a SAP standard program.
I also didn't find some documentation explaining what is going on in the background so I could figure out in which direction to "think".
I also tested the following code on SAP R/3 4.7 and SAP ERP 2005 with the same results.
In the meantime I also created a minimal example. First the triggering report:
REPORT z_moving_docking_container.
DATA: g_example TYPE REF TO zcl_moving_docking_container.
CREATE OBJECT g_example.
This obviously calls the main class ZCL_MOVING_DOCKING_CONTAINER which has only this constructor:
METHOD constructor.
CALL FUNCTION 'Z_SHOW_DYNPRO'.
ENDMETHOD.
Normally this class should handle the business logic. Here it only calls this function module. In the appropriate function group, say Z_MOVING_DOCKING_CONTAINER, I have these declarations in the TOP-Include:
FUNCTION-POOL z_moving_docking_container.
DATA:
gv_okcode TYPE ui_func,
go_docker TYPE REF TO cl_gui_docking_container.
The function group also contains a dynpro 9000 with this flow logic:
PROCESS BEFORE OUTPUT.
MODULE status_9000.
PROCESS AFTER INPUT.
MODULE user_command_9000.
The modules are straightforward:
MODULE status_9000 OUTPUT.
SET PF-STATUS '9000'.
IF go_docker IS INITIAL.
CREATE OBJECT go_docker
EXPORTING no_autodef_progid_dynnr = 'X'.
ENDIF.
ENDMODULE.
with at least the function code ONLI defined in PF-status 9000 and
MODULE user_command_9000 INPUT.
IF gv_okcode = 'ONLI'.
SUBMIT z_sample_report AND RETURN.
ELSE.
LEAVE PROGRAM.
ENDIF.
ENDMODULE.
The report Z_SAMPLE_REPORT can be any report you like.
At last the function module contains the following code:
FUNCTION z_show_dynpro.
*"*"Lokale Schnittstelle:
CALL SCREEN 9000.
ENDFUNCTION.
As I see this, this is a straightforward application of the working example at the top and the principles of MVC and encapsulation of the dynpro logic (to "avoid" global variables as best as possible).
Clearly in some sense this is an academic question, but I have built a fairly big application like that up to now ...
</edit>
Thanks for reading and contemplating,
Thomas
Edited by: Thomas Geiß on Feb 4, 2009 11:03 AM
Edited by: Thomas Geiß on Feb 4, 2009 11:59 AM
Edited by: Thomas Geiß on Feb 4, 2009 12:01 PMYou'll either have to pass the data in as parameters in the applet tags or create a JavaScript tag and have the JavaScript pass it in. If the array is very large then you open a connection between the Applet and a servlet and pass the data that way.
-
Hello,
Could you please tell me what is wrong either in the code below or in my logic:
DATA: d_container TYPE REF TO cl_gui_docking_container,
e_control TYPE REF TO cl_gui_abapedit.
CALL SCREEN 200.
CREATE OBJECT d_container
EXPORTING
* repid = sy-cprog
* dynnr = sy-dynnr
side = cl_gui_docking_container=>dock_at_left.
check sy-subrc = 0.
CREATE OBJECT e_control
EXPORTING
parent = d_container.
Logic
- create empty screen 0200
- create docking container docking it to the left part of screen
- embedding abap editor control to this docking container
My question is: why when running program I don't see anything, as the docking container with the control inside wouldn't be there?
Thank you for help in advance.
MarcinHi Jonathan,
The problem was obvious. The code simply should be included in PBO module of the screen.
There is no need to pass neither sy-repid nor sy-dynnr unless it displayed in other screen/program.
Gr8 thanks for your help:)
Regards,
Marcin
Maybe you are looking for
-
How to use itunes gift card to buy gems on Clash of Clans (in-app purchase)?
I recently redeemed an $10 itunes gift card. The credit shows up next to my apple ID, but when I try to purchase gems on Clash of Clans I get an error that says "Insufficient Remaining Store Credit- Tap Continue to sign in". When I sign in it wants m
-
Ipfilter on Solaris 10 on VMware problem
Hi! I have a problem with ipfilter on my VMware Solris 10 b72 system. I`ve configured ipf strictly according to documentation, creating zero-sized ipf.conf and ipnat.conf with one 'rdr' rule. current status is: ipnat -ls shows that everything is OK,
-
Passing parameters to subtemplate.
Hi! I read Tims blog Here is the link about subtemplates and it was very intresting. I got it working except for one thing. The parameter ReportName doesn't work as it should. I get the following error: oracle.xdo.parser.v2.XPathException: Variable n
-
Error opening Licensing Agreement
Prior to downloading Reader, I tried to open the Licensing Agreement http://www.adobe.com/legal/licenses-terms.html#software (http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/legal/licenses-terms/pdf/Rea der_11.0.pdf) but keep getting an
-
Hi all, I´ve an issue running lightroom 4 with Windows 8 - most of the time lightroom won´t start or it will crash while loading the image libary. Any ideas? Best Regards, Tobias www.lise.de Köhlstr. 27 50827 Köln