Add Button in Table.....

Hi Guys,
             My requirement is: In a table control, 2 fields are coming from one node and third field is button. If i'm clicking on this button, the relevant field values are coming from the another database table (Here it may be more than 1). Can anyone has any idea about it? Is it possible to display all these fields in same table control which actually fatches data from 2 database tables?
Thanks,
Ravin Joshi

hi joshi,
first get the index of the row where the button is clicked.
don't for get to create action for the button.
write  following code in the action:
data:       elem_week_data             TYPE REF TO if_wd_context_element.
               w_index                   type i.
elem_week_data = wdevent->get_context_element( 'CONTEXT_ELEMENT' ).
  w_index = elem_week_data->get_index( ).
Then get the data of two fields and bind it to the node.
Regards,
janakiram.

Similar Messages

  • How to add button to Table View and initiate action?

    hello,
    i'm new to Javafx 2, i recently followed the tutorial on tableview and would like to add a deletion action on particular row. What i had in mind was to add a delete button on the last column of each row, when clicked it will fire a handler and remove that row from the data observablelist. how do i do that?
    please advice,
    wesley

    Hi,
    Please find the below code. I am creating a table view with two columns. The second column consists of delete button.
    TableVeiw table = new TableView();
    /*First column*/
    final TableColumn<String> titleCol = new TableColumn<String>("Title");
    titleCol.setProperty("title");
    /*Second column*/
    TableColumn<String> actionCol = new TableColumn<String>("Action");
    actionCol.setCellFactory(new Callback<TableColumn<String>, TableCell<String>>() {
          @Override
          public TableCell<String> call(TableColumn<String> param) {
                 final TableCell<String> cell = new TableCell<String>() {
                          @Override
                          public void updateItem(String value, boolean empty) {
                                super.updateItem(value, empty);
                                final VBox vbox = new VBox(5);
                                Image image = new Image(getClass().getResourceAsStream("/images/delete.png"));
                                Button button = new Button("", new ImageView(image));
                                button.getStyleClass().add("deleteButton");
                                final TableCell<String> c = this;
                                button.setOnAction(new EventHandler<ActionEvent>() {
                                      @Override
                                      public void handle(ActionEvent event) {
                                              TableRow tableRow = c.getTableRow();
                                              Item item= (Item) tableRow.getTableView().getItems().get(tableRow.getIndex());
                                              /* TODO : Delete this item from your data list and refresh the table */
                          vbox.getChildren().add(button);
                          setGraphic(vbox);
            cell.setAlignment(Pos.TOP_RIGHT);
            return cell;
    grid.addColumns(titleCol,actionCol);I hope this can help you. :)
    Edited by: Sai Pradeep Dandem on Aug 18, 2011 10:04 PM

  • Add data to the table in the database with the use of add button

    The name of my database is Socrates.
    The name of the table in the database is Employees
    I want to be able to add data to the database. i am presently working on the add button such that when i enter date into the textfield and press the add button it should automatically register in the table.
    The error upon compilation is with this line of code
    If (ae.getSource() == jbtnA)// it says that ";" is expected
    Below is the entire code
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Mainpage extends JFrame implements ActionListener
         JTextField jFirstName = new JTextField(15);
         JTextField jSurname = new JTextField(12);
         JTextField jCity = new JTextField(10);
         JTextField jCountry = new JTextField(12);
         JTextField jSSN = new JTextField(8);
         JLabel jFirstLab = new JLabel("First Name");
         JLabel jSurnameLab = new JLabel("Surname");
         JLabel jCityLab = new JLabel("City");
         JLabel jCountryLab = new JLabel("Country");
         JLabel jSSNLab = new JLabel("Social Security Number (SSN)");
         JButton jbtnA = new JButton ("Add");
         JButton jbtnPrv = new JButton ("Previous");
         JButton jbtnNt = new JButton ("Next");
         JButton jbtnDl= new JButton ("Delete");
         JButton jbtnSrch = new JButton ("Search");
         public Mainpage (String title)
              super (title);
              Container cont = getContentPane();
              JPanel pane1 = new JPanel();
              JPanel pane2 = new JPanel();
              JPanel pane3 = new JPanel();
              pane1.setLayout (new GridLayout (0,1));
              pane2.setLayout (new GridLayout(0,1));
              pane3.setLayout (new FlowLayout());
              pane1.add(jFirstLab);
              pane1.add(jSurnameLab);     
              pane1.add(jCityLab);
              pane1.add(jCountryLab);
              pane1.add(jSSNLab);
              pane2.add(jFirstName);
              pane2.add(jSurname);
              pane2.add(jCity);
              pane2.add(jCountry);
              pane2.add(jSSN);
              pane3.add(jbtnA);
              pane3.add(jbtnPrv);
              pane3.add(jbtnNt);
              pane3.add(jbtnDl);
              pane3.add(jbtnSrch);
              cont.add(pane1, BorderLayout.CENTER);
              cont.add(pane2, BorderLayout.LINE_END);
              cont.add(pane3, BorderLayout.SOUTH);
              jFirstName.addActionListener(this);
              jSurname.addActionListener(this);
              jCity.addActionListener(this);
              jCountry.addActionListener(this);
              jSSN.addActionListener(this);
              jbtnA.addActionListener(this);
              jbtnPrv.addActionListener(this);
              jbtnNt.addActionListener(this);
              jbtnDl.addActionListener(this);
              jbtnSrch.addActionListener(this);
              validate();
              setVisible(true);
              setDefaultCloseOperation(EXIT_ON_CLOSE);
              pack();
              setResizable(false);
         public void actionPerformed(ActionEvent ae)
                   If (ae.getSource() == jbtnA)
                                    fst = jFirstName.getText();
                        srn = jSurname.getText();
                        cty = jCity.getText();
                        cnty = jCountry.getText();
                        int sn =
    Interger.parseInt(jSSN.getText());
                                    String ad = "Insert into Employees
    (Firstname,Surname,City,Country,SSN)" +
    "values('"fst"','"srn"','"cty"','"cnty"','"sn"')";
                        Statement stmt = con.createStatment();
                        int rowcount = stmt.executeUpdate(ad);
                        JOptionPane.showMessageDialog("Your
    details have been registered");
                        Statement stmt = con.createStatment();
                        int rowcount = stmt.executeUpdate(ad);
    public static void main (String args[])
              Mainpage ObjFr = new Mainpage("Please fill this
    registration form");
              try
                   Class.forname("sun.jdbc.odbc.JdbcOdbcDriver");
                   String plato = "jdbc:odbc:socrates";
                   Connection con =
    DriverManager.getConnection(plato);
              catch(SQLException ce)
                   System.out.println(ce);
    }

    i have restructured the code, but the following line of code is giving error:
    String plato = jdbc:odbc:socrates;
    the entire code is below:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.sql.*;
    public class Mainpage extends JFrame implements ActionListener
         JTextField jFirstName = new JTextField(15);
         JTextField jSurname = new JTextField(12);
         JTextField jCity = new JTextField(10);
         JTextField jCountry = new JTextField(12);
         JTextField jSSN = new JTextField(8);
         JLabel jFirstLab = new JLabel("First Name");
         JLabel jSurnameLab = new JLabel("Surname");
         JLabel jCityLab = new JLabel("City");
         JLabel jCountryLab = new JLabel("Country");
         JLabel jSSNLab = new JLabel("Social Security Number (SSN)");
         JButton jbtnA = new JButton ("Add");
         JButton jbtnPrv = new JButton ("Previous");
         JButton jbtnNt = new JButton ("Next");
         JButton jbtnDl= new JButton ("Delete");
         JButton jbtnSrch = new JButton ("Search");
         Statement stmt;
            String ad;
            public Mainpage (String title)
              super (title);
              Container cont = getContentPane();
              JPanel pane1 = new JPanel();
              JPanel pane2 = new JPanel();
              JPanel pane3 = new JPanel();
              pane1.setLayout (new GridLayout (0,1));
              pane2.setLayout (new GridLayout(0,1));
              pane3.setLayout (new FlowLayout());
              pane1.add(jFirstLab);
              pane1.add(jSurnameLab);     
              pane1.add(jCityLab);
              pane1.add(jCountryLab);
              pane1.add(jSSNLab);
              pane2.add(jFirstName);
              pane2.add(jSurname);
              pane2.add(jCity);
              pane2.add(jCountry);
              pane2.add(jSSN);
              pane3.add(jbtnA);
              pane3.add(jbtnPrv);
              pane3.add(jbtnNt);
              pane3.add(jbtnDl);
              pane3.add(jbtnSrch);
              cont.add(pane1, BorderLayout.CENTER);
              cont.add(pane2, BorderLayout.LINE_END);
              cont.add(pane3, BorderLayout.SOUTH);
              jFirstName.addActionListener(this);
              jSurname.addActionListener(this);
              jCity.addActionListener(this);
              jCountry.addActionListener(this);
              jSSN.addActionListener(this);
              jbtnA.addActionListener(this);
              jbtnPrv.addActionListener(this);
              jbtnNt.addActionListener(this);
              jbtnDl.addActionListener(this);
              jbtnSrch.addActionListener(this);
              validate();
              setVisible(true);
              setDefaultCloseOperation(EXIT_ON_CLOSE);
              pack();
              setResizable(false);
              try
                   Class.forname(sun.jdbc.odbc.JdbcOdbcDriver);
                   String plato = jdbc:odbc:socrates;
                   Connection con = DriverManager.getConnection(plato);
                   stmt = con.createStatment();
              catch(SQLException ce)
                   System.out.println(ce);
              catch(ClassNotFoundException ce)
                   System.out.println(ce);
         public void actionPerformed(ActionEvent ae)
                   try
                        if(ae.getSource().equals(jbtnA))
                                         fst = jFirstName.getText();
                             srn = jSurname.getText();
                             cty = jCity.getText();
                             cnty = jCountry.getText();
                             int sn = Interger.parseInt(jSSN.getText());
                                         ad = "Insert into Employees
    values('"+fst+"',"+srn+"','"+cty+"','"+cnty+"','"+sn+"')";
                             stmt.executeUpdate(ad);
                             JOptionPane.showMessageDialog(this, "Your details have been
    registered");
                   catch(SQLException ce)
                        System.out.println(ce);
    public static void main(String args[])
              Mainpage ObjFr = new Mainpage("Please fill this registration form");
    }

  • Javascript code to enable an ADD button to create duplicate tables and pages for multiple entries

    I am using Adobe XI Pro. I have created a multi-page fillable pdf questionnaire that I want to make interactive to the user. Within each page, I have multiple tables that can have ADD buttons to duplicate the table if the client wants more than one test. I would like this table to insert directly below the previous table and they may be able to add upto 5 of these table.
    I also have a couple pages in the questionnaire that require duplication for multiple samples. Eg. One page per sample, and I may have upto 10 samples. I would like the javascript to have an ADD button and then add each page behind the previous related sheet (Original and duplicates together)
    I am not a javascript coder so I would need some examples and a walk through. I did take some developer courses in engineering but it has been almost two decades
    I have search on several forums and cannot find a good resource so I appreciate the help.
    Sincerely
    Tara

    Some of what you want to do can be done using template features and a bit of JavaScript, but if your users will be using Reader, version 11 will be required. You can dynamically add new pages, but adding new tables to existing pages with reflow of content that comes after is not possible with a form created in Acrobat. If you have access to Adobe's LiveCycle Designer form creation software, you can create what's known as a dynamic XFA form that can do all of what you want. You can ask in the LiveCycle Designer forum for more information: http://forums.adobe.com/community/livecycle/livecycle_modules_and_development_tools/livecy cle_designer_es?view=discussions

  • Document Add button - change a UDF so B1 writes value to  tables

    When the user presses the add button on a document, like an invoice, I want to loop through the items matrix and update a UDF on each row, so that Business one will write my values in the UDFs to the line item table (INV1), but I can't figure out how.
    2 problems: The first is all the message boxes that B1 sometimes displays (like document total is zero, or error messages like 'no tax code entered'.  I need to do my work AFTER these all occur, but just BEFORE the document is created.  WHEN do I do this?
    The other problem is that it seems like when I've tried something like this before, My changes to anything on the screen cause B1 to re-fire the events and then cancel the Add.
    I don't want users to change these fields after I've loaded them, and I'd rather not retrieve the document after it's added and then change the values.  I've found similar problems in the forum but none of them speaks exactly to this
    Any ideas?
    Thanks/Gracias/Dankeschoen/Merci/Danyavad/Toa chie

    Hi John,
    Hope you're doing well.
    I suggest the formdataevent.
    There is a example in the sdk.
    This is what I use:
    Public Sub FormDataEvent(ByRef BusinessObjectInfo As SAPbouiCOM.BusinessObjectInfo, ByRef BubbleEvent As Boolean) Handles UIAPP.FormDataEvent
                'Occurs when the application performs the following actions on forms connected to business objects:
                '            Add()
                '            Update()
                '            Delete()
                'Load form data via browse, link button, or find
                'The event provides the unique ID (BusinessObjectInfo.ObjectKey) of the modified business object.
                'You can use the value of this property as an input parameter in the DI API DataBrowser.GetByKeys method to get a DI object.
                Dim form As SAPbouiCOM.Form = UIAPP.Forms.Item(BusinessObjectInfo.FormUID)
                Dim bisObj As SAPbouiCOM.BusinessObject = form.BusinessObject
                Dim uid As String = bisObj.Key
                FormDataEventCommon.FormDataEventLogic(BusinessObjectInfo, BubbleEvent, bisObj, form)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(form)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(bisObj)
                form = Nothing
                bisObj = Nothing
                GC.Collect()
            End Sub
    calls this function.
    Public Function FormDataEventLogic(ByRef BusinessObjectInfo As SAPbouiCOM.BusinessObjectInfo, ByRef BubbleEvent As Boolean, ByRef bisobj As SAPbouiCOM.BusinessObject, ByRef form As SAPbouiCOM.Form) As Boolean
                Dim Test As Integer = form.Mode
                Dim mat As String = ""
                Dim Fld As String = ""
                Dim rep As String = ""
                Dim ColFlag As Boolean = False
                If BusinessObjectInfo.BeforeAction Then
                    Select Case BusinessObjectInfo.EventType
                        Case SAPbouiCOM.BoEventTypes.et_FORM_DATA_ADD
                            Select Case BusinessObjectInfo.Type
                                Case "COMMISSION OBJ UDO"
                                    Dim CommTblClass As New CommAdj_Class(form.UniqueID)
                                    Dim StrLN As String = CommTblClass.GetFieldValue(form.UniqueID, "EMONLN")
                                    If StrLN = "" Then
                                        CommTblClass.Displayerror("Please enter a load number")
                                        BubbleEvent = False
                                    End If
                                    CommTblClass.release()
                            End Select
                    End Select
                Else
                    Select Case BusinessObjectInfo.EventType
                        Case SAPbouiCOM.BoEventTypes.et_FORM_DATA_ADD
                            ' Addnew information for a new document
                            Select Case BusinessObjectInfo.Type
                                Case SAPbobsCOM.BoObjectTypes.oDeliveryNotes
                                Case SAPbobsCOM.BoObjectTypes.oPurchaseDeliveryNotes
                                Case SAPbobsCOM.BoObjectTypes.oOrders
                                Case SAPbobsCOM.BoObjectTypes.oInvoices
                                Case SAPbobsCOM.BoObjectTypes.oCreditNotes
                                Case SAPbobsCOM.BoObjectTypes.oReturns
                                Case SAPbobsCOM.BoObjectTypes.oQuotations
                                Case SAPbobsCOM.BoObjectTypes.oPurchaseInvoices
                                Case SAPbobsCOM.BoObjectTypes.oInventoryGenEntry
                                Case "COMMISSION OBJ UDO"
                            End Select
                        Case SAPbouiCOM.BoEventTypes.et_FORM_DATA_UPDATE
                            ' Update exisitng Document
                            Select Case BusinessObjectInfo.Type
                                Case SAPbobsCOM.BoObjectTypes.oDeliveryNotes
                                Case SAPbobsCOM.BoObjectTypes.oPurchaseDeliveryNotes
                                Case SAPbobsCOM.BoObjectTypes.oInvoices
                                Case SAPbobsCOM.BoObjectTypes.oCreditNotes
                                Case SAPbobsCOM.BoObjectTypes.oReturns
                                Case SAPbobsCOM.BoObjectTypes.oOrders
                                Case SAPbobsCOM.BoObjectTypes.oQuotations
                                Case SAPbobsCOM.BoObjectTypes.oInventoryGenEntry
                                Case "COMMISSION OBJ UDO"
                            End Select
                        Case BoEventTypes.et_FORM_DATA_LOAD
                            Select Case BusinessObjectInfo.Type
                                Case SAPbobsCOM.BoObjectTypes.oDeliveryNotes
                                Case SAPbobsCOM.BoObjectTypes.oPurchaseDeliveryNotes
                                Case SAPbobsCOM.BoObjectTypes.oInvoices
                                Case SAPbobsCOM.BoObjectTypes.oCreditNotes
                                Case SAPbobsCOM.BoObjectTypes.oReturns
                                Case SAPbobsCOM.BoObjectTypes.oOrders
                                Case SAPbobsCOM.BoObjectTypes.oQuotations
                            End Select
                    End Select
                End If
                Return True
            End Function

  • Urgent - How to add buttons to a Table

    How to add buttons to a Table and enable them for Mouse Listeners/ Action Listeners

    extends the defaultcellrenderer make it return a Jbutton as the component to draw.
    class OverCellRendererClass extends DefaultTableCellRenderer {
    public Component getTableCellRendererComponent(JTable table,
    Object value,
    boolean isSelected,
    boolean hasFocus,
    int row,
    int column) {
    //put your stuff here to make or get a button
    return myButton;
    Use something like this to set the renderer for the column :
    tb.getColumnModel().getColumn(4).setCellRenderer(new YourCellRendererClass());

  • Adobe reader closes automatically while table entry is added by add button

    Hi Team,
    I am new in adobe form. I have developed an adobe interactive form using livecycle designer integrated with SAP. My form has a table and under that there is an add button. When the form is opened in adobe reader and  add button is clicked, I have written a javascript code which appends a new entry in the table above. Everything is fine upto here.
    Now when I keep on clicking the add button, new entries are created and table grows. But when the table populates the current page and grows to populate the next page, suddenly the adobe form closes. I think there is an inconsistancy happening as my configuration for the table or the subform wrapping the table and the add button is conflicting.
    Could you guys give me some advise on this. I can provide screenshots or the adobe document on request.
    Thanks,
    Mainak

    Hi,
    I would say you are definitely coming up against memory restrictions. There are a couple of posts by John Brinkman that I would recommend.
    First I would look at why the form is 6Mb and see if you can reduce this down. For example, select fonts that are already in Reader (like Myriad Pro) and then deselect Embed Fonts in the File > Form Properties > Save Options. Also do not embed images into the form. See:
    http://blogs.adobe.com/formfeed/2010/02/big_and_complex_forms.html.
    http://blogs.adobe.com/formfeed/2010/09/xdp-size-matters.html.
    http://blogs.adobe.com/formfeed/2009/11/linked_vs_embedded_template_im.html.
    Next look at your script. You mention loops, so check is your script efficient. For example, use xfa.resolveNodes() once outside of the loop, instead of xfa.resolveNode() inside the loop. Make sure that variables are declared. See:
    http://blogs.adobe.com/formfeed/2011/10/script-performance-exercise.html.
    http://assure.ly/kUP02y.
    Also check for any script that you have in events that fire frequently, like layout:ready event and comment these out. See.
    http://assure.ly/nB0Bvz.
    The dataset seems very large at 2Mb. Does this include image data? It may be that the user is interacting with the form, while it is still trying to process the XML and the loops.
    Hope that helps,
    Niall

  • Clicking add button to display the values

    requrement is like this
    Could anyone give suggestions with some code .
    we have lovs using this one we are searching for the value(ex emloyee name) that value is returned to the base page filed like message text input . we have add button, when ever we click that button to display the value(ex employee name ,desigantion this is from another table )on that same page.

    I could not understand your requirement. Post more details of the requirement with specific details.
    Message was edited by:
    Srini

  • Disable delete button in Table Maintainance Generator

    Hello all,
      How to disable delete button in Table maintainance generator???

    Hi Maya,
    It is very interesting question. If you debug your table maintenance screen, the program of table maintenance screen will not have statically defined pf status. So you cannot exclude delete functionalities using the below statement.
    SET PF-STATUS <the GUI status> EXCLUDING 'DELE'.
    For viewing pf status SAP has programmed in dynamic manner using this FM VIEW_SET_PF_STATUS.
    Before calling above FM you need to exclude delete function. Follow the following step for achieving this
    Go to sm30. Put your table name and press on maintain push button. It will display table entries in maintenance screen.
    Go to system->status
    Click on program name.
    Go to your flow logic of you table maintenance screen number.
    It will have following code in flow logic
    PROCESS BEFORE OUTPUT.
    MODULE LISTE_INITIALISIEREN.
    LOOP AT EXTRACT WITH CONTROL
      TCTRL_ZMAINTAIN CURSOR NEXTLINE.
       MODULE LISTE_SHOW_LISTE.
    ENDLOOP.
    PROCESS AFTER INPUT.
    MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.
    MODULE LISTE_BEFORE_LOOP.
    LOOP AT EXTRACT.
       MODULE LISTE_INIT_WORKAREA.
       CHAIN.
        FIELD ZMAINTAIN-MATNR .
        FIELD ZMAINTAIN-KUNNR .
        FIELD ZMAINTAIN-LIFNR .
        MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.
       ENDCHAIN.
       FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.
       CHAIN.
        FIELD ZMAINTAIN-MATNR .
        MODULE LISTE_UPDATE_LISTE.
       ENDCHAIN.
    ENDLOOP.
    MODULE LISTE_AFTER_LOOP.
    Add new module in PBO for excluding delete function. ex  module set_pf.
    PROCESS BEFORE OUTPUT.
    ****here I added my own code for excluding delete function
    ****begin of addion
    module set_pf.
    ****end of addition
    MODULE LISTE_INITIALISIEREN.
    LOOP AT EXTRACT WITH CONTROL
      TCTRL_ZMAINTAIN CURSOR NEXTLINE.
       MODULE LISTE_SHOW_LISTE.
    ENDLOOP.
    PROCESS AFTER INPUT.
    MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.
    MODULE LISTE_BEFORE_LOOP.
    LOOP AT EXTRACT.
       MODULE LISTE_INIT_WORKAREA.
       CHAIN.
        FIELD ZMAINTAIN-MATNR .
        FIELD ZMAINTAIN-KUNNR .
        FIELD ZMAINTAIN-LIFNR .
        MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.
       ENDCHAIN.
       FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.
       CHAIN.
        FIELD ZMAINTAIN-MATNR .
        MODULE LISTE_UPDATE_LISTE.
       ENDCHAIN.
    ENDLOOP.
    MODULE LISTE_AFTER_LOOP.
    *****inclule one line of code for excluding delete fucion
    module set_pf output.
          MOVE 'DELE' TO excl_cua_funct-function. COLLECT excl_cua_funct.
    endmodule.
    Basically sap fetching status dynamically from program SAPLSVIM using FM VIEW_SET_PF_STATUS. Status name is EULG.
    Please donu2019t hardcode anything by using set pf status statment, you just add one line of code the PBO by creating new module.
    Let me know if you need any help .
    Cheers.
    Regards,
    Peranandam

  • Add button to unused space in JTableHeader

    I have modified my JTable so that I can have multiple rows of column headers. I did this by extending BasicTableHeaderUI. In my particular instance, the first column of the table will never have more than one row in the header (unlike other implementations of multi-row headers I have seen, my column headers don't automatically fill upwards to take up all usable space in the header). So, I have "unused" space in the header above the first column.
    I would like to put some buttons there that are relevant to the table, but so far every effort to do so has failed.
    In the SSCCE below I have created a very stripped down version of my TableHeaderUI. It doesn't contain any of the code to create multiple row headers, it just pushes down the standard column headers to create some space. I try adding a button to the rendererPane, but it doesn't show up. There is a commented out line that paints the button which does work in terms of showing the button, but that's probably not the right way to do this (and the button doesn't work anyway).
    So, why isn't the button showing up? Am I doing this the right way (i.e. adding the button within the UI)? Thanks in advance for you help.
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Point;
    import java.awt.Rectangle;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Enumeration;
    import javax.swing.JButton;
    import javax.swing.JComponent;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.plaf.basic.BasicTableHeaderUI;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableColumn;
    import javax.swing.table.TableColumnModel;
    public class HeaderButtonTable extends JPanel {
         public HeaderButtonTable() {
              String[] colNames = {"column 1", "column2", "column3"};
              Object[][] data = {{"a","b","c"},{"d","e","f"}};
              JTable table = new JTable(data, colNames);
              table.setPreferredScrollableViewportSize(new Dimension(400,100));
              table.setFillsViewportHeight(true);
              table.getTableHeader().setUI(new ButtonHeaderUI());
              JScrollPane scrollPane = new JScrollPane(table);
              add(scrollPane);
         public class ButtonHeaderUI extends BasicTableHeaderUI {
              public void paint(Graphics g, JComponent c) {
                   Rectangle clip = g.getClipBounds();
                   Point left = clip.getLocation();
                   Point right = new Point( clip.x + clip.width - 1, clip.y );
                   TableColumnModel cm = header.getColumnModel();
                   int cMin = header.columnAtPoint(left);
                   int cMax = header.columnAtPoint(right);
                   if (cMin == -1) cMin =  0;
                   if (cMax == -1) cMax = cm.getColumnCount()-1;
                   TableColumn draggedColumn = header.getDraggedColumn();
                   int columnWidth;
                   Rectangle cellRect = header.getHeaderRect(cMin);
                   TableColumn aColumn;
                   for(int column = cMin; column <= cMax ; column++) {
                        aColumn = cm.getColumn(column);
                        columnWidth = aColumn.getWidth();
                        cellRect.width = columnWidth;
                        if (aColumn != draggedColumn) {
                             paintCell(g, cellRect, column);
                        cellRect.x += columnWidth;
                  JButton test = new JButton("test");
                  test.addActionListener(new ActionListener(){
                        public void actionPerformed(ActionEvent e) {
                             System.out.println("pressed");
                  test.setBounds(2, 2, 60, 15);
                  rendererPane.add(test);  //why isn't this showing up?
                  //this line will display the button, but button doesn't work
    //          rendererPane.paintComponent(g, test, header, 2, 2, 60, 15);
              private Component getHeaderRenderer(int columnIndex) {
                   TableColumn aColumn = header.getColumnModel().getColumn(columnIndex);
                   TableCellRenderer renderer = aColumn.getHeaderRenderer();
                   if (renderer == null) renderer = header.getDefaultRenderer();
                   return renderer.getTableCellRendererComponent(header.getTable(),
                        aColumn.getHeaderValue(), false, false, -1, columnIndex);
              private void paintCell(Graphics g, Rectangle cellRect, int columnIndex) {
                   Component component = getHeaderRenderer(columnIndex);
                   rendererPane.paintComponent(g, component, header,
                        cellRect.x, cellRect.y + 30, cellRect.width,
                        cellRect.height - 30, true);
              public Dimension getPreferredSize(JComponent c) {
                   long width = 0;
                   Enumeration enumeration = header.getColumnModel().getColumns();
                   while (enumeration.hasMoreElements()) {
                        TableColumn aColumn = (TableColumn)enumeration.nextElement();
                        width = width + aColumn.getPreferredWidth();
                   return new Dimension((int)width, 60);
         public static void main(String[] args) {
              JFrame frame = new JFrame();
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.add(new HeaderButtonTable());
              frame.pack();
              frame.setVisible(true);
    }

    Yes, I've seen similar links/posts about how to activate buttons in the header of a table, but those do it by adding listeners to the renderer. My buttons would be directly in the CellRendererPane that is the container for the table header. I would have thought that by putting the button directly in the Cell RendererPane that it would have nothing to do with the rest of the table header. CellRendererPane extends Container. Is it not possible to put a JButton in a Container? JFrame extends indirectly from Container and you can add buttons to that.
    Edited by: Bob.B on Oct 28, 2009 10:57 PM

  • Add Button Column in IR

    Hi,
    I have created an Interactive report on a table. I want to add two buttons in each row: Accept and Reject, so that i can change the status(db column) of the corresponding record on button action.
    How can I do so?

    Hi poojaC,
    Try the below code,
    i am giving the idea to add buttons..may be this is not the way you want.
    step1
    -- put this code in report region
    select "ROWID",
    '<input type="button" value="Accept"  onclick="func('||EMPNO||')">'  as "Accept",
    '<input type="button" value="Reject"  onclick="func('||EMPNO||')">'  as "Reject",
    "EMPNO",
    "ENAME",
    "JOB",
    "MGR",
    "HIREDATE",
    "SAL",
    "COMM",
    "DEPTNO"
    from "#OWNER#"."EMP"
    -- edit the Accept and reject column and change Display type to "standard report column"Step 2 : create one function in page header like
    -- here you can execute your process on button action
    <script>
    function func(id)
    alert(id);
    </script>Hope this will give you some idea.
    Regards,
    Jitendra

  • Add button inactive in Match record step in Import manager

    Hello,
    In the Main table, I want to see the country data as 'US; United States' in country field.
    I have made both 'country code' and 'country description' as display fields in the country flat lookup table.
    When I load country code and country description from import manager from an excel file, the 'Add' button in Match records step is inactive for both the fields.
    How can I do the matching in import manager without sacrificing my requirement of showing country as 'US; United States' in main table ?
    Thanks,

    answer to this question is already available in forum.

  • Can we add button in query region  along with go and clear

    Hi Friends,
    i have a requirement as below steps-
    1)i have developed search pgae by using query regiion
    2) in pgae,first we have search items,go and clear(submit buttons), table region.
    3)here go and clear buttons came automatically.
    4) i can able to add button in front of the page and end of the page.
    4) my requirement is i need to add one more button along with go and clear(here go and clear button are in between search items and table region) .
    5)i am not able to add button along with go and clear.
    Can any one know how to do this--
    Thanks in Advance
    vamshi

    Hi Vamshi,
    You can not create extra buttons in Standard Query region.
    Alternatively you can create your custom region for the search and there you can add a button. If you don't need advanced region, you can create the custom region in place of standard one.
    Anoop

  • How to add button in reuse_alv not in gui status

    hi guys,
    my question how can i add button to reuse_alv not in gui_status or pf_status ? and also i have an internal table which contains a checkbox field when user select one or more check box and push button , new table will be sended to batch input program.how can i do add button part, the rest of it is done.?

    Hi,The following sample report ZUS_SDN_ALV_BUTTON_CLICK_LTXT shows a possible way how to handle the BUTTON_CLICK event in order to retrieve a longtext for a ALV entry. Please note that for the sake of simplicity I have choosen an obsolete function module for text editing (only enter numerical values otherwise the function module crashes).
    *& Report ZUS_SDN_ALV_BUTTON_CLICK_LTXT
    *& Screen '0100' contains no elements.
    *& ok_code -> assigned to GD_OKCODE
    *& Flow logic:
        * PROCESS BEFORE OUTPUT.
        * MODULE STATUS_0100.
        * PROCESS AFTER INPUT.
        * MODULE USER_COMMAND_0100.
    *& PURPOSE: Demonstrate event BUTTON_CLICK for entering long text
    REPORT zus_sdn_alv_button_click_ltxt.
    TYPE-POOLS: icon.
    TYPES: BEGIN OF ty_s_outtab.
    INCLUDE TYPE knb1.
    TYPES: button TYPE iconname.
    TYPES: line TYPE bapi_line.
    TYPES: END OF ty_s_outtab.
    TYPES: ty_t_outtab TYPE STANDARD TABLE OF ty_s_outtab
    WITH DEFAULT KEY.
    DATA:
    gd_okcode TYPE ui_func,
    gd_repid TYPE syst-repid,
    go_docking TYPE REF TO cl_gui_docking_container,
    go_grid TYPE REF TO cl_gui_alv_grid,
    gt_fcat TYPE lvc_t_fcat,
    gt_variant TYPE disvariant,
    gs_layout TYPE lvc_s_layo.
    DATA:
    gs_outtab TYPE ty_s_outtab,
    gt_outtab TYPE ty_t_outtab.
        * CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
    PUBLIC SECTION.
    CLASS-METHODS:
    handle_button_click FOR EVENT button_click OF cl_gui_alv_grid
    IMPORTING
    es_col_id
    es_row_no
    sender.
    ENDCLASS. "lcl_eventhandler DEFINITION
        * CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
    METHOD handle_button_click.
        * define local data
    DATA:
    ld_answer(1) TYPE c,
    ls_outtab TYPE ty_s_outtab.
    CHECK ( sender = go_grid ).
    READ TABLE gt_outtab INTO ls_outtab INDEX es_row_no-row_id.
    " Note: This function module is obsolete and crashes if
    " non-numerical values are entered. Choose a more
    " appropriate way of entering the longtext.
    CALL FUNCTION 'POPUP_TO_GET_VALUE'
    EXPORTING
    fieldname = 'LINE'
    tabname = 'BAPITGB'
    titel = 'Enter Longtext'
    valuein = ls_outtab-line
    IMPORTING
    answer = ld_answer
    valueout = ls_outtab-line
    EXCEPTIONS
    fieldname_not_found = 1
    OTHERS = 2.
    IF sy-subrc 0.
        * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    IF ( ld_answer NE 'C' ). " 'C' = cancel
    MODIFY gt_outtab FROM ls_outtab INDEX es_row_no-row_id
    TRANSPORTING line.
    ENDIF.
        * Triggers PAI of the dynpro with the specified ok-code
    CALL METHOD cl_gui_cfw=>set_new_ok_code( 'REFRESH' ).
    ENDMETHOD. "handle_button_click
    ENDCLASS. "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
    SELECT * FROM knb1
    INTO CORRESPONDING FIELDS OF TABLE gt_outtab
    WHERE bukrs = '1000'.
    CLEAR: gs_outtab.
    gs_outtab-button = icon_change_text.
    MODIFY gt_outtab FROM gs_outtab
    TRANSPORTING button LINE
    where ( bukrs NE space ). " modify all lines
    PERFORM build_fieldcatalog.
        * Create docking container
    CREATE OBJECT go_docking
    EXPORTING
    parent = cl_gui_container=>screen0
    ratio = 90
    EXCEPTIONS
    OTHERS = 6.
    IF sy-subrc 0.
        * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
        * Create ALV grids
    CREATE OBJECT go_grid
    EXPORTING
    i_parent = go_docking
    EXCEPTIONS
    OTHERS = 5.
    IF sy-subrc 0.
        * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
        * Set event handler
    SET HANDLER: lcl_eventhandler=>handle_button_click FOR go_grid.
        * Display data
    gs_layout-grid_title = 'Customers'.
    CALL METHOD go_grid->set_table_for_first_display
    EXPORTING
    is_layout = gs_layout
    CHANGING
    it_outtab = gt_outtab
    it_fieldcatalog = gt_fcat
    EXCEPTIONS
    OTHERS = 4.
    IF sy-subrc 0.
        * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
        * Link the docking container to the target dynpro
    gd_repid = syst-repid.
    CALL METHOD go_docking->link
    EXPORTING
    repid = gd_repid
    dynnr = '0100'
        * CONTAINER =
    EXCEPTIONS
    OTHERS = 4.
    IF sy-subrc 0.
        * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
        * NOTE: dynpro does not contain any elements
    CALL SCREEN '0100'.
        * Flow logic of dynpro (does not contain any dynpro elements):
    *PROCESS BEFORE OUTPUT.
        * MODULE STATUS_0100.
    *PROCESS AFTER INPUT.
        * MODULE USER_COMMAND_0100.
    END-OF-SELECTION.
    *& Module STATUS_0100 OUTPUT
        * text
    MODULE status_0100 OUTPUT.
    SET PF-STATUS 'STATUS_0100'. " contains push button "DETAIL"
        * SET TITLEBAR 'xxx'.
    CALL METHOD go_grid->refresh_table_display
        * EXPORTING
        * IS_STABLE =
        * I_SOFT_REFRESH =
        * EXCEPTIONS
        * FINISHED = 1
        * others = 2
    IF sy-subrc 0.
        * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDMODULE. " STATUS_0100 OUTPUT
    *& Module USER_COMMAND_0100 INPUT
        * text
    MODULE user_command_0100 INPUT.
    CASE gd_okcode.
    WHEN 'BACK' OR
    'END' OR
    'CANC'.
    SET SCREEN 0. LEAVE SCREEN.
        * Refresh -> pass PAI and PBO where flushing occurs
    WHEN 'REFRESH'.
    WHEN OTHERS.
    ENDCASE.
    CLEAR: gd_okcode.
    ENDMODULE. " USER_COMMAND_0100 INPUT
    *& Form BUILD_FIELDCATALOG
        * text
        * --> p1 text
        * <-- p2 text
    FORM build_fieldcatalog .
        * define local data
    DATA:
    ls_fcat TYPE lvc_s_fcat,
    lt_fcat TYPE lvc_t_fcat.
    REFRESH: gt_fcat.
    CLEAR: lt_fcat.
    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
    i_structure_name = 'KNB1'
    CHANGING
    ct_fieldcat = lt_fcat
    EXCEPTIONS
    OTHERS = 99.
    IF sy-subrc 0.
        * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    APPEND LINES OF lt_fcat TO gt_fcat.
    CLEAR: lt_fcat.
    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
    i_structure_name = 'BAPITGB'
    CHANGING
    ct_fieldcat = lt_fcat
    EXCEPTIONS
    OTHERS = 99.
    IF sy-subrc 0.
        * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    READ TABLE lt_fcat INTO ls_fcat
    WITH KEY fieldname = 'LINE'.
    IF ( syst-subrc = 0 ).
    INSERT ls_fcat INTO gt_fcat INDEX 4.
    ENDIF.
    CLEAR: lt_fcat.
    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
    i_structure_name = 'ICON'
    CHANGING
    ct_fieldcat = lt_fcat
    EXCEPTIONS
    OTHERS = 99.
    IF sy-subrc 0.
        * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    READ TABLE lt_fcat INTO ls_fcat
    WITH KEY fieldname = 'NAME'.
    IF ( syst-subrc = 0 ).
    ls_fcat-fieldname = 'BUTTON'.
    ls_fcat-style = cl_gui_alv_grid=>mc_style_button.
    INSERT ls_fcat INTO gt_fcat INDEX 4.
    ENDIF.
    LOOP AT gt_fcat INTO ls_fcat.
    ls_fcat-col_pos = syst-tabix.
    MODIFY gt_fcat FROM ls_fcat INDEX syst-tabix.
    ENDLOOP.
    ENDFORM. " BUILD_FIELDCATALOG[/code]
    Reward If Found Useful.

  • Set Rendered on a 'Add' button to False has caused HTTP 400 error

    Hi,
    I am trying to personalise in Manager SS a custom version of seeded 'Documents of Record' function HR_DOR_SS to make the Add Record button non-display on the Documents of Record table. I changed Rendered to False, got the 'Setting this item to false may hide this item and its children' message but went ahead and did it anyway.
    Outcome is that I can see the records in the table but can no longer view, update or delete existing records. I get a http 400 bad request page. I changed the 'Add' button back to Rendered True, but problem persists. Get the error also when I try to create a new record using the now re-instated button. Imported the personalization from another environment where it's working fine, bounced apache, clear cache etc and still problem persists.
    Also if no record exists for employee, Add button works fine and I can create a record but from that point on cannot do anything with it.
    Any help v much appreciated.
    Thx

    Yes, I've seen similar links/posts about how to activate buttons in the header of a table, but those do it by adding listeners to the renderer. My buttons would be directly in the CellRendererPane that is the container for the table header. I would have thought that by putting the button directly in the Cell RendererPane that it would have nothing to do with the rest of the table header. CellRendererPane extends Container. Is it not possible to put a JButton in a Container? JFrame extends indirectly from Container and you can add buttons to that.
    Edited by: Bob.B on Oct 28, 2009 10:57 PM

Maybe you are looking for

  • Sender JMS Adapter does not work

    Hi all, We have created a sender JMS adapter with transport protocol "Access JMS Provider with JNDI". The adapter connects to destination successfully, so the connection parameters are right. However, we do not receive any message when the sender sen

  • Tif export quality loss

    hi, i exported a tif sequence from a mp4 in premiere (cs6) to do some compositing on it. the exported images look the same but when doing some color correction on it the tif sequence reveals that it's in lower quality. the left side is the tif export

  • Replacing alias names

    Hello All, My oracle version is 11g mounted on a linux box. I have a table with set of select queries inserted as CLOB with in it. They are queries extracted from dba sources with plsql variables in the query. I have to generate explain plan for each

  • How I can call controller's functions from another component?

    Hi again! I make a few web Dynpro components, for example first for user-data processing, second - for project-data processing. In the controller of 1-st controller there is a function getUserById(). In the controller of 2-nd component I need such fu

  • Align Image and Text Problem

    I have DW CS4 and Windows XP with plenty of memory and have used this method before to align text with an image.  I insert the image on the page and then type in the text beside the image that I want.  If the text is long, then the second line of tex