How to return more than one object from SwingWorker

I am using a SwingWorker to call 3 different methods of another class (data fetch class). Each of these 3 methods returns a String array. I am able to get the first array outside the thread code using the get() method of the SwingWorker class,
final String tmpOrdNum = OrderNum;
SwingWorker worker = new SwingWorker() {
     DATA_FETCH_TO_ARRAY data_fetch = new DATA_FETCH_TO_ARRAY(tmpOrdNum);
     public Object construct(){
          String [] orderArr = data_fetch.getHeaderArray();
          //String [] detailArr = data_fetch.getDetailArray();
          //String [] storeArr = data_fetch.getStoreArray();                    
          return orderArr;
     //Runs on the event-dispatching thread.
     public void finished(){     }
worker.start() ;
String[] testArr = (String[])worker.get();      //gets the header array
/* HOW DO I GET THE DETAIL AND STORE ARRAYS HERE?*/I want to be able to call the other 2 methods of the data fetch class - getDetailArray() and getStoreArray() shown commented in the above code one by one.
Can someone please suggest a way of doing this? Thank you.

Return String[][] from construct method.
Here is an example (observe test method):
import java.util.*;
public class ArrayTest{
     public static void main(String[] args){
          String[][] result=(String[][])new ArrayTest().test();          
          System.out.println("result1: "+Arrays.toString(result[0]));
          System.out.println("result2: "+Arrays.toString(result[1]));
          System.out.println("result3: "+Arrays.toString(result[2]));
     public Object test(){
          String[] str1={"A","B","C"};
          String[] str2={"M","N","O"};
          String[] str3={"X","Y","Z"};          
          String[][] out=new String[3][];
          out[0]=str1;
          out[1]=str2;
          out[2]=str3;
          return out;
}Thanks,
Mrityunjoy

Similar Messages

  • How to return more than one value from a  function

    hello everybody,
    Can anyone tell me how to return more than a single value from a function, the problem is i have 4 points,
    2 points form one line ,another 2 points form 2nd line ,each point is 3 dimensional(x,y,z coorinates) so i will pass these values to func(x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4), i will find the point of intersecton of two lines and i will get it as x,y,z , now how to return these 3 coordinates,usually the function returns only one value, please help me to solve it out.
    Thanks.

    I think the easiest way or trick here is (easiest isn't always the best as we know, but atleast this one will work) to create simple data array. and pass that. Create an array with:
    <code>
    class justArray {
    int x=0
    int y=0;
    int z= 0;
    ...somewhere
    justArray[] points= new justArray[4];
    points[0].x= ..
    points[0].y= ..
    points[0].z= ..
    points[1].x= ..
    return points[]
    </code>

  • How to return more than one varibles from a method?

    can you use the codes:
    return var1, var2,var3;
    If not, what is the correct way to do so? thanks.

    You can only return 1 object from a method in Java.
    However, this 1 object can contain multiple other objects. For example, a Vector object:
      public Vector someMethod() {
        Vector v = new Vector();
        v.add("abc");
        v.add("xyz");
        v.add("123");
        return v;
      }If these multiple objects are the same type, you can also use array to achieve want you want.
      public String[] someMethod() {
        String ss = new String[3];
        ss[0] = "abc";
        ss[1] = "xyz";
        ss[2] = "123";
        return ss;
      }--lichu                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Methods that return more than one object.

    Hello everyone,
    I don't know if this has ever been proposed or if there's an actual solution to this in any programming language. I just think it would be very interesting and would like to see it someday.
    This is the thing: why isn't it possible for a method to return more than one object. They can receive as many parameters as wanted (I don't know if there's a limit), but they can return only 1 object. So, if you need to return more than one, you have to use an auxiliary class...
    public class Person {
       private String name;
       private String lastName;
       public Person(String name, String lastName) {
          this.name = name;
          this.lastName= lastName;
       public String getName() {
           return name;
       public String getLastName() {
           return lastName;
    }So if you want to get the name of somebody you have to do this, assuming "person" is an instance of the object Person:
    String name = person.getName();And you need a whole new method (getLastName) for getting the person's last name:
    String lastName = person.getLastName();Anyway, what if we were able to have just one method that would return both. My idea is as follows:
    public class Person {
       private String name;
       private String lastName;
       public Person(String name, String lastName) {
          this.name = name;
          this.lastName= lastName;
       public String name, String lastName getName() {
           return this.name as name;
           return this.lastName as lastName;
    }And you would be able to do something like:
    String name = person.getName().name;and for the last name you would use the same method:
    String lastName = person.getName().lastName;It may not seem like a big deal in this example, but as things get more complicated simplicity becomes very useful.
    Imagine for example that you were trying to get information from a database with a very complex query. If you only need to return 1 column you have no problem, since your object can be an array of Strings (or whatever type is necessary). But if you need to retrieve all columns, you have three options:
    - Create 1 method per column --> Not so good idea since you're duplicating code (the query).
    - Create and auxiliary object to store the information --> Maybe you won't ever use that class again. So, too much code.
    - Concatenate the results and then parse them where you get them. --> Too much work.
    What do you think of my idea? Very simple, very straight-forward.
    I think it should be native to the language and Java seems like a great option to implement it in the future.
    Please leave your comments.
    Juan Carlos García Naranjo

    It's pretty simple. In OO, a method should do one thing. If that thing is to produce an object that contains multiple values as part of its state, and that object makes sense as an entity in its own right in the problem domain--as opposed to just being a way to wrap up multiple values that the programmer finds it convenient to return together--then great, define the class as such and return an instance. But if you're returning multiple values that have nothing to do with each other outside of the fact that it's convenient to return them together, then your method is probably doing too much and should be refactored.
    As for the "if it increases productivity, why not add it?" argument, there are lots of things that would "increase productivity" or have some benefit or other, but it's not worth having them in the language because the value they add is so small as to no be worth the increase in complexity, risk, etc. MI of implementation is one great example of something that a lot of people want because it's convenient, but that has real, valid utility only in very rare cases. This feature is another one--at least in the domain that Java is targetting, AFAICT.

  • How to email more than one photo from camera roll

    How do e-mail more than one photo from the camera roll at a time?

    Go to the camera roll, open the thumbnails, click on the arrow in the top right, select up to 5 photos, click on share in the top left and select email.

  • How to delete more than one workbook from command line

    Hi, I'd like to delete more than one workbook from command line:
    The following syntax, it doesn't work....but I followed the manual instructions:
    dis51adm.exe /connect eul/eul@uatdb /delete /workbook "ALE_TEST_1, ALE_TEST_2" /eul eul /log D:\Ale\delete.log
    where:
    eul/eul@uatdb: is the db’s schema/user where the EUL is installed;
    /delete "ALE_TEST_1, ALE_TEST_2": is the command to delete the workbooks, specified inside the “” (with the relative path)
    /log D:\Ale\delete.log: is the command to write a log’s file named “delete.log” to track the action     
    The log file says:
    22/4/2008 4:00:26 μμ
    dis51adm.exe /connect /delete /workbook ALE_TEST_1, ALE_TEST_2 /eul eul /log D:\Ale\delete.log
    Document ALE_TEST_1, ALE_TEST_2 not found in EUL.
    Internal EUL Error: ObjectNotFound - Can't find EUL element
    There are 0 eul elements to be deleted.
    Completed deleting eul elements.
    22/4/2008 4:00:29 μμ
    Anyone can tell me how is the right syntax ?
    Thanks in advance
    Alex

    Hi Rod
    I was coming to that conclusion myself but wanted to wait until the other avenues had been exhausted first - aka making sure of the workbook names.
    I checked through all of the command line documentation and read nothing which clearly indicated that only one workbook could be processed at a time, other than the fact that the syntax says workbook and not workbooks, which could be a big clue.
    I think you are right though in that it has to be one at a time, which would be a pain.
    Best wishes
    Michael

  • How to return more than one record through OUT parameter in procedure

    Hi,
    I want to create a procedure which accepts one input and returns more than one record as output.
    example:
    Input = DeptNo
    Output= Empno,ename,sal,comm,job
    Scenario:
    There can be more than one employee in department we pass as the IN parameter. OUT parameter has to return all the records of the corresponding employee details in that department.
    Thanks in advance for your help
    Regards,
    K.Vijay

    -- I think you can try something like this using ref cursor:
    -- create a package for the type ref cursor and execute
    CREATE OR REPLACE PACKAGE PACK_REFCURSOR_FOR_TABLES AS
         TYPE DATA_TableRows IS REF CURSOR;
    END;
    -- after executing the package above, create your procedure:
    CREATE OR REPLACE PROCEDURE GET_EMP (
         IN_nDeptNo IN number,
         OUT_Emp OUT PACK_REFCURSOR_FOR_TABLES.DATA_TableRows)
    IS
    BEGIN
    -- leave query open (implicit) as this will return data
         OPEN OUT_Emp FOR
         SELECT *
         FROM tblEmp
         WHERE DeptNo = IN_nDeptNo;
    END;
    --execute the procedure and you're done                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to restrict more than one delivery from one sales order.

    Hi Guys,
    We have a requirement that is, system should not allow more than one delivery from one sales order no even if when there is some line item still to be delivered.
    We want only one delivery for one sales order and rest of line items should be treated as rejected.
    Kindly help
    Thanks in advance,
    Balu

    Hi MP,
    Its also not working as we have the requirement is that once sales order is saved and one delivery is created then again if we are adding some more item inthe same sales order then system should not allow to create delivery document as one delivery already created.
    Thanks,
    Balu.
    Edited by: Balu Sajja on Aug 30, 2010 1:29 PM

  • How to return more than one string?

    Hi,below is my code:
    @WebMethod(operationName = "CheckBooking")
    public String CheckBooking(@WebParam(name = "ID")
    String ID) {
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:Flight");
    // Statement stmt = con.createStatement();
    String b="Select Destination, Date from Flight_Booking WHERE BookingID=?";
    PreparedStatement ps=con.prepareStatement(b);
    ps.setString(1,ID);
    ResultSet a = ps.executeQuery();
    //Print the data to the console
    while(a.next()){
    return a.getString(1);
    catch( Exception e ) {
    e.printStackTrace();
    return "a";
    Actually, I would like to select Destination and Date from the database, but if I set the return result as string, then only Destination will be return,how can I modify it so that both of the Destination and Date also will be return?As I know, .Net has a return type called Dataset, in Java what should I write?
    Actually,I am writing this web services to consume it on a table from .Net,so what is the most suitable to code it so that more than one string can be return?

    Create either a list or an array and assign your values to it and return it.
    arrays
    lists

  • Need Help, how to create more than one rectangle from one button in one stage of canvas

    Dear Guys,
    I has problem to create more than one rectangle canvas from one button. here my role to create :
    1. I create input size with textfield
    2. I click button called "submit query"
    3. My web will create a rectangle with specific size.
    My problem come when I click again the button, my old rectangle has been remove than my new rectangle has created.
    My question is : how I can create more than one without delete/remove the old I was created?
    Here my Code :
    <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link rel="stylesheet" type="text/css" media="all" href="css/style.css"><script src="kinetic-v4.7.2.min.js"></script></head> <body><label>Length</label><input name="panjang" id="panjang" type="text" size="5" maxlength="5"><br> <label>Width</label><input name="lebar" id="lebar" type="text" size="5" maxlength="5"><br>  <label>Height</label><input name="tinggi" id="tinggi" type="text" size="5" maxlength="5"><br> <label>Packing Name</label><input name="nam_pac" id="nam_pac" type="text" size="5" maxlength="5"><br> <input name="submit" type="submit"> <script defer>              var stage = new Kinetic.Stage({                container: 'container',                width: 943.5,                height: 254.10              });              var layer = new Kinetic.Layer();              var rectX = stage.getWidth() / 2 - 50;              var rectY = stage.getHeight() / 2 - 50;                            var group = new Kinetic.Group({                draggable: true              });                                         var box = new Kinetic.Rect({                x: rectX,                y: rectY,                width: <?php echo ($_POST['panjang']/10)/1.3; ?>,                height: <?php echo $_POST['lebar']/10; ?>,                //fill: '#00D2FF',                stroke: 'blue',                strokeWidth: 2                //draggable: true              });               var simpleText = new Kinetic.Text({                x: Math.round(box.getWidth() / 2),                y: Math.round(box.getHeight() / 2),                text: '<?php echo $_POST['tinggi'].'/'.$_POST['nam_pac']; ?>',                fontSize: 30,                fontFamily: 'Calibri',                fill: 'blue',              });                                          // add cursor styling              box.on('mouseover', function() {                document.body.style.cursor = 'pointer';              });              box.on('mouseout', function() {                document.body.style.cursor = 'default';              });                            group.add(box);              group.add(simpleText);              layer.add(group);              stage.add(layer);            </script></body> 
    this is my printscreen may help you to help me :
    thanks before to help me
    Regards,
    Prabowo.

    It's work Ken, but if I modify your code into my code.
    error again. they say like before (...is undefined)
    May You want to check my code
    <?php
    include('pinambung.php');
    ?>
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>GI Loading Plan Maker</title>
    <meta name="viewport" content="width=device-width" />
    <link rel="stylesheet" type="text/css" media="all" href="css/style_2.css">
    <script src="js/kinetic-v4.7.2.min.js"></script>
    <script src="js/CalendarPopup.js"></script>
    <script src="js/jquery-1.10.2.js"></script>
    </head>
    <body>
      <header class="w" id="header"> <!--Header Area -->
          <img src="images/headers.jpg" width="100%" height="100%" />
      </header><!--End of Header Area -->
      <nav class="w" id="nav"><!--nav Area -->
          <?php include('top.php'); ?>
      </nav><!--End of nav Area -->
      <section class="w" id="main"><!--section Area -->
          <section id="content">
          <article>
            <h2>Customer Info</h2>
            <form id="myForm" action="insert.php" method="post">
            <label>Customer Name :</label><input name="cs_name" id="cs_name" type="text" size="25" maxlength="50">
            <br>
            <label>Date of Shipment :</label><input name="shipment_date" id="shipment_date" type="text" size="10" maxlength="12" > use format : YYYY-MM-DD
            <br />
            <label>Container Name :</label><input name="con_num" id="con_num" type="text" size="10" maxlength="12">
            <label>Revision :</label><input name="revision" id="revision" type="text" size="5" maxlength="5"><br />
            <label>Prepared by :</label><input name="prepared_by" id="prepared_by" type="text" size="25" maxlength="50">
            <button id="saveinfo">Save As DB</button>
            <button id="saveall">Save As Image</button>
            <button id="print" onclick="window.print();return false">Print</button>
            </form>
            <span id="result"></span>
            <script type="text/javascript" src="js/insert.js"></script>
          </article>
              <br /><br />
          <article>
              <h2>Packing Info</h2>
            <label>Container Type :</label>
            40' HC<input name="con_type" type="radio" id="con_type" value="40hc">
            40'<input name="con_type" type="radio" id="con_type" value="40">
            20<input name="con_type" type="radio" id="con_type" value="20"><br />
            <input name="loadstan" type="button" value="Create Container" id="isSelect">
            <button id="removecon">Remove Container</button>
            <br />
            <label>Length</label><input name="panjang" id="panjang" type="text" size="5" maxlength="5">
            <label>Width</label><input name="lebar" id="lebar" type="text" size="5" maxlength="5">
            <label>Height</label><input name="tinggi" id="tinggi" type="text" size="5" maxlength="5">
            <label>Packing Name</label><input name="nam_pac" id="nam_pac" type="text" size="20" maxlength="55">
            <input name="loadstan" id="loadstan" type="button" value="Load Standard Packing" onclick="window.open('spk.php', 'winpopup', 'toolbar=no,statusbar=no,menubar=no,resizable=yes,scrollbars=yes,width=300,height=400');">
            <input name="submit" type="submit" value="Create Box">
            <button id="remove">Remove Box</button><br />
          </article>
        </section>
        <aside id="sidebar">
          <label for="layer-to-delate">Select a layer to delete or rotate</label><br />
          <select id="layer-to-delete" size="14"></select><br />
          <input id="delete-layer-button" type="button" value="Delete layer">
          <input id="rotate-layer-button" type="button" value="Rotate box">
        </aside>
        <section id="content2">
          <div id="container">
          </div>
          <script defer>
          function radians (degrees) {return degrees * (Math.PI/180)}
          function degrees (radians) {return radians * (180/Math.PI)}
          function angle (cx, cy, px, py) {var x = cx - px; var y = cy - py; return Math.atan2 (-y, -x)}
          function distance (p1x, p1y, p2x, p2y) {return Math.sqrt (Math.pow ((p2x - p1x), 2) + Math.pow ((p2y - p1y), 2))}
            var stage = new Kinetic.Stage({
                container: 'container',
                width: 943.5,
                height: 254.10
            var layers = new Array();
           function addCont(){
               layer2 = new Kinetic.Layer();
                switch ($('input:radio[name=con_type]:checked').val()){
                  case '40hc':
                     var box_con = new Kinetic.Rect({
                          x: 10,
                          y: 10,
                          width: 1190/1.3,
                          height: 2300/10,
                          stroke: 'black',
                          strokeWidth: 2
                      var TextCon = new Kinetic.Text({
                          x: 10,
                          y: 240,
                          text: 'Container Size 40 HC (11900mm X 2300mm X 2550mm)',
                          fontSize: 12,
                          fontFamily: 'Calibri',
                          fill: 'green',
                      layer2.add(box_con);
                      layer2.add(TextCon);
                      stage.add(layer2);
                      break;
                     case '40':
                     var box_con = new Kinetic.Rect({
                          x: 10,
                          y: 10,
                          width: 1190/1.3,
                          height: 2300/10,
                          stroke: 'black',
                          strokeWidth: 2
                      var TextCon = new Kinetic.Text({
                          x: 10,
                          y: 240,
                          text: 'Container Size 40 (11900mm X 2300mm X 2250mm)',
                          fontSize: 12,
                          fontFamily: 'Calibri',
                          fill: 'green',
                      layer2.add(box_con);
                      layer2.add(TextCon);
                      stage.add(layer2);
                      break;
                     case '20':
                     var box_con = new Kinetic.Rect({
                          x: 10,
                          y: 10,
                          width: 580/1.3,
                          height: 2300/10,
                          stroke: 'black',
                          strokeWidth: 2
                      var TextCon = new Kinetic.Text({
                          x: 10,
                          y: 240,
                          text: 'Container Size 20 (5800mm X 2300mm X 2250 mm)',
                          fontSize: 12,
                          fontFamily: 'Calibri',
                          fill: 'green',
                      layer2.add(box_con);
                      layer2.add(TextCon);
                      stage.add(layer2);
                      break;
            function addRect() {
                layer = new Kinetic.Layer();
                var box = new Kinetic.Rect({
                    x: 10,
                    y: 10,
                    width: +(($("#panjang").val()/10)/1.3),
                    height: +($("#lebar").val()/10),
                    stroke: 'blue',
                    strokeWidth: 2
                var group = new Kinetic.Group({
                            draggable: true,
                            snap : true
                var boxLabel = $("#nam_pac").val() + "/H : " + $("#tinggi").val();            
                if (($("#panjang").val() && $("#lebar").val()) != 0) {         
                var simpleText = new Kinetic.Text({
                    x: 10,
                    y: 10,
                    text: boxLabel,
                    fontSize: 12,
                    fontFamily: 'Calibri',
                    fill: 'red',
                } else {
                    var simpleText = new Kinetic.Text({
                    x: 10,
                    y: 10,
                    text: '',
                    fontSize: 12,
                    fontFamily: 'Calibri',
                    fill: 'red',
                group.add(box);
                group.add(simpleText);
                layer.add(group);
                stage.add(layer);
                layers.push(layer);
                $("#layer-to-delete").append("<option>Layer " + boxLabel + "</option>");
            function deleteRect() {
                if($("#layer-to-delete > option").length < 1) return;
                var i = $("#layer-to-delete").prop("selectedIndex");
                layers.splice(i,1)[0].destroy();
                $("#layer-to-delete > option").eq(i).remove();
            function rotateRect() {
                if($("#layer-to-delete > option").length < 1) return;
                var i = $("#layer-to-delete").prop("selectedIndex");
                layers[i].rotateDeg(30);
                layers[i].draw();
            $("#delete-layer-button").click(function(e) {
                  deleteRect();
            $("#rotate-layer-button").click(function(e) {
                rotateRect();
            $("input[type=submit]").click(function(e) {
                addRect();
            $("#isSelect").click(function () {
                  addCont();
            $("#removecon").click(function () {
                  layer2.destroy();
            $(window).keypress(function(e) {
                if(!$(document.activeElement).is("label")) {
                    if((e.keyCode || e.which) == 46) {
                        layer.destroy();
                if((e.keyCode || e.which) == 35) {
                        layer2.destroy();
            document.getElementById('saveall').addEventListener('click', function() {
              stage.toDataURL({
                callback: function(dataUrl) {
                      window.open(dataUrl);
            }, false);
          </script>
        </section>
      </section><!--End of section Area -->
      <footer class="w" id="footer"><!--footer Area -->
        Copyright <a href="login.php" target="_new">©</a> 2013, <a href="http://omhanggar.com" target="_new">created</a><a href="http://intranet.guentner-asia.com" target="_new"> by PT. Güntner Indonesia </a>
      </footer><!--End of footer Area -->
    </body>
    </html>
    thanks again before,
    Prabowo

  • How to use more than one ipod from one computer

    I've got my 30gb ipod set up and working fine from my pc. I've got my wife an ipod nano and want to set her's up totally separately. How can I do this?

    When the iPods belong to different people, there are basically three ways of using multiple iPods on a computer and these involve:
    a) Sharing a single iTunes library
    b) Creating Multiple Libraries in a single Mac or Windows user account
    c) Creating multiple Mac or Windows user accounts.
    Note: When you are sharing an iTunes library, you don't have to set each iPod to update in the same manner, you can mix and match from the options below as each iPod has it's own update settings
    Sharing a Library and/or User Account
    If you want to share the one library, you can set either or all of the iPods so that they only get updated with only certain playlists (you can update from more than one if you wish): iPod - Syncing Music
    Choosing the update option "Sync Music - Selected playlists" allows you to create a playlist specifically for the iPod and drag the tracks you want into it. If you tire of the list and want to change it, you just add or remove the songs you don't want. The ones you take out out remain in the library to be used some other time if you choose. You can read more about playlists at these links:
    iTunes: Creating playlists of your favorite songs
    How to create a Smart Playlist with iTunes
    Or you can choose to update any or all of the iPods manually and just drag whatever content you want to them: Managing content manually on iPod and iPhone
    Multiple Libraries
    It's also possible to have multiple libraries in a single account. To create or access a second (or more) library, hold down the Shift key in Windows when launching iTunes. In the resulting dialogue you will get the option to create a new library or navigate to the other Library.
    Note: You can only have one Library open at a time and iTunes will default to the last library opened if you don't use the keyboard command to choose one. This can prove tricky when using multiple iPods, if you don't use the keyboard command you can risk syncing to the wrong library: Using multiple iTunes libraries -Windows
    Separate User Accounts
    Another option is to create a separate User account for each person on your PC or Mac. Different accounts by definition would give you completely separate libraries. Each account has it's own iTunes folder, Library and iTunes Music folder and you load it with CDs etc just as you did with your original one. The iPod can be set to update however the owner chooses, sync all, manual or sync specific playlists
    I don't use Windows so I can't give you a step by step on that one, however I can point you to another web page which should help you out. You can read about Windows user accounts here: Create A New User Account In Vista

  • How to send more than one parameter from FORM to REPORT?

    Dear all,
    i can send one parameter from FORM to REPORT. but when i send more than one parameter it gives error: frm 41214 unable to run report.
    here is the code i think the error is in the following line of procedure:
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'paramform=no p_date_from='||v_date_from||'p_date_to='||v_date_to);
    where to place the parameters and is there any space is required?
    Thanks
    Muhammad Nadeem

    Dear Saeed Iqbal,
    thanks for you reply.
    dear i am using Form 10g run_product is not supported in this version.
    i am using RUN_REPORT_OBJECT.
    PROCEDURE rep_gl_ledger IS
    repid REPORT_OBJECT;
    v_rep VARCHAR2(100);
    rep_status VARCHAR2(50);
    v_date_from date;
    v_date_to date;
    v_detail_id_from varchar2(100);
    v_detail_id_to varchar2(100);
    v_voucher_type varchar2(100);
    --req_no char(17);
    BEGIN
    v_date_from :=      :ledger_para.p_date_from;
    v_date_to :=      :ledger_para.p_date_to;
    v_detail_id_from :=      :ledger_para.p_detail_id_from;
    v_detail_id_to :=      :ledger_para.p_detail_id_to;
    v_voucher_type :=      :ledger_para.p_voucher_type;
    repid := find_report_object('gl_ledger');
    --repid := find_report_object('REPORT80');
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE,BATCH);
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS);
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,CACHE);
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'pdf');
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,'rep_online_FRHome');
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'paramform=no p_date_from='||v_date_from||'p_date_to='||v_date_to);
    --SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'paramform=no');
    v_rep := RUN_REPORT_OBJECT(repid);
    rep_status := REPORT_OBJECT_STATUS(v_rep);
    WHILE rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
    LOOP
    rep_status := report_object_status(v_rep);
    END LOOP;
    IF rep_status = 'FINISHED' THEN
    /* Display report in the browser */
    WEB.SHOW_DOCUMENT('http://'||:GLOBAL.G_IP||'/reports/rwservlet/getjobid'||substr(v_rep,instr(v_rep,'_',-1)+1)||'?','_blank');
    ELSE
         message('Error when running report');
    END IF;
    END;
    Regards:
    Muhammad Nadeem

  • Retreiving more than one object from an object stream using serialization.

    I have written a number of object into a file using the object Output stream. Each object was added separately with a button event. Now when I retrieve it only one object is being displayed. the others are not displayed The code for retrieval and inserting is given below. Please do help me.
    code for inserting is as follows
    Vehicle veh1 and vehicle class implements serializable
    veh1.vehNum=tf1.getText();
              veh1.vehMake=tf2.getText();
              veh1.vehModel=tf3.getText();
              veh1.driveClass=tf4.getText();
              veh1.vehCapacity=tf5.getText();          
              FileOutputStream out = new FileOutputStream("vehicle.txt",true);
              ObjectOutputStream s = new ObjectOutputStream(out);
              s.writeObject(veh1);
    retrieval
    FileInputStream out = new FileInputStream("vehicle.txt");
              String str1,str2;
              str1=str2=" ";
              Vehicle veh=new Vehicle();
              ObjectInputStream s = new ObjectInputStream(out);
              try
              Vehicle veh1=(Vehicle)s.readObject();
              s.close();
              int i=0;
              str1=veh1.vehNum;
              str2+=str1+"\t";
              str1=veh1.vehMake;
              str2+=str1+"\t";
              str1=veh1.vehModel;
              str2+=str1+"\t";
              str1=veh1.driveClass;
              str2+=str1+"\t";
              str1=veh1.vehCapacity;
              str2+=str1+"\t\n";
              ta1.append(str2);
              catch(Exception e)
              e.printStackTrace();
    Pleas give me the code for moving through the object until it reaches the end of file

    You can read objects from the stream one by one. So, what you need is an endless loop like this:
    // Suppose you have an ObjectInputStream called objIn
    // So here is the loop which reads objects from the stream:
    Object inObj;
    while (1) {
        try {
            inObj=objIn.readObject();
            // Do something with the object we got
            parse_the_object(inObj);
        } catch (EOFException ex) {
            // The EOFException will be thrown when
            // we reached the end of the file, so here we break out
            // of our lovely infinite cycle
            break;
        } catch (Exception ex) {
            ex.printStackTrace();
            // Here you may decide what to do...
            // Probably the processing will end here, too. For now,
            // we moving on, hoping there is still something to read
    objIn.close();
    // ...

  • How do you return more than one value from a method?

    say I have this:
    public static int myFunc(String inString)
         // I want to return two values from this method
    }yeah so how would i do that?

    If the two values are somehow related--like a person's name and his age--define a class that has those two values as member variables--for example, Person. But only if that class and the assocation of those two quantities makes sense as an entity in your program. Don't do it just to jam to quantities into one return.
    Or, if the two values are two of the same thing--person A's age and person B's age--then you can return an array or Collection.
    If it doesn't fit either of those two scenarios, then your method is trying to do too much unrelated stuff and you should break it into multiple methods. For example, calculating a Person's age based on his birthdate and today's date and calculating his Body Mass Index based on his height and weight. Those two quantities should NOT be returned together.

  • How to return more than one value through RECORD TYPE from function

    Hi friends,
    i m ew in oracle forms. i want to return the two values at a time from a function but can't,Please help me. my codding is as following
    Thanks in advance.
    FUNCTION Fun_Choose_Right_cast(v_post_no payroll.post_register.post_no%TYPE) RETURN RECORD IS --here is the error 
    v_return_char CHAR NOT NULL := 'X';
    TYPE row_no_record_type IS RECORD
         (v_row_id NUMBER(3)NOT NULL := 0,
         v_char CHAR NOT NULL := 'X');
    row_no_record row_no_record_type;
    BEGIN
    IF v_post_no = 1 THEN
         IF TRUNC(v_post_no*0.15) >= 1 THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'A';
              --v_return_char := 'A';
         END IF;
         IF TRUNC(v_post_no*0.075) >= 1 THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'B';
              --v_return_char := 'B';
         END IF;
         IF TRUNC(v_post_no*0.275) >= 1 THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'C';
              --v_return_char := 'C';
         END IF;
         IF row_no_record_type.v_row_id = 0 AND v_char = 'X' THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'D';
         --IF v_return_char = 'X' THEN 
              --v_return_char := 'D';
         END IF;
    ELSIF(v_post_no BETWEEN 2 AND 100) THEN
         IF TRUNC(v_post_no*0.15) > TRUNC((v_post_no-1)*0.15) THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'A';
              --v_return_char := 'A';
         END IF;
         IF TRUNC(v_post_no*0.075) > TRUNC((v_post_no-1)*0.075) THEN
              IF TRUNC(v_post_no*0.15) > TRUNC((v_post_no-1)*0.15) THEN
                   row_no_record_type.v_row_id := v_post_no-1;
                   v_char := 'B';
                   --v_return_char := 'A';
              ELSE
                   row_no_record_type.v_row_id := v_post_no;
                   v_return_char := 'B';
              END IF;
         END IF;
         IF TRUNC(v_post_no*0.275) > TRUNC((v_post_no-1)*0.275) THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'C';
              --v_return_char := 'C';
         END IF;
         IF row_no_record_type.v_row_id = 0 AND v_char = 'X' THEN
              row_no_record_type.v_row_id := v_post_no;
              v_char := 'D';
         --IF v_return_char = 'X' THEN 
              --v_return_char := 'D';
         END IF;
         END IF;
    RETURN row_no_record;
    END;

    Posting your Oracle version is immensely helpful when asking questions (different version = different answers / functionality available).
    select * from v$version;Also, using tags will preserve the formatting of your code.
    You should likely read (a lot) about  [http://www.stanford.edu/dept/itss/docs/oracle/10g/appdev.101/b10807/05_colls.htm]
    Basically, you would need to create a PL/SQL record and reference that, OR you could create a SQL type.
    If you're looking for a 'simple' way to return many single values (no arrays) then your best bet would be a procedure with multiple OUT parameters.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Maybe you are looking for

  • Exception while running a test file as JUNIT test case

    Hi, I am trying to build a code using Eclipse to generate an "ear" file that can be used for deployment. The ear file is generated successfully but the build is not successful as the following exception is thrown while debugging a junit test case: ja

  • Vendor payment Advice Email Sending with PDF

    Hi Experts, I need to develop a program when the user completes his transaction from F110. It need to trigger a email to vendor about the payment terms along with the Reference Number & Invoice no. & Currency, as a PDF Attachment. I have searched in

  • Procedure to delete Service entry sheet

    Hello How to Delete the Service Entry Sheet , or cancellation ,there is no Material Document generated for that entry. Thanks

  • Best way  to reload images into Lightroom 5.4

    I use Lightroom 5.4. My computer hard drive crashed,but I have a back up hard drive. When I reloaded my files from the backup drive to the computer drive, the images were not in the same file structure. After discussing it with someone at Adobe tech

  • How do I transform/skew/change perspective of a photo

    Sorry, not quite sure of the correct terminology I have a load of images that were created with a camera on a tripod, pointing down at the original 10x8 prints. Unfortunately, the film plane and print place holder were not 100 % parallel to each othe