Tab block within a tab block..

Hello Gurus,
I am trying to find a technique where I can create tab within a tab block. On a selection-screen report I am working I am creating a tab as follow. But I need two more tabs within this tab. Is it possible ? How ?
SELECTION-SCREEN BEGIN OF BLOCK BSD-2 WITH FRAME Title text-030.
SELECT-OPTIONS :
                 S_DSD  FOR  sy-datum,
                 S_DD   FOR  sy-datum,
SELECTION-SCREEN END OF BLOCK BSD-2.
SELECTION-SCREEN END OF SCREEN 700.
SELECTION-SCREEN: BEGIN OF TABBED BLOCK tab_block for 5 LINES,
TAB (24) tab1 USER-COMMAND tabpush6
  DEFAULT SCREEN 700,
END OF BLOCK tab_block.
Regards,
Jainam.

Hi Shah,
SELECTION-SCREEN BEGIN OF SCREEN 500 AS SUBSCREEN. " Use these Subscreen as mentioned below
PARAMETERS: carrid type spfli-carrid,
            connid type sflight-connid.
SELECTION-SCREEN END OF SCREEN 500.
SELECTION-SCREEN BEGIN OF SCREEN 600 AS SUBSCREEN.
PARAMETERS: matnr type mara-matnr,
            maktx type makt-maktx.
SELECTION-SCREEN END OF SCREEN 600.
SELECTION-SCREEN: BEGIN OF TABBED BLOCK tab FOR 10 LINES,
                  TAB (20) button1 USER-COMMAND ucom1,
                  TAB (20) button2 USER-COMMAND ucom2,
                  tab (20) button3 USER-COMMAND ucom3, " Other Tabs
                  tab (20) button4 USER-COMMAND ucom4, " Other Tab
                  tab (20) button5 USER-COMMAND ucom5, " Etc
                  END OF BLOCK tab.
INITIALIZATION.
  button1 = 'Flight Details'.
  button2 = 'Material Details'. " Tab Description
  button3 = 'Material Details'. " Tab Description
  button4 = 'Material Details'. " Tab Description
  button5 = 'Material Details'. " Tab Description
  tab-prog = sy-repid.
  tab-dynnr = 500. " Initially Assign a Screen
  tab-activetab = 'PUSH1'.
AT SELECTION-SCREEN.
case sy-ucomm.
  when 'UCOM1'. " Based on the User Command Assigned above
    tab-dynnr = '0500'. " Assign a relavent Sub Screen as declared above
    WHEN 'UCOM2'.
      tab-dynnr = '0600'.
  ENDCASE.
Cheerz
Ram

Similar Messages

  • Tab canvas within a tab canvas? Can it be done?

    Hello,
    I am working in forms 10g. A customer has given me a mock up that contains a tab canvas within a tab on another tab canvas. Is this even possible? If so, can you outline the steps to do so please?
    Thanks,
    Adam

    It is possible, but you cannot create tab-canvas 2 on top of tab canvas 1. Create both tab-canvases on top of the content canvas, the at runtime use SHOW_VIEW and HIDE_VIEW to show or hide the second tab-canvas as needed.

  • Place a Tab Canvas within a Tab Canvas (there is more Stack Canvas)

    I Use Forms [32 Bit] Version 10.1.2.0.2.
    Hi All.. I have the same problem with this case ( Place a Tab Canvas within a Tab Canvas ).
    but I need help with my case, what if there is more stack canvas, like this :
    - I created Tab Canvas first, then
    - in my first Tab Canvas I put the new tab canvas (this solved), then
    - I create again new Tab Canvas in the second Tab Canvas.
    How do I control that in Trigger Level Form - WHEN-TAB-PAGE-CHANGED ? if I want to show if :
    - First Tab Canvas I klik then the second Tab Canvas is show (solved), then if
    - I klik second Tab Canvas then the third Tab Canvas is show. (this my case)
    thx b4 to all ...... I am newbie in forms
    Edited by: 973372 on Dec 14, 2012 2:05 PM

    not yet

  • Place a Tab Canvas within a Tab Canvas

    Oracle Forms 6i.
    I have a requirement to put a tab canvas within a tab canvas. However when I try to create a tab canvas within a tab canvas i get a 'FRM-13002: Stacked and Tab canvases must be created within content canvases.'
    Does anyone know of a way to achieve this?

    Got it working thanks.
    For anyone that wants the code:
    WHEN-TAB-PAGE-CHANGED - Form Level Trigger
    declare
         tb_name varchar2(30);
    begin     
         tb_name :=get_canvas_property('CANVAS1', topmost_tab_page);
         if tb_name = 'TAB1' then
              show_view('CANVAS1');
              show_view('SUB_CANVAS1');
              go_item('BLOCK1.FIELD1');
         elsif tb_name = 'TAB2' then
              hide_view(''SUB_CANVAS1');
    go_item('BLOCK1.FIELD2');
         end if;
    end;

  • Since installing Firefox 8 beta, can't move tabs around within the tab bar; can this be fixed without reverting to earlier version? Thank you.

    Before moving to Firefox 8, I could drag and drop tabs within the tab bar to reorder them, which was very convenient. Since installing the first beta of Firefox 8, the tabs don't move. Should I revert to an earlier version of Firefox? If so, which one? Thank you for any help with may favorite browser. Tom

    Tor Button addon was the cause in my case.

  • How to create tab control within a tab control?

    So I'll lay out the basic outline of my project. Right now I have a tab control which scrolls through each of its tabs 1 second at a time. It does this until the user presses the pause button, the the scrolling stops and the user sees the tab that was onscreen right at the moment of pressing pause. Now what I want to do is have a separate tab control which comes up automatically once the user presses pause instead of the 1st tab control just stopping as it does now.
    Or alternatively is there a way to programmatically tell the tab control to stop on a specific tab once pause is pressed? Even turn on and/or off the tab labels upon pressing pause? I've been informed I can accomplish this by way of using "nodes" I think is the term, but have yet to successfully implement anything.

    ShogunOrta wrote:
    So I'll lay out the basic outline of my project. Right now I have a tab control which scrolls through each of its tabs 1 second at a time. It does this until the user presses the pause button, the the scrolling stops and the user sees the tab that was onscreen right at the moment of pressing pause. Now what I want to do is have a separate tab control which comes up automatically once the user presses pause instead of the 1st tab control just stopping as it does now.
    Or alternatively is there a way to programmatically tell the tab control to stop on a specific tab once pause is pressed? Even turn on and/or off the tab labels upon pressing pause? I've been informed I can accomplish this by way of using "nodes" I think is the term, but have yet to successfully implement anything.
    On Pause value change-event, change tab. To lock, either disable tab control (which'll also disable its controls), keep track of pause status to return to this tab if changed (in the tab change event) or place a transparent image over the tab selectors (which'll stop attempts of clicking them).
    /Y
    LabVIEW 8.2 - 2014
    "Only dead fish swim downstream" - "My life for Kudos!" - "Dumb people repeat old mistakes - smart ones create new ones."
    G# - Free award winning reference based OOP for LV

  • How to execute each block in a multi-block canvas while select the tab?

    Hi All,
    How to execute each block in a multi-block canvas by selecting a tab? I mean to say when i select a particular tab in a tab canvas the records should execute.How can i set this?
    Arif

    Hi Arif
    Good Example Manu offered i wish it works if not pls try the following...
    Pls try in the when-tab-page-changed trigger in the form level
    DECLARE
        tp_name varchar2(30);
    BEGIN
    -- Retrieve the NAME of the top most tab page using the built-in GET_CANVAS_PROPERTY function.
    --Pass in the name of the Canvas your tabs are in and the system variable topmost_tab_page which stores a property number
    tp_name := GET_CANVAS_PROPERTY('CANVAS11',topmost_tab_page);
    -- Perform specific tasks based on the name of the top most tab
    IF tp_name = 'PAGE12' then
    GO_BLOCK('block_name');
       GO_ITEM('DATA_BLOCK_1.FIELD_1');
    EXECUTE_QUERY;
    ELSIF tp_name = 'PAGE38' then
    GO_BLOCK('block_name');
       GO_ITEM('DATA_BLOCK_2.FIELD_1');
    EXECUTE_QUERY;
    ELSIF tp_name = 'PAGE47' then
    GO_BLOCK('block_name');
       GO_ITEM('DATA_BLOCK_3.FIELD_1');
    EXECUTE_QUERY;
    END IF;
    END;
    Hope it helps...
    Note: i do agree with Craig
    Regards,
    Abdetu...
    Edited by: Abdetu on Feb 2, 2011 7:41 AM

  • Safari is blocked on one tab with an error message

    Hello All, Safari is blocked on one tab (on a website) who has an error message (session expired). Everytime I launch Safari, I land to this specific Tab and the error message. All the other functions of Safari (clear history, reset, etc...) are not available (are in grey) because of the error message. So practically, I cannot use Safari anymore. I deleted cache through the Library. No effect. Any idea please ? Thank you in advance

    Quit Safari.
    Relaunch Safari while holding down the shift key.

  • HT204416 safari though I blocked the pop tabs I keep getting the home page is always unconfigures and does not let me banks I do?

    safari though I blocked the pop tabs I keep getting the home page is always unconfigures and does not let me banks I do?

    Do a backup.
    Quit the application.
    Go to Finder and select your user/home folder. With that Finder window as the front window, either select Finder/View/Show View options or go command - J.  When the View options opens, check ’Show Library Folder’. That should make your user library folder visible in your user/home folder.  Select Library. Then go to Preferences/com.apple.Safari.plist. Move the .plist to your desktop.
    Restart the computer, open the application and test. If it works okay, delete the plist from the desktop.
    If the application is the same, return the .plist to where you got it from, overwriting the newer one.
    Thanks to leonie for some information contained in this.

  • Scoll bar on tab type canvas for one block

    please help me

    Hi,
    it is possible to do this with a little "trick".
    You need one content canvas, on which you placed your tab-canvas. Then create a stacked canvas ontop of you content-canvas (important, not on top of your tab-canvas, this will result in an error) , size it to fit your scrollbar and then place the viewport to the correct position on the tab-canvas using the property-palette. Now, display your scrollbar on that stacked-canvas. Finally, you have to explicitly show the stacked canvas on forms-startup (WHEN-NEW-FORM-INSTANCE-trigger) and on tab-pab-change (WHEN-TAB-PAGE-CHANGED-trigger) using SHOW_VIEW('MYSCROLLBARCANVAS');
    Edited by: Andreas Weiden on 30.01.2009 16:48

  • How to list the active Alerts used within a tab(report) within a Document

    Hello
    We have a number of tabs/reports within a single webi document. There are a couple of alerts within the webi document but only one is used within a given tab/report.
    Is there an API around that will help me query the alerts that are enabled within each tab/report within a given document instance?
    There is an IReportProcessingInfo class that is around for it looks like its not applicable for Webi documents.
    Regards
    Madhu
    BO XI R2 SP2 on Windows 2003

    Hi Madhu,
    Below is a sample code to traverse through the ReportStructure and get the Alerters from the cells.
    Hope this helps.
    Regards,
    Dan
    Main:
                /************************** RETRIEVING PARAMETERS **************************/
                // Retrieve the logon information
                String username = "username";
                String password = "password";
                String cmsName  = "cms name";
                String authType = "secEnterprise"; 
                // Retrieve the name of the Web Intelligence document to be used in the sample
                String webiDocName = "WebI Alerter Test";
                /************************** LOGON TO THE ENTERPRISE **************************/
                // Logon to the enterprise
                IEnterpriseSession boEnterpriseSession = CrystalEnterprise.getSessionMgr().logon( username, password, cmsName, authType);
                /************************** RETRIEVE INFOOBJECT FOR THE WEBI DOCUMENT **************************/
                // Retrieve the IInfoStore object
                IInfoStore boInfoStore =(IInfoStore) boEnterpriseSession.getService("InfoStore"); 
                session.setAttribute("SAMPLE.InfoStore", boInfoStore); 
                // Build query to retrieve the universe InfoObjects
                String sQuery = "SELECT * FROM CI_INFOOBJECTS WHERE SI_KIND='" + CeKind.WEBI + "' AND SI_NAME='" + webiDocName + "'";
                // Execute the query
                IInfoObjects boInfoObjects = (IInfoObjects) boInfoStore.query(sQuery);
                // Retrieve the InfoObject for the Web Intelligence document
                IInfoObject boInfoObject = (IInfoObject) boInfoObjects.get(0);
                /************************** RETRIEVE DOCUMENT INSTANCE FOR THE WEBI DOCUMENT **************************/
                // Retrieve the Report Engines
                ReportEngines boReportEngines = (ReportEngines) boEnterpriseSession.getService("ReportEngines");;
                // Retrieve the Report Engine for Web Intelligence documents
                ReportEngine boReportEngine = boReportEngines.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);
                // Retrieve the document instance for the Web Intelligence document
                DocumentInstance boDocumentInstance = boReportEngine.openDocument(boInfoObject.getID());
                ReportStructure boReportStructure = boDocumentInstance.getStructure();
                out.print(traverseReportStructure(boReportStructure));
                out.print("<HR>Process Complete!<HR>");
                boDocumentInstance.closeDocument();
                boReportEngine.close();
                boEnterpriseSession.logoff();
    Functions:
    String traverseReportStructure(ReportStructure boReportStructure) {
                String output = "";
                for (int i=0; i<boReportStructure.getReportElementCount(); i++) {
                            output += traverseReportElement(boReportStructure.getReportElement(i), 0);
                return output;
    String traverseReportElement(ReportElement boReportElement, int level) {
                String output = "";
                String padding = getPadding(level);
                if (boReportElement instanceof ReportContainer) {
                            output += padding + "Report Name: " + ((ReportContainer) boReportElement).getName() + "<BR>";
                } else if (boReportElement instanceof PageHeaderFooter) {
                            if (((PageHeaderFooter) boReportElement).isHeader()) {
                                        output += padding + "Report Header<BR>";
                            } else {
                                        output += padding + "Report Footer<BR>";
                } else if (boReportElement instanceof ReportBody) {
                            output += padding + "Report Body<BR>";
                } else if (boReportElement instanceof Cell) {
                            output += padding;
                            output += "Cell ID: " + ((Cell) boReportElement).getID() + " - ";
                            output += getAlerters(((Cell) boReportElement).getAlerters(), level+1);
                } else if (boReportElement instanceof ReportBlock) {
                            output += padding + "Block Name: " + ((ReportBlock) boReportElement).getName() + "<BR>";
                            output += traverseReportBlock((ReportBlock) boReportElement, level+1);
                } else {
                            output += padding + boReportElement.getClass().getName() + "<BR>";
                for (int i=0; i<boReportElement.getReportElementCount(); i++) {
                            output += traverseReportElement(boReportElement.getReportElement(i), level+1);
                return output;
    String traverseReportBlock(ReportBlock boReportBlock, int level) {
                String output = "";
                String padding = getPadding(level);
                Representation boRepresentation = boReportBlock.getRepresentation();
                output += padding + "Block type is [" + boRepresentation.getClass().getName() + "].<BR>";
                if (boRepresentation instanceof SimpleTable) {
                            SimpleTable boSimpleTable = (SimpleTable) boRepresentation;
                            output += padding + "Processing SimpleTable...<BR>";
                            output += padding + "Block Header<BR>" + traverseCellMatrix(boSimpleTable.getHeader(null), level+1);
                            output += padding + "Block Body<BR>" + traverseCellMatrix(boSimpleTable.getBody(), level+1);
                            output += padding + "Block Footer<BR>" + traverseCellMatrix(boSimpleTable.getFooter(null), level+1);
                } else {
                            output += padding + "Unhandled Block Type...<BR>";
                return output;
    String traverseCellMatrix(CellMatrix boCellMatrix, int level) {
                String output = "";
                String padding = getPadding(level);
                if (boCellMatrix.getRowCount()>0) {
                            TableCell boTableCell = null;
                            for (int i=0; i<boCellMatrix.getColumnCount(); i++) {
                                        boTableCell = (TableCell) boCellMatrix.getCell(0, i);
                                        output += padding + "Column: " + i + " - " + boTableCell.getText() + " - ";
                                        output += getAlerters(boTableCell.getAlerters(), level+1);
                } else {
                            output += padding + "No Cells.<BR>";
                return output;
    String getAlerters(Alerters boAlerters, int level) {
                String output = "";
                String padding = getPadding(level);
                if (boAlerters.getCount()<=0) {
                            output += "No alerters.<BR>";
                } else {
                            output += "Alerters found!<BR>";
                            Alerter boAlerter = null;
                            for (int i=0; i<boAlerters.getCount(); i++) {
                                        boAlerter = boAlerters.getAlerter(i);
                                        output += padding + "<B>" + boAlerter.getName() + "</B><BR>";
                return output;
    String getPadding(int level) {
                String output = "";
                for (int i=0; i<level; i++) {
                            output += "     ";
                return output;
    Edited by: Dan Cuevas on May 25, 2009 9:45 PM

  • Dynamic blocks within the WebUI. Is this possible?.

    CRM 7.
    We currently have about 14 user specific blocks within the Online Factsheet. We also have the same in the PDF Factsheet.
    Some of these blocks show data in Metric (Kg, Cm's etc) but there has been a request to show data in Imperial format (Lb's and Inches etc), which is still used in the U.S.
    Using the WebUI and within an Account there's an option under the 'More' tab to display either an Online factsheet or a PDF Factsheet. Does anyone know how I can control the entries in this pull-down tab?.
    With regards to the Factsheet itself, I have two options open to me. The first to create another Factsheet which has the fields and column headings defined in the view config, or use the same factsheet/component/views and dynamically change the column headings and fields, which sounds harder.
    The PDF Factsheet is easy to deal with as it's just a Smartform, so I can copy it  and change it specifically for the Imperial format.
    Has anyone done anything like this before, and perhaps give me the benefit of their wisdom?.
    Best wishes
    Jason

    Thanks for the details.
    I debugged the process and can see this line is providing the text on the tab. However, the method is making a low-level call to get the details from some message class/table, but I can't identify what this message class/table is.
    But it looks like it's the sotr_edit transaction, as you mentioned, that controls this. I'm not that familiar with this OTR process though and the transaction is not that intuitive. I assume that I just need to somehow add new entry, with my own Z package.
    Many thanks for the advice though, I knew nothing about that transaction. I also have to create another Online factsheet as well, and it looks like I can control it this way as well.
    I had already modified table CRMV_PRN_CONTROL via sm30 and had changed the values for the Fom name and class/interface from CRM_ACC_ACCOUNT_OVERVIEW_PRN to ZCRM_ACC_ACCOUNT_OVERVIEW_PRN for the form name and from CL_UIU_PRN_ACCOUNT to ZCL_UIU_PRN_ACCOUNT for the class/interface against all the roles.
    However, I know want to add another form name and class/interface as I have TWO user PDF Factsheets to use, depending on which item the user chooses from the Tab.
    Any idea how I can control this?.
    Best regards
    Jason

  • How can I create a second sheet within a tab?

    How can I create a second sheet within a tab? I have tried to add another table but it shows up on top of the existing table. I want to have two sheets or tables within one tab so I can further sort and categorize within a section. Is this possible? Thanks for all the help!
    -Bridget Altman
    Administrative Associate
    Discover Abroad at the University of Georgia

    You can insert a new table on the View Responses Tab with
    Insert > Table
    You can also insert a new sheet with a new table with
    Insert > Sheet
    You can drag and drop the table if it does overlap with another table. Just select the table you want to move and drag the top-left corner of the table to move it.
    Hope this helps
    Gen

  • How do I navigate from a hyperlink on one page to an anchor within the tab widget?

    Hi guys can you please assist me with that issue I am describing in the question: How do I navigate from a hyperlink on one page to an anchor within the tab widget? I assume that it is not working because the tab widget is truly just on one page and anchors work within a page but not a specific tab. Is there a way around that?
    Thanks.

    an interesting question. Anchors work across pages (global) without any problem. Do they work within tabs or any other widgets I haven't tried, but it looks like you have and without success. I can see the temptation for doing this, but if you think about it why would you? Set the anchor on the page next to the tab(s) and hey presto the user needs only click the tab to which the hperlink refers, nothing could be more convenient! Of course, if the user cannot relate the tab to the hyperlink there's a problem. Generally solved by titling (like if the hyperlink is cats, the tab should preferably read cats and not dogs)! It's the only work around i can think of. Hope it helps.

  • Getting a mapping error to propogate from loop block within I.P.

    OK I kinda asked the question as a sub topic under a different heading SXMB_MONI_BPE -> Message Payload not visible in container but didnt really get an answer I'm happy with, so here goes as a main topic!
    The short description:
    I have a mapping step that must reside in a loop block, any mapping errors I want propogated back up to the main container so that they error and appear in the trace within SXMB_MONI in the same visibly obvious way as a mapping step that is not inside a block does.
    The long description:
    I have an Integration Process which splits a source message, then maps the individual messages produced within a forEach block. Unfortunately when there is a mapping error within the block, it does not propogate any meaningful information back to the message trace. Instead it just fails in smq2 with permanent error in inbound bpe processing.
    When I search in SXMB_MONI_BPE there are no process steps returned, as though the  IP was never called by the BPE.
    When I put the whole thing inside a block with an exception path that has an alert step, I do get process steps returned in sxmb_moni_bpe. When I examine the list with technical details I cannot see any "payload" under the table of messages that has been split out, therefor I cannot debug the mappings of individual messages I am looping on.  I have LOGGING, LOGGING_PROPOGATION and LOGGING_SYNC set to 1, and TRACE_LEVEL set to 3 for my IE.
    I have 2 scenarios/requirements:
    1) I put the uncaught mapping exception in the loop blook, and the error is propogated back up and the smq2 error is subsequently not produced (like it would behave if the mapping step was not inside any blocks).
    2) I catch exceptions and raise an alert and then the logging is enhanced sufficiently to enable the individual messages the loop block is looping on to be viewed within the container in sxmb_moni_bpe->list with technical details. 
    The only place I can see the error is in the defaultTrace log file, which is obviously not a suitable method for productive use.  Any solution needs to be usable in day-to-day administration of a production system, even though this is a dev issue at present!
    Thanks,
    James.

    James
    I have used this for throwing smart exceptions in SXMB_MONI
    http://agportal.goldeye.info/index.php?option=com_content&task=view&id=30&Itemid=40
    Not sure if it would work in this instance...
    Barry @ Axon!

Maybe you are looking for

  • Unable to get the value from the textfield in valueChangeEvent

    Hi, I have created one custom textField by extending the CoreInputText. Now i have attched default ValueChangeListener to it. I am using this textField in my application. Now i type some thing and do a focus lost, the value change listener get called

  • 2014 X1 Carbon Adaptive Keyboard not working

    Hi There, I just tried my new x1 carbon 2014 a week ago, I was trying my adaptive keys and it worked accordingly the first time I tried the notebook. After I did some installation with windows 8.1 update and lenovo update, I noticed that the adaptive

  • Regarding the 'TOTALS' in ALV's

    Hi friends, I have a doubt in ALV while displaying totals. How can we display the "totals" immediately when the ALV output is displayed. I tried many ways but when im clicking on the 'Summation' symbol in the output of the ALV then only the 'Totals'

  • Re: Photoshop Elements 5.0

    After undating bitdefender when I try to edit in PE 5.0 I am prompted with Attempt to access invalid address followed by unable to connect to editor applications.  How can this be fixed?

  • I was trying to find out if the PCI-DIO-32​HS will take thermocoup​le readings?

    I have a PCI-DIO-32HS and a SCB-68 connector block. I am trying to figure out if the card will receive the input coming from a thermocouple.