Threadsafe Modal Dialog

Is there any way to do a thread safe, properly operating modal dialog panel?
I want to issue popups from within a thread.  Using the standard MessagePopup() displays the dialog box, but it does not block events in the other threads.  Which is to say that one can click anything else on the main panel, putting the popup in the background. 
Perhaps there is some kind of signalling that can be implemented between a function launched from the thread via PostDeferredCall(), so that the thread pauses until the popup is closed?

hendra:
 If you just need a simple, standard dialog box, you can use the Windows SDK MessageBox function to create a system modal dialog box.  System modal dialogs stay on top of all other applications.  See my old example here: http://forums.ni.com/t5/LabWindows-CVI/MessagePopup-dissappears-behind-active-panel/m-p/182045#M1409...
If you need a more custom dialog, as an experiment I created a CVI project which simulates a system modal dialog by taking back focus on a fast firing timer.  See my discussion and example here: http://forums.ni.com/t5/LabWindows-CVI/Make-panel-modal-from-a-CVI-dll/m-p/1316925#M50035

Similar Messages

  • GUI hangs after it fail to pop up a modal dialog

    Hi everyone! I have a swing application that will pop up a log off confirm dialog (modal) when the user click on the "log off" button. It works fine for about 8 hours. Then when I click on the "log off" button, the dialog never pop up and the GUI is freezed, which means it does not react to user mouse click anymore, like a hidden modal dialog is in front. But actually there is no hidden dialog.
    At the same time, my windows XP freeze also. I cannot even open a folder. Then I kill the winrunner, and the XP is able to open a folder, but my GUI is still freeze. No exception behind and all threads are running. I can use some test script to control the GUI, but somehow it just never react to user click.
    Does anyone encounter the same problem and know the possible reason?
    Thanks!

    Hi motes_19:
    I have noteiced this as well in an application that I have created...however, my app doesn't freeze and the OS still runs (Win 2000). I suspect that your problem might be that you aren using the SwingUtilities.invokedLater() or SwingUtilities.invokeAndWait() methods to update your GUI. I am using them and still having some intermitten problems. Hope this helps you...if you have a solution for me, let me know.
    EH

  • Is there a fix for modal dialogs opening behind palettes -cs6 -osx 10.6.8

    Is there a fix for modal dialogs open behind palettes in
    Photoshop cs6 13.0 (createive cloud update) + OSX 10.6.8 Snow Leopard on MacBook Pro? 
    ( I am using 2 monitors where the second monitor is set to be the menu display.  cs4 does not exhibit this bug. )
    Toggling the Application Frame off improves the hiding 'feature' but this does not include the desired continuous floating in front of palettes in all circumstances.
    An example is Blending Options, then chose Stroke, then chose the Color Picker.  After clicking OK, the Blending Options dialog now sits behind the palettes.  One trick is to click on another app, then back to cs6 to force a window redraw.
    It sure would help me if this could be solved.  I am preparing educational videos and this display bug makes things very troublesome.
    Thanks for any help.  If I find a solution, I will post to this thread so everyone can benefit.

    The setting for the graphics check box Does Not make a difference.  If I have a new document window open, then add a layer, then open the blending options > drop shadow > edit the color > the chooser dialog opens, and immediately both dialog windows drop behind the palettes AND any document windows.
    The same behavior for the Preferences dialog > guides > color.
    The quick workaround is to click another app, then back to CS6.  A real pain, of course.
    It is only a factor when opening a second (child) dialog box.
    Other CS6 apps do work correctly (eg. FW AE)
    I have yet to get a handle on this.  Mac OSX 10.6.8    CS6 13.0  x64
    Thanks for your replies, and the long reply time for me was a vaction away from the office.

  • How to remove the default icons from the toolbar of modal dialog box screen

    Hello Friends,
    Iam calling a screen from function module using CALL SCREEN statement.
    The screen is of type Modal Dialog Box. I created some input fields and buttons in the screen. When the screen is displayed, I can see the tool bar at the bottom along with the input fields and buttons in the screen.
    These icons are Continue(Enter), Check, Cancel. How can I supress this??
    I mean in my screeen I want only my input fields and buttons but not the default toolbar. How to do that?
    Regards,
    Raju

    Hi Raju,
    Try this...
    First try to capture the F-codes of ur button apppearing on the dialog box and then exclude it from the PF-status by passing it to itab.
    types: begin of tab_type,
            fcode like rsmpe-func,
           end of tab_type.
    data: tab type standard table of tab_type with
                   non-unique default key initial size 10,
          wa_tab type tab_type.
    clear tab.
    move 'DELE' to wa_tab-fcode.
    append wa_tab to tab.
    move 'PRIN' to wa_tab-fcode.
    append wa_tab to tab.
    set pf-status 'STA3' excluding tab.
    Cheers,
    Simha.
    Reward all the helpful answers..

  • Skillbuilders modal dialog - condition for parent page dialog

    Hi
    When using this awesome plugin, I have a dynamic action on my calling page that deals with the selection from the dialog.
    It uses
    Select type:DOM Object
    DOM Object: document
    Condition: javascript expression
    ($v('P110_PROD_SEARCH') == 'BLAH')
    where the js expression is making sure I run the correct dynamic action, particularly when I have a few buttons on the page invoking different variations of the modal dialog.
    My first action is some javascript that interrogates the value of
    this.data.modalPageCloseValue
    this helps me make decisions in later actions on whether to run some pl/sql, for instance
    In light of a recent question of mine regarding a potential APEX bug (Display item with HTML affected by dynamic action and since we can't put conditions on actions - I was wondering if I could incorporate something into my dynamic action condition to stop the entire dynamic action from executing if modalPageCloseValue is null - but it seems to be out of scope?
    Scott

    Scott,
    You're current condition is:
    $v('P110_PROD_SEARCH') == 'BLAH'Just change that to:
    $v('P110_PROD_SEARCH') == 'BLAH' && this.data.modalPageCloseValueRegards,
    Dan
    blog: http://DanielMcghan.us/
    work: http://SkillBuilders.com/APEX/
    twitter: https://twitter.com/dmcghan

  • How can I control modal dialogs in Applescript without a mouse?

    I am trying to use a Griffin PowerMate button to select between two options in an Applescript modal dialog and cannot seem to figure out how to do this. I can set a default button, but I want the user to select between two options (shifting the highlighted button) via the PowerMate. Does anyone have a suggestion?
    I can program the PowerMate to send/emulate a particular keystroke, but I do not know how to make the standard Applescript dialog respond to a keystroke, only a mouse action. I'm trying to create a mouseless interface.
    In short, I want the dialog respond to "Twist to the left and press the button to select A, Twist to the right and press the button to select B." Thoughts?
    Thank you.

    Your System Preferences > Keyboard Shortcuts > Full Keyboard Access preference will need to be set to "all controls", but it also depends on where the particular button is located in the dialog.  The tab key will highlight the buttons from left to right, shift-tab will highlight the buttons from right to left, and the spacebar will "press" the currently highlighted button.  In addition, the escape key will choose the Cancel button (if there is one), and the return key will choose the default button (if a default has been set the button itself will be lit).

  • In Unix, main JFrame focus not regained after modal dialog exit.

    Hi all,
    I'm new to this forum so hopefully this is the right place to put this question.
    I have a relatively simple GUI application written in Java 6u20 that involves a main gui window (extends JFrame). Most of the file menu operations result in a modal dialog (either JFileChooser or JOptionPane) being presented to the user.
    The problem is that when running on Unix (HPUX), the process of changing focus to one of these modal dialogs occasionally results in a quick flash of the background terminal window (not necessarily that used to launch the Java), and the process of closing the modal dialogs (by any means, i.e. any dialog button or hitting esc) doesn't always return focus to the main extended JFrame object, sometimes it goes to the terminal window and sometimes just flashes the terminal window before returning to the main JFrame window.
    I think the problem is with the Unix window manager deciding that the main focus should be a terminal window, not my Java application, since the problem occurs in both directions (i.e. focus from main JFrame to modal dialog or vice versa).
    In most cases of JOptionPane, I DO specify that the main extended JFrame object is the parent.
    I've tried multiple things since the problem first occured, including multiple calls to a method which calls the following:
    .toFront();
    .requestFocus();
    .setAlwaysOnTop(true);
    .setVisible(true);
    ..on the main JFrame window (referred to as a public static object)...
    just before and after dialog display, and following selection of any button from the dialogs. This reduced the frequency of the problem, but it always tends to flash the terminal window if not return focus to it completely, and when it occurs (or starts to occur then gets worse) is apparently random! (which makes me think it's an OS issue)
    Any help appreciated thanks,
    Simon
    Self-contained compilable example below which has the same behaviour, but note that the problem DOESN'T occur running on Windows (XP) and that my actual program doesn't use auto-generated code generated by a guibuilder:
    * To change this template, choose Tools | Templates 
    * and open the template in the editor. 
    package example;  
    import javax.swing.JOptionPane;  
    * @author swg 
    public class Main {  
         * @param args the command line arguments 
        public static void main(String[] args) {  
            java.awt.EventQueue.invokeLater(new Runnable() {  
                public void run() {  
                    new NewJFrame().setVisible(true);  
    class NewJFrame extends javax.swing.JFrame {  
        /** Creates new form NewJFrame */ 
        public NewJFrame() {  
            initComponents();  
        /** This method is called from within the constructor to 
         * initialize the form. 
         * WARNING: Do NOT modify this code. The content of this method is 
         * always regenerated by the Form Editor. 
        @SuppressWarnings("unchecked")  
        // <editor-fold defaultstate="collapsed" desc="Generated Code">  
        private void initComponents() {  
            jMenuBar1 = new javax.swing.JMenuBar();  
            jMenu1 = new javax.swing.JMenu();  
            jMenuItem1 = new javax.swing.JMenuItem();  
            jMenu2 = new javax.swing.JMenu();  
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);  
            jMenu1.setText("File");  
            jMenuItem1.setText("jMenuItem1");  
            jMenuItem1.addActionListener(new java.awt.event.ActionListener() {  
                public void actionPerformed(java.awt.event.ActionEvent evt) {  
                    jMenuItem1ActionPerformed(evt);  
            jMenu1.add(jMenuItem1);  
            jMenuBar1.add(jMenu1);  
            jMenu2.setText("Edit");  
            jMenuBar1.add(jMenu2);  
            setJMenuBar(jMenuBar1);  
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());  
            getContentPane().setLayout(layout);  
            layout.setHorizontalGroup(  
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)  
                .addGap(0, 400, Short.MAX_VALUE)  
            layout.setVerticalGroup(  
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)  
                .addGap(0, 279, Short.MAX_VALUE)  
            pack();  
        }// </editor-fold>  
        private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {  
            int result = JOptionPane.showConfirmDialog(this, "hello");  
        // Variables declaration - do not modify  
        private javax.swing.JMenu jMenu1;  
        private javax.swing.JMenu jMenu2;  
        private javax.swing.JMenuBar jMenuBar1;  
        private javax.swing.JMenuItem jMenuItem1;  
        // End of variables declaration  
    }

    It won't comfort you much, but I had similar problems on Solaris 10, and at the time we traked them down to a known bug [6262392|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6262392]. The status of this latter is "Closed, will not fix", although it is not explained why...
    It's probably because the entry is itself related to another, more general, bug [6888200|http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=b6eea0fca217effffffffe82413c8a9fce16?bug_id=6888200], which is still open.
    So it is unclear whether this problem will be worked upon (I suspect that yes) and when (I suspect that... not too soon, as it's been dormant for several years!).
    None of our attempts (+toFront(...)+ etc...) solved the issue either, and they only moderately lowered the frequency of occurrence.
    I left the project since then, but I was said that the workaround mentioned in the first bug entry (see comments) doesn't work, whereas switching to Java Desktop instead of CDE reduced the frequency of the issues (without fixing them completely either) - I don't know whether it's an option on HPUX.
    Edited by: jduprez on Jul 9, 2010 11:29 AM

  • How to make a dalog process custom events when blocked by modal dialog

    Hi,
    I would like to understand the way modal dialogs block other dialogs so that I can properly solve an issue I'm having with two modal dialogs, one blocking the other.
    I have an application, netbeans platform based, that opens a JDialog, NewDiskDlg, with it's modal property set to true. This dialog is responsible for starting a thread that will process a given number of files, from time to time, depending on some conditions, this thread will send events to the NewDiskDlg.
    When this thread is started, the NewDiskDlg creates a new JDialog, also with the modal property set to true. Both dialogs have the same parent, the main window. And this works as I expected, the second dialog, ActiveScanningDlg, opens on top of the NewDiskDlg and, until the thread stops, the dialog stays visible.
    When the thread stops an event is sent to this two dialogs signaling that the job has been completed, and here is my problem. The second dialog, the one that is visible when the event arrives, receives the event and executes the dispose() method, releasing control to the NewDiskDlg in the back, but the NewDiskDlg does not receive the event and does not process it correctly.
    I understand the no input can be sent to a blocked window, but does that include calling upon the window's methods?
    I've been looking for some help on this but my search terms are not good enough to provide me with any useful information. I've also read the topic on the focus system that is present in the Java Tutorial but I feel that that is not what I should be looking at.
    The following code is a snippet of the important parts that I described:
    NewDiskDlg has the following methods to process the events
        public void readingStarted(ReadingEvent evt) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    scanningDlg.showCentered();
        public void readingFile(ReadingEvent evt) {
            //DO NOTHING
        public void readingStopped(ReadingEvent evt) {
            Lookup.getDefault().lookup(MediaReader.class).removeListener(this);
            if (!showAgain) {
                dispose();
        public void readingAborted(ReadingEvent evt) {
            JOptionPane.showMessageDialog(this, "", "", JOptionPane.ERROR_MESSAGE);//TODO: i18n on the error messagens
            Lookup.getDefault().lookup(MediaReader.class).removeListener(this);
        }ActiveScanningDlg processes the events like this:
        public void readingStarted(ReadingEvent evt) {
            //DO NOTHING
        public void readingFile(ReadingEvent evt) {
            jpbReadingProgress.setString(evt.getCurrentFileName());
        public void readingStopped(ReadingEvent evt) {
            Lookup.getDefault().lookup(MediaReader.class).removeListener(this);
            dispose();
        public void readingAborted(ReadingEvent evt) {
            readingStopped(evt);
        }This is an example on how the events are sent:
        private void fireReadingFile(ReadingEvent evt) {
            for (ReadingListener l : listeners) {
                l.readingFile(evt);
        }

    Hi,
    You have to check the Tolerance limits set for the following tolerance keys. In case if any where the limit is breached the systems blocks the Invoice as 'R - Invoice verification'. Please check the limits set for all these keys.
    AP - item amount variance (if you have activated the item check)
    DQ and DW - for Quantity variance
    PP - price variance with the order price
    ST - date variance
    VP - Moving average price variance
    Regards,
    Kathir

  • Module Pool - Error message on a Modal Dialog screen with input

    Hello All,
    I have a modal dialog screen which is called on F4 help of a input field. This dialog screen has radio buttons on it to select. On selection, we check if the user is authorized to that option. If not, raise and error message with command MESSAGE msgid.....
    When the error message pops-up and when clicked ok on it, the radio buttons on the modal dialog screen gets disabled. I want to have the modal dialog box to be able to accept the new radio button as input.
    Can anyone please suggest.
    Thanks,
    Smita

    Put all of your Radio buttons in the CHAIN ... ENDCHAIN with one module.
    CHAIN.
        FIELD rb1.
        FIELD rb2.
        FIELD rb3.
        MODULE check_chain ON CHAIN-REQUEST.   "<< implement logic in check_Chain
      ENDCHAIN.
    If you want, you can even disable the options before displaying the screen. Do all necessary checks in the PBO and based on that disable the options.
    Regards,
    Naimesh Patel

  • Distiller Server "Could not open file" modal dialog

    We're running Distiller Server 8, and I've got a dilemma that I'm hoping is solvable.
    This is installed on a Windows 2008 server, with jobs coming into watched folders from our OPI server. Periodically, we get a dialog box that says Acrobat Distiller "Could not open the file: P:\OPI_Data\PDF_Processing\Index_PDFs\out\<filename>". The path specifics will vary, but it's always a path to a file in process... not to a config file or anything like that.
    The big problem is that this pops up as a modal dialog and Distiller won't process any more files until someone clicks "OK". On the console. On a server. In the datacenter. We run two shifts, and I'm getting really tired of phone calls at midnight saying "Distiller is hung... can you fix it?"
    Is there a way to run Distiller Server in silent mode? Some way to tell it "If you have a problem, just fail that job and move on"? Having to have a server administrator connect in and click a dialog box is just silly.

    That seems to have done the trick, thanks.  I don't really like doing forces unless someone who knows more than I recommends it, as I see way too many threads where that has complicated things tremendously.

  • Item not being saved when item is in a jquery modal  dialog

    Hi all,
    I followed instructions found here :
    http://shijesh.wordpress.com/2010/04/10/jquery-modal-form-in-apex-4/
    to create a jquery modal dialog, this is the code I added in html header :
    <link rel="stylesheet" href = "http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/
    redmond/jquery-ui.css" type="text/css" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"> </script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"> </script>
    <script type="text/javascript">
    $( function() {
       $('#ModalForm').dialog(
            modal : true ,
            autoOpen : false ,
            width : 425,
            closeText : 'Close',
            stack : false,
            resizable : false,
            buttons  : {
                Cancel : function() {
                         closeForm();
                Save : function() {
                    updateMEMOVELD();
    function openForm()
        $('#ModalForm').dialog('open');
    function closeForm()
        //$('#ModalForm input[type="textarea"]').val('');
        $('#ModalForm').dialog('close');
    function updateMEMOVELD ()
       var get = new htmldb_Get(null, &APP_ID.,   
                        'APPLICATION_PROCESS=f_memo', 0);
       get.add('P9_MEMOVELD',$v('P9_MEMOVELD'));
       var gReturn= get.get();
       //alert(gReturn);
       //alert($v('P9_DATUM'));
      $s('P9_MEMOVELD',gReturn);
      alert($v('P9_MEMOVELD'));
      $s('P9_MEMOVELD_COPY',$v('P9_MEMOVELD')); 
      $('#ModalForm').dialog('close');
    </script>my situation is a little different, my modal does not have to perform an sql update, just change a field
    the user will then save in the main form
    for some reason the field never gets updated in the db
    I even created a on demand application process called f_memo :
    BEGIN
      APEX_UTIL.SET_SESSION_STATE('P9_MEMOVELD',:P9_MEMOVELD);
      htp.p(:P9_MEMOVELD);
    END;why is my field not send to the db ?
    it works when I delete this from the region header :
    < d i v id="ModalForm" title="Add Person" style=" d isplay:n one  "   >but then of course I no longer have a modal dialog
    what's wrong ?
    I put the code online at apex.oracle.com
    workspace XONIXRS
    login/password demo/demorun the application
    click on lijst facturen (invoices) (in the right sidebar region)
    then click on the zoeken (search) button
    a report appears, click on edit on the first line (200900017)
    now a form appears, click on the outright button memo
    now the modal shows up, change the field and click on save
    click on ok (for the alert) and then click on Save invoice
    you will remain on the same page
    now click on annuleren
    and then click on edit on the first line (200900017) again
    then click on memo again, you will see the memo has not been changed
    how comes ?
    Kr
    Martin

    The issue is that creating a modal of a region lifts that region from the HTML. Just have a look at the DOM when you run your page and not the source html, because that does not reflect changes to the dom made on page load. This means that your memo-field is removed from the FORM-tags, and effectively won't submit to session state. The item is not processed when you submit the page! You can track that through debugging your page. Memo is not saved and not processed.
    Trying to save the value to session state is not enough, it doesn't really matter in this case. The moment you submit the page, the session state will get overwritten by the submitted values of the items.
    So what i did:
    <ul>
    <li>move P9_MEMOVELD to region FACTUUR, together with all the other db fields</li>
    <li>change the type to hidden</li>
    <li>set value protected to NO</li>
    <li>in the modal region create a new page item P9_MEMOVELD_POP, type textfield</li>
    <li>set the source to always use a page item as source, with source P9_MEMOVELD</li>
    <li>changed function updatememoveld:
    function updateMEMOVELD ()
       var get = new htmldb_Get(null, &APP_ID.,   
                        'APPLICATION_PROCESS=f_memo', 0);
       get.add('P9_MEMOVELD',$v('P9_MEMOVELD'));
       var gReturn= get.get();
       //alert(gReturn);
       //alert($v('P9_DATUM'));
      $s('P9_MEMOVELD',gReturn);
      alert($v('P9_MEMOVELD'));
      $s('P9_MEMOVELD_COPY',$v('P9_MEMOVELD')); 
      $s('P9_MEMOVELD',$v('P9_MEMOVELD_POP'));
      $('#ModalForm').dialog('close');
    }Whether you want or need the session state set is up to you, it depends on if you use this somewhere else dynamically on the page and thus would influence results there, but i don't think it will (it's a memo field...)</li>
    </ul>
    Extra remarks:
    <ul>
    <li>be careful with including jquery libraries! The standard libraries are included, yet you add previous versions too! (1.4.2) This might lead to issues...</li>
    <li>use your templates better. Why would you wrap a region in div tags? Change or add a region template to be div tags. You can then easily assign a static id to this region, and target it. This will save you from wrapping wrapped wrappers (cause that is what the generated code looks like in the end).</li>
    </ul>

  • How to customize URL in modal dialog script?

    Hi All,
    I am using JSLink to open Modal dialog, want to customize the url by adding '&DefaultView=Email' to URL in script. How to do this in below script:
    (function () {
    // Create object that have the context information about the field that we want to change it output render
    var pictureFiledContext = {};
    pictureFiledContext.Templates = {};
    pictureFiledContext.Templates.Fields = {
    //"Picture" is the column name.
    "Picture": { "View": pictureFiledTemplate }
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(pictureFiledContext);
    function pictureFiledTemplate(ctx) {
    var url= ctx.CurrentItem[ctx.CurrentFieldSchema.Name];
    var itemID=ctx.CurrentItem.ID;
    var itemTitle=ctx.CurrentItem.Title;
    return "<img alt='"+url+"' src='"+url+"' complete='complete' onclick=\"openModalDialog('EditForm.aspx?ID="+itemID+"','"+itemTitle+"')\" />";
    function openModalDialog(url,title)
    var options = {
    title: "Item-"+title,
    width: 600,
    height: 600,
    url: url
    SP.UI.ModalDialog.showModalDialog(options);
    return false;
    Thanks in advance!

    You should be able to do it like this:
    function openModalDialog(url,title)
    var options = {
    title: "Item-"+title,
    width: 600,
    height: 600,
    url: url + "&DefaultView=Email"
    Brandon Atkinson
    Blog: http://brandonatkinson.blogspot.com

  • How to get the Id of the component that caused modal dialog to terminate?

    Hi,
    I am developing a plugin for Acrobat. The plugin will have menu item. On clicking menu item a modal dialog will be opened. I am using DialogBox method to create modal dialog. But this method returns value which is the call to the EndDialog function used to terminate the dialog box. This means that on success it will always return 0.
    But I want the ID of the component in the dialog which caused the dialog to terminate. What I mean is that I want that if Ok button in the dialog was clicked and dialog terminated then DialogBox method must return the ID of the Ok button.
    Is there any other function that can be used to create dialog in Acrobat on windows??
    Thanks.

    Acrobat no longer has any API to dialog creation in a plug-in. So the question of knowing which of your buttons terminated the dialog is part of the API or library you actually use to do the display. If you are talking about the behaviour of the Windows GDI API, it's up to you what code to pass to EndDialog in your callbacks, when processing the BN_CLICKED notification. Personally I pass the control ID. If you are using a higher level wrapper it will be a function of that, but knowing what button closed a dialog is a basic need that any library should satisfy.

  • How do you pass a column link value into modal dialog

    Hi everyone,
    I've got quite a tricky problem...To spell it out:
    1. I have a calendar with column links.
    2. I have a (popup) report on a separate page that shows detailed information about the record selected in 1.
    3. To eliminate the extra page, I've moved the report region to the calendar page, and created a modal dialog to display the report.
    Here's my dilemma, how do I 'get' the value of the column link (when clicked) so that I can use it when calling the modal report?
    (APEX 4.0)
    Thanks!

    True Andy.
    Combining the two examples then:
    function openModal(pVal1,pVal2)
    var l_Return = null;
    var get = new htmldb_Get(null, $x('pFlowId').value, 'APPLICATION_PROCESS=DUMMY', 14);
    get.add('P14_REPORT_FILTER1', pVal1); // set up page items to receive value
    get.add('P14_REPORT_FILTER2',pval2);
    gReturn = get.get(''); // Calls dummy process to set session state
    var tab = $('#REGION_STATIC_ID'); // grabs the region static id
    var report_id_str=$("div[id^=report_]", tab).attr("id"); // finds the 'report_'
    var report_id=report_id_str.match(/\d+/)[0]; // gets just the numeric id
    $a_report(report_id, '1', '15', '15'); // refreshes the report
    // Call to show modal here
    } You'll need to sub REGION_STATIC_ID for your region_static ID and make sure that it exists in the template.
    You could also just sub out the three lines between gReturn and $a_report with the hardcoded value of the region ID like:
    var report_id='R6974536412746853317'.substring(1);
    but if you and your region numbers change (if you import your app into a different app_id) then you'd have to go back and fix these.
    HTH, Thanks Andy for making me READ (not SCAN) the actual post :)

  • ALV in modal dialog box

    Hi,
    I have an ALV on suppose screen 3000, I have created a button in the tool bar to call another ALV, but my question is, can we display ALV in modal dialog box screen(because the requirement is to display ALV as a popup)
    So when i changed the screen type to normal screen, my alv is coming,,but when i change the screen type to modal dialog box, then no ALV is being displayed in the output. Only blank screen is displayed.
    Can you please help me.
    Thanks.

    Hello
    The problem is that you have to take into account that the ALV in the popup (or modal dialogbox) is displayed on a different screen level:
    level 0 = main screen
    level 1 = 1st popup
    level 2 = 2nd popup
    We have up to 9 screen level available.
    The following sample report ZUS_SDN_ALV_IN_POPUP is a variant of my sample report ZUS_SDN_TWO_ALV_GRIDS.
    Depending on whether you mark P_POPUP or not the second ALV grid is additionally displayed on a popup.
    *& Report  ZUS_SDN_ALV_IN_POPUP
    *& Thread: ALV in modal dialog box
    *& https:||<a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="762642"></a>
    *& Screen '0100' contains no elements.
    *& ok_code -> assigned to GD_OKCODE
    *& Flow logic:
    *  PROCESS BEFORE OUTPUT.
    *    MODULE STATUS_0100.
    *  PROCESS AFTER INPUT.
    *    MODULE USER_COMMAND_0100.
    REPORT  zus_sdn_alv_in_popup.
    TYPE-POOLS: abap.
    DATA:
      gd_okcode        TYPE ui_func,
      gd_repid         TYPE syst-repid,
    " containers and ALV grids for main screen
      go_docking       TYPE REF TO cl_gui_docking_container,
      go_splitter      TYPE REF TO cl_gui_splitter_container,
      go_cell_top      TYPE REF TO cl_gui_container,
      go_cell_bottom   TYPE REF TO cl_gui_container,
      go_grid1         TYPE REF TO cl_gui_alv_grid,
      go_grid2         TYPE REF TO cl_gui_alv_grid,
    " container and ALV grid for popup
      go_docking3      TYPE REF TO cl_gui_docking_container,
      go_grid3         TYPE REF TO cl_gui_alv_grid,
      gs_layout        TYPE lvc_s_layo.
    DATA:
      gt_knb1          TYPE STANDARD TABLE OF knb1,
      gt_knvv          TYPE STANDARD TABLE OF knvv.
    PARAMETERS:
      p_popup AS CHECKBOX DEFAULT ' '.
    *       CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-METHODS:
          handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
            IMPORTING
              e_row
              e_column
              es_row_no
              sender.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    *       CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_double_click.
    *   define local data
        DATA:
          ls_knb1      TYPE knb1.
        CHECK ( sender = go_grid1 ).
        READ TABLE gt_knb1 INTO ls_knb1 INDEX e_row-index.
        CHECK ( ls_knb1-kunnr IS NOT INITIAL ).
        IF ( p_popup = abap_true ).
          CALL METHOD cl_gui_cfw=>set_new_ok_code
            EXPORTING
              new_code = 'POPUP'
    *        IMPORTING
    *          rc       =
        ELSE.
    *     Triggers PAI of the dynpro with the specified ok-code
    *  *    CALL METHOD cl_gui_cfw=>set_new_ok_code( 'DETAIL' ).  " not on 4.6c
          CALL METHOD cl_gui_cfw=>set_new_ok_code
            EXPORTING
              new_code = 'DETAIL'
    *        IMPORTING
    *          rc       =
        ENDIF.
      ENDMETHOD.                    "handle_double_click
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
    " Select data
      SELECT        * FROM  knb1 INTO TABLE gt_knb1
             WHERE  bukrs  = '1000'.
      PERFORM init_controls.
    * Display data
      gs_layout-grid_title = 'Customers'.
      CALL METHOD go_grid1->set_table_for_first_display
        EXPORTING
          i_structure_name = 'KNB1'
          is_layout        = gs_layout
        CHANGING
          it_outtab        = gt_knb1
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      gs_layout-grid_title = 'Customers Details (Sales Areas)'.
      CALL METHOD go_grid2->set_table_for_first_display
        EXPORTING
          i_structure_name = 'KNVV'
          is_layout        = gs_layout
        CHANGING
          it_outtab        = gt_knvv  " empty !!!
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      gs_layout-grid_title = 'Customers Details (Sales Areas)'.
      CALL METHOD go_grid3->set_table_for_first_display
        EXPORTING
          i_structure_name = 'KNVV'
          is_layout        = gs_layout
        CHANGING
          it_outtab        = gt_knvv  " empty !!!
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Link the docking container to the target dynpro
      gd_repid = syst-repid.
      CALL METHOD go_docking->link
        EXPORTING
          repid                       = gd_repid
          dynnr                       = '0100'
    *      CONTAINER                   =
        EXCEPTIONS
          OTHERS                      = 4.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Link the docking container to the popup
      gd_repid = syst-repid.
      CALL METHOD go_docking3->link
        EXPORTING
          repid                       = gd_repid
          dynnr                       = '0200'
    *      CONTAINER                   =
        EXCEPTIONS
          OTHERS                      = 4.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * NOTE: dynpro does not contain any elements
      CALL SCREEN '0100'.
    * Flow logic of dynpro (does not contain any dynpro elements):
    *PROCESS BEFORE OUTPUT.
    *  MODULE STATUS_0100.
    *PROCESS AFTER INPUT.
    *  MODULE USER_COMMAND_0100.
    END-OF-SELECTION.
    *&      Form  INIT_CONTROLS
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM init_controls .
    * Create docking container
      CREATE OBJECT go_docking
        EXPORTING
          parent = cl_gui_container=>screen0  " main screen -> level 0 !!!
          ratio  = 90
        EXCEPTIONS
          OTHERS = 6.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Create splitter container
      CREATE OBJECT go_splitter
        EXPORTING
          parent            = go_docking
          rows              = 2
          columns           = 1
    *      NO_AUTODEF_PROGID_DYNNR =
    *      NAME              =
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Get cell container
      CALL METHOD go_splitter->get_container
        EXPORTING
          row       = 1
          column    = 1
        RECEIVING
          container = go_cell_top.
      CALL METHOD go_splitter->get_container
        EXPORTING
          row       = 2
          column    = 1
        RECEIVING
          container = go_cell_bottom.
    * Create ALV grids
      CREATE OBJECT go_grid1
        EXPORTING
          i_parent = go_cell_top
        EXCEPTIONS
          OTHERS   = 5.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Set event handler
      SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid1.
      CREATE OBJECT go_grid2
        EXPORTING
          i_parent = go_cell_bottom
        EXCEPTIONS
          OTHERS   = 5.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      " Create container and grid for popup.
    * Create docking container
      CREATE OBJECT go_docking3
        EXPORTING
          parent = cl_gui_container=>screen1 " !!! popup !!!
          ratio  = 90
        EXCEPTIONS
          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.
      " NOTE: Starting from a main dynpro (screen level 0) the first popup
      "       (or modal dialogbox) is on level 1 !!!
      " Using cl_gui_container=>screen0 fails to display ALV grid.
      CREATE OBJECT go_grid3
        EXPORTING
          i_parent = go_docking3
        EXCEPTIONS
          OTHERS   = 5.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " INIT_CONTROLS
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'STATUS_0100'.  " contains push button "DETAIL"
    *  SET TITLEBAR 'xxx'.
    * Refresh display of detail ALV list
      CALL METHOD go_grid2->refresh_table_display
    *    EXPORTING
    *      IS_STABLE      =
    *      I_SOFT_REFRESH =
        EXCEPTIONS
          OTHERS         = 2.
      IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    MODULE user_command_0100 INPUT.
      CASE syst-dynnr.
        WHEN '0100'.
          CASE gd_okcode.
            WHEN 'BACK' OR
                 'END'  OR
                 'CANC'.
              SET SCREEN 0. LEAVE SCREEN.
    *   User has pushed button "Display Details"
            WHEN 'DETAIL'.
              PERFORM entry_show_details.
            WHEN 'POPUP'.
              PERFORM entry_show_details.
              go_grid3->refresh_table_display( ). " required
              CALL SCREEN '0200' STARTING AT 5 5
                                 ENDING   AT 150 30.
            WHEN OTHERS.
          ENDCASE.
        WHEN '0200'.
          set screen 100. leave screen.
      ENDCASE.
      CLEAR: gd_okcode.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Form  ENTRY_SHOW_DETAILS
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM entry_show_details .
    * define local data
      DATA:
        ld_row      TYPE i,
        ls_knb1     TYPE knb1.
      CALL METHOD go_grid1->get_current_cell
        IMPORTING
          e_row = ld_row.
      READ TABLE gt_knb1 INTO ls_knb1 INDEX ld_row.
      CHECK ( syst-subrc = 0 ).
      SELECT        * FROM  knvv INTO TABLE gt_knvv
             WHERE  kunnr  = ls_knb1-kunnr.
    ENDFORM.                    " ENTRY_SHOW_DETAILS
    Regards
      Uwe

Maybe you are looking for

  • How to bypass "ORA-01436: CONNECT BY loop in user data" ?

    Hello everybody I have a problem with a ORA-01436 firing too early on a query I'm trying to execute. There is a table of strings. Each string on that table should be composed of a single character or it must be obtained by the concatenation of a sing

  • Applying a CSS style to an existing web page

    Hi all. I have recently updated the look of one of my web pages in my site. I'm looking to update the look of the other pages in my site as well to the same style/look. I have a CSS style saved as  "main layout" that I would like to use to apply the

  • OAAttrValException error

    I'm adding validation for my dimensions and one of the requirements is that the value must be > 0. Therefore, I'm rasing an exception if length,width, or height = 0. I'm using OAAttrValException to prompt user that 0 is unacceptable. I've define the

  • Updating issues with Media Encoder for PC

    Um I'm sorry if there was a post for this, but I couldn't find one as far as I know. Okay I got my video all set to export from Premiere to the Encoder. I hear the sound and etc. After it gone through the encoder, the video comes out fine except it d

  • 8820 freezed - Uncaught exception

    Hi, I got a 8820 yesterday that's not new, it's my father's old phone. When he used it he had no problem with it. I updated the software from 4.2.2 to 4.5 this morning so my 8go SD card could be recognized. It worked well then until I tried to connec