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
Similar Messages
-
Hi Experts,
My requirement is to create a docking container on a subscreen.
How to create such docking container ?
Thanks
Alok VishnoiHi Alok ,
Try to do below
data: docking_container type ref to cl_gui_docking_container,
splitter_container type ref to cl_gui_splitter_container,
top_container type ref to cl_gui_container.
* Create container for alv tree
create object docking_container
exporting
side = cl_gui_docking_container=>dock_at_left
extension = 270
repid = sy-repid
dynnr = '100'.
if not docking_container is initial.
* Creating object for splitter container
create object splitter_container
exporting
link_dynnr = '100'
link_repid = sy-repid
parent = docking_container
rows = 1
columns = 1.
endif. " IF NOT docking_container IS INITIAL
if not splitter_container is initial.
* Method to get the container name of top splitter area of docking container
call method splitter_container->get_container
exporting
row = 1
column = 1
receiving
container = top_container.
endif. " IF NOT splitter_container IS INITIAL
you can check more info on my reply of below thread
https://www.sdn.sap.com/irj/scn/profile?userid=3925441
hope this info is useful to you.
Thanks!
Edited by: Prasanth Maddela on Apr 22, 2009 5:34 PM -
Re: How to reduce the width of Docking Control Container
Hi All,
I created a text editor control using docking container. Its width is occupying the entire screen. I want to reduce it to half of the screen. I tried changing the values of ratio, extension and used the methods set_width to change it, but was not successful. Please let me know how can i reduce the width. Below is the code which i am using.
data: editor TYPE REF TO cl_gui_textedit,
lo_dock TYPE REF TO cl_gui_docking_container.
IF lo_dock IS INITIAL.
CREATE OBJECT lo_dock
EXPORTING
repid = sy-cprog
dynnr = sy-dynnr
ratio = 75
extension = 50
metric = cl_gui_docking_container=>metric_mm
side = cl_gui_docking_container=>dock_at_bottom
name = 'DOCK_CONT'.
IF sy-subrc 0.
MESSAGE 'Error in the Docking control' TYPE 'S'.
ENDIF.
CREATE OBJECT editor
EXPORTING
parent = lo_dock
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
gui_type_not_supported = 5
OTHERS = 6.
CALL METHOD editor->set_text_as_r3table
EXPORTING
table = i_texttable
EXCEPTIONS
error_dp = 1
error_dp_create = 2
OTHERS = 3.Hi,
Check the other exporting parameter of cl_gui_textedit's constructor.
Try using MAX_NUMBER_CHARS, WORDWRAP_MODE. Pass these paramters while creating object editor.
Regards,
Sharin. -
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 to Increase Border Thickness of Docking Container
Dear Experts,
I am working with Docking containers in my project. Is it possible to increase the thickness of the border of a Docking Container? I dont see any method as such in the respective class, but there is an attribute called WS_BORDER. I am not sure of how and where to use this attribute. And one more Question, is there any possibility to have a Tool Tip text when the cursor is placed on the border of the Docking Container?
Thanks in Advance.
Best Regards,
rama
Edited by: newtoAbap on Dec 9, 2009 12:01 PMNo, imagine we have two docking containers (both horizontal). Now, we can use the mouse and drag those controls on the screen right. Thats what i am talking about, the border is so thin actually can we make it thick?
Best Regards,
rama -
How do i get the max width and height?
Hey
I want to get the max width and height, so my desktoppanes size can be set automatically.
I know i should use getBounds but i cant find a concrete example on goole, on how to use it.
Can someone point me in the right direction, with an example?Ok, assuming you want to get the screen resolution, i.e. 1024 x 768.
You will need these imports:
import java.awt.Dimension;
import java.awt.Toolkit;and this line of code:
Dimension myScreen = Toolkit.getDefaultToolkit().getScreenSize() ;You can now use myScreen.width and myScreen.height to access the height and width of your screen's resolution. (width = 1024, height = 768 in my case)
Hope this helps,
Stern
Edited by: Stern on Apr 13, 2008 6:49 AM -
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.
-
How can I have a fluidarea with max width set?
I have a design where I want a div with the background set to full width - hence 100%
<div id="ContentArea" style="width:100%;background-color:#F55; >
<div id="FIXEDCOLUMN" style="width:60px; >
some content goes here
</div>
<div id="FLUIDAREA" style="width:MAX900;background-color:#FFF; >
some content goes here
</div>
</div>
I want to be able so set the div FLUIDAREA to a max width of 900
I want FIXEDCOLUMN to the left of FLUIDAREA (using float left or something)
I want the columns FIXEDCOLUMN and FLUIDAREA to be centred within the ContentArea (setting margin width to auto I assume???)
How can I achieve this?
Do I need another div around these to max 960 to wrap them up?
Thank you.As simple as that!!!
Hmmm.
I've been searching with google for that but getting all sorts of answers.
Thank you for all your help.
Terry -
How to set background color in a docking container?
Hi guys!
Is it possible to set a background color for a docking container?
I don't find any appropriate method to do that.
Is there actually a way?Hi,
Please refer the below program as a reference for Color using Docking Container Concept.
REPORT zcuitest_alv_07.
* Use of colours in ALV grid (cell, line and column) *
* Table
TABLES : mara.
* Type
TYPES : BEGIN OF ty_mara,
matnr LIKE mara-matnr,
matkl LIKE mara-matkl,
counter(4) TYPE n,
free_text(15) TYPE c,
color_line(4) TYPE c, " Line color
color_cell TYPE lvc_t_scol, " Cell color
END OF ty_mara.
* Structures
DATA : wa_mara TYPE ty_mara,
wa_fieldcat TYPE lvc_s_fcat,
is_layout TYPE lvc_s_layo,
wa_color TYPE lvc_s_scol.
* Internal table
DATA : it_mara TYPE STANDARD TABLE OF ty_mara,
it_fieldcat TYPE STANDARD TABLE OF lvc_s_fcat,
it_color TYPE TABLE OF lvc_s_scol.
* Variables
DATA : okcode LIKE sy-ucomm,
w_alv_grid TYPE REF TO cl_gui_alv_grid,
w_docking_container TYPE REF TO cl_gui_docking_container.
PARAMETERS : p_column AS CHECKBOX,
p_line AS CHECKBOX,
p_cell AS CHECKBOX.
START-OF-SELECTION.
PERFORM get_data.
END-OF-SELECTION.
PERFORM fill_catalog.
PERFORM fill_layout.
CALL SCREEN 2000.
*& Module status_2000 OUTPUT
* text
MODULE status_2000 OUTPUT.
SET PF-STATUS '2000'.
ENDMODULE. " status_2000 OUTPUT
*& Module user_command_2000 INPUT
* text
MODULE user_command_2000 INPUT.
DATA : w_okcode LIKE sy-ucomm.
MOVE okcode TO w_okcode.
CLEAR okcode.
CASE w_okcode.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " user_command_2000 INPUT
*& Module alv_grid OUTPUT
* text
MODULE alv_grid OUTPUT.
IF w_docking_container IS INITIAL.
PERFORM create_objects.
PERFORM display_alv_grid.
ENDIF.
ENDMODULE. " alv_grid OUTPUT
*& Form create_objects
* text
* --> p1 text
* <-- p2 text
FORM create_objects.
* Ratio must be included in [5..95]
CREATE OBJECT w_docking_container
EXPORTING
ratio = 95
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
others = 6.
CREATE OBJECT w_alv_grid
EXPORTING
i_parent = w_docking_container.
ENDFORM. " create_objects
*& Form display_alv_grid
* text
* --> p1 text
* <-- p2 text
FORM display_alv_grid.
CALL METHOD w_alv_grid->set_table_for_first_display
EXPORTING
is_layout = is_layout
CHANGING
it_outtab = it_mara
it_fieldcatalog = it_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
ENDFORM. " display_alv_grid
*& Form get_data
* text
* --> p1 text
* <-- p2 text
FORM get_data.
SELECT * FROM mara UP TO 5 ROWS.
CLEAR : wa_mara-color_line, wa_mara-color_cell.
MOVE-CORRESPONDING mara TO wa_mara.
ADD 1 TO wa_mara-counter.
MOVE 'Blabla' TO wa_mara-free_text.
IF wa_mara-counter = '0002'
AND p_line = 'X'.
* Color line
MOVE 'C410' TO wa_mara-color_line.
ELSEIF wa_mara-counter = '0004'
AND p_cell = 'X'.
* Color cell
MOVE 'FREE_TEXT' TO wa_color-fname.
MOVE '5' TO wa_color-color-col.
MOVE '1' TO wa_color-color-int.
MOVE '1' TO wa_color-color-inv.
APPEND wa_color TO it_color.
wa_mara-color_cell[] = it_color[].
ENDIF.
APPEND wa_mara TO it_mara.
ENDSELECT.
ENDFORM. " get_data
*& Form fill_catalog
* text
* --> p1 text
* <-- p2 text
FORM fill_catalog.
* Colour code : *
* Colour is a 4-char field where : *
* - 1st char = C (color property) *
* - 2nd char = color code (from 0 to 7) *
* 0 = background color *
* 1 = blue *
* 2 = gray *
* 3 = yellow *
* 4 = blue/gray *
* 5 = green *
* 6 = red *
* 7 = orange *
* - 3rd char = intensified (0=off, 1=on) *
* - 4th char = inverse display (0=off, 1=on) *
* Colour overwriting priority : *
* 1. Line *
* 2. Cell *
* 3. Column *
DATA : w_position TYPE i VALUE '1'.
CLEAR wa_fieldcat.
MOVE w_position TO wa_fieldcat-col_pos.
MOVE 'MATNR' TO wa_fieldcat-fieldname.
MOVE 'MARA' TO wa_fieldcat-ref_table.
MOVE 'MATNR' TO wa_fieldcat-ref_field.
APPEND wa_fieldcat TO it_fieldcat.
ADD 1 TO w_position.
CLEAR wa_fieldcat.
MOVE w_position TO wa_fieldcat-col_pos.
MOVE 'MATKL' TO wa_fieldcat-fieldname.
MOVE 'MARA' TO wa_fieldcat-ref_table.
MOVE 'MATKL' TO wa_fieldcat-ref_field.
* Color column
IF p_column = 'X'.
MOVE 'C610' TO wa_fieldcat-emphasize.
ENDIF.
APPEND wa_fieldcat TO it_fieldcat.
ADD 1 TO w_position.
CLEAR wa_fieldcat.
MOVE w_position TO wa_fieldcat-col_pos.
MOVE 'COUNTER' TO wa_fieldcat-fieldname.
MOVE 'N' TO wa_fieldcat-inttype.
MOVE '4' TO wa_fieldcat-intlen.
MOVE 'Counter' TO wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
ADD 1 TO w_position.
CLEAR wa_fieldcat.
MOVE w_position TO wa_fieldcat-col_pos.
MOVE 'FREE_TEXT' TO wa_fieldcat-fieldname.
MOVE 'C' TO wa_fieldcat-inttype.
MOVE '20' TO wa_fieldcat-intlen.
MOVE 'Text' TO wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
ENDFORM. " fill_catalog
*& Form fill_layout
* text
* --> p1 text
* <-- p2 text
FORM fill_layout.
* Field that identify color line in internal table
MOVE 'COLOR_LINE' TO is_layout-info_fname.
* Field that identify cell color in inetrnal table
MOVE 'COLOR_CELL' TO is_layout-ctab_fname.
ENDFORM. " fill_layout -
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 -
How to show dock in full screen mode
Hello,
I'm wondering how to get the dock to show up temporarily in full screen mode. When I place my cursor near the bottom of the screen in a full screen app, the dock doesn't pop up. Is this normal and if so, how do I switch between full screen apps without using gestures on the mouse? I'm really hoping that this is a bug.
ThanksAlternatively you can use the same principle anywhere on the screen, you do not have to scroll to the bottom. Simply move the cursor to the screen edge where your dock is then move the cursor the same direction again. You do have to briefly pause between the two movements but you can do this anywhere the dock is located, it does not have to be at one position on the screen. That should speed things up a bit and prevents the dock from appearing by inadvertently scrolling to the side or the bottom.
If you can, get a Magic Trackpad, Lion navigation works very well with one of these, I think that the days of the mouse are numbered. The numbers of gestures available with the Magic Trackpad is extensive in Lion. -
When I use the above media query in my stylesheet Live View ceases to update the viewport. I have to update it manually each time I add or change a style. This is not the case when I use styles under a common tablet sized query @media only screen and (max-width: 768px), or when there is no query at all. Is this a bug or is there something I am missing here?
Code errors might account for the discrepancy. Validate your code and fix any reported errors.
CSS - http://jigsaw.w3.org/css-validator/
HTML - http://validator.w3.org/
Nancy O. -
Im having problem getting my calendar out from trash(not deleted) to where this belong to dock below the screen accidently click when im using apps cleaner,i try to swipe my application from trash bin to dock station but keep bounce back to bin,i check on help site said simply open trash bin select the application you want to save,go to top screen see finder then go to file and click say PUT BACK but main issue is that words are grey out ,im on mountain lion version 10.8.4 at the moment for now i can only use calender by swipe from trash bin to desktop its only i can open than click main dock of calender will say unable to open because it in the trash so can anybody know how to get this out in any way,i dont like to have two icons of calendar on desktop and dock station....i be happy can somebody give advice.......regards
and prior to that ihave uploaded my all the photos and videos to icloud from iphoto
Which part of iCloud are you referring to? iCloud Drive? iCloud Photo Library Beta? My Photo Stream? Shared Photo Stream? -
How to disable the sizing option in docking container
Hi experts,
I have created a grid in a docking container ( cl_gui_docking_container ) which will appear on the selection screen, docking at the bottom. The requirement is to disable the resizing functionality of the grid when I use the sizing arrow with the mouse on dragging. Ideally I am able to expand the grid vertically covering the selection parameters. This option has to be disabled. Please suggest any options for the same.CREATE OBJECT r_dock_container
EXPORTING
side = cl_gui_docking_container=>dock_at_right
extension = 780
caption = 'Materials'
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
I think extension my help.. -
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
Maybe you are looking for
-
Problems with Tiling in PhotoShop CS6
Hello! I am having difficulty with tiling in PhotoShop CS6. I am trying to do a half drop repeat and a block (brick) repeat using a single image that I've manipulated with filters, etc. When I make the pattern and then apply it to a new document, I
-
IPod classic won't go Disk Mode
My iPod classic has a red cross and won't go to Disk Mode. Does this means my iPod died and I need to buy a new one?
-
Properties file not accessible for older requests
Hi With use of jar file as external resource, we are making use of some properties from properties file. Whenever we update the properties file with new properties, after deploying the project - it is observed that for old requests the newly added pr
-
Too much spacing in grid layout
Hello, I have a grid layout in a tootlbar of my table, it has too much spacing in it, the lowest span I could get was "L1" for large screen which is all I care about. I have 3 buttons and I want them next to eachother instead of all that spacing inbe
-
How can I transfer backed up Mac files to a PC without a Mac
I killed my MacBook Pro and I cannot afford at this time to get a new one or fix the current one. I have Time Capsule with a good backup of my files. Can I transfer those files (pics & documents) to a PC without a working Mac ?