Return a value from the pop-up screen

Long story short - I have a PopupScreen. This has two text boxes. What I want to do is to call a method on the original screen (the one that calls the popup), using these values in two text box.

The only thing I can't do is pass back the two field values. Ive tried to call the method. Even tried passing the screen in the popupscreens constructor.

private class goToMenuItem extends MenuItem {
        public goToMenuItem() {
            super( new StringProvider( "Test" ), 0, 0 );
        }
        public void run() {
            CustomPopUpScreen cstmScreen = new CustomPopUpScreen();
            UiApplication.getUiApplication().pushModalScreen(cstmScreen);
        }
     }
 public class CustomPopUpScreen extends PopupScreen {

            BasicEditField T1;
            BasicEditField T2;

            public CustomPopUpScreen() {
                super(new VerticalFieldManager(CustomPopUpScreen.NO_HORIZONTAL_SCROLL));

                BasicEditField T1= new BasicEditField( "T1: ", "", 20, BasicEditField.EDITABLE | BasicEditField.FILTER_REAL_NUMERIC);
                BasicEditField T2= new BasicEditField( "T2: ", "", 20, BasicEditField.EDITABLE | BasicEditField.FILTER_REAL_NUMERIC);

                ButtonField cancel = new ButtonField("Cancel");
                ButtonField submit = new ButtonField("Go To");
                add( T1);
                add( T2);
                add(submit);
                add(cancel);

                cancel.setChangeListener( new FieldChangeListener() {
                    public void fieldChanged(Field arg0, int arg1) {
                        close();
                    }
                });

                submit.setChangeListener( new FieldChangeListener() {
                    public void fieldChanged(Field arg0, int arg1) {
                        GoTo();
                        close();
                    }
                });
            }

            public void GoTo()
            {
                    //GoTo(Double.parseDouble(T1.getText()),Double.parseDouble(T2.getText()));
            }
        }

Just to add a bit to the response of Simon.

"I want to do is call a method on the original screen.

OK, I have to ask, why do you do this?  It doesn't seem very object ish.

If you want to call this method once the screen has been closed, then the approach you use (modal form) works, you need to get the values in the treatment of menu and then you can call the transformation of in the menu on the screen who has access to the treatment method.

Tags: BlackBerry Developers

Similar Questions

  • Impossible to select the value from the search screen (quick select, then) on OFA

    Hello

    We have a problem with a user who are not able to select any value from the LOV on any page of the Oracle.

    1. click the button of LOV

    2. search + go

    3. Select or quick selection nothing happens (error on the Page appears in the left corner of the homepage)

    4. only cancel works.

    Any suggestion would be appreciated.

    I saw a similar question posted Impossible to select the value from the search screen (quick select, then) on OFA

    But unfortunately this is not the answer.

    Thank you

    Sam

    Display of the solution to help others. I tried to connect a SR and suddenly a pop Note ups that helped.

    The problem is related to the profile "Self Service Accessibility Features" customer has defined for the user concerned.

    Follow these steps:

    1 change the value of 'None' profile at the user level.

    2 disconnect / connect to the application and testing.

    See you soon.

  • Save the selected value from the ListBox with its respective values control tab dropdown selected in another list box

    Hi all

    I'm doing a vi where I save the selected value from the ListBox with values respective tab control dropdown selected in another list box. Whenever I select Item1 can change of course and the respective tab will be open for this element. But now I want to just save the selection and put it into another ListBox.SO I can't renmove or add my wishes. Please help me.

    It will work.

    Probably not the greatest solution well.

  • How to center the button on the pop-up screen

    Look at the picture, I've created a popup screen click the menu key and I have that transparent and make it mode full screen and I added four buttons vertically please, u can correct me how can I Center this button in the pop up screen.

    Here is my code

    if (Keypad.key(keycode) == Keypad.KEY_MENU)
            {
                  MysettingMenu mymenu = new MysettingMenu();
                  UiApplication.getUiApplication().pushModalScreen(mymenu);
                System.out.println("--------------Menu -key -Pressed-----------------");
    
            }
     public class MysettingMenu extends PopupScreen{
             public MysettingMenu(){
                 super(new VerticalFieldManager(), Screen.DEFAULT_CLOSE); 
    
                 this.setBackground(BackgroundFactory.createSolidTransparentBackground(Color.WHITE, 80));
    
                 setBorder(BorderFactory.createSimpleBorder(new XYEdges(),Border.STYLE_TRANSPARENT));
    
                 this.add(new ButtonField("Favourites"));
                 this.add(new ButtonField(" Settings "));
                 this.add(new ButtonField("  About    "));
                 this.add(new ButtonField("  Exit    "));
    
             }
    
            protected void sublayout(int width, int height) {
                // TODO Auto-generated method stub
                 super.sublayout(Display.getWidth(), Display.getHeight());
                  setExtent(Display.getWidth(),Display.getHeight());
                  int leftMargin = (Display.getWidth() - width)/8;
                  int topMargin = (Display.getHeight() - height)/8;
                  setPosition(leftMargin, topMargin);
            }
    
         }
    

    There are a variety of ways that this could be done, but in your case the easiest is to allow the screen to use only as much space as it needs and then place it at the Center.

    Then

    (1) change this call

    Super.sublayout (Display.GetWidth (), Display.getHeight ());

    in fact, supply the same width and height that you have been given.

    (2) remove this:

    setExtent (Display.getWidth (), Display.getHeight ());

    (3) change margin settings so that they use the actual width and height, and on this basis.  For example:

    leftMargin = int (Display.getWidth () - this.getWidth (()) / 2;

    By the way, I recommend strongly that you never call super.layout (...) ignore the size that he gave you and you deliver own setExtent.  Unless you know what you are doing, this can cause fields to display incorrectly.  If you think that you must set your own size, then I suggest you create your own Manager and do you do the layout.  More information on that here:

    http://supportforums.BlackBerry.com/T5/Java-development/how-to-extend-Manager/Ta-p/446749

  • Restore the default value from the drop-down list

    Hyperion Inreatctive reports.

    I have an embedded in a dashboard report.  I drag the lists that filter the report.  Filter feed results and it works fine.

    I want to put a command button on the dashboard that restores the default values from the dropdown lists.  I have a selection in each drop-down menu, 'all '.  "All" is the default value.

    For example, for the year

    drop_Year

    for the region:

    drop_Region

    What command should I put on the command button that any value is displayed in the drop-down lists of this command, restore it to "all"?


    Watch the Select() method

    w

  • Need to use values from the first query in other queris to the data model

    Hello
    Here is my requirement-

    I use the data model to run multiple queries. The first query, I get 10 records. Now, I want to use these 10 records in the second query to get my final result. I am not able to use the sub query as the two motions are quite long and complex.

    Select distinct Bishop of emp

    Select empno, emp where Bishop in (: Bishop)

    I can't use: Bishop because it will give only the last value stored at Archbishop. Is it possible to be able to use all the values from the first query in the second query using the data model?

    Hello

    Are you sure that you have your "dataStructure" configured correctly? Try this simple example:

                                                                          
    

    Hope this helps

    Andy

  • How to return values from the record following instead of in the same record in LOV

    Hi all

    I use Forms 10 G.

    I have a block of details. In what in the 3rd column, I have a LOV.

    My requirement is let say I asked for it from the 1st and 2nd column, and it shows 1 record.

    After that if I pressed F9, then it should display the LOV list and, when I select a value any then it will create a new record with the same value of 1st and 2nd column.

    Example: -.

    Agenda provider country
    123ABCIndia

    We here in the column 'Country' LOV. Then when I pressed F9 then Lov should be displayed.

    as below.

    List of countries
    India
    U.S..
    Japan

    It works very well so far.

    Now if I select from the USA in the list then it should create a new record with the values of 1st and 2nd column.

    Agenda provider country
    123ABCIndia
    123ABCJapan

    How can I do this?

    Besically I need, rather than return the value in the same record, he must return to the next with the exsiting values record.

    The algorithm is:

    -use the KEY-LISTVAL about to 'COUNTRIES '.

    -LOV execution using builtin show_lov

    -store the return value Lov any parameter or a local variable in your trigger code ( vL_dummy_Deger varchar2 (100); )

    -Create registration

    -assign value to any new item you want to

    code like this:

    declare

    vLDummy boolean;

    vL_dummy_Deger varchar2 (100);

    Start

    -lov runs lov ruturns value is assigned to all the dummy elements to store Lov, return value. (no need to display)

    "-" DUMMY "point lets store lov, return value.

    vLDummy: = show_lov ('LOV_ULKE');

    --

    vL_dummy_Deger: =: model;

    create_record;

    : new_item: = vL_dummy_Deger;

    end;

  • Retruning lines which have the same return value from the function RANK

    Hi, I want to achieve is to use a DENSE RANK function to identify the same value of the data, if the rank values are same then extra. Here is the code
    WITH CTE AS
    (
    SELECT SalesPersonID,
    SalesQuota,
    DENSE_RANK() OVER (ORDER BY SalesQuota DESC) as DENSE_RANK
    FROM Sales.SalesPersonQuotaHistory
    WHERE SalesQuota BETWEEN 266000.00 AND 319000.00
    )
    This retrun
    SalesPersonID SalesQuota DENSE_RANK
    280 319000.00 1
    287 304000.00 2
    280 301000.00 3
    282 288000.00 4
    283 284000.00 5
    287 281000.00 6
    278 280000.00 7
    283 280000.00 7
    283 267000.00 8
    278 266000.00 9
    How I choose the rank value that are of the same value?

    The result should be
    278 280000.00 7
    283 280000.00 7
    with cte as
    (
     select salespersonid,
         salesquota,
         dense_rank() over (order by salesquota desc) as dr
       from sales.salespersonquotahistory
      where salesquota between 266000.00 and 319000.00
    )
    select *
      from (
         select cte.*, count(*) over(partition by dr) ct
           from cte
           )
     where ct > 1
    
  • To access the values from the row outside the ListView ListItem

    Hello

    I spent two hours browsing the forums and documentation with no chance of finding a solution on how to access the list item data from outside the listview.

    Let explain me my code. It is marked with I work and what does not work and its expected behavior.

    Should work behavior


    Tapping & getting data

    The arrayDataModel is filled with 4 rows. Firstly the list item, second item in the list... etc.

    • Tapping on the order of the day, label with the id of triggeredText displays the value of a threaded list item.
    • The index of the tapped icon appears in the label with the id of triggerredIndex.

    Incrementing Index using ActionItems onBar

    By pressing action items 'previous' and 'next', you can increment the index value to the label with the id of triggeredIndex. The order of the index is 0-4, even as total of the items in the list.

    How to extract data from the index when the value of triggeredIndex?

    Buttons

    The buttons at the bottom of the screen... Select 1, select the 2nd, 3rd Select should select indexes 0,1,2 of the list and display the value in triggeredText and triggeredIndex. They do not work.

    How did I pull the values when you click the buttons?

    import bb.cascades 1.3
    
    TabbedPane {
        id: root
        showTabsOnActionBar: false
    
        Tab {
            id: mainTab
            title: "Test List"
                Page {
                    id: mainPage
                    titleBar: TitleBar {
                        title: "List Traversal Test"
                    }
                    actions: [
                        ActionItem {
                            title: "Previous"
                            ActionBar.placement: ActionBarPlacement.OnBar
                            onTriggered: {
                                // get current selected index from list=
                                var currentIndex = parseInt(triggeredIndex.text);
    
                                if(currentIndex <= 0){
                                    //do nothing already at first item
                                }else{
                                    // subtract 1 from index ( ci - 1) ?
                                    var newIndex = parseInt(triggeredIndex.text) - 1;
    
                                    // show data from new selected index
                                    // ???
    
                                    // triggeredItem.text = XXX // the data
                                    // ???
    
                                    // triggeredIndex.text = X // the current index
                                    triggeredIndex.text = newIndex;
                                }
                            }
                        },
                        ActionItem {
                            title: "Next"
                            ActionBar.placement: ActionBarPlacement.OnBar
                            onTriggered: {
                                // get current selected index from list=
                                var currentIndex = parseInt(triggeredIndex.text);
    
                                if(currentIndex == 4){
                                    //do nothing already at lastitem
                                }else{
                                // add 1 to index ( ci + 1) ?
                                var newIndex = parseInt(triggeredIndex.text) + 1
    
                                // show data from new selected index
                                // ???
    
                                // triggeredItem.text = XXX // the data
                                // ???
    
                                // triggeredIndex.text = X // the current index
                                triggeredIndex.text = newIndex;
                            }
                            }
                        },
                        ActionItem {
                            title: "Clear"
                            ActionBar.placement: ActionBarPlacement.OnBar
                            onTriggered: {
                                // set current index to 0 (top item in list)
                            }
                        }
    
                    ]
                    Container {
                        preferredHeight: maxHeight
                        layout: StackLayout {
                            orientation: LayoutOrientation.TopToBottom
                        }
    
                        Label{
                            id: triggeredItem      // value of listitem from current index
                            text: "0"
                        }
                        Label{
                            id: triggeredIndex    // current index
                            text: "0"
                            onTextChanged: {
                                // set triggeredItem.text to contents of selected ListItem with same index
                                // STUCK HERE cannot access ListItem.dataModel(indexPath) from here....
                            }
    
                        }
                        Container{
                            ListView {
    
                                id: theList
                                objectName: "dalist"
                                dataModel: ArrayDataModel {
                                    id: theListModel
                                }
                                listItemComponents: ListItemComponent {
                                    StandardListItem {
                                        id: itemRoot
                                        title: ListItemData
                                    }
    
                                }
                                onTriggered: {
                                    var si = dataModel.data(indexPath);
                                    triggeredItem.text = "LIST ITEM CONTENT: " + si;  //set content when user taps on item
                                    triggeredIndex.text = "LIST ITEM INDEX INDEX: " + indexPath;  // set index when user taps
                                }
    
                                onSelectionChanged: {
                                    //console.log(selected);
                                }
    
                                onCreationCompleted: {
    
                                    //add some data to the listview
                                    theListModel.append("First List Item");
                                    theListModel.append("Second List Item");
                                    theListModel.append("Third List Item");
                                    theListModel.append("Fourth List Item");
                                }
                            }
    
                        }
                        Container{
                            layout: StackLayout {
                                orientation: LayoutOrientation.LeftToRight
                            }
                        Button{
                            text: "Select 1st"
                            onClicked: {
                                theList.clearSelection();
                                theList.select(0);
    
                            }
                        }
                        Button{
                            text: "Select 2nd"
                            onClicked: {
                                theList.clearSelection();
                                theList.select(1);
    
                            }
                        }
    
                        Button{
                            text: "Select 3rd item"
                            onClicked: {
    
                                //expected behaviour is to show data from Third List Item
    
                                // triggeredIndex.text = INDEX 3
                                // triggeredText.text = (DATA FROM THIRD LIST ITEM)
    
                                // THIS IS NOT WORKING ....
                                theList.clearSelection();
                                theList.select(2);
                                console.log(theList.dataModel(3));
                                triggeredItem.text = theListModel.dataModel(3);
    
                            }
                        }
                    }
                   }
                }
            }//tab
    }
    

    Thank you and have a happy and healthy 2015!

    Your help will be greatly appreciated.

    I ran and got this:

    asset:///main.qml:161: TypeError: Result of expression 'theList.dataModel' [bb::cascades::ArrayDataModel(0x1091a838)] is not a function.
    

    But it works

    theListModel.data([3])
    

    But this isn't the solution, you have a more serious problem. You select a value, you trigger. If you add this in onTriggered you select it (and you can see that it changes color when it is selected).

    theList.select(indexPath);
    

    If you want to use option to deselect

    theList.select(indexPath, !theList.isSelected(indexPath));
    

    And if you want to have that one chose this

    theList.clearSelection();
    theList.select(indexPath);
    

    Inside the button 'Select the 3rd point' allows to select programmatically

    theList.select([2]);
    

    It works but I'm not sure what you're trying to do

  • Button in the pop-up screen problem

    Hi all

    I did a pop-up screen in which there are two buttons and an EditField. Now, I am faced with very weird problem. First button that I added in my code doesnot seem to work. It doesnot clicking and the second button is working well, why is it so can any body help out me of this.

    I provided the code here: -.

    public class PinPopup extends PopupScreen{
    public static  EditField texts;
    static String _userName=null;
    
    PinPopup()
        {
        super(new HorizontalFieldManager());
        Font f = Font.getDefault().derive(Font.BOLD, 16);
        setFont(f);
        texts=new EditField("","",200,Field.EDITABLE);
    
        ButtonField sendButton = new ButtonField(" Send  "){
            protected boolean navigationClick(int status, int time) {
                   Dialog.inform("Send");
                return true;
                }
        };
    
        ButtonField cancelButton = new ButtonField("Cancel"){
             protected boolean navigationClick(int status, int time) {
                   Dialog.inform("Cancel");
                return true;
                }
        };
    
        VerticalFieldManager _fieldManagerContext = new VerticalFieldManager(VerticalFieldManager.USE_ALL_WIDTH | VerticalFieldManager.USE_ALL_HEIGHT)
            {
    
                public void sublayout(int width,int height) {
                    //super.sublayout(width, height);
                    int xpos = 0;
                    int ypos = 0;
                    Field field = getField(0);
                    layoutChild(field, 280, 50);
                    setPositionChild(field, xpos, ypos);
                    Field field1 = getField(1);
                    layoutChild(field1, 280, 50);
                    setPositionChild(field1, xpos+20, ypos+80);
                    Field field2 = getField(2);
                    layoutChild(field2, 280, 50);
                    setPositionChild(field2, xpos+145, ypos+80);
                    setPosition(150, 220);
                    setExtent(300, 220); 
    
                   }
                    public void paint(Graphics graphics)
                    {
                        //graphics.setColor(Color.WHITE);
                        Font f = Font.getDefault().derive(Font.BOLD, 16);
                        graphics.setFont(f);
                        graphics.drawText("SEND PIN",90, 20,0,200);
                        graphics.drawText( _userName,110,40,0,200);
                        graphics.setColor(Color.WHITE);
                        super.paint(graphics);
                    }
    
            }; 
    
                  _fieldManagerContext.add(texts);
                  _fieldManagerContext.add(cancelButton);
                  _fieldManagerContext.add(sendButton);
                  add(_fieldManagerContext);
    
        }
    
    }
    

    Hi Please help me in this

    Thanks in advance

    Why do you not use Horizontalfieldmanager for horizontal alignment.

    This is the code and it works fine.

    package com.winit.mobiads.ui.screens;

    Import net.rim.device.api.ui.Color;
    Import net.rim.device.api.ui.Field;
    Import net.rim.device.api.ui.Font;
    Import net.rim.device.api.ui.Graphics;
    Import net.rim.device.api.ui.component.ButtonField;
    Import net.rim.device.api.ui.component.Dialog;
    Import net.rim.device.api.ui.component.EditField;
    Import net.rim.device.api.ui.container.HorizontalFieldManager;
    Import net.rim.device.api.ui.container.PopupScreen;

    SerializableAttribute public class PinPopup extends PopupScreen {}
    public static EditField texts;
    public static String _userName = null;

    PinPopup()
    {
    Super (new HorizontalFieldManager());
    Police f = Font.getDefault () .derive (Font.BOLD, 16);
    setFont (f);
    texts = new EditField("","",200,Field.EDITABLE);
           
    ButtonField sendButton = new ButtonField ("send") {}
    protected boolean navigationClick (int status, int time) {}
    Dialog.Inform ("Send");
    Returns true;
    }
    };
         
    ButtonField cancelButton = new ButtonField ("Cancel") {}
    protected boolean navigationClick (int status, int time) {}
    Dialog.Inform ("Cancel");
    Returns true;
    }
    };

    HorizontalFieldManager _fieldManagerContext = new HorizontalFieldManager (USE_ALL_WIDTH)
    {
               
    ' public void sublayout (int width, int height) {}
    Super.sublayout (width, height);
    int xPos = 0;
    int yPos = 0;
    Field = getField (0);
                       
    setPositionChild (field, xpos, ypos);
    layoutChild (field, 280, 50);
                       
    Field Field1 = getField (1);
                       
    setPositionChild (Field1, xpos ypos + 80 + 20);
    layoutChild (Field1, 100, 50);

    Field Field2 = getField (2);
                       
    setPositionChild (Field2, xpos ypos + 80 + 145);
    layoutChild (Field2, 100, 50);
                       
    setPosition (150, 220);
    setExtent (width, height);
                        
    }
    public void paint (Graphics graphics)
    {
    graphics.setColor (Color.WHITE);
    Police f = Font.getDefault () .derive (Font.BOLD, 16);
    graphics.setFont (f);
    graphics.drawText ("SEND PIN", 90, 20,0,200);
    graphics.drawText (_userName, 110, 40, 0, 200);
    graphics.setColor (Color.WHITE);
    Super.Paint (Graphics);
    }
             
    };

    _fieldManagerContext.Add (texts);
    _fieldManagerContext.Add (CancelButton);
    _fieldManagerContext.Add (sendButton);
    Add (_fieldManagerContext);
                     
    }

    }

  • MessageLOVInput Field to display values from the LOV

    Hi all

    On my personal page, I have a MessageLOVInput Field and I need to restrict the user to enter the values of text free/junk in it and assign this user to select values only from the LOV (i.e. actual query LOV values) pop-up.

    I tried to find the same kind of questions, but I got this message https://community.oracle.com/thread/606973?start=0 & tstart = 0

    Please provide me the solution in detail

    Thank you

    Afzal

    Hi amal.

    Create a dummy element of value in the form type in your lov plan point create a new card for lov and give the point criteria as the id for your first card for lov and dummy element give posting as 'Yes' to the palette property. so every time that user enters certain undesirable values and try to save it will throw an error message like please enter a valid value

    Ex: LOVMAP1: lovregionitemid:give regionitemid lov

    ReturnItem:Give lov returnitemid

    criteriaitem:give lov criteriaitemid

    useforvalidation:Yes

    LOVMAP2: lovregionitemid:give regionitemid lov (SAME AS first lovmap)

    ReturnItem:Give dummy element point

    criteriaitem: NULL

    ReturnItem:default

    Thank you

    Deb

  • execution of a service to read values from the DB

    Hello!

    I have a pretty simple question, but I seem to fail to be able to understand what :

    I have a custom table EUM_DIV.  I have three columns: EUM_1, EUM_2, EUM_3.

    I also created a view based on that table, so that when I call him that from this point of view, it returns all the necessary information

    < $HttpCgiPath$ >? IdcService = GET_SCHEMA_VIEW_FRAGMENT & schViewName = EUM_Division_Abbr_View & IsSoap = 1';

    My job is that I need to extract the value of the column based on the value of EUM_1 EUM_3.  I need then save the extracted value of EUM_3 in a variable for future purposes.  (And this is where I'm stuck) How can I call this service from a resource of IntraDoc?  Must this whole sequence happen when the user select a value in a list of Meta-field option.  I'm sure that the answer must be very streightforward!

    Thank you very much for your help!

    Anya

    executeService uses variables/result sets that have already been defined on your page before calling executeService. This means that you can define variables beforehand and those become the service settings.

    Jonathan

    http://jonathanhult.com

  • Return multiple values from a table

    Hi there I'm working on a bit of sql that returns values when they exist in a table.
    The code I have returns the correct value when there is an entry in the tbl_studentmodules table, as soon as there is more than one entry in this table it does display no line at all: (.)

    Can someone tell how to return multiple values?

                 select modulename from tbl_modulefeedback
    where 1 = (select count(*) from tbl_studentmodules
           where upper(:APP_USER) = upper(student_id))
    and 1 = (select count(*) from tbl_modulefeedback, tbl_studentmodules
          where tbl_modulefeedback.modulecode = tbl_studentmodules.modulecode)
    Thanks in advance!

    Ashleigh

    Try this:

    select modulename
    from tbl_modulefeedback
    where 1 <= (select count(*) from tbl_studentmodules
           where upper(:APP_USER) = upper(student_id))
    and 1 <= (select count(*) from tbl_modulefeedback, tbl_studentmodules
          where tbl_modulefeedback.modulecode = tbl_studentmodules.modulecode)
    

    When you ask questions, please enter CREATE TABLE and INSERT some commands to make it easier to help you.

  • display a value from PLSQL code for screen

    How to display a PLSQL code on screen without loading value or refresh the page?

    I'm using ajax to call javascript code to run the PLSQL code. I want to see a value on the screen when I launch the PLSQL code

    SKUD.

    everything you print from the PLSQL code (using htp.p, htp.prn etc.) with will be available in Javascript as the response from the server. You can only analyze this string in javascript and display on the screen or change the page elements or create objects / dynamic elements using these values.

    A minimal example
    OnDemand PLSQL process: TEST_PROCESS

    begin
      htp.prn('hello world');
    end;
    

    JavaScript code

    var ajaxRequest = new htmldb_Get(null,&APP_ID.,'APPLICATION_PROCESS=TEST_PROCESS',0);
    ajaxResult = ajaxRequest.get();
    alert(ajaxResult);
    

    Displays an alert message "hello world".

    You can build the string to JSON/XML in PLSQL from the structures of complex data (or more values) or even code HTML, then the treatment required in Javascript, for example extract the values of element of it and set the elements, convert the JSON array to an item from the selection list in the page or put the HTML for a div element on the page.

  • Return multiple values from a function in a SELECT statement

    I hope I've provided enough information here. If not, let me know what I'm missing.

    I create a view that will combine the information from several tables. Most are pretty simple, but there are a couple of columns in the view that I need to get by running a function within a package. Even if this is quite simple (I have a function named action_date in a package called rp, for example, that I can use to return the date that I need through SOME rp.action_date (sequence_number).

    Here is the question: I really need to return several bits of information of the same record (not only action_date, but also action_office, action_value, etc.)-a join of the tables will work not here, as I will explain below. I can, of course, perform a function separate for each statement, but this is obviously inefficient. Within the select statement of the view, however, I don't know how each of the values that I need to get back.

    For example, right now, I have:

    Table 1:
    sequence_number NUMBER (10),
    name varchar (30),
    ...

    Table2:
    Table1_seq NUMBER (10),
    action_seq NUMBER (10),
    action_date DATE,
    action_office VARCHAR (3),
    action_value VARCHAR (60),
    ...

    I can't just simply join Table1 and Table2 because I have to perform processing in order to determine the rows returned matching, I really need to select. If the package opens a cursor and treats each line until it finds the one I need.

    The following works but is ineffective since all calls to the package returns the columns of the same record. I don't know how to put all the values that I need in the SELECT statement.
    CREATE VIEW all_this_stuff AS
    SELECT sequence_number, name,
    RP.action_date (sequence_number) action_date,
    RP.action_office (sequence_number) action_office,
    RP.action_value (sequence_number) action_value
    FROM table1

    Is there a way to return multiple values in my SELECT statement or I'm going about this all wrong?

    Any suggestions?

    Thank you very much!

    Hello

    What you want is a Query of Top - N , what you can do using the ROW_NUMBER analytic function in a subquery, like this:

    WITH     got_rnum     AS
    (
         SELECT     action_seq, action_dt, action_office, action_type, action_value
         ,     ROW_NUMBER () OVER ( ORDER BY  action_date
                                   ,            action_seq
                             ,            action_serial
                           ) AS rnum
         FROM     table2
         WHERE     action_code     = 'AB'
         AND     action_office     LIKE 'E'     -- Is this right?
    )
    SELECT     action_seq, action_dt, action_office, action_type, action_value
    FROM     got_rnum
    WHERE     rnum     = 1
    ;
    

    As written, this returns a single line (at most).
    I suspect you'll actually get a rank for each group , where a group is defined by a value in a table in which you join.
    In this case, add a PARTITION BY clause to the ROW_NUMBER function.
    If post you a small example of data (CREATE TABLE and INSERT statements), I could show you exactly how.
    As I don't have your tables, I'll show you the use of the tables in the scott schema.
    This is a view containing data in the scott.dept table and also to scott.emp, but only for the highest employee in each Department (in other words, the employee whose oldest hire date). If there be a tie for the first hire date, while the candidate with the lowest empno is selected.

    CREATE OR REPLACE VIEW     senior_emp
    AS
    WITH     got_rnum     AS
    (
         SELECT     d.deptno
         ,     d.dname
         ,     e.empno
         ,     e.ename
         ,     e.hiredate
         ,     ROW_NUMBER () OVER ( PARTITION BY  d.deptno
                                   ORDER BY          e.hiredate
                             ,                e.empno
                           ) AS rnum
         FROM     scott.dept     d
         JOIN     scott.emp     e     ON     d.deptno     = e.deptno
    )
    SELECT     deptno
    ,     dname
    ,     empno
    ,     ename
    ,     hiredate
    FROM     got_rnum
    WHERE     rnum     = 1
    ;
    
    SELECT     *
    FROM     senior_emp
    ;
    

    Output:

    .    DEPTNO DNAME               EMPNO ENAME      HIREDATE
    ---------- -------------- ---------- ---------- ---------
            10 ACCOUNTING           7782 CLARK      09-JUN-81
            20 RESEARCH             7369 SMITH      17-DEC-80
            30 SALES                7499 ALLEN      20-FEB-81
    

    Moreover, one of the conditions to the query you posted has been

    action_office     LIKE 'E'
    

    which equals

    action_office     = 'E'
    

    (AS is always equivalent to = if the string that follows AS does not contain the winning cards.)
    Did you mean say that or did you mean something like this:

    action_office     LIKE 'E%'
    

    Instead?

Maybe you are looking for