IDEMPIERE-1970 Improve t_selection logic for info window / change viewID to point to an info column instead of a column
This commit is contained in:
parent
ddd8c6f6ec
commit
f021e8f5f1
|
@ -0,0 +1,37 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
update ad_infoprocess set ad_column_id=null where ad_column_id is not null;
|
||||||
|
|
||||||
|
ALTER TABLE AD_INFOPROCESS RENAME COLUMN AD_COLUMN_ID TO AD_INFOCOLUMN_ID;
|
||||||
|
|
||||||
|
ALTER TABLE AD_INFOPROCESS DROP CONSTRAINT ADCOLUMN_ADINFOPROCESS;
|
||||||
|
|
||||||
|
-- Sep 5, 2014 5:40:41 PM COT
|
||||||
|
-- IDEMPIERE-1970 Improve t_selection logic for info window
|
||||||
|
INSERT INTO AD_Val_Rule (Code,AD_Val_Rule_ID,EntityType,Name,Type,AD_Val_Rule_UU,CreatedBy,UpdatedBy,Updated,AD_Org_ID,IsActive,AD_Client_ID,Created) VALUES ('AD_InfoColumn.AD_InfoWindow_ID=@AD_InfoWindow_ID@',200065,'D','AD_InfoColumn from Info Window','S','010f3e1f-dd6c-48c7-8fe1-945e0a2482a2',100,100,TO_DATE('2014-09-05 17:40:37','YYYY-MM-DD HH24:MI:SS'),0,'Y',0,TO_DATE('2014-09-05 17:40:37','YYYY-MM-DD HH24:MI:SS'))
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Sep 5, 2014 5:40:55 PM COT
|
||||||
|
UPDATE AD_Column SET FieldLength=10, IsUpdateable='N', ColumnName='AD_InfoColumn_ID', Description='Info Window Column', Help='Column in the Info Window for display and/or selection. If used for selection, the column cannot be a SQL expression. The SQL clause must be fully qualified based on the FROM clause in the Info Window definition', Name='Info Column', FKConstraintName=NULL, AD_Element_ID=3069, AD_Val_Rule_ID=200065,Updated=TO_DATE('2014-09-05 17:40:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=211377
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Sep 5, 2014 5:41:00 PM COT
|
||||||
|
UPDATE AD_Column SET FKConstraintName='ADInfoColumn_ADInfoProcess', FKConstraintType='N',Updated=TO_DATE('2014-09-05 17:41:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=211377
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Sep 5, 2014 5:41:00 PM COT
|
||||||
|
ALTER TABLE AD_InfoProcess MODIFY AD_InfoColumn_ID NUMBER(10) DEFAULT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Sep 5, 2014 5:41:00 PM COT
|
||||||
|
ALTER TABLE AD_InfoProcess ADD CONSTRAINT ADInfoColumn_ADInfoProcess FOREIGN KEY (AD_InfoColumn_ID) REFERENCES ad_infocolumn(ad_infocolumn_id) DEFERRABLE INITIALLY DEFERRED
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Sep 5, 2014 5:44:01 PM COT
|
||||||
|
UPDATE AD_Column SET IsUpdateable='Y',Updated=TO_DATE('2014-09-05 17:44:01','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=211377
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201409051741_IDEMPIERE-1970.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
update ad_infoprocess set ad_column_id=null where ad_column_id is not null;
|
||||||
|
|
||||||
|
ALTER TABLE ad_infoprocess RENAME ad_column_id TO ad_infocolumn_id;
|
||||||
|
|
||||||
|
ALTER TABLE ad_infoprocess DROP CONSTRAINT adcolumn_adinfoprocess CASCADE;
|
||||||
|
|
||||||
|
-- Sep 5, 2014 5:40:41 PM COT
|
||||||
|
-- IDEMPIERE-1970 Improve t_selection logic for info window
|
||||||
|
INSERT INTO AD_Val_Rule (Code,AD_Val_Rule_ID,EntityType,Name,Type,AD_Val_Rule_UU,CreatedBy,UpdatedBy,Updated,AD_Org_ID,IsActive,AD_Client_ID,Created) VALUES ('AD_InfoColumn.AD_InfoWindow_ID=@AD_InfoWindow_ID@',200065,'D','AD_InfoColumn from Info Window','S','010f3e1f-dd6c-48c7-8fe1-945e0a2482a2',100,100,TO_TIMESTAMP('2014-09-05 17:40:37','YYYY-MM-DD HH24:MI:SS'),0,'Y',0,TO_TIMESTAMP('2014-09-05 17:40:37','YYYY-MM-DD HH24:MI:SS'))
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Sep 5, 2014 5:40:55 PM COT
|
||||||
|
UPDATE AD_Column SET FieldLength=10, IsUpdateable='N', ColumnName='AD_InfoColumn_ID', Description='Info Window Column', Help='Column in the Info Window for display and/or selection. If used for selection, the column cannot be a SQL expression. The SQL clause must be fully qualified based on the FROM clause in the Info Window definition', Name='Info Column', FKConstraintName=NULL, AD_Element_ID=3069, AD_Val_Rule_ID=200065,Updated=TO_TIMESTAMP('2014-09-05 17:40:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=211377
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Sep 5, 2014 5:41:00 PM COT
|
||||||
|
UPDATE AD_Column SET FKConstraintName='ADInfoColumn_ADInfoProcess', FKConstraintType='N',Updated=TO_TIMESTAMP('2014-09-05 17:41:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=211377
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Sep 5, 2014 5:41:00 PM COT
|
||||||
|
INSERT INTO t_alter_column values('ad_infoprocess','AD_InfoColumn_ID','NUMERIC(10)',null,'NULL')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Sep 5, 2014 5:41:00 PM COT
|
||||||
|
ALTER TABLE AD_InfoProcess ADD CONSTRAINT ADInfoColumn_ADInfoProcess FOREIGN KEY (AD_InfoColumn_ID) REFERENCES ad_infocolumn(ad_infocolumn_id) DEFERRABLE INITIALLY DEFERRED
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Sep 5, 2014 5:44:01 PM COT
|
||||||
|
UPDATE AD_Column SET IsUpdateable='Y',Updated=TO_TIMESTAMP('2014-09-05 17:44:01','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=211377
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201409051741_IDEMPIERE-1970.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -16,7 +16,7 @@ package org.adempiere.model;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import org.compiere.model.MColumn;
|
|
||||||
import org.compiere.model.MProcess;
|
import org.compiere.model.MProcess;
|
||||||
import org.compiere.model.X_AD_InfoProcess;
|
import org.compiere.model.X_AD_InfoProcess;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
@ -33,7 +33,7 @@ public class MInfoProcess extends X_AD_InfoProcess {
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -2167041563372362436L;
|
private static final long serialVersionUID = 2478699719088685214L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
|
@ -89,25 +89,4 @@ public class MInfoProcess extends X_AD_InfoProcess {
|
||||||
return retValue;
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* name of column define is ViewID
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public String getViewIDName (){
|
|
||||||
// no column define
|
|
||||||
if (getAD_Column_ID() == 0)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
// return cache value
|
|
||||||
if (m_viewIDName != null)
|
|
||||||
return m_viewIDName;
|
|
||||||
|
|
||||||
MColumn viewIDColumn = (MColumn)getAD_Column();
|
|
||||||
if (viewIDColumn != null){
|
|
||||||
return viewIDColumn.getColumnName();
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,20 +49,20 @@ public interface I_AD_InfoProcess
|
||||||
*/
|
*/
|
||||||
public int getAD_Client_ID();
|
public int getAD_Client_ID();
|
||||||
|
|
||||||
/** Column name AD_Column_ID */
|
/** Column name AD_InfoColumn_ID */
|
||||||
public static final String COLUMNNAME_AD_Column_ID = "AD_Column_ID";
|
public static final String COLUMNNAME_AD_InfoColumn_ID = "AD_InfoColumn_ID";
|
||||||
|
|
||||||
/** Set ViewID Column.
|
/** Set Info Column.
|
||||||
* Name of unique column in a view. value of this column will save to t_selection table
|
* Info Window Column
|
||||||
*/
|
*/
|
||||||
public void setAD_Column_ID (int AD_Column_ID);
|
public void setAD_InfoColumn_ID (int AD_InfoColumn_ID);
|
||||||
|
|
||||||
/** Get ViewID Column.
|
/** Get Info Column.
|
||||||
* Name of unique column in a view. value of this column will save to t_selection table
|
* Info Window Column
|
||||||
*/
|
*/
|
||||||
public int getAD_Column_ID();
|
public int getAD_InfoColumn_ID();
|
||||||
|
|
||||||
public org.compiere.model.I_AD_Column getAD_Column() throws RuntimeException;
|
public org.compiere.model.I_AD_InfoColumn getAD_InfoColumn() throws RuntimeException;
|
||||||
|
|
||||||
/** Column name AD_InfoProcess_ID */
|
/** Column name AD_InfoProcess_ID */
|
||||||
public static final String COLUMNNAME_AD_InfoProcess_ID = "AD_InfoProcess_ID";
|
public static final String COLUMNNAME_AD_InfoProcess_ID = "AD_InfoProcess_ID";
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class X_AD_InfoProcess extends PO implements I_AD_InfoProcess, I_Persiste
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 20140606L;
|
private static final long serialVersionUID = 20140905L;
|
||||||
|
|
||||||
/** Standard Constructor */
|
/** Standard Constructor */
|
||||||
public X_AD_InfoProcess (Properties ctx, int AD_InfoProcess_ID, String trxName)
|
public X_AD_InfoProcess (Properties ctx, int AD_InfoProcess_ID, String trxName)
|
||||||
|
@ -76,29 +76,29 @@ public class X_AD_InfoProcess extends PO implements I_AD_InfoProcess, I_Persiste
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public org.compiere.model.I_AD_Column getAD_Column() throws RuntimeException
|
public org.compiere.model.I_AD_InfoColumn getAD_InfoColumn() throws RuntimeException
|
||||||
{
|
{
|
||||||
return (org.compiere.model.I_AD_Column)MTable.get(getCtx(), org.compiere.model.I_AD_Column.Table_Name)
|
return (org.compiere.model.I_AD_InfoColumn)MTable.get(getCtx(), org.compiere.model.I_AD_InfoColumn.Table_Name)
|
||||||
.getPO(getAD_Column_ID(), get_TrxName()); }
|
.getPO(getAD_InfoColumn_ID(), get_TrxName()); }
|
||||||
|
|
||||||
/** Set ViewID Column.
|
/** Set Info Column.
|
||||||
@param AD_Column_ID
|
@param AD_InfoColumn_ID
|
||||||
Name of unique column in a view. value of this column will save to t_selection table
|
Info Window Column
|
||||||
*/
|
*/
|
||||||
public void setAD_Column_ID (int AD_Column_ID)
|
public void setAD_InfoColumn_ID (int AD_InfoColumn_ID)
|
||||||
{
|
{
|
||||||
if (AD_Column_ID < 1)
|
if (AD_InfoColumn_ID < 1)
|
||||||
set_Value (COLUMNNAME_AD_Column_ID, null);
|
set_Value (COLUMNNAME_AD_InfoColumn_ID, null);
|
||||||
else
|
else
|
||||||
set_Value (COLUMNNAME_AD_Column_ID, Integer.valueOf(AD_Column_ID));
|
set_Value (COLUMNNAME_AD_InfoColumn_ID, Integer.valueOf(AD_InfoColumn_ID));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get ViewID Column.
|
/** Get Info Column.
|
||||||
@return Name of unique column in a view. value of this column will save to t_selection table
|
@return Info Window Column
|
||||||
*/
|
*/
|
||||||
public int getAD_Column_ID ()
|
public int getAD_InfoColumn_ID ()
|
||||||
{
|
{
|
||||||
Integer ii = (Integer)get_Value(COLUMNNAME_AD_Column_ID);
|
Integer ii = (Integer)get_Value(COLUMNNAME_AD_InfoColumn_ID);
|
||||||
if (ii == null)
|
if (ii == null)
|
||||||
return 0;
|
return 0;
|
||||||
return ii.intValue();
|
return ii.intValue();
|
||||||
|
|
|
@ -612,12 +612,15 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
if (infoColumn.isDisplayed(infoContext, p_WindowNo))
|
if (infoColumn.isDisplayed(infoContext, p_WindowNo))
|
||||||
{
|
{
|
||||||
ColumnInfo columnInfo = null;
|
ColumnInfo columnInfo = null;
|
||||||
|
String colSQL = infoColumn.getSelectClause();
|
||||||
|
if (! colSQL.toUpperCase().contains(" AS "))
|
||||||
|
colSQL += " AS " + infoColumn.getColumnName();
|
||||||
if (infoColumn.getAD_Reference_ID() == DisplayType.ID)
|
if (infoColumn.getAD_Reference_ID() == DisplayType.ID)
|
||||||
{
|
{
|
||||||
if (infoColumn.getSelectClause().equalsIgnoreCase(keySelectClause))
|
if (infoColumn.getSelectClause().equalsIgnoreCase(keySelectClause))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), infoColumn.getSelectClause(), DisplayType.getClass(infoColumn.getAD_Reference_ID(), true));
|
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), colSQL, DisplayType.getClass(infoColumn.getAD_Reference_ID(), true));
|
||||||
}
|
}
|
||||||
else if (DisplayType.isLookup(infoColumn.getAD_Reference_ID()))
|
else if (DisplayType.isLookup(infoColumn.getAD_Reference_ID()))
|
||||||
{
|
{
|
||||||
|
@ -627,8 +630,8 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
editor = WebEditorFactory.getEditor(gridFields.get(i), true);
|
editor = WebEditorFactory.getEditor(gridFields.get(i), true);
|
||||||
editor.setMandatory(false);
|
editor.setMandatory(false);
|
||||||
editor.setReadWrite(false);
|
editor.setReadWrite(false);
|
||||||
editorMap.put(infoColumn.getSelectClause(), editor);
|
editorMap.put(colSQL, editor);
|
||||||
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), infoColumn.getSelectClause(), ValueNamePair.class, (String)null);
|
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), colSQL, ValueNamePair.class, (String)null);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -637,7 +640,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), infoColumn.getSelectClause(), DisplayType.getClass(infoColumn.getAD_Reference_ID(), true));
|
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), colSQL, DisplayType.getClass(infoColumn.getAD_Reference_ID(), true));
|
||||||
}
|
}
|
||||||
columnInfo.setColDescription(infoColumn.get_Translation("Description"));
|
columnInfo.setColDescription(infoColumn.get_Translation("Description"));
|
||||||
columnInfo.setGridField(gridFields.get(i));
|
columnInfo.setGridField(gridFields.get(i));
|
||||||
|
@ -681,9 +684,12 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
editor = WebEditorFactory.getEditor(gridField, true);
|
editor = WebEditorFactory.getEditor(gridField, true);
|
||||||
editor.setMandatory(false);
|
editor.setMandatory(false);
|
||||||
editor.setReadWrite(false);
|
editor.setReadWrite(false);
|
||||||
editorMap.put(infoColumn.getSelectClause(), editor);
|
|
||||||
|
|
||||||
ColumnInfo columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), infoColumn.getSelectClause(), KeyNamePair.class, (String)null);
|
String colSQL = infoColumn.getSelectClause();
|
||||||
|
if (! colSQL.toUpperCase().contains(" AS "))
|
||||||
|
colSQL += " AS " + infoColumn.getColumnName();
|
||||||
|
editorMap.put(colSQL, editor);
|
||||||
|
ColumnInfo columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), colSQL, KeyNamePair.class, (String)null);
|
||||||
return columnInfo;
|
return columnInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -916,7 +922,6 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
String fromClause = m_sqlMain.substring(fromIndex);
|
String fromClause = m_sqlMain.substring(fromIndex);
|
||||||
|
|
||||||
// get alias of main table
|
// get alias of main table
|
||||||
String alias = getTableName();
|
|
||||||
StringBuilder sqlBuilder = new StringBuilder(selectClause);
|
StringBuilder sqlBuilder = new StringBuilder(selectClause);
|
||||||
|
|
||||||
// reset flag relate viewID to recount
|
// reset flag relate viewID to recount
|
||||||
|
@ -925,29 +930,25 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
|
|
||||||
// add View_ID column to select clause
|
// add View_ID column to select clause
|
||||||
for (MInfoProcess infoProcess : infoProcessList) {
|
for (MInfoProcess infoProcess : infoProcessList) {
|
||||||
String columnInQuery = infoProcess.getViewIDName();
|
|
||||||
// this process hasn't viewID column, next other infoProcess
|
// this process hasn't viewID column, next other infoProcess
|
||||||
if (columnInQuery == null)
|
if (infoProcess.getAD_InfoColumn_ID() <= 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// add alias of main table to column
|
MInfoColumn infocol = (MInfoColumn) infoProcess.getAD_InfoColumn();
|
||||||
columnInQuery = alias + "." + columnInQuery;
|
|
||||||
|
|
||||||
// maintain varial relate to ViewID, it can init just one time when load infoWindow define
|
// maintain varial relate to ViewID, it can init just one time when load infoWindow define
|
||||||
// but let it here for simple logic control
|
// but let it here for simple logic control
|
||||||
numOfViewID++;
|
numOfViewID++;
|
||||||
isHasViewID = true;
|
isHasViewID = true;
|
||||||
|
|
||||||
// if query is include this viewID column, not need add
|
if (! infocol.isDisplayed()) {
|
||||||
if (sqlBuilder.toString().toLowerCase().contains(columnInQuery.toLowerCase())){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// add column to SELECT clause of main sql
|
// add column to SELECT clause of main sql
|
||||||
sqlBuilder.append(", ");
|
sqlBuilder.append(", ");
|
||||||
sqlBuilder.append (columnInQuery);
|
sqlBuilder.append (infocol.getSelectClause());
|
||||||
|
sqlBuilder.append(" AS ");
|
||||||
|
sqlBuilder.append (infocol.getColumnName());
|
||||||
sqlBuilder.append(" ");
|
sqlBuilder.append(" ");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sqlBuilder.append(fromClause);
|
sqlBuilder.append(fromClause);
|
||||||
// update main sql
|
// update main sql
|
||||||
|
@ -1594,12 +1595,15 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
if (infoColumn.isDisplayed(infoContext, p_WindowNo))
|
if (infoColumn.isDisplayed(infoContext, p_WindowNo))
|
||||||
{
|
{
|
||||||
ColumnInfo columnInfo = null;
|
ColumnInfo columnInfo = null;
|
||||||
|
String colSQL = infoColumn.getSelectClause();
|
||||||
|
if (! colSQL.toUpperCase().contains(" AS "))
|
||||||
|
colSQL += " AS " + infoColumn.getColumnName();
|
||||||
if (infoColumn.getAD_Reference_ID() == DisplayType.ID)
|
if (infoColumn.getAD_Reference_ID() == DisplayType.ID)
|
||||||
{
|
{
|
||||||
if (infoColumn.getSelectClause().equalsIgnoreCase(keySelectClause))
|
if (infoColumn.getSelectClause().equalsIgnoreCase(keySelectClause))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), infoColumn.getSelectClause(), DisplayType.getClass(infoColumn.getAD_Reference_ID(), true));
|
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), colSQL, DisplayType.getClass(infoColumn.getAD_Reference_ID(), true));
|
||||||
}
|
}
|
||||||
else if (DisplayType.isLookup(infoColumn.getAD_Reference_ID()))
|
else if (DisplayType.isLookup(infoColumn.getAD_Reference_ID()))
|
||||||
{
|
{
|
||||||
|
@ -1609,8 +1613,8 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
editor = WebEditorFactory.getEditor(getGridField(infoColumn), true);
|
editor = WebEditorFactory.getEditor(getGridField(infoColumn), true);
|
||||||
editor.setMandatory(false);
|
editor.setMandatory(false);
|
||||||
editor.setReadWrite(false);
|
editor.setReadWrite(false);
|
||||||
editorMap.put(infoColumn.getSelectClause(), editor);
|
editorMap.put(colSQL, editor);
|
||||||
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), infoColumn.getSelectClause(), ValueNamePair.class, (String)null);
|
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), colSQL, ValueNamePair.class, (String)null);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1620,7 +1624,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), infoColumn.getSelectClause(), DisplayType.getClass(infoColumn.getAD_Reference_ID(), true));
|
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), colSQL, DisplayType.getClass(infoColumn.getAD_Reference_ID(), true));
|
||||||
}
|
}
|
||||||
columnInfo.setColDescription(infoColumn.get_Translation("Description"));
|
columnInfo.setColDescription(infoColumn.get_Translation("Description"));
|
||||||
columnInfo.setGridField(getGridField(infoColumn));
|
columnInfo.setGridField(getGridField(infoColumn));
|
||||||
|
|
|
@ -60,6 +60,7 @@ import org.adempiere.webui.session.SessionManager;
|
||||||
import org.adempiere.webui.window.FDialog;
|
import org.adempiere.webui.window.FDialog;
|
||||||
import org.compiere.minigrid.ColumnInfo;
|
import org.compiere.minigrid.ColumnInfo;
|
||||||
import org.compiere.minigrid.IDColumn;
|
import org.compiere.minigrid.IDColumn;
|
||||||
|
import org.compiere.model.MInfoColumn;
|
||||||
import org.compiere.model.MInfoWindow;
|
import org.compiere.model.MInfoWindow;
|
||||||
import org.compiere.model.MPInstance;
|
import org.compiere.model.MPInstance;
|
||||||
import org.compiere.model.MProcess;
|
import org.compiere.model.MProcess;
|
||||||
|
@ -524,12 +525,11 @@ public abstract class InfoPanel extends Window implements EventListener<Event>,
|
||||||
|
|
||||||
// with each process have viewID, read it form resultSet by name
|
// with each process have viewID, read it form resultSet by name
|
||||||
for (MInfoProcess infoProcess : infoProcessList){
|
for (MInfoProcess infoProcess : infoProcessList){
|
||||||
if (infoProcess.getAD_Column_ID() == 0){
|
if (infoProcess.getAD_InfoColumn_ID() <= 0)
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
String viewIDSql = infoProcess.getViewIDName();
|
MInfoColumn infocol = (MInfoColumn) infoProcess.getAD_InfoColumn();
|
||||||
String viewIDValue = rs.getString(viewIDSql);
|
String viewIDValue = rs.getString(infocol.getColumnName());
|
||||||
if (rs.wasNull()) {
|
if (rs.wasNull()) {
|
||||||
data.add(null);
|
data.add(null);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1511,7 +1511,7 @@ public abstract class InfoPanel extends Window implements EventListener<Event>,
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
// just increase index when process is have ViewID column
|
// just increase index when process is have ViewID column
|
||||||
if (infoProcessList[i].getAD_Column_ID() > 0)
|
if (infoProcessList[i].getAD_InfoColumn_ID() > 0)
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Loading…
Reference in New Issue