User:CTI
From ADempiere
This Wiki is read-only for reference purposes to avoid broken links.
Contents
Preface
- This Contributions can make possible to save columns GRIDS.
- Instructions are in Spanish but is easily to translate or understand,just 3 classes need for modify a table
- Crear la columna:isColumnViewControl en AdColumn tipo Si/No defaultd ='Y'
- "ISCOLUMNVIEWCONTROL" CHAR(1 BYTE) DEFAULT 'Y' NOT NULL ENABLE,
Modificar las siguientes clases
client > src > org > compiere > grid VTable.java
+ private final static String SAVE_ALL_COMMAND = CColumnControlButton.COLUMN_CONTROL_MARKER + "saveAll"; + private int AD_Table_ID=0; + private GridTab m_mTab = null; // Modificar lo Siguiente public VTable() { super(); setAutoscrolls(true); putClientProperty("terminateEditOnFocusLost", Boolean.TRUE); new VTableExcelAdapter(this); // teo_sarca - FR [ 1753943 ] getActionMap().put(PACK_ALL_COMMAND, createPackAllAction()); ++ getActionMap().put(SAVE_ALL_COMMAND, createSaveColumnDisplay()); } // Crear o agregar estas funciones: private Action createSaveColumnDisplay() { //TODO: localization BoundAction action = new BoundAction("Guardar Seleccion", SAVE_ALL_COMMAND); action.setLongDescription("Guardar Seleccion de Columnas"); action.registerCallback(this, "SaveAll"); return action; } public void SaveAll() { SaveAllColumnView(); } public void SetTable_ID( int i_AD_Table_ID) { AD_Table_ID=i_AD_Table_ID; } public int GetTable_ID() { return AD_Table_ID; } public void SetmTab(GridTab mTab) { m_mTab=mTab; } public GridTab GetmTab() { return m_mTab; } public void SetColVisibleOff() // columnas ocultas { String SQL = "SELECT * FROM AD_Column WHERE AD_Table_ID =" + AD_Table_ID +" and IsActive='Y' and isColumnViewControl='N'"; int size = GetmTab().getFieldCount (); try { PreparedStatement pstmt = DB.prepareStatement(SQL, "AD_Column"); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { for (int i = 0; i < size; i++) { GridField mField = GetmTab().getField (i); if(mField.getAD_Column_ID()==rs.getInt("Ad_Column_ID")) { TableColumn column = null; column = getColumn(rs.getString("columnname")); setColumnVisibility(column, false); break; } } } rs.close(); pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } public void SaveAllColumnView() { SetOnColumnViewSelect(AD_Table_ID); for(int hCol=0;hCol<=gethiddenColumns().size()-1;hCol++) { TableColumn column = null; column= gethiddenColumns().get(hCol); SetOffColumnViewSelect(column); } } private void SetOffColumnViewSelect(TableColumn column) // + Graba seleccion { int size = GetmTab().getFieldCount (); for (int i = 0; i < size; i++) { GridField mField = GetmTab().getField (i); if(mField.getHeader().toString().equalsIgnoreCase(column.getHeaderValue().toString())) { String sqlUpdate="Update AD_Column set isColumnViewControl='N' WHERE AD_Table_ID = "+ AD_Table_ID+ " and AD_Column_ID="+mField.getAD_Column_ID(); int updated2 = DB.executeUpdate(sqlUpdate, null); break; } } } private void SetOnColumnViewSelect(int iTable_id) { String sqlUpdate = ""; sqlUpdate="Update AD_Column set isColumnViewControl='Y' WHERE AD_Table_ID = "+iTable_id ; int updated1 = DB.executeUpdate(sqlUpdate, null); }
base > src > org > compiere > swing > CTable.java
public List<TableColumn> gethiddenColumns() { // "*isColumnViewControl" return hiddenColumns; }
client > src > org > compiere > grid GridController.java
private void init() { // Set up Multi Row Table vTable.setModel(m_mTab.getTableModel()); // Update Table Info ------------------------------------------------- + vTable.SetTable_ID(m_mTab.getAD_Table_ID()); + vTable.SetmTab(m_mTab); + vTable.SetColVisibleOff(); // Futuramente preguntar por mTab control Columna int size = setupVTable (m_aPanel, m_mTab, vTable); } } // GridController