Dynamic creation of tab control

Hi,
Am suppose to create table control for each header record in intenal table.
ie-
Header1
Tab contrl 1
header2
Tab contrl 2
header n
Tab contrl n
Though number of records in int table not fixed.
can anybody please guide me how can this be achieved as for tab control we have to draw tab control container in screen painter first.
Thanks,
Sanjay Deshpande

If you intend to do that, you'd have to create the dynpro dynamically and generate it using the sentence GENERATE DYNPRO, otherwise you won't be able to place N fields dynamically in the screen. (However SAP does not recommend using this sentence in application programs)
Another option would be the use of OO ALVs instead of Table Controls, with this approach, you'll be able to generate N ALVs (one for each header) by splitting a screen container control in N predefined 'SubContainers' (You can use the CL_GUI_SPLITTER_CONTAINER component)

Similar Messages

  • Dynamic vi on tab control

    Hello,
                  I have a tab.vi which has a tabcontrol. The tab control has 3 tabs. Only tab1 is visible intially and the other two tab's are hidden. Now lets say we are in tab1 and user presses 'Add' button. Then tab2 becomes visible. If user presses again 'Add' Button then tab3 becomes visible. Now each tab has a subpanel. Each subpanel will be loaded a vi from template when the respective tab becomes visible. Now Lets say tab1 and tab2 are visible then subpanel1 and subpanel2 will have a vi derived from template vi.
    Template vi has two integer input and calculates the sum of it and gives the output.
    Now coming to the problem:
    User enters the following data
    Tab1: Subpanel1 : Tab1Input1=5 Tab1Input2=10
    Tab2: Subpanel2 : Tab1Input1=23 Tab1Input2=2
    now the Tab1output indicator should dispaly 15
    and Tab2output indicator should display 25
    I am having problem getting the vi reference and traversing objects.
    “Talk is cheap. Show me the code.”
    ― Linus Torvalds
    Attachments:
    AddTemplate.vi ‏10 KB
    Tab4.vi ‏26 KB

    If you intend to do that, you'd have to create the dynpro dynamically and generate it using the sentence GENERATE DYNPRO, otherwise you won't be able to place N fields dynamically in the screen. (However SAP does not recommend using this sentence in application programs)
    Another option would be the use of OO ALVs instead of Table Controls, with this approach, you'll be able to generate N ALVs (one for each header) by splitting a screen container control in N predefined 'SubContainers' (You can use the CL_GUI_SPLITTER_CONTAINER component)

  • Creation of Tab Strips control

    Hi Guy's,
    Please help me How to create the Tacbstript control in Screen painter(SE51) step-by-step procedure.
    Thanks,
    Sai

    Hi,
      Very good docu....
    Tabstrip Controls
    A tabstrip control is a screen object consisting of two or more pages. Each tab page consists of a tab title and a page area. If the area occupied by the tabstrip control is too narrow to display all of the tab titles, a scrollbar appears, allowing you to reach the titles that are not displayed. There is also a pushbutton that allows you to display a list of all tab titles.
    Tabstrip controls allow you to place a series of screens belonging to an application on a single screen, and to navigate between them easily. The recommended uses and ergonomic considerations for tabstrip controls are described in the Tabstrip Control section of the SAP Style Guide.
    From a technical point of view, a tab page is a subscreen with a pushbutton assigned to it, which is displayed as the tab title.
    The tabstrip control is the set of all the tab pages. Tabstrip controls are therefore subject to the same restrictions as subscreens. In particular, you cannot change the GUI status when you switch between pages in the tabstrip control. However, they are fully integrated into the screen environment, so present no problems with batch input.
    To use a tabstrip control on a screen, you must be using a SAPgui with Release 4.0 or higher, and its operating system must be Motif, Windows 95, MacOS, or Windows NT with version 3.51 or higher.
    When you create a tabstrip control, you must:
    Define the tab area on a screen and the tab titles.
    Assign a subscreen area to each tab title.
    Program the screen flow logic.
    Program the ABAP processing logic.
    You must then decide whether you want to page through the tabstrip control at the SAPgui or on the application server. In the first case, each tab page has its own subscreen. In the second, there is a single subscreen area that is shared by all tab pages.
    Defining the Tabstrip Control Area and Tab Titles
    You define both the tabstrip area and the tab titles in the screen layout.
    The tabstrip area has a unique name and a position, length, and height. You can also specify whether the tabstrip area can be resized vertically or horizontally when the user resizes the window. If the area supports resizing, you can specify a minimum size for it.
    When you define a tabstrip area, it already has two tab titles. Tab titles are technically exactly the same as pushbuttons. To create additional tab titles, simple create pushbuttons in the row containing the tab titles. Tab titles have the same attributes as pushbuttons, that is, each has a name, a text, and a function code. You can also use icons and dynamic texts with tab titles.
    Assigning a Subscreen Area to a Tab Title
    You must assign a subscreen area to each tab title. There are two ways of doing this:
    Paging in the SAPgui
    You need to assign a separate subscreen area to each tab title, and define the function codes of the tab titles with type P (local GUI function). In the screen flow logic, you call all the subscreens in the PBO event. This means that all of the tab pages reside locally on the SAPgui.
    When the user chooses a tab title, paging takes place within the SAPgui. In this respect, the tabstrip control behaves like a single screen. In particular, the PAI event is not triggered when the user chooses a tab title, and no data is transported. While this improves the performance of your tabstrip control, it also has the negative effect that when the user does trigger the PAI event, all of the input checks for all of the subscreens are performed. This means that when the user is working on one tab page, the input checks may jump to an unfilled mandatory field on another page.
    Local paging at the SAPgui is therefore most appropriate for screens that display data rather than for input screens.
    Paging on the Application Server
    One subscreen area is shared by all tab titles and called in the PBO event. You define the function codes of the individual tab titles without a special function type. When the user chooses a tab page, the PAI event is triggered, and you must include a module in your flow logic that activates the appropriate tab page and assigns the correct subscreen to the subscreen area.
    Since the PAI event is triggered each time the user chooses a tab title, this method is less economical for the application server, but the input checks that are performed only affect the current tab page.
    Procedure in Either Case
    You create the subscreen areas within the tabstrip area. You assign the subscreen areas to one or more tab titles in the Screen Painter by selecting one or more titles. You can also assign a subscreen area to a tab title in the tab title attributes by entering the name of the subscreen area in the Reference field attribute.
    The procedure for the alphanumeric Screen Painter is described under Creating Tabstrip Controls.
    If you are paging at the SAPgui, create a subscreen area for each tab title. If you are paging at the application server, select all tab titles and create a single subscreen area. The subscreen areas may not cover the top line of the tab area. However, within a tab area, more than one subscreen area can overlap.
    Programming the Flow Logic
    In the flow logic, all you have to do by hand is include the correct subscreens. The screen flow and data transport to the ABAP program is the same as for normal subscreens. There are two ways of programming the screen flow logic, depending on how you have decided to page through the tabstrip control.
    Paging in the SAPgui
    When you page in the SAPgui, you must include a subscreen for each subscreen area:
    PROCESS BEFORE OUTPUT.
      CALL SUBSCREEN: <area1> INCLUDING [<prog 1>] <dynp 1>,
                      <area2> INCLUDING [<prog 2>] <dynp 2>,
                      <area3> INCLUDING [<prog 3>] <dynp 3>,
    PROCESS AFTER INPUT.
      CALL SUBSCREEN: <area1>,
                      <area2>,
                      <area3>,
    Paging on the Application Server
    When you page on the application server, you only have to include a subscreen for the one subscreen area:
    PROCESS BEFORE OUTPUT.
      CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
    PROCESS AFTER INPUT.
      CALL SUBSCREEN <area>.
    Handling in the ABAP Program
    Before you can use a tabstrip control in your ABAP program, you must create a control for each control in the declaration part of your program using the following statement:
    CONTROLS <ctrl> TYPE TABSTRIP.
    where <ctrl> is the name of the tabstrip area on a screen in the ABAP program. The control allows the ABAP program to work with the tabstrip control. The statement declares a structure with the name <ctrl> . The only component of this structure that you need in your program is called ACTIVETAB.
    Use in the PBO event
    Before the screen is displayed, you use the control to set the tab page that is currently active. To do this, assign the function code of the corresponding tab title to the component ACTIVETAB:
    <ctrl>-ACTIVETAB = <fcode>.
    When you page at the SAPgui, you only need to do this once before the screen is displayed. This initializes the tabstrip control. The default active tab page is the first page. After this, the page activated when the user chooses a tab title is set within SAPgui.
    When you page on the application server, you must assign the active page both before the screen is displayed for the first time, and each time the user pages. At the same time, you must set the required subscreen screen.
    You can suppress a tab page dynamically by setting the ACTIVE field of table SCREEN to 0 for the corresponding tab title.
    Use in the PAI event
    In the PAI event, ACTIVETAB contains the function code of the last active tab title on the screen.
    When you page in the SAPgui, this allows you to find out the page that the user can currently see. When you page at the application server, the active tab page is controlled by the ABAP program anyway.
    The OK_CODE field behaves differently according to the paging method:
    Paging in the SAPgui
    When you page in the SAPgui, the PAI event is not triggered when the user chooses a tab title, and the OK_CODE field is not filled. The OK_CODE field is only filled by user actions in the GUI status or when the user chooses a pushbutton either outside the tabstrip control or on one of the subscreens.
    Paging on the application server
    If you are paging at the application server, the PAI event is triggered when the user chooses a tab title, and the OK_CODE field is filled with the corresponding function code.
    To page through the tabstrip control, you must assign the function code to the ACTIVETAB component of the control:
    <ctrl>-ACTIVETAB = <ok_code>.
    This statement overwrites the function code of the last active tab page with that of the new tab title. At the same time, you must ensure that the correct subscreen is inserted in the subscreen area.
    Otherwise, tabstrip controls are handled like normal subscrens in ABAP programs, that is, the ABAP program of a subscreen screen must contain the dialog modules called from the flow logic of the subscreen.
    Examples
    Tabstrip control, paging at SAPgui
    REPORT DEMO_DYNPRO_TABSTRIP_LOCAL.
    CONTROLS MYTABSTRIP TYPE TABSTRIP.
    DATA: OK_CODE TYPE SY-UCOMM,
          SAVE_OK TYPE SY-UCOMM.
    MYTABSTRIP-ACTIVETAB = 'PUSH2'.
    CALL SCREEN 100.
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS 'SCREEN_100'.
    ENDMODULE.
    MODULE CANCEL INPUT.
      LEAVE PROGRAM.
    ENDMODULE.
    MODULE USER_COMMAND INPUT.
      SAVE_OK = OK_CODE.
      CLEAR OK_CODE.
      IF SAVE_OK = 'OK'.
        MESSAGE I888(SABAPDOCU) WITH 'MYTABSTRIP-ACTIVETAB ='
                                      MYTABSTRIP-ACTIVETAB.
      ENDIF.
    ENDMODULE.
    The next screen (statically defined) for screen 100 is itself. It has the following layout:
    The screen contains a tabstrip area called MYTABSTRIP with three tab titles PUSH1, PUSH2 and PUSH3. The function codes have the same name, and all have the function type P. One of the subscreen areas SUB1 to SUB3 is assigned to each tab title. The pushbutton has the name BUTTON and the function code ‘OK’.
    In the same ABAP program, there are three subscreen screens 110 to 130. Each of these fits the subscreen area exactly. The layout is:
    The screen flow logic for screen 100 is as follows:
    PROCESS BEFORE OUTPUT.
      MODULE STATUS_0100.
      CALL SUBSCREEN: SUB1 INCLUDING SY-REPID '0110',
                      SUB2 INCLUDING SY-REPID '0120',
                      SUB3 INCLUDING SY-REPID '0130'.
    PROCESS AFTER INPUT.
      MODULE CANCEL AT EXIT-COMMAND.
      CALL SUBSCREEN: SUB1,
                      SUB2,
                      SUB3.
      MODULE USER_COMMAND.
    The screen flow logic of subscreens 110 to 130 does not contain any module calls.
    When you run the program, a screen appears on which the second tab page is active, since the program sets the ACTIVETAB component of the structure MYTABSTRIP to PUSH2 before the screen is displayed. The user can page through the tabstrip control without the PAI event being triggered. One of the three subscreens is included on each tab page.
    When the user chooses Continue, the PAI event is triggered, and an information message displays the function code of the tab title of the page that is currently active.
    Tabstrip control with paging on the application server.
    REPORT DEMO_DYNPRO_TABSTRIP_LOCAL.
    CONTROLS MYTABSTRIP TYPE TABSTRIP.
    DATA: OK_CODE TYPE SY-UCOMM,
          SAVE_OK TYPE SY-UCOMM.
    DATA  NUMBER TYPE SY-DYNNR.
    MYTABSTRIP-ACTIVETAB = 'PUSH2'.
    NUMBER = '0120'.
    CALL SCREEN 100.
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS 'SCREEN_100'.
    ENDMODULE.
    MODULE CANCEL INPUT.
      LEAVE PROGRAM.
    ENDMODULE.
    MODULE USER_COMMAND INPUT.
      SAVE_OK = OK_CODE.
      CLEAR OK_CODE.
      IF SAVE_OK = 'OK'.
        MESSAGE I888(SABAPDOCU) WITH 'MYTABSTRIP-ACTIVETAB ='
                                      MYTABSTRIP-ACTIVETAB.
      ELSE.
        MYTABSTRIP-ACTIVETAB = SAVE_OK.
        CASE SAVE_OK.
          WHEN 'PUSH1'.
            NUMBER = '0110'.
          WHEN 'PUSH2'.
            NUMBER = '0120'.
          WHEN 'PUSH3'.
            NUMBER = '0130'.
        ENDCASE.
      ENDIF.
    ENDMODULE.
    The statically-defined next screen for screen 100 is itself, and its layout is the same as in the above example. However, the function codes of the three tab titles have the function type <blank> and they all share a single subscreen area SUB.
    The same subscreen screens 110 to 130 are defined as in the last example.
    The screen flow logic for screen 100 is as follows:
    PROCESS BEFORE OUTPUT.
      MODULE STATUS_0100.
      CALL SUBSCREEN SUB INCLUDING SY-REPID NUMBER.
    PROCESS AFTER INPUT.
      MODULE CANCEL AT EXIT-COMMAND.
      CALL SUBSCREEN SUB.
      MODULE USER_COMMAND.
    In this example, the program includes a subscreen screen in the subscreen area SUB dynamically during the PBO event.
    The screen flow logic of subscreens 110 to 130 does not contain any module calls.
    This example has the same function as the previous example, but the paging within the tabstrip control is implemented on the application server. Each time the user chooses a tab title, the function code from the OK_CODE field is assigned to the ACTIVETAB component of structure MYTABSTRIP. At the same time, the variable NUMBER is filled with the screen number of the subscreen that has to be displayed in the subscreen area SUB of the tabstrip control.
    Pls. reward if useful...

  • Dynamic event registrati​on wont work with Tab control

    In LTR volume 11 No1 we find the "Dynamic Event Handling.vi".
    I had placed the controls on a Tab control and now this example wont work.
    Is there a solution to this problem?
    Scientia est potentia!
    Attachments:
    Dynamic_Event_Registration.vi ‏51 KB
    Dynamic_Event_Registration(controls_on_Tab).vi ‏64 KB

    Yes. The first stage of the code registers mouse down events for all the controls. When you added a tab control that meant that a mouse down event was registered for the tab as well. So now when you click on an object on the tab LabVIEW must decide whether to fire the mouse down on the tab-event, or the mouse down on the object on the tab event...It goes for the first but since there is no description for the tab no dialog will be displayed. If you add a description for the tab you'll see that it fires the event with the tab and you get a dialog with the tab description.
    So - how to fix. Well, it's not that simple, one might think that to exclude the reference to the tab when you register the events would do the trick, but it rather seems that LV will always t
    hink mouse clicks are on the tab and not on the objects on the tab.
    The solution though is to get the references to the objects by reading the controls on page property of the tab control. So instead of reading the controls array from the front panel read the pages references of the tab and then the controls on page array from that and then register mouse down events on that array.
    MTO

  • Creation of Tab Strips controls

    Hi Gy's ,
    pelase help me how to create the Tab Stip control in Sceen Painter(se51) step-by- step procedure.
    Thanks,
    sai.

    hi,
    A tabstrip control is a screen object consisting of two or more pages. Each tab page consists of a tab title and a page area. If the area occupied by the tabstrip control is too narrow to display all of the tab titles, a scrollbar appears, allowing you to reach the titles that are not displayed. There is also a pushbutton that allows you to display a list of all tab titles.
    Tabstrip controls allow you to place a series of screens belonging to an application on a single screen, and to navigate between them easily. The recommended uses and ergonomic considerations for tabstrip controls are described in the Tabstrip Control section of the SAP Style Guide.
    From a technical point of view, a tab page is a subscreen with a pushbutton assigned to it, which is displayed as the tab title.
    The tabstrip control is the set of all the tab pages. Tabstrip controls are therefore subject to the same restrictions as subscreens. In particular, you cannot change the GUI status when you switch between pages in the tabstrip control. However, they are fully integrated into the screen environment, so present no problems with batch input.
    To use a tabstrip control on a screen, you must be using a SAPgui with Release 4.0 or higher, and its operating system must be Motif, Windows 95, MacOS, or Windows NT with version 3.51 or higher.
    When you create a tabstrip control, you must:
    Define the tab area on a screen and the tab titles.
    Assign a subscreen area to each tab title.
    Program the screen flow logic.
    Program the ABAP processing logic.
    You must then decide whether you want to page through the tabstrip control at the SAPgui or on the application server. In the first case, each tab page has its own subscreen. In the second, there is a single subscreen area that is shared by all tab pages.
    Defining the Tabstrip Control Area and Tab Titles
    You define both the tabstrip area and the tab titles in the screen layout.
    The tabstrip area has a unique name and a position, length, and height. You can also specify whether the tabstrip area can be resized vertically or horizontally when the user resizes the window. If the area supports resizing, you can specify a minimum size for it.
    When you define a tabstrip area, it already has two tab titles. Tab titles are technically exactly the same as pushbuttons. To create additional tab titles, simple create pushbuttons in the row containing the tab titles. Tab titles have the same attributes as pushbuttons, that is, each has a name, a text, and a function code. You can also use icons and dynamic texts with tab titles.
    Assigning a Subscreen Area to a Tab Title
    You must assign a subscreen area to each tab title. There are two ways of doing this:
    Paging in the SAPgui
    You need to assign a separate subscreen area to each tab title, and define the function codes of the tab titles with type P (local GUI function). In the screen flow logic, you call all the subscreens in the PBO event. This means that all of the tab pages reside locally on the SAPgui.
    When the user chooses a tab title, paging takes place within the SAPgui. In this respect, the tabstrip control behaves like a single screen. In particular, the PAI event is not triggered when the user chooses a tab title, and no data is transported. While this improves the performance of your tabstrip control, it also has the negative effect that when the user does trigger the PAI event, all of the input checks for all of the subscreens are performed. This means that when the user is working on one tab page, the input checks may jump to an unfilled mandatory field on another page.
    Local paging at the SAPgui is therefore most appropriate for screens that display data rather than for input screens.
    Paging on the Application Server
    One subscreen area is shared by all tab titles and called in the PBO event. You define the function codes of the individual tab titles without a special function type. When the user chooses a tab page, the PAI event is triggered, and you must include a module in your flow logic that activates the appropriate tab page and assigns the correct subscreen to the subscreen area.
    Since the PAI event is triggered each time the user chooses a tab title, this method is less economical for the application server, but the input checks that are performed only affect the current tab page.
    Procedure in Either Case
    You create the subscreen areas within the tabstrip area. You assign the subscreen areas to one or more tab titles in the Screen Painter by selecting one or more titles. You can also assign a subscreen area to a tab title in the tab title attributes by entering the name of the subscreen area in the Reference field attribute.
    The procedure for the alphanumeric Screen Painter is described under Creating Tabstrip Controls.
    If you are paging at the SAPgui, create a subscreen area for each tab title. If you are paging at the application server, select all tab titles and create a single subscreen area. The subscreen areas may not cover the top line of the tab area. However, within a tab area, more than one subscreen area can overlap.
    Programming the Flow Logic
    In the flow logic, all you have to do by hand is include the correct subscreens. The screen flow and data transport to the ABAP program is the same as for normal subscreens. There are two ways of programming the screen flow logic, depending on how you have decided to page through the tabstrip control.
    Paging in the SAPgui
    When you page in the SAPgui, you must include a subscreen for each subscreen area:
    PROCESS BEFORE OUTPUT.
    CALL SUBSCREEN: <area1> INCLUDING <prog 1> <dynp 1>,
    <area2> INCLUDING <prog 2> <dynp 2>,
    <area3> INCLUDING <prog 3> <dynp 3>,
    PROCESS AFTER INPUT.
    CALL SUBSCREEN: <area1>,
    <area2>,
    <area3>,
    Paging on the Application Server
    When you page on the application server, you only have to include a subscreen for the one subscreen area:
    PROCESS BEFORE OUTPUT.
    CALL SUBSCREEN <area> INCLUDING <prog> <dynp>.
    PROCESS AFTER INPUT.
    CALL SUBSCREEN <area>.
    Handling in the ABAP Program
    Before you can use a tabstrip control in your ABAP program, you must create a control for each control in the declaration part of your program using the following statement:
    CONTROLS <ctrl> TYPE TABSTRIP.
    where <ctrl> is the name of the tabstrip area on a screen in the ABAP program. The control allows the ABAP program to work with the tabstrip control. The statement declares a structure with the name <ctrl> . The only component of this structure that you need in your program is called ACTIVETAB.
    Use in the PBO event
    Before the screen is displayed, you use the control to set the tab page that is currently active. To do this, assign the function code of the corresponding tab title to the component ACTIVETAB:
    <ctrl>-ACTIVETAB = <fcode>.
    When you page at the SAPgui, you only need to do this once before the screen is displayed. This initializes the tabstrip control. The default active tab page is the first page. After this, the page activated when the user chooses a tab title is set within SAPgui.
    When you page on the application server, you must assign the active page both before the screen is displayed for the first time, and each time the user pages. At the same time, you must set the required subscreen screen.
    You can suppress a tab page dynamically by setting the ACTIVE field of table SCREEN to 0 for the corresponding tab title.
    Use in the PAI event
    In the PAI event, ACTIVETAB contains the function code of the last active tab title on the screen.
    When you page in the SAPgui, this allows you to find out the page that the user can currently see. When you page at the application server, the active tab page is controlled by the ABAP program anyway.
    The OK_CODE field behaves differently according to the paging method:
    Paging in the SAPgui
    When you page in the SAPgui, the PAI event is not triggered when the user chooses a tab title, and the OK_CODE field is not filled. The OK_CODE field is only filled by user actions in the GUI status or when the user chooses a pushbutton either outside the tabstrip control or on one of the subscreens.
    Paging on the application server
    If you are paging at the application server, the PAI event is triggered when the user chooses a tab title, and the OK_CODE field is filled with the corresponding function code.
    To page through the tabstrip control, you must assign the function code to the ACTIVETAB component of the control:
    <ctrl>-ACTIVETAB = <ok_code>.
    This statement overwrites the function code of the last active tab page with that of the new tab title. At the same time, you must ensure that the correct subscreen is inserted in the subscreen area.
    Otherwise, tabstrip controls are handled like normal subscrens in ABAP programs, that is, the ABAP program of a subscreen screen must contain the dialog modules called from the flow logic of the subscreen.
    Examples
    Tabstrip control, paging at SAPgui
    REPORT DEMO_DYNPRO_TABSTRIP_LOCAL.
    CONTROLS MYTABSTRIP TYPE TABSTRIP.
    DATA: OK_CODE TYPE SY-UCOMM,
    SAVE_OK TYPE SY-UCOMM.
    MYTABSTRIP-ACTIVETAB = 'PUSH2'.
    CALL SCREEN 100.
    MODULE STATUS_0100 OUTPUT.
    SET PF-STATUS 'SCREEN_100'.
    ENDMODULE.
    MODULE CANCEL INPUT.
    LEAVE PROGRAM.
    ENDMODULE.
    MODULE USER_COMMAND INPUT.
    SAVE_OK = OK_CODE.
    CLEAR OK_CODE.
    IF SAVE_OK = 'OK'.
    MESSAGE I888(SABAPDOCU) WITH 'MYTABSTRIP-ACTIVETAB ='
    MYTABSTRIP-ACTIVETAB.
    ENDIF.
    ENDMODULE.
    The next screen (statically defined) for screen 100 is itself. It has the following layout:
    The screen contains a tabstrip area called MYTABSTRIP with three tab titles PUSH1, PUSH2 and PUSH3. The function codes have the same name, and all have the function type P. One of the subscreen areas SUB1 to SUB3 is assigned to each tab title. The pushbutton has the name BUTTON and the function code ‘OK’.
    In the same ABAP program, there are three subscreen screens 110 to 130. Each of these fits the subscreen area exactly. The layout is:
    The screen flow logic for screen 100 is as follows:
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_0100.
    CALL SUBSCREEN: SUB1 INCLUDING SY-REPID '0110',
    SUB2 INCLUDING SY-REPID '0120',
    SUB3 INCLUDING SY-REPID '0130'.
    PROCESS AFTER INPUT.
    MODULE CANCEL AT EXIT-COMMAND.
    CALL SUBSCREEN: SUB1,
    SUB2,
    SUB3.
    MODULE USER_COMMAND.
    The screen flow logic of subscreens 110 to 130 does not contain any module calls.
    When you run the program, a screen appears on which the second tab page is active, since the program sets the ACTIVETAB component of the structure MYTABSTRIP to PUSH2 before the screen is displayed. The user can page through the tabstrip control without the PAI event being triggered. One of the three subscreens is included on each tab page.
    When the user chooses Continue, the PAI event is triggered, and an information message displays the function code of the tab title of the page that is currently active.
    Tabstrip control with paging on the application server.
    REPORT DEMO_DYNPRO_TABSTRIP_LOCAL.
    CONTROLS MYTABSTRIP TYPE TABSTRIP.
    DATA: OK_CODE TYPE SY-UCOMM,
    SAVE_OK TYPE SY-UCOMM.
    DATA NUMBER TYPE SY-DYNNR.
    MYTABSTRIP-ACTIVETAB = 'PUSH2'.
    NUMBER = '0120'.
    CALL SCREEN 100.
    MODULE STATUS_0100 OUTPUT.
    SET PF-STATUS 'SCREEN_100'.
    ENDMODULE.
    MODULE CANCEL INPUT.
    LEAVE PROGRAM.
    ENDMODULE.
    MODULE USER_COMMAND INPUT.
    SAVE_OK = OK_CODE.
    CLEAR OK_CODE.
    IF SAVE_OK = 'OK'.
    MESSAGE I888(SABAPDOCU) WITH 'MYTABSTRIP-ACTIVETAB ='
    MYTABSTRIP-ACTIVETAB.
    ELSE.
    MYTABSTRIP-ACTIVETAB = SAVE_OK.
    CASE SAVE_OK.
    WHEN 'PUSH1'.
    NUMBER = '0110'.
    WHEN 'PUSH2'.
    NUMBER = '0120'.
    WHEN 'PUSH3'.
    NUMBER = '0130'.
    ENDCASE.
    ENDIF.
    ENDMODULE.
    The statically-defined next screen for screen 100 is itself, and its layout is the same as in the above example. However, the function codes of the three tab titles have the function type <blank> and they all share a single subscreen area SUB.
    The same subscreen screens 110 to 130 are defined as in the last example.
    The screen flow logic for screen 100 is as follows:
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_0100.
    CALL SUBSCREEN SUB INCLUDING SY-REPID NUMBER.
    PROCESS AFTER INPUT.
    MODULE CANCEL AT EXIT-COMMAND.
    CALL SUBSCREEN SUB.
    MODULE USER_COMMAND.
    In this example, the program includes a subscreen screen in the subscreen area SUB dynamically during the PBO event.
    The screen flow logic of subscreens 110 to 130 does not contain any module calls.
    This example has the same function as the previous example, but the paging within the tabstrip control is implemented on the application server. Each time the user chooses a tab title, the function code from the OK_CODE field is assigned to the ACTIVETAB component of structure MYTABSTRIP. At the same time, the variable NUMBER is filled with the screen number of the subscreen that has to be displayed in the subscreen area SUB of the tabstrip control.
    refer the following sites for reference--
    http://www.saptechies.com/difference-bw-tabstrip-and-table-control/
    http://help.sap.com/saphelp_nw04/helpdata/en/9f/dbac1d35c111d1829f0000e829fbfe/content.htm
    Regards,
    sravanthi

  • Dynamic Creation of Objects using Tree Control

    I am able to Create Dynamic Objets using List control in
    flex,but not able to create objects using TreeControl,currently iam
    using switch case to do that iam embedding source code please help
    me how to do that
    <?xml version="1.0" encoding="utf-8"?>
    <!--This Application Deals With How to Create Objects
    Dynamically -->
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute">
    <mx:XML id="treeDP">
    <node label="Controls">
    <node label="Button"/>
    <node label="ComboBox"/>
    <node label="ColorPicker"/>
    <node label="Hslider"/>
    <node label="Vslider"/>
    <node label="Checkbox"/>
    </node>
    </mx:XML>
    <mx:Script>
    <![CDATA[
    import mx.core.UIComponentGlobals;
    import mx.containers.HBox;
    import mx.controls.*;
    import mx.controls.VSlider;
    import mx.controls.Button;
    import mx.controls.Alert;
    import mx.core.UIComponent;
    import mx.controls.Image;
    import mx.managers.DragManager;
    import mx.events.DragEvent;
    import mx.controls.Tree;
    import mx.core.DragSource
    import mx.core.IFlexDisplayObject;
    /*This function accepts the item as on when it is dragged
    from tree Component */
    private function ondragEnter(event:DragEvent) : void
    if (event.dragSource.hasFormat("treeItems"))
    DragManager.acceptDragDrop(Canvas(event.currentTarget));
    DragManager.showFeedback(DragManager.COPY);
    return;
    else{
    DragManager.acceptDragDrop(Canvas(event.currentTarget));
    return;
    /*This Function creates objects as the items are Dragged
    from the TreeComponent
    And Creates Objects as and When They Are Dropped on the
    Container */
    private function ondragDrop(event:DragEvent) : void
    if (event.dragSource.hasFormat("treeItems"))
    var items:Array =event.dragSource.dataForFormat("treeItems")
    as Array;
    for (var i:int = items.length - 1; i >= 0; i--)
    switch(items
    [email protected]())
    case "Button":
    var b:Button=new Button();
    b.x = event.localX;
    b.y = event.localY;
    b.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
    myCanvas.addChild(b);
    break;
    case "ComboBox":
    var cb:ComboBox=new ComboBox();
    myCanvas.addChild(cb);
    cb.x = event.localX;
    cb.y = event.localY;
    cb.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
    break;
    case "ColorPicker":
    var cp:ColorPicker=new ColorPicker();
    myCanvas.addChild(cp);
    cp.x = event.localX;
    cp.y = event.localY;
    cp.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
    break;
    case "Vslider":
    var vs:VSlider=new VSlider();
    myCanvas.addChild(vs);
    vs.x = event.localX;
    vs.y = event.localY;
    vs.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
    break;
    case "Hslider":
    var hs:HSlider=new HSlider();
    myCanvas.addChild(hs);
    hs.x = event.localX;
    hs.y = event.localY;
    hs.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
    break;
    case "Checkbox":
    var check:CheckBox=new CheckBox();
    myCanvas.addChild(check);
    check.x = event.localX;
    check.y = event.localY;
    check.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
    break;
    else {
    var Component:UIComponent =
    event.dragSource.dataForFormat("items") as UIComponent ;
    Component.x = event.localX;
    Component.y = event.localY;
    Component.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
    myCanvas.addChild(Component);
    /*How to move the Objects within the Container */
    public function mouseMoveHandler(event:MouseEvent):void{
    var
    dragInitiator:UIComponent=UIComponent(event.currentTarget);
    var ds:DragSource = new DragSource();
    ds.addData(dragInitiator,"items")
    DragManager.doDrag(dragInitiator, ds, event);
    ]]>
    </mx:Script>
    <mx:Tree dataProvider="{treeDP}" labelField="@label"
    dragEnabled="true" width="313" left="0" bottom="-193" top="0"/>
    <mx:Canvas id="myCanvas" dragEnter="ondragEnter(event)"
    dragDrop="ondragDrop(event)" backgroundColor="#DDDDDD"
    borderStyle="solid" left="321" right="-452" top="0"
    bottom="-194"/>
    </mx:Application>
    iwant to optimize the code in the place of switch case
    TextText

    Assuming your objects are known and what you need are simply
    variable names created by the program, try using objects as
    associative arrays:
    var asArray:Object = new Object();
    for (var n:int = 0; n < 10; n++) {
    asArray["obj" + n] = new WHAT_EVER();

  • Dynamic creation of TabStrip

    Hi,
    I want to create a tabstrip dynamically.The tabstrip should have 3 tabs, and in each of the tabs i want to put some UI elements like a label, input field, dropdown, tables.........etc.
    Im able to create the tabstrip and add tabs to it dynamically.
    I've even created the UI elements which i wanted to put in the tabs.............But im not able to proceed as i dont know how to add the UI elements to the tabs.......
    Can anyone tell me how to add UI elements to a tab in a tabstrip?
    Regards,
    Padmalatha.K
    Points will be rewarded.

    Hi,
    Following code will help you to understand the dynamic creation and adding them
    //Tabstrip
           IWDTabStrip tabStrip = view.createElement(IWDTabStrip.class);
           //Tab
           IWDTab tab = view.createElement(IWDTab.class);
           //Input Field
           IWDInputField inputField = view.createElement(IWDInputField.class);
           //Adding inputfield to tab
           tab.setContent(inputField);
           //Adding tab to tabstrip
           tabStrip.addTab(tab);
    //Finally add this tabstip to either your root container or some other container.
    Regards
    Ayyapparaj

  • Create "Tab Control" like the news section in sap-corporate-portal

    Hello everyone,
    my name is akan korul and i'm a student working with the enterprise portal (EP 6.0) for about two weeks.
    about my problem:
    I want to create a tab control (tabstrip) similar to the sap corporate portal news section. How could i realize this very nice object? I was searching for similar threads but i think the creation of the tabcontrol via html is not a suitable solution. Any other ideas?
    I need this tab control to display our weekly company menu in a separate section.
    Thank you very much in advance to everyone.
    With best regards
    Akan Korul

    Hello Detlef,
    thank you very much for your suggestion and your helpful answer. Maybe I have to specify my problem a little bit:
    I want to create a very simple TabExplorer with following structure:
    Monday/Tuesday/Wednesday/Thursday/Friday
    Each day contains the menu (lunch) and some other informations, which has to be maintained by the employee himself.
    @Detlef: Thank you for the information but is there just an easier way to realize this?
    apologize these questions but I'm an absolutely newbie on this topic :-).
    With best regards / Grüße
    Akan

  • Is it possible to programatically add tab pages on tab control

    Hi All,
    Is it possible to programatically add tab pages on tab control? If yes then how?
    Thanks & Regards,
    Shrinivas

    Doing this will require the use of VI server and methods and properties.  First, some questions:
    Is the number of pages you may need unbounded?
    Do you have a maximum number of pages you need to display at any one time?
    If the answers are no and yes, then you can create a tab control with the maximum number of pages you need, and hide or show the pages, as necessary. To hide or show pages, use the Pages property to get references to all the pages.  Use Index Array to select the page you want to show/hide, then use its Page Visible property to show and hide it.
    You can also get a lot more dynamic, if you number of pages you need to show at any one time is less than the total number of pages.  In this case, you will want dynamic page contents and tab name.  You can set the tab name by Page Label property of the page (right next to the Page Visible property).  You can make the content dynamic by using a subpanel as the only contents of the page.  You can find out about subpanels in the LabVIEW help or this post.
    You also need to ask yourself whether a tab interface is the best one for your application.  I have usually found that if I need to show and hide a lot of tabs, I would be better off with a subpanel for my content and a text or menu ring the select the content.  Tree controls also work nicely for selection.
    Good luck!  Let us know if you need more help.
    This account is no longer active. Contact ShadesOfGray for current posts and information.

  • Tab control and content

    on my main page i have a five tab control, and each tab has its own content. below the tab control and external to it is another region containing a dynamic page portlet. this region faithfully shows its contents when 4 of the 5 tabs are displayed. when the 5th tab is displayed, it is empty. i've cleared the cache numerous time with no effect.
    if anybody has any ideas please pass them on.
    thanks,
    curtis

    Try to ask advice at the MozillaZine Extension Development forum.
    * http://forums.mozillazine.org/viewforum.php?f=19
    You need to register at the MozillaZine forum site in order to post at that forum.

  • Tab controls eating up CPU time

    A coworker created the section of code in the attached example to change the colors of each tab page in a tab control. Originally, he had this portion of code inside a while loop. We found that as the application ran it would use more and more CPU time until the CPU load was at 100% (it would start around 1-2%); the time for the increase was a few minutes. Moving this code outside of the while loop completely fixed this problem.
    Question: why would setting a tab control color in a while loop cause this increase?
    Platform: LabVIEW 6.1 on Windows 2000.
    Attachments:
    LV_Tab_control.gif ‏4 KB

    This behavior is caused by the repeated creation of page references inside the loop. When you move the Page property node outside the loop you don't see this memory leek.
    The reason for this is that each time the loop executes the property node creates a new set of references. Since these references are always the same, it is best to have this code outside the loop and only get the page references once.
    Zvezdana S.
    National Instruments

  • Tab control name editing

    In my application i am using tab control . 
    For that i want to programatically change tab names and i want to enable and disable a specific tab .
    In property i cant find this option and in discussion forums i could not able to open the vi mentioned in the link 
    http://forums.ni.com/t5/LabVIEW/Change-values-of-Tabs-on-Tab-Control/m-p/677900#M311358 
    What might be the problem .
    Thank you
    Raja
    Solved!
    Go to Solution.

    You are have your answer concerning enabling and disabling tabs. Concerning the first part of your question you can not dynamically change the names of tabs at runtime. The reason is that logically tabs are enumerated with the tab names being the enumerations. In other words the names aren't properties that you can change, they are part of the datatype.
    Now what you can do is use a combination of buttons and enabling/disabling controls to simulate the appearance of a tab control - which might not be a bad idea given the problems that tabs can cause.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Design a WPF Tab control similar to the Wpf Ribbon

    Hi,
      I have a requirement to show the list of tools similar to that of a Microsoft word's Ribbon, but then i find some limitations in the Wpf Ribbon i..e it can not be completely customised, for example- The Ribbon tab header's height has to be increased
    when selected as shown in the figure, but I couldn't  find any relevant solution to accomplish it, so I have decided to use the native Tab Control and make it look like a Ribbon bar as suggested by  Andy
    ONeill  
    Expected Ribbon Tab header Style(Done using native Tab Control)
       But the issue here is I'm not able to handle the resize behaviour of the Wpf tab control.. when the tab control is resized it has to arrange all the elements in the same way that the ribbon bar does
    on  Dynamic Resizing.. 
    can you help me building a Tab control with this feature...
    Thanks,
    Sai Kiran Reddy

    Thanks for your valuable reply Mr. Andy ONeill can you please tell me how to mimic the Dynamic
    Resizing behaviour of Ribbon bar using the WPF Tab Control.. 
    There is an awful lot of functionality in a ribbon.
    And it's pretty tricky to use.
    Personally, I usually go with a tabcontrol and then add functionality I need from there.
    Often two tabitems with horizontally arranged listviews are sufficient.
    You can see that approach in use in my article:
    http://social.technet.microsoft.com/wiki/contents/articles/28209.wpf-entity-framework-mvvm-walk-through-1.aspx
    <TabControl HorizontalAlignment="Left" x:Name="CommandTab">
    <TabItem Header="Navigate" FontSize="10">
    <ListView ItemsSource="{Binding Views}" BorderBrush="Transparent" FontSize="12" FontWeight="Bold"
    ScrollViewer.CanContentScroll="False"
    >
    <ListView.ItemsPanel>
    <ItemsPanelTemplate>
    <StackPanel Orientation="Horizontal"></StackPanel>
    </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <ListView.ItemTemplate>
    <DataTemplate>
    <Button Command="{Binding Navigate}"
    BorderThickness="0" Height="32" Width="100"
    Background="{StaticResource LightBrightGradientBrush}"
    Foreground="{StaticResource DarkDullBrush}"
    >
    <TextBlock Text="{Binding ViewDisplay}"
    TextAlignment="Center"
    />
    </Button>
    </DataTemplate>
    </ListView.ItemTemplate>
    </ListView>
    </TabItem>
    <TabItem Header="Edit" x:Name="EditTabItem" FontSize="10">
    <ListView ItemsSource="{Binding Commands}" BorderBrush="Transparent" FontSize="12" FontWeight="Bold"
    ScrollViewer.CanContentScroll="False"
    >
    <ListView.ItemsPanel>
    <ItemsPanelTemplate>
    <StackPanel Orientation="Horizontal"/>
    </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <ListView.ItemTemplate>
    <DataTemplate>
    <Button Command="{Binding Send}"
    BorderThickness="0"
    Margin="0" Padding="0"
    >
    <Path Data="{Binding IconGeometry}" Stretch="Uniform"
    Style="{StaticResource PathOpacityStyle}"
    Fill="{StaticResource MidDullBrush}" Width="32" Height="32"/>
    <Button.ToolTip>
    <TextBlock Text="{Binding CommandDisplay}"/>
    </Button.ToolTip>
    </Button>
    </DataTemplate>
    </ListView.ItemTemplate>
    </ListView>
    </TabItem>
    </TabControl>
    By the way.
    I think if you really work at it you can customise the ribbon by re templating the thing.
    On one project I ran  that work and wrangling the riibbon generally turned out to pretty much eat up all the time of one of my guys though. 
    Hope that helps.
    Recent Technet articles:
    Property List Editing ;  
    Dynamic XAML

  • Bug in Tab Control when inserted into SubPanel

    Just would like to report about pretty old bug, which is still present in latest LabVIEW 2013 SP1 13.0.1f1.
    I would like to insert SubVI with Tab Control into SubPanel, something like this:
    When SubVI executed, then I will set it to Page 2:
    Now what I've got in my SubPanel:
    Page 2 is active, but selector is not actualized - still show me active Page 1. Fully inconsistent.
    Not sure if it was reported already or not, but needs to be fixed from my point of view.
    Attachments:
    main.llb ‏25 KB

    mikeporter wrote:
    But yet another problem with tab controls... 
    Seriously though, if you are already using a subpanel why complicate matters with a tab control?
    Dynamically swap VIs in and out of the subpanels to present the same user experience as there was with the tabs.
    You're right - there are many ways to workaround about this bug. For example, if I will use Property Node instead of terminal or local variable, then it will working properly.
    This contstruction with tab control in subpanel used in my settings dialog. I have modular plugin architecture, and some plugins may have settings, so they organised in the same way as LabVIEW Options dialog - listbox with installed plugins and subpanel, where according subvi from plugin is inserted. Mostly all plugins fit into my dialog (which is not resizible at this moment), but some modules have lot of settings - then they splitted into groups and the tab control is used (NI does this with vertical scrollbar, which is also not perfect).
    When user made changes in settings, then last opened page is saved - when this dialog opened next time, then user should see last page - this is why I need to set page programmatically.
    Really, I don't like to change whole architecture for workarounding bug in LabVIEW just for few modules. At this moment I using property node and it works for me.

  • Save the selected value from listbox with its respective tab control dropdown selcted values in another listbox

    Hi all,
    I am making a vi where I have to save the selected value from listbox with its respective tab control dropdown selcted values in another listbox.Whenever I select Item1 then the heading change and respective tab will open for that item.But Now I just want to save the selection and put it in another ListBox.SO that I can renmove or add according to my wish. Plz help me.
    Solved!
    Go to Solution.
    Attachments:
    my_vi.png ‏83 KB

    Hi, I successfully make the vi to insert itmes from listbox1 to listbox2.Whenever I select itmes 1 in listbox 1 it display same elected item in listbox2 , but it not appending the items in listbox2.Like If 1 is selected in listbox1 then 1 will display , next time after saving when I selct next item like 3 then in listbox 2, 1 is replaced by 3,it dont come in second row of listbox2.Hope I am able to explain.\
    Plz help me to resolve this.
    Attachments:
    listbox_update.vi ‏11 KB

Maybe you are looking for

  • Flash player crashes in firefox but not in waterfox ??

    i have tried the downgrade to ver 10 of flash. no problem in firefox but now my other programs that use flash will not run. error messages say that i am not up to the correct version. i uploaded waterfox and have had no problems using the latest flas

  • Local adjustments undo keystroke

    Just wanted to mention this as an annoying behavioral bug that I'd appreciate you fixing before release. When making local adjustments, if I'm modifying one of the sliders to an existing adjustment, then hit undo it de-selects the adjustment, so I ha

  • Presentation Director allows only max 1024 x 768

    Hi, I have a T42 and recently purchased a 22" LCD monitor to connect through my dock station. When I dock my thinkpad I can only see in 1024*768 resolution and would like to configure it to 1280*1024. When I do it manually and undock the Thinkpad its

  • Backed up whole HD now I'd like to reinstall leopard

    Just installed a 500GB in my macbook pro. I used Carbon copy cloner to copy my hd to my new one before i installed it. I now would like to reintall Leopard and snow leopard on my new HD and start all over. I still want all my pictures, music, and mov

  • Walkman app doesn't update after a device reset

    I recently reseted my xperia Z1 and wipe all data  because it was time for some cleaning for my device. After i reapply all setting for the device it was time to use update center to update Sony applications. All applications updated except Walkman a


HashFlare