Rebuild table when actionperformed

I'm trying to rebuild my table to reflect the changed data when my calculate button is clicked. I'm getting a null pointer exception on compile
public class DennisBillingsWK3 extends JPanel implements ActionListener
     private double principal = 200000; 
     private int term[] = {30, 15, 7};               
     private double interestRate[] = {5.75, 5.5, 5.35};
     private double payment = calcPayment(0); 
     private String data[] = {"30 years at 5.75%", "15 years at 5.5%", "7 years at 5.35%"};
     private Object tableData[][];
     String[] colNames = {"Period", "Payment", "Interest", "Loan Balance"};
     private JLabel jlPrincipal;
     private JLabel jlLoanOptions;
     private JLabel jlPayment;
     private JScrollPane scrollPane;
     private JButton calculate;
     private JButton exit;
     private JFormattedTextField ftfPrincipal;
     private JFormattedTextField ftfPayment;
     private JTable table;
     private JComboBox loanOptions;
     public static void main(String[] args)
          DennisBillingsWK3 loan = new DennisBillingsWK3();
          loan.createGUI();
     public DennisBillingsWK3()
          super(new BorderLayout());
          jlPrincipal = new JLabel("Principal: ");
          jlPayment = new JLabel("Payment: ");
          jlLoanOptions = new JLabel("Loan options");
          ftfPrincipal = new JFormattedTextField();
          ftfPrincipal.setValue(new Double(principal));
          ftfPrincipal.setColumns(10);
          ftfPrincipal.addActionListener(this);
          ftfPayment = new JFormattedTextField();
          ftfPayment.setValue(new Double(payment));
          ftfPayment.setColumns(10);
          ftfPayment.setEditable(false);
          ftfPayment.setForeground(Color.black);
          table = new JTable();
          JScrollPane scrollPane = new JScrollPane(table);
          table.setFillsViewportHeight(true);
          loanOptions = new JComboBox(data);
          jlPrincipal.setLabelFor(ftfPrincipal);
          jlPayment.setLabelFor(ftfPayment);
          jlLoanOptions.setLabelFor(loanOptions);
          JPanel labelPane = new JPanel(new GridLayout(0,1));
          labelPane.add(jlPrincipal);
          labelPane.add(jlLoanOptions);
          labelPane.add(jlPayment);
          JPanel fieldPane = new JPanel(new GridLayout(0,1));
          fieldPane.add(ftfPrincipal);
          fieldPane.add(loanOptions);
          fieldPane.add(ftfPayment);
          JButton calculate = new JButton("Calculate");
          calculate.setActionCommand("calculate");
          calculate.addActionListener(this);
          JButton exit = new JButton("Exit");
          exit.setActionCommand("exit");
          exit.addActionListener(this);
          JButton clear = new JButton("Clear");
          clear.setActionCommand("clear");
          clear.addActionListener(this);
          JPanel buttonPane = new JPanel(new GridLayout(0,1));
          buttonPane.add(calculate);
          buttonPane.add(exit);
          buttonPane.add(clear);
          setBorder (BorderFactory.createEmptyBorder(30, 30, 30, 30));
          add(labelPane, BorderLayout.CENTER);
          add(fieldPane, BorderLayout.EAST);
          add(buttonPane, BorderLayout.SOUTH);
          add(scrollPane, BorderLayout.NORTH);
     public void createGUI()
          JFrame frame = new JFrame("Mortgage Calculator");
          frame.setBounds(350,300,600,150);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.add(new DennisBillingsWK3());
          frame.pack();
          frame.setVisible(true);
     public double calcPayment(int i)
          double adjRate = interestRate/(12*100);
          int adjTerm = term[i]*12;
          payment=principal*((adjRate*Math.pow((1+adjRate),adjTerm))/(Math.pow((1+adjRate),adjTerm)-1));
          BigDecimal hundredths = new BigDecimal(payment);
          hundredths = hundredths.setScale(2, BigDecimal.ROUND_UP);
          return hundredths.doubleValue();
     public void calcAmortTable(int i)
          double adjRate = interestRate[i]/(12*100);
          int adjTerm = term[i]*12;
          payment = calcPayment(i);
          double interest;
          double runningPrincipal = principal;
          DecimalFormat money = new DecimalFormat("$0.00");
          tableData = new Object[adjTerm][4];
          for(int x=0; x<adjTerm; x++) {
               interest = adjRate*runningPrincipal;
               runningPrincipal -= payment - interest;
               tableData[x][0]= x+1;
               tableData[x][1]= money.format(payment);
               tableData[x][2]= money.format(interest);
               tableData[x][3]= money.format(runningPrincipal);
          table = new JTable(tableData, colNames);
          scrollPane.add(table);
          scrollPane.validate();
     public void actionPerformed(ActionEvent e)
          if("calculate".equals(e.getActionCommand())) {
               try {
                         if(principal <= 0 || ftfPrincipal.getValue() == null) {
                              throw new NumberFormatException();
                         principal = ((Number)ftfPrincipal.getValue()).doubleValue();
                         int loanIndex = loanOptions.getSelectedIndex();
                         ftfPrincipal.setValue(principal);
                         ftfPayment.setValue(calcPayment(loanIndex));
                         calcAmortTable(loanIndex);
               catch(NumberFormatException err)
                         JOptionPane.showMessageDialog(null,"No fields can be 0 or empty","Error",JOptionPane.INFORMATION_MESSAGE);
          if("exit".equals(e.getActionCommand())) {
               System.exit(0);//System.exit closes application     
          if("clear".equals(e.getActionCommand())) {
               ftfPrincipal.setValue(null);
               ftfPayment.setValue(null);

I snipped the code out of my constructor and removed the field and I made the following changes but my table doesn't show. I don't get any error or exceptions but not table
Here's my constructor and calcAmortTable respectively
public DennisBillingsWK3()
          // The super keyword calls the constructor from the parent class JPanel
          super(new BorderLayout());
          //set values for textfield labels
          jlPrincipal = new JLabel("Principal: ");
          jlPayment = new JLabel("Payment: ");
          jlLoanOptions = new JLabel("Loan options");
          //Setup text fields, initial value, number of positions and action listener
          ftfPrincipal = new JFormattedTextField();
          ftfPrincipal.setValue(new Double(principal));
          ftfPrincipal.setColumns(10);
          ftfPrincipal.addActionListener(this);
          ftfPayment = new JFormattedTextField();
          ftfPayment.setValue(new Double(payment));
          ftfPayment.setColumns(10);
          ftfPayment.setEditable(false);
          ftfPayment.setForeground(Color.black);
          //Setup amortization table
          table = new JTable();
          table.setFillsViewportHeight(true);
          //Setup combo box
          loanOptions = new JComboBox(data);
          //Attach labels to text fields
          jlPrincipal.setLabelFor(ftfPrincipal);
          jlPayment.setLabelFor(ftfPayment);
          jlLoanOptions.setLabelFor(loanOptions);
          //set labels and fields in a grid
          JPanel labelPane = new JPanel(new GridLayout(0,1));
          labelPane.add(jlPrincipal);
          labelPane.add(jlLoanOptions);
          labelPane.add(jlPayment);
          //create panel for textfields and add fields
          JPanel fieldPane = new JPanel(new GridLayout(0,1));
          fieldPane.add(ftfPrincipal);
          fieldPane.add(loanOptions);
          fieldPane.add(ftfPayment);
          //create buttons, set action commands and listener to be used in ActionPerformed method
          JButton calculate = new JButton("Calculate");
          calculate.setActionCommand("calculate");
          calculate.addActionListener(this);
          JButton exit = new JButton("Exit");
          exit.setActionCommand("exit");
          exit.addActionListener(this);
          JButton clear = new JButton("Clear");
          clear.setActionCommand("clear");
          clear.addActionListener(this);
          //Create panel for buttons
          JPanel buttonPane = new JPanel(new GridLayout(0,1));
          buttonPane.add(calculate);
          buttonPane.add(exit);
          buttonPane.add(clear);
          //set border for GUI and add panels to container
          setBorder (BorderFactory.createEmptyBorder(30, 30, 30, 30));
          add(labelPane, BorderLayout.CENTER);
          add(fieldPane, BorderLayout.EAST);
          add(buttonPane, BorderLayout.SOUTH);
public void calcAmortTable(int i)
          double adjRate = interestRate/(12*100);
          int adjTerm = term[i]*12;
          payment = calcPayment(i);
          double interest;
          double runningPrincipal = principal;
          DecimalFormat money = new DecimalFormat("$0.00");
          tableData = new Object[adjTerm][4];
          for(int x=0; x<adjTerm; x++) {
               interest = adjRate*runningPrincipal;
               runningPrincipal -= payment - interest;
               tableData[x][0]= x+1;
               tableData[x][1]= money.format(payment);
               tableData[x][2]= money.format(interest);
               tableData[x][3]= money.format(runningPrincipal);
          table = new JTable(tableData, colNames);
          JScrollPane scrollPane = new JScrollPane();
          table.setFillsViewportHeight(true);
          add(scrollPane, BorderLayout.NORTH);

Similar Messages

  • When rebuild table and index

    Hi,
    how to know if for a table we should rebuild table and index ?
    Many thanks.

    Safi, I would be less sure than that. There were many many very long threads in database general forum about that subject. If you observed that fact once, that is not very often the case.
    @OP,
    Assuming the question was not about performance, but more on AppDesigner side (because of rebuild table), what I can say is :
    1. Peoplesoft store all the storage definition for all the objects in its own metamodel tables
    2. when you are changing field definition (column's definition) or indexes definition, the new definition is stored in the Peoplesoft metamodel tables
    3. On the table/index build, AppDesigner compare the Peoplesoft metamodel definition for that particular object with in the Oracle (or what ever else database you are using) definition of that same object.
    4. If the defintions reported on step 3 are different, then AppDesigner will fill a file with all the (re)build statements of the objects you are rebuilding (and different).
    5. Finally, you just have to run the generated script.
    Of course, you can bypass the comparison by enforcing AppDesigner the (re)build the record/index in all cases, however, it is not always (do not say never) recommanded.
    Now, when you have to rebuild table (or record in AppDesigner's word) or indexes ? Basically, by the previous explanation I gave above, you could understand this is when you are changing a field/table/index definition through AppDesigner.
    Nicolas.

  • Rebuild Table

    Table where lots of deletion or insertion takes place , probably has High HWM. If the HWM is high , it is better to rebuild table segment for performance sake.
    my question is when to rebuild a table/index and how to find that a table has High water mark?
    please revert me with the answer.

    hi
    to find high water mark ...
    here it is .......
    There is no single system table which contains the high water mark (HWM) for a table. A table's HWM can be calculated using the results from the following SQL statements:
    SELECT BLOCKS
    FROM DBA_SEGMENTS
    WHERE OWNER=UPPER(owner) AND SEGMENT_NAME = UPPER(table);
    ANALYZE TABLE owner.table ESTIMATE STATISTICS;
    SELECT EMPTY_BLOCKS
    FROM DBA_TABLES
    WHERE OWNER=UPPER(owner) AND TABLE_NAME = UPPER(table);
    Thus, the tables' HWM = (query result 1) - (query result 2) - 1
    NOTE: You can also use the DBMS_SPACE package and calculate the HWM = TOTAL_BLOCKS - UNUSED_BLOCKS - 1.
    and if the index rebuild...
    http://www.quest-pipelines.com/newsletter-v2/rebuild.htm
    hope this helps
    CHeers

  • Lock tables when load data

    Are there any way to lock tables when i insert data with SQL*Loader? or oracle do it for me automatically??
    how can i do this?
    Thanks a lot for your help

    Are there any problem if in the middle of my load (and commits) an user update o query data ?The only problem that I see is that you may run short of undo space (rollback segment space) if your undo space is limited and the user is running a long SELECT query for example: but this problem would only trigger ORA-1555 for the SELECT query or (less likely since you have several COMMIT) ORA-16XX because load transaction would not find enough undo space.
    Data is not visible to other sessions, unless, the session which is loading data, commits it. That's the way Oracle handle the read committed isolation level for transaction.
    See http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96524/c21cnsis.htm#2689
    Or what happens if when i want to insert data someone has busy the table?You will get blocked if you try to insert data that has the same primary key as a row being inserted by a concurrent transaction.

  • How to update the table when change list item in classic report

    hi ,
    i worked with apex 4.2 and i create normal classic report with one select list(named loved)Column ,now i want to update table when user change the list with new value ,i can't create dynamic action to do this,i create check box with primary key and loop for check item to update the table but i can't get the value of list item. and for more speed the user want to do this when change the list value.
    my question
    1- how to do this by javascript and get the value from list item and update the table with new value
    2- is i must use API to create list item so i can get the value of item in report or what.
    Thanks
    Ahmed

    I coded the following to give you direction:
    1. In the "Element Attributes" section of the DEPTNO column, I call a javascript function as:
    onchange = "javascript:updateTable(this);"2. I wrote a simple javascript function that shows an alert when the user changes the select list as:
    <script language="JavaScript" type="text/javascript">
    function updateTable(pThis)
        var vRow = pThis.id.substr(pThis.id.indexOf('_')+1);
        alert('Row# - '+ vRow + ' has the value - ' + pThis.value);
    </script>Now, you can call a AJAX on-demand process inside the javascript function to update the database value.

  • How can i display the values in a table when i press enter

    hi,
    I have three text boxes and a table with three columns in a jsp page.When i keyin some values in the text boxes and press Enter these values should be dispalyed in the three columns of the table.When once again if i key in the text boxes with some other values these values should also be displayed in the table columns in another row.Can it be done.Pls help me.Hoping for a reply.
    Thanks
    Naveen

    hi
    just go through the Code below:
    this helps you but this works in IE only.
    <html>
    <head>
    <script language="javascript">
    <!--
         function show(frm) {
              Show.innerText = frm.desc.value;
         } // closing the function show()
    //-->
    </script>
    </head>
    <form name="testform">
    <textarea name="desc" rows="3" cols="20"></textarea>
    <input type="button" name="buttsub" value="Submit" onClick="javascript:show(this.form)">
    <br>
    <table width="500">
    <tr><td bgcolor="#e6e6e6">
    <div id="Show"> </div>
    </td>
    </tr>
    </table>
    </form>
    </html>
    Cheers
    rambee

  • AFRU table when a confirmations at the order level is entered?

    Hello,
    I know that the users can enter a confirmation in the operation level (with the co11n transaction) or in the order level (with the co15 transaction).
    What I want to know is if physically, in the AFRU table, when a user confirm directly an order (co15), do we find lines of confirmation for all the operations with quantities for all the operations (proportional) or just one line with the operation empy (at 0 for exemple) and all the quantity in this line?
    Thanks a lot,
    Regards,
    Julien

    Hi,
    When you confirm order using CO15 at order level, there will be only one entry in AFRU table for all operations and Operation field in the AFRU table would be blank.Only Order number woule be present.
    Regards,
    Krishna Mohan

  • How to restore a dropped table when recycle bin is purged??

    how to restore a dropped table when recycle bin is purged??

    You should be asking general database questions in General Questions - and not in the Objects forum.
    Restoring a dropped table means restoring a logical or physical backup of that table.

  • Not Updating Customized Table when System having Performance Issue

    Hi,
    This is actually the same topic as "Not Updating Customized Table when System having Performance Issue" which is posted last December by Leonard Tan regarding the user exit EXIT_SAPLMBMB_001.
    Recently we changed the program function module z_mm_save_hide_qty to update task. However this causes more data not updated. Hence we put back the old version (without the update task).  But now it is not working as it used to be (e.g. version 1 - 10 records not updated, version 2 with update task - 20 records not updated, back to version 1 - 20 records not updated).
    I tried debugging the program, however whenever I debugged, there is nothing wrong and the data is updated correctly.
    Please advise if anyone has any idea why is this happening. Many thanks.
    Regards,
    Janet

    Hi Janet,
    you are right. This is a basic rule not to do any COMMIT or RFC calls in a user exit.
    Have a look at SAP note 92550. Here they say that exit EXIT_SAPLMBMB_001 is called in the update routine MB_POST_DOCUMENT. And this routine is already called in UPDATE TASK from  FUNCTION 'MB_UPDATE_TASKS' IN UPDATE TASK.
    SAP also tells us not to do any updates on SAP system tables like MBEW, MARD, MSEG.
    Before the exit is called, now they call 'MB_DOCUMENT_BADI' with methods MB_DOCUMENT_BEFORE_UPDATE and MB_DOCUMENT_UPDATE. Possibly you have more success implementing the BADI.
    I don't know your situation and goal so this is all I can tell you now.
    Good luck!
    Regards,
    Clemens

  • How to add multiple table when creating add on using b1de

    Hi all,
    Plz help me
    How to add multiple table when creating add on using b1de.
    Thanks

    Hi dns_sap,
    Can you explain a little better what you are trying to accomplish? Is it to create UserTables and UserFields in the database, when the addon runs the first time?
    If so, you can use the following code
    Add User Table
            Try
                Dim lRetCode As Long
                Dim oUDT As SAPbobsCOM.UserTablesMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserTables)
                oUDT.TableName = TableName
                oUDT.TableDescription = TableDescription
                oUDT.TableType = TableType
                lRetCode = oUDT.Add
                '// Check for error when adding the Table: if lRetCode = 0 the table was created; if lRetCode = -2035 the table already exisits
                If lRetCode <> 0 Then
                    oApplication.MessageBox("Error: " & lRetCode.ToString & ", " & oCompany.GetLastErrorDescription)
                End If
            Catch ex As Exception
                oApplication.MessageBox(oCompany.GetLastErrorDescription)
            Finally
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oUDT)
                oUDT = Nothing
                lRetCode = Nothing
                GC.Collect()
            End Try
    Add User Field
    Try
                Dim lRetCode As Long
                Dim oUDF As SAPbobsCOM.UserFieldsMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields)
                oUDF.TableName = TableName
                oUDF.Name = FieldName
                oUDF.Description = FieldDescription
                oUDF.Type = FieldType
                lRetCode = oUDF.Add
                '// Check for error when adding the field: if lRetCode = 0 the field was created; if lRetCode = -2035, the field already exists
                If lRetCode <> 0 Then
                    oApplication.MessageBox("Error: " & oCompany.GetLastErrorCode & ", " & oCompany.GetLastErrorDescription)
                End If
            Catch ex As Exception
                oApplication.MessageBox(oCompany.GetLastErrorDescription)
            Finally
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oUDF)
                oUDF = Nothing
                lRetCode = Nothing
                GC.Collect()
            End Try
    Regards,
    Vítor Vieira

  • What locks are required on a table when Oracle is processing an UPDATE

    What locks are required on a table when Oracle is processing an
    UPDATE statement?

    Welcome to the forum!
    Whenever you post provide your 4 digit Oracle version.
    >
    What locks are required on a table when Oracle is processing an
    UPDATE statement?
    >
    Here is a relevant quote from the 'Lock Modes' section of the doc that Ed Stevens provided
    >
    Assume that a transaction uses a SELECT ... FOR UPDATE statement to select a single table row. The transaction acquires an exclusive row lock and a row share table lock. The row lock allows other sessions to modify any rows other than the locked row, while the table lock prevents sessions from altering the structure of the table. Thus, the database permits as many statements as possible to execute.
    >
    The above describes the locks when you, the user, tells Oracle to lock the row.

  • How to hide system tables when using the Oracle SQL Developer?

    Hi,
    I would like to know how can I show only the tables that I created under the Tables tree? I didnt find a way to create a separate database using the Oracle Sql Developer. I see all the tables together, and would like to differentiate between different databases.
    Can anyone explain to me how to do these things?
    Thanks,

    Hi,
    I would like to know how can I show only the tables that I created under the Tables tree? Your posting is not clear,again tell something more on tables tree,what u want to achieve with it.
    How to hide system tables when using the Oracle SQL Developer? if u connected with sys, system or user with dba role then u have a privilege to see these tables,so revoke the privilege/role from ur user to view this tables if ur connected other then sys,system,
    I didnt find a way to create a separate database using the Oracle Sql Developer. DBCA is a tool for creating the new database.
    Kuljeet

  • How to lock a table when i insert a row

    hi, friends,
    how to lock a table when i insert a row, then unlock the table

    If you want to lock the whole table so that no-one else can do DML then you go LOCK TABLE <table> IN EXCLUSIVE MODE. This lock remains in force until you commit or rollback.
    There are less powerful locking modes available, but you can look those up in the OTN online documentation.
    APC

  • Cannot add column to flexible table when ddl autocommit is off using Procedure

    Hello All,
    Through procedure I am trying to insert data into the target(EX_92) table(with schema flexibility)
    Source table data
    ID
    PRODUCT_CODE
    PRODUCT_NAME
    PRICE
    COLOR
    TYPE
    1
    1
    rugg
    101.22
    2
    1
    rugg
    101.22
    3
    2
    book
    200.32
    BLUE
    Y
    Target table QUERY
    drop table EX_P2;
    CREATE COLUMN TABLE EX_P2(
    ID INTEGER PRIMARY KEY,
    PRODUCT_CODE VARCHAR(3),
    PRODUCT_NAME NVARCHAR(20),
    PRICE DECIMAL(5,2)
    ) WITH SCHEMA FLEXIBILITY;
    Procedure to insert above records with additional columns into the target table(EX_P2)
    Procedure
    drop procedure "DS_O1"."PROC";
    create procedure "DS_O1"."PROC"(IN max_value INTEGER, IN schema_name varchar(40), IN table_name varchar(40), IN column_list varchar(400))
    LANGUAGE SQLSCRIPT  AS
    BEGIN
    DECLARE maxid integer :=0;
    DECLARE INSERT_STR VARCHAR(1000) :='';
    select max(ID) into maxid from "DS_O1"."EX_P2";
    select :maxid from dummy;
    INSERT_STR :='insert into "' || 'DS_O1' ||'"."EX_P2" ('||:column_list||') (select ' ||:column_list||'
      FROM "'||:schema_name||'"."'||:table_name||'"' || ' where  ID  >' || :max_value  || ')';
    EXECUTE immediate(:INSERT_STR);
    END;
    Now while executing above procedure
    CALL "DS_O1"."PROC" ( 0, 'DS_O1', 'TMP_EXL2','ID,PRODUCT_CODE,PRODUCT_NAME,PRICE,COLOR,STATUS,TYPE');
    I am getting the following error
    Could not execute 'CALL "DS_O1"."PROC" ( 0, 'DS_O1', 'TMP_EXL2','ID,PRODUCT_CODE,PRODUCT_NAME,PRICE,COLOR,STATUS,TYPE')' in 23 ms 564 µs .
    SAP DBTech JDBC: [7]: feature not supported:  [7] "DS_O1"."PROC": line 18 col 1 (at pos 779): [7] (range 3): feature not supported: cannot add column to flexible table when ddl autocommit is off

    Hi Rajnish,
    I had the same issue. For what it’s worth I was able to do a workaround basically creating all the columns when I create the table. The following code works for me to create the table which is just a matrix with one Integer column as the key and the rest as type Double.
    It is not ideal in all scenarios because the table columns cannot be added dynamically via a procedure at a later point. This table has 27K columns now
    Of course one of the advantages of a flex table would be programmatically adding columns dynamically. This works, but maybe there is still a way to add columns dynamically from a procedure, and someone else can advise.
    Apparently dynamically adding columns via procedures may have some "minor" limitations due to the need to compile the procedure with knowledge of the flex table DDL. But again, hopefully someone knows another solution.
    Best regards,
    Mark
    DROP PROCEDURE CREATE_MATRIX;
    CREATE PROCEDURE CREATE_MATRIX(
        LANGUAGE SQLSCRIPT
        SQL SECURITY INVOKER
        AS
    /*********BEGIN PROCEDURE SCRIPT ************/
    BEGIN
        -- cursor over messages
        declare cursor matrix_cursor for
            select distinct TERM
            from TERMS
            order by term;
           declare cnt INTEGER := 0;
           declare temptxt NVARCHAR(500000) := 'CREATE COLUMN TABLE DOC_MATRIX ( CONTENT_ID INTEGER ';
        for cur_matrix as matrix_cursor do
          cnt:=:cnt + 1;
               select temptxt || ', C' || cnt || ' DOUBLE' into temptxt from dummy;
        end for;
          temptxt:=temptxt || ' ) WITH SCHEMA FLEXIBILITY';
           EXEC :temptxt;
           select :temptxt from dummy;
    END;
    DROP TABLE DOC_MATRIX;
    CALL CREATE_MATRIX();

  • Save data into Z TABLE when save button is clicked on BPS web application

    Hi gurus,
    Recently i've been working with SEM-BPS and now i have an issue,
    I had to modify the BPS layout to show an input field where the user could write a comment, that was done modifying the layout in the transaction SE80 manipulating the BSP application, but now i have to save the content of those fields in a Z table when the SUBMIT event is triggered which save the content of all other standard fields. Before the saved is done i must send a pop up to confirm the action.
    The trouble is where and how i must modify the code to achieve that.
    Or if there's another way to solve my problem please let me know.
    Best regards.
    Tony Montes.

    Hi Andrey,
    Thanks for your time and response.
    Let me told you, i was traying to implement what you say in your last post but now i'm facing a new problem,
    The way i used to create the new field from HTML for the comment is not correct because the data in the GRIDLAYOUT are paged, so, when i change the page all data that i introduced in the field are ereased and i must save that values before change the page in a kind of buffer or something like that.
    so my new question is this, Do you know a right way to add that field to GRIDLAYOUT?  and then save this values in a Z table before save al plan data into the infocube.
    Sorry for all this questions but ive read a lot of articles and I can't find anything really helpful
    I've read some articles what talk about this issue but in IP, sincerely i'm NEW in this topic.
    Regards.
    Tony Montes.

Maybe you are looking for