Help creating an array from a list of vector item

I am writing a Email Handling class that uses an Email class that I have already written. The spec requires me to (A.) Create a DisplayEmail(Email[] e) method that takes and array of email messages and displays them in the terminal window. And then (B) to create some retrieval methods ie: Email [] RetrieveSubject(String searchValue) which "will allow me to retrieve objects from the data structure created in (A.)and sorts them.
I wonder if you could give my some advice on how to implement this? I have used a Vector to store the emails. Here is what I have so far. . From what I understand I am suppose to create array methods for all of these tasks. Don't know where to begin, can u help please. I've created a vector to store the emails, but I am not sure about the array method bit. As you can see all of my methods are standard and I think they need to be arrays. Please Help
import java.util.*;
public class EmailHandler{
private Vector emails;
public EmailHandler(){
     emails = new Vector();
public EmailHandler(int size){
     emails= new Vector(size);
public void addEmail(Email e){
     emails.addElement(e);
public void displayEmail(Email de)
public void displayArrayOfEmails(Email[] ea)
public Email RetrieveSender(String searchSender)
     Email thisEmail;
     //look through vector for search element
     if(emails.size()>0){
          for (int i=0;i<emails.size();i++){
               //take emails in turn search for subject
               thisEmail = (Email) emails.elementAt(i);
               //check subject against search value input
               if(thisEmail.getSender().equalsIgnoreCase(searchSender))          {
                    return thisEmail;
     }     //if you find yourself here, no subject is found
          return null;
public Email RetrieveRecipient(String searchRecipient)
     Email thisEmail;
     //look through vector for search element
     if(emails.size()>0){
          for (int i=0;i<emails.size();i++){
               //take emails in turn search for subject
               thisEmail = (Email) emails.elementAt(i);
               //check subject against search value input
               if(thisEmail.getRecipientName().equalsIgnoreCase(searchRecipient))          {
                    return thisEmail;
     }     //if you find yourself here, no subject is found
          return null;
public Email RetrieveSubject(String searchSubject)
     Email thisEmail;
     //look through vector for search element
     if(emails.size()>0){
          for (int i=0;i<emails.size();i++){
               //take emails in turn search for subject
               thisEmail = (Email) emails.elementAt(i);
               //check subject against search value input
               if(thisEmail.getSubject().equalsIgnoreCase(searchSubject))          {
                    return thisEmail;
     }     //if you find yourself here, no subject is found
          return null;

i've anwered your question in your crosspost over here:
http://forum.java.sun.com/thread.jsp?forum=31&thread=472997&tstart=0&trange=30

Similar Messages

  • Help creating 2D array from tab delimited text file

    I can print the info from the file, but darned if I can't make a 2-D array.
    import java.util.regex.*;
    import java.io.*;
    public final class goodSplitter {
        private static BufferedReader br;
        private static BufferedReader br2;
        private static String INPUT;
        private static int numLines;
        private static int numLine2;
        private static int q;
        private static int t;
        private static int n;
        private static String [][] indexArray;
        public static void main(String[] argv) {
            initResources();
            processTest();
            closeResources();
        private static void initResources() {
           try {
                  br = new BufferedReader(new FileReader("index.txt"));
              System.out.println("found the input file.");
                } catch (FileNotFoundException fnfe)
                   System.out.println("Cannot locate input file! "+fnfe.getMessage());
                          System.exit(0);
           try {
                  br2 = new BufferedReader(new FileReader("index.txt"));
              System.out.println("found file again.");
                } catch (FileNotFoundException fnfe)
                   System.out.println("Cannot locate input file again! "+fnfe.getMessage());
                          System.exit(0);
         try {     
                   int numLines = 0;     
                   while ( ( INPUT = br.readLine( ) ) != null )
                        { numLines++; } // end while
                   System.out.println("file has the number of lines: " + numLines);
                   q = numLines;
                   System.out.println("creating the array.");
                   String [][] indexArray = new String[q][];
                   System.out.println("populating the array.");
                   while ( ( INPUT = br2.readLine( ) ) != null ) {
                        n = t++;
                        System.out.println("first array index = " + n);
                        String[] ss = INPUT.split("\\s");
                        for(int i = 0; i < ss.length; i ++)
                                  System.out.println( new String( ss[i] ) );
                                  indexArray[n] = ss[i];
                             } // end for
                        } // end while
         } catch (Exception e)
              {System.out.println("something went wrong in populating the array of length " + q); }}
    private static void processTest() { System.out.println("processed text."); }
    private static void closeResources() {
    try{ br.close();  }catch(IOException ioe){} }

    you haven't sized the 2nd part of the 2d array
    add this line
    String[] ss = INPUT.split("\\s");
    indexArray[n] = new String[ss.length];//<--------------
    for(int i = 0; i < ss.length; i ++)
    but note you have declared indexArray both as a class variable
    private static String [][] indexArray;
    and a variable local to the try/catch block
    String [][] indexArray = new String[q][];
    probably what you want is
    indexArray = new String[q][];

  • Js Array from java List

    I got to create an Array list this...
    new Array('Requerimiento', '89', 'Esto es un requerimiento\nOtra l�nea', 'Producci�n', '90', 'Hola\nHola', 'Release', '91', '<BR>'));
    exactly like this from a java List.. so i got to replace 'Requerimiento' for ((myObj)list.get(0)).getName(), replace '98' for ((myObj)list.get(0)).getId(). replace 'Esto es un requerimiento\nOtra l�nea' for ((myObj)list.get(0)).getDesc() and then the same cyclye but for position 1 in the list.
    The array is dynamic so i can has as elements as the list has so i have no idea what to do and did this...
         var taskTypes = new String();
                         List taskTypeList = timeKeeping.getValidTaskTypes(from, to);
         for(int x = 0, i = 0; x < taskTypeList.size(); x += 3, i++) {
              TaskType tt = (TaskType) taskTypeList.get(i);
         %>
    if(i + 1 == taskTypeList.size()) {
         taskTypes.concat("<%= tt.getName() %>" + ',' + "<%= tt.getId() %>" + ',' + "<%= tt.getName() %>");
    } else {
         taskTypes.concat("<%= tt.getName() %>" + ',' + "<%= tt.getId() %>" + ',' + "<%= tt.getName() %>" + ',');
    <%
    %>but it doesn't work out...
    help plz ! Thanks a lot.

    String.concat() does not add the string to the string, it returns a new string combining the 2, so you'd have to do this:
    taskTypes = taskTypes.concat("<%= tt.getName() %>" + ',' + "<%= tt.getId() %>" + ',' + "<%= tt.getName() %>");
    But, you need to be writing JavaScript... (I assume it's an array of arrays...)
    var aArray = new Array();
    <%
    List taskTypeList = timeKeeping.getValidTaskTypes(from, to);
    for(int x = 0, i = 0; x < taskTypeList.size(); x += 3, i++) {
       TaskType tt = (TaskType) taskTypeList.get(i);
    %>
    aArray[aArray.length] = new Array('<%= tt.getName() %>', '<%= tt.getId() %>', '<%= tt.getName() %>' ... );
    <% } %>

  • Help creating an array

    I'm new to Life Cycle Designer and need help with the following script:
    txtComments.rawValue = Page1.Com1.rawValue + "\n" + Page1.Com2.rawValue + "\n" + Page1.Com3.rawValue;
    What I'd really like to do is create an array/function that concatenates the fields titled Com* if there is data in these fields on page 1 of my form and display the data in the txtComments field on page 3 of my form. If there is no data, I do not want "null" to display for that field. The final form may have 60+ Com fields... It would be awful to have to hand code each of these. All this is triggered by a specific radio button selection.
    I hope someone can help me. Let me know if you have questions. Thanks!

    It works, Paul!!!! Thank you, thank you, thank you!!! I augmented the code slightly to include a break in between the fields. This is what I ended up with:
    this.rawValue = " "
    for (i=1;i<=72;i++) {
         if (xfa.resolveNode("Page1.Com" + i).rawValue != null ){
              this.rawValue += xfa.resolveNode("Page1.Com" + i).rawValue + "\n";
    Now... the dilemna I have worked around for the time being is this... what if my Com fields flow over into pages 2 and 3? I suppose I could make additional txtComments fields, but that would look odd if nothing is populated on the 1st one and only a couple are say on the 2nd or 3rd page. Does that make sense? I lengthened my paper size in Word to get everything on one page as a work around, but I probably need to remedy this at some point considering I have a number of these forms to create. I played with the code a little bit to try and solve this on my own, but to no avail... yet. Thanks again!

  • How do I create separate cells from a list of names?

    I mostly use Numbers to alphabetize long lists of names to print labels at my work.
    I used to be able to just copy and paste a list of names into Numbers from Illustrator and it would put each name into it's own cell.... but lately it just pastes the whole list into one cell. I feel like there's some simple solution I'm just over looking!
    Any advice would be appreciated! Thank you!

    Numbers will properly paste lists when each item in a row is separated by tabs
    this will NOT paste correctly:
    John<SPACE>Wayne
    Tom<SPACE>Smith
    This will paste correctly:
    John<TAB>Wayne
    Tom<TAB>Smith
    replace <SPACE> or <TAB> as needed

  • Need help - creating QT movies from iPhoto slide shows

    I am creating QT movies from slideshows in iPhoto. I then put the QT movies on a CD. I am having no trouble doing this, but if I give the CD to a Windows user, will she be able to view it? If not, is there any way to make it Windows compatible? Are there any other problems I should be aware of before I give these QT movies for Christmas gifts?

    Any PC user that has QuickTime 5, or higher, installed will be able to view your iPhoto slide show movies on the CD.
    You must use the Finder to guarantee a PC compatible CD, however.

  • Problems for creating a delivery from a order with less items

    hye, I have created a delivery from a sales order and all is ok. So, If I put less quantity in severals items, the delivery is generated ok and the sales order is OPEN status.
    Now , I want to generate a delivery from sales order, but I don´t want to include in my delivery all sales order's items. For example, if I have in my sales order four items (Itm1,Itm2,Itm3,Itm4) with theirs quantity, by SDK I want to generate the Delivery with Itm2 and Itm3 only. I can't do that. I hate It,jajajajajaja.
    With the next FOR, I get do it with all Items but I don´t know to say it that when status = 0 "jump" this item.
             delivery.CardCode = Order.CardCode
             delivery.DocDueDate = Order.DocDueDate
             delivery.DocDate = Order.DocDate
             For i = 0 To Order.Lines.Count - 1
                 delivery.Lines.BaseType = 17
                 delivery.Lines.BaseEntry = Order.DocEntry
                 Status = 1
                  If Status <> 0 Then
                       delivery.Lines.BaseLine = place
                       If i <> Order.Lines.Count - 1 Then
                          delivery.Lines.Add
                          place = place + 1
                       End If
                  End If
              Next
         retval = delivery.Add
    Thanks and I hope to get a solution.

    What is "it" that you cannot do (+ hate)???
    What is "status"? LineStatus???
    What is your problem when you try to skip an item?
    PS: You should always use enums instead of hard-coded values e.g.: Use the BoAPARDocumentTypes Enumeration for delivery.Lines.BaseType

  • How to create an array of ring with a different items/values for each

    Hi All,
    i want an array of text ring with different items and values for each text ring. Do you have other solution if it does not work?
    thanks by advance

    0utlaw wrote:
    Hello Mnemo15,
    The properties of elements in an array are shared across all controls or indicators in an array, so there is no way to specify unique selectable values for different text rings in an array.  It sounds like what you are looking for is a cluster of ring controls, where each control can be modified independently.  
    Could you provide a more descriptive overview of the sort of behavior you are looking for?  Are these ring elements populated at run time?  Will the values be changed dynamically? Will the user interact with them directly?
    Regards,
    But the selection is not a property, it is a value... I just tried it and you can have different selections.  Just not different items.
    Bill
    (Mid-Level minion.)
    My support system ensures that I don't look totally incompetent.
    Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.

  • Need help on returning arrays from C++ to Java

    Hi all, I hava a C++ application that contains a method that will return a float array to Java. I was able to write the Java Code, the JNI code to call the C++ method and compile them successfully. However on calling the native method from Java, the data in the array returned was not what I want. Please look through my code and see what is wrong with it.
    My Java Code:
    public native float[] Statistics(int inputKey); // This is the native method
    public float[] Stats(int k){ //Java method to call the native method so that I can use it in a Bean for a JSP.
    inputKey = k;
    float[] p = new float[4];
    p = Statistics(inputKey);
    return p;
    For this native method, an integer is passed from Java to the native side and the native method will use this integer to generate a float array size of 4 and populate it with data and return it back to Java.
    My JNI code
    extern "C"
    JNIEXPORT jfloatArray JNICALL
    Java_com_jspsmart_upload_FinalWaterMark_Statistics(JNIEnv *env, jobject obj, jint inputKey)
         jfloatArray floatArray = env->NewFloatArray(4); //This creates a new Java floatArray to store the C++ array
         CWatermarker2App p; // This is the C++ class to be used
         jfloat *stats = p.OnWatermarkStatistics(inputKey) // The C++ method returns a float pointer for an array of size 4
         env->SetFloatArrayRegion(floatArray, 0 , 4 , stats); //storing the C++ float array into the Java float Array
         return floatArray; // return the Array to Java
    In this example, I should have the data returned as [4952.0 2529.0 1706.0 33.6] in the array.
    But i am getting junk instead like 2.53E-23, 1.402E-15 etc..
    Is this a type conversion mistake?
    Please help!

    The first thing I notice - probably not the problem - is the line defining p. There is no reason to define this as an array of size 4, because the return from the native method is going to wipe that definition, replacing it with the return value of the native method. Alternatives:
    1. float[] p = null.
    2. float[] p = Statistics(inputKey);
    3. return Statistics(k);

  • Creating a collection from a list and joining the list to a database table

    I would like to have opinions on good ways to process rows, based on a provided list of key values, joining the collected list against a source table to retrieve additional information related to the key. In this simple example, the procedure accepts a list of employee numbers. The goal is to print a list of names associated with those numbers. The method is to materialize the list of employee numbers as rows and join those rows to a source table to get the names. I have used BULK COLLECT. I don't know if this is a good approach and I would value suggestions. I would also like to understand why we cannot cast PLSQL tables using a type defined in the procedure's specification (why the type needs to exist as an object before we can cast it, like this:
    SELECT * FROM TABLE ( CAST ( SOME_FUNCTION(&some parameter) AS SOME_TYPE ) );
    Anyway, here is my demo SQL, which you should be able to execute against the SCOTT schema without any changes. Thanks for your help!
    declare
    type employee_numbers is table of emp.empno%type index by binary_integer;
    type employee_names is table of emp.ename%type index by binary_integer;
    type employees_record is record (empno employee_numbers, person_name employee_names);
    records employees_record;
    employees_cursor sys_refcursor;
    employee_number_list varchar2(30) default '7369,7499,7521';
    begin
    open employees_cursor for
    with t as (
    select regexp_substr(employee_number_list, '[^,]+', 1, level) as employee_number
    from dual
    connect by regexp_substr(employee_number_list, '[^,]+', 1, level) is not null
    ) select emp.empno, emp.ename
    from t join emp on (emp.empno = t.employee_number)
    order by 2
    fetch employees_cursor bulk collect into records.empno, records.person_name;
    dbms_output.put_line('number of records: '||records.empno.count());
    for i in 1 .. records.empno.count
    loop
    dbms_output.put_line(chr(39)||records.empno(i)||chr(39)||','||chr(39)||records.person_name(i)||chr(39));
    end loop;
    end;

    >
    It looks like I have confirmation that BULK COLLECT is a good way to go collect rows for processing
    >
    Well maybe and maybe not. Bear in mind that those demos were only basic demos for the purpose of illustrating how functionality CAN be used. They do not tell you WHEN to use them.
    BULK COLLECT uses expensive PGA memory and unless you know that only a small number of rows will be collected you can have some serious memory issues. Any heavy duty use of BULK COLLECT should generally have a LIMIT clause to limit the number of elements in the collection for each loop iteration.
    Always use SQL if possible.
    Also, for your use case you might be bette served using a PIPELINED function. Instead of collecting ALL rows into a nested table as in your example a PIPELINED function returns one row at a time but is still used as if it were a table using the same TABLE operator.
    Here is simple example code for a PIPELINED function
    -- type to match emp record
    create or replace type emp_scalar_type as object
      (EMPNO NUMBER(4) ,
       ENAME VARCHAR2(10),
       JOB VARCHAR2(9),
       MGR NUMBER(4),
       HIREDATE DATE,
       SAL NUMBER(7, 2),
       COMM NUMBER(7, 2),
       DEPTNO NUMBER(2)
    -- table of emp records
    create or replace type emp_table_type as table of emp_scalar_type
    -- pipelined function
    create or replace function get_emp( p_deptno in number )
      return emp_table_type
      PIPELINED
      as
       TYPE EmpCurTyp IS REF CURSOR RETURN emp%ROWTYPE;
        emp_cv EmpCurTyp;
        l_rec  emp%rowtype;
      begin
        open emp_cv for select * from emp where deptno = p_deptno;
        loop
          fetch emp_cv into l_rec;
          exit when (emp_cv%notfound);
          pipe row( emp_scalar_type( l_rec.empno, LOWER(l_rec.ename),
              l_rec.job, l_rec.mgr, l_rec.hiredate, l_rec.sal, l_rec.comm, l_rec.deptno ) );
        end loop;
        return;
      end;
    select * from table(get_emp(20))

  • Creating an array from a csv

    Hi all,
    I am currently working on a basic app for a masteres dissertation where I am looking to input a number of map pins within the map kit from a csv file I have. The file is in my resources and I have map kit up and running but being an archaeologist rather than a developer this is where I fall down. Any help or advice would be greatly appreciated.
    The csv hold over 900 records each looking like this
    1783376,Site of Second Possible Contiguous Bronze Age Round Barrow,N 51 11 3.699,W 01 48 37.311,"RCHM 128. A levelled barrow visible as a soil mark on air photos RAF CPE/UK/1811 4354-5, contiguous with 117,574*0.<br /> ( 1980) The field is currently arable ley."
    and the titles are;
    [0] = Monument ID
    [1] = Title
    [2] = Latitude
    [3] = Longitude
    [4] = Descriptions
    I guess it would be a Mutable array as the fields will be changing and I looked into creating a FOR loop but as I say I get stuck putting it all together.
    Cheers

    Here is a link to the book:
    http://bignerdranch.com/book/cocoa®_programming_for_mac®_os_x_3rd_edition

  • How do I create a "playlist" from my list of videos?

    I have quite a number of saved videos but it appears I can only play them one at a time.  Is there a way I can create a playlist like I can with songs?  ie. pick one video, and then add more to the list so I can play back several videos in a row without having to go back and load each one separately.  HELP PLEASE!

    In addition to the DVD burner you'll also need software that is capable of authoring DVDs.
    I'm not a Windows person, but I believe Vista comes with an app called Windows DVD Maker.
    You might have more success finding people knowledable with it use at Microsofts support site.
    http://support.microsoft.com/ph/11732
    You cannot burn a DVD from iTunes.
    Matt

  • Help creating a array

    Hi i've got a simple guessing game. Which the user has to guess the right number. A hint will be displayed if the users guess is cold, warm or hot. Each game has 8 rounds in which they have to guess 8 numbers, but each number they have 3 attempts to guess if they guess correct it will say you won and add one to games won and if they lose on there 3rd attempt it will show a message saying sorry and show the number. At the end of the 8 rounds it will give them a result depending on how many games were won.
    I have managed to do all this so far, but the problem that i have is i need to make this game so it can be played by multiplayers. A message will ask how many players, max 6. The computer has to have one random number for each round. Each player plays 8 rounds, taking turns in guessing the number. Once 8 rounds are up the program should print a message saying which player won most games.
    I'm not really sure how to go about doing this? I'm guessing i need an array to store each players wins and then an if statement or switch statement saying if player 1 > player 2 and for all of them then player one wins? But even this the array still confuses me not really sure how to go about it?
    Any help is much appreciated, heres my code so far.
    package assessment;
    import javax.swing.JOptionPane;
    public class guessingGame{
          * @param args
         public static void main(String[] args) {
              // TODO Auto-generated method stub
              final String win = "You won";
              final String lose = "Try again";
                        final int MAX_GUESS = 3;
              final int RANGE = 10;
              int ROUNDS = 8;
              int players = 0;
              int computersNumber = 0;
              int usersGuess = 0;
              int winCount = 0;
              int i, j = 0;
              String userInput;
              String output;
              String playersString;
                        int [] myArray = new int [players];
                        playersString = JOptionPane.showInputDialog(null, "How many players are going to take part?", "Players",
                             JOptionPane.WARNING_MESSAGE);
              players = Integer.parseInt(playersString);
              for(j = 0; j < ROUNDS; j++){
                   // generate a random number between 1 and 10
                   computersNumber = (int) (Math.random() * RANGE) + 1;
                   System.out.println(computersNumber);
              for(i = 0; i < MAX_GUESS; i++) {
                   userInput = JOptionPane.showInputDialog(null, "I am thinking of a number between 1 and 10 " +
                             "\n You have 3 attempt to guess what it is:",
                             "Guessing game", JOptionPane.INFORMATION_MESSAGE);
                   usersGuess = Integer.parseInt(userInput);
                                  boolean answer = checkAnswer(computersNumber, usersGuess);
                    giveHint(computersNumber, usersGuess);
                   if(answer == true) {
                        JOptionPane.showMessageDialog(null, win, "Result",
                                  JOptionPane.WARNING_MESSAGE);
                        winCount++;
                        System.out.println("Wins" + winCount);
                        break;
                   else if(answer == false) {
                        JOptionPane.showMessageDialog(null, lose, "Result",
                                  JOptionPane.ERROR_MESSAGE);
                        System.out.println(j);
                   if(i == 2){
                        JOptionPane.showMessageDialog(null, "Winning number was " + computersNumber,
                        "Guessing game", JOptionPane.INFORMATION_MESSAGE);
              JOptionPane.showMessageDialog(null, "Sorry you didn't win this time",
                        "Guessing game", JOptionPane.INFORMATION_MESSAGE);
              switch(winCount){
              case 1:
                   output = "Amateur";
                   break;
              case 2:
                   output = "Amateur";
                   break;
              case 3:
                   output = "Amateur";
                   break;
              case 4:
                   output = "Amateur";
                   break;
              case 5:
                   output = "Amateur";
                   break;
              case 6:
                   output = "Advanced";
                   break;
              case 7:
                   output = "Professional";
                   break;
              case 8:
                   output = "Champion";
                   break;
              default:
                   output = "Need more practice";
                   break;
              }// end switch statement
              // print message
              JOptionPane.showMessageDialog(null, output, "Check your grade",
                             JOptionPane.WARNING_MESSAGE);     
         public static boolean checkAnswer(int computersNumber, int usersGuess) {
              if(computersNumber == usersGuess) {
                   return true;
              } else {
                   return false;
              public static void giveHint(int computersNumber, int usersGuess) {
              if(usersGuess + 3 == computersNumber || usersGuess - 3 == computersNumber) {
                   JOptionPane.showMessageDialog(null, "Hint - your guess was cold",
                             "Guessing game", JOptionPane.INFORMATION_MESSAGE);
              } else if(usersGuess + 2 == computersNumber || usersGuess - 2 == computersNumber) {
                   JOptionPane.showMessageDialog(null, "Hint - your guess was warm",
                             "Guessing game", JOptionPane.INFORMATION_MESSAGE);
              } else if(usersGuess + 1 == computersNumber || usersGuess - 1 == computersNumber) {
                   JOptionPane.showMessageDialog(null, "Hint - your guess was hot",
                             "Guessing game", JOptionPane.INFORMATION_MESSAGE);
    }

    Since Java is an object oriented language you might want to create a Player class. Then think about how you can break things down and decide where certain methods go, in the Player class or the game class.
    As for determing the Player with the greatest wins, create another temp variable to hold the player with the most correct so far. Then you loop over all players and compare their wins with the temp variable. If it is greater swap them. a shortcut would be allocate player #1 to the temp variable then you only have to compare from player #2 onwards.

  • ALV grid - using f4 search help - want separate value from hit list

    I have the following scenario that I am trying to resolve.
    I have created my own search help with a search help exit for a bespoke maintenance table which lists categories against HR positions which are to receive workflow for these categories.  I am designing a front-end for this table using an ALV grid whereby the person holding that position (i.e. name) is shown instead of position number.  The search help allows you to select by First name and last name and brings up a hit list which includes employee number, first name last name, formatted name field, position number, position description and org unit it belongs in.
    The issue occurs where the list brings back more than one hit.
    e.g.:
    1 Fred     Bloggs Fred Bloggs 50000001  pos1  org 1
    2 Frederic Bloggs Fred Bloggs 50000002  pos2  org 3
    If you select an entry, the formatted name field goes in the ALV grid field. I call the search help via F4IF_FIELDVALUE_REQUEST using the onf4 event .
    What I want to do is retrieve the position number of the entry selected and put this into another table without having to add this to my ALV grid and make available for input. I want to use name only for the input in my ALV grid (i.e. if I select the second example, the return table in F4IF_FIELDVALUE_REQUEST shows the name Fred Bloggs but does not show the position number which I need to add to another table to update my maintenance table).
    Can anyone suggest any way around this?
    Many thanks
    Larissa

    You are right, you can add this fields as an import parameter to the list.
    In Custom search help you must have marked fields as Export or Import parameters.
    If field is marked as Export parameters, it will be displayed in the selection pop up.
    If Import paramter check box is selected then this will be imported to the screen.
    Check this SAP documentation for both these options -
    Flag for IMPORT parameter of the search help                      
         Flag if the parameter is an import parameter.                                                                               
    Context information from the processed input template (screen) can be
         copied to the help process with an import parameter. Where an import 
         parameter gets its values from is defined when the search help is    
         attached to the corresponding field of the input template.           
    Flag for EXPORT parameter of the search help                                                                               
    Flag if the parameter is an export parameter.                                                                               
    Values can be returned from the hit list to the input template (screen)
         with an export parameter. The fields of the input template in which the
         contents of the export parameter are returned are defined by the search
         help attachment.
    Message was edited by: Ashish Gundawar

  • Re: Help creating digital forms from paper forms on a mac

    This is a pretty general question but does anyone know of a way to create a digital form from a scanned paper form on a mac? I know that people use software such as Nuance's Omniform on the Windows platforms but I can't seem to find such a program for the mac. Is there someway to pull this off using Adobe PDF files? I would appreciate any help you guys can provide.
    Thanks,
    Stu

    You can use Filemaker Pro and in the Layout section you drag "fields" around to represent any form you wish, draw lines and boxes, place pictures just like a page layout program but it's a database program.
    You can then use these "fields" in any layout you wish, each record in the database will change the associated fields accordingly, name, address, phone etc etc.
    I haven't used it in awhile, so I don't know if you can import a scan of a present paper form or not for a template, but it's rather easy to copy by measuring with a ruler.
    Filemaker Pro so happens to be owned by Apple, but it's a seperate company, so you know it will work well.
    If that's to much money for you, you can check out Appleworks, but I hear Apple isn't putting out any more updates for it, no Mactel version.
    As always, learn to clone that boot dive before disaster strikes
    http://homepage.mac.com/hogfish/Personal11.html

Maybe you are looking for