Difference between revisions of "User:CTI"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
m
m
Line 13: Line 13:
 
   
 
   
  
*[[ Grabar en DB las columnas del CCommnadControl en GridControler asociado a un CTable en la vista por muti Filas.]]
+
*[[Crear la columna:isColumnViewControl en AdColumn tipo Si/No defaultd ='Y']]
 +
*[["ISCOLUMNVIEWCONTROL" CHAR(1 BYTE) DEFAULT 'Y' NOT NULL ENABLE, ]]
  
*[[1.- DB. Crear un campo en la Tabla AD_Column Tipo Char(1) Nombre isMultiRow]]
 
*[[2.- Actualizar los campos en la Ventana de Tablas y Columnas, Tab Columnas, ya que se puede configurar tambien en el momento ]]
 
*[[    de diseño de la tabla.]]
 
  
 
[[File:cti2.gif]]
 
[[File:cti2.gif]]
Line 23: Line 21:
  
  
'''Modificar las siguientes clase.'''  
+
'''Modificar las siguientes clases'''  
  
 
=  client > src > org > compiere > grid  VTable.java =
 
=  client > src > org > compiere > grid  VTable.java =
  
<pre>**
+
<pre>
* Table Grid based on CTable.
+
 
* Used in GridController
+
*
+
* @author  Jorg Janke
+
* @version $Id: VTable.java,v 1.2 2006/07/30 00:51:28 jjanke Exp $
+
*
+
* @author Teo Sarca, SC ARHIPAC SERVICE SRL - FR [ 1753943 ]
+
*/
+
public final class VTable extends CTable  implements PropertyChangeListener
+
{
+
/**
+
 
+ private final static String SAVE_ALL_COMMAND = CColumnControlButton.COLUMN_CONTROL_MARKER + "saveAll";
 
+ private final static String SAVE_ALL_COMMAND = CColumnControlButton.COLUMN_CONTROL_MARKER + "saveAll";
+ private int pTabla_Id=0;
+
+ private int AD_Table_ID=0;
+ private GridTab m_mTab = null;
+
+ private GridTab m_mTab = null;
/**
+
 
* Default Constructor
+
 
*/
+
// Modificar lo Siguiente
public VTable()
+
 
 +
public VTable()
 
{
 
{
 
super();
 
super();
Line 51: Line 40:
 
putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
 
putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
 
new VTableExcelAdapter(this); // teo_sarca - FR [ 1753943 ]
 
new VTableExcelAdapter(this); // teo_sarca - FR [ 1753943 ]
 
 
getActionMap().put(PACK_ALL_COMMAND, createPackAllAction());
 
getActionMap().put(PACK_ALL_COMMAND, createPackAllAction());
+ getActionMap().put(SAVE_ALL_COMMAND, createSaveColumnDisplay());
+
    ++ getActionMap().put(SAVE_ALL_COMMAND, createSaveColumnDisplay());
+
      }
} // VTable
+
  
/**
 
* Save all column
 
*/
 
+ public void SaveAll()  S
 
+ {
 
+ SaveAll(this);
 
+ }
 
  
+ public void pAsgTable_id( int iValor_Id)
+
// Crear o agregar estas funciones:
+ {
+
private Action createSaveColumnDisplay()
+ pTabla_Id=iValor_Id;
+
{
+ }
+
//TODO: localization
+ public int pTabla_id()
+
BoundAction action = new BoundAction("Guardar Seleccion", SAVE_ALL_COMMAND);
+ {
+
action.setLongDescription("Guardar Seleccion de Columnas");
+ return pTabla_Id;
+
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 void pSet_mTab(GridTab mTab)
+
public GridTab GetmTab()
+ {
+
{
+ m_mTab=mTab;
+
return m_mTab;
+ }
+
}
+
    public void SetColVisibleOff() // columnas ocultas
+ public GridTab pGet_mTab()
+
    {
+ {
+
+ return m_mTab;
+
+ }
+
+      public void SetColVisible(VTable la_tabla)  
+
        {
+
+ String SQL = "SELECT * FROM AD_Column WHERE AD_Table_ID =" +la_tabla.pTabla_id() +" and IsActive='Y' and isMultiRow='N'";
+
+    int size = la_tabla.pGet_mTab().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 = la_tabla.pGet_mTab().getField (i);
+
+ if(mField.getAD_Column_ID()==rs.getInt("Ad_Column_ID"))
+
+ {
+
+ TableColumn column = null;
+
+ column = la_tabla.getColumn(rs.getString("columnname"));
+
+         setColumnVisibility(column, false);
+
+     break;
+
+ }
+
+ }
+
+ }
+
+ rs.close();
+
+ pstmt.close();
+
+ }
+
+ catch (SQLException e)
+
+ {
+
+ e.printStackTrace();
+
+ }
+
+ la_tabla.configureEnclosingScrollPane();
+
+  }
+
  
+   public void SaveAll(VTable la_tabla)
+
    String SQL = "SELECT * FROM AD_Column WHERE AD_Table_ID =" + AD_Table_ID +"  and IsActive='Y' and isColumnViewControl='N'";
+    {
+
    int size = GetmTab().getFieldCount ();
+ pActiva_todo(la_tabla.pTabla_id());
+
try
for(int hCol=0;hCol<=gethiddenColumns().size()-1;hCol++)
+
{
+    {
+
PreparedStatement pstmt = DB.prepareStatement(SQL, "AD_Column");
+    TableColumn column = null;
+
ResultSet rs = pstmt.executeQuery();
+    column= gethiddenColumns().get(hCol);
+
while (rs.next())
+         pOculta_Seleccion(column, la_tabla);
+
{
+    }
+
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);
 +
   
 +
    }
  
+  private void pOculta_Seleccion(TableColumn column, VTable la_tabla)  // + Graba seleccion
 
+  {
 
+    int size = la_tabla.pGet_mTab().getFieldCount ();
 
+ for (int i = 0; i < size; i++)
 
+   {
 
+ GridField mField = la_tabla.pGet_mTab().getField (i);
 
+ if(mField.getHeader().toString().equalsIgnoreCase(column.getHeaderValue().toString()))
 
+ {
 
+           String sqlUpdate="Update AD_Column set isMultiRow='N'  WHERE AD_Table_ID = "+ la_tabla.pTabla_id()+ "  and + + AD_Column_ID="+mField.getAD_Column_ID();
 
+            int updated2 = DB.executeUpdate(sqlUpdate, null);
 
+          break;
 
+ }
 
+   }
 
+  }
 
 
 
+  private void pActiva_todo(int iTable_id)
 
+    {
 
+    String sqlUpdate = "";
 
+  sqlUpdate="Update AD_Column set isMultiRow='Y' WHERE AD_Table_ID =  "+iTable_id ;
 
+ int updated1 = DB.executeUpdate(sqlUpdate, null);
 
+   
 
+    }
 
} // VTable
 
 
</pre>
 
</pre>
  
 
=base > src > org > compiere > swing > CTable.java  =
 
=base > src > org > compiere > swing > CTable.java  =
 
<pre>
 
<pre>
* Model Independent enhanced JTable.
 
* Provides sizing and sorting.
 
*
 
* @author Jorg Janke
 
* @version $Id: CTable.java,v 1.2 2006/07/30 00:52:24 jjanke Exp $
 
*
 
* @author Teo Sarca, SC ARHIPAC SERVICE SRL - BF [ 1585369 ], FR [ 1753943 ]
 
*/
 
+++++ '''Crear esta funcion'''
 
  
public class CTable extends JTable
+
  public List<TableColumn> gethiddenColumns() { // "*isColumnViewControl"
{
+
return hiddenColumns;
+    public List<TableColumn> gethiddenColumns() {
+
}
+ return hiddenColumns;
+
 
+ }
+
+    {
+
+    }
+
} // CTable
+
 
</pre>
 
</pre>
 
 
 
  
  
Line 187: Line 162:
 
vTable.setModel(m_mTab.getTableModel());
 
vTable.setModel(m_mTab.getTableModel());
 
//  Update Table Info -------------------------------------------------
 
//  Update Table Info -------------------------------------------------
+ vTable.pAsgTable_id(m_mTab.getAD_Table_ID());
+
 
+ vTable.pSet_mTab(m_mTab);
+
+ vTable.SetTable_ID(m_mTab.getAD_Table_ID());
+ vTable.SetColVisible(vTable);
+
+ vTable.SetmTab(m_mTab);
 +
+ vTable.SetColVisibleOff(); // Futuramente preguntar por mTab control Columna
 +
 
 
int size = setupVTable (m_aPanel, m_mTab, vTable);
 
int size = setupVTable (m_aPanel, m_mTab, vTable);
  

Revision as of 21:32, 14 August 2010

Under construction.gif This page is incomplete.

Please help adding more relavant content to the page. Create a user account in Adempiere wiki today. You can click on the edit button and start fixing the content.

Cti1.gif

Preface



Cti2.gif


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