use of org.adempiere.exceptions.AdempiereException in project adempiere by adempiere.
the class ZkReportViewer method cmd_find.
// cmd_report
/**
* Query Report
*/
private void cmd_find() {
int AD_Table_ID = m_reportEngine.getPrintFormat().getAD_Table_ID();
String title = null;
String tableName = null;
// Get Find Tab Info
String sql = "SELECT t.AD_Tab_ID " + // ,w.Name, t.Name, w.IsDefault, t.SeqNo, ABS (tt.AD_Window_ID-t.AD_Window_ID)
"FROM AD_Tab t" + " INNER JOIN AD_Window w ON (t.AD_Window_ID=w.AD_Window_ID)" + " INNER JOIN AD_Table tt ON (t.AD_Table_ID=tt.AD_Table_ID) " + "WHERE tt.AD_Table_ID=? " + "ORDER BY w.IsDefault DESC, t.SeqNo, ABS (tt.AD_Window_ID-t.AD_Window_ID)";
int AD_Tab_ID = DB.getSQLValue(null, sql, AD_Table_ID);
// ASP
MClient client = MClient.get(Env.getCtx());
String ASPFilter = "";
if (client.isUseASP())
ASPFilter = " AND ( AD_Tab_ID IN ( " + // Just ASP subscribed tabs for client "
" SELECT t.AD_Tab_ID " + " FROM ASP_Tab t, ASP_Window w, ASP_Level l, ASP_ClientLevel cl " + " WHERE w.ASP_Level_ID = l.ASP_Level_ID " + " AND cl.AD_Client_ID = " + client.getAD_Client_ID() + " AND cl.ASP_Level_ID = l.ASP_Level_ID " + " AND t.ASP_Window_ID = w.ASP_Window_ID " + " AND t.IsActive = 'Y' " + " AND w.IsActive = 'Y' " + " AND l.IsActive = 'Y' " + " AND cl.IsActive = 'Y' " + // Show
" AND t.ASP_Status = 'S') " + " OR AD_Tab_ID IN ( " + // + show ASP exceptions for client
" SELECT AD_Tab_ID " + " FROM ASP_ClientException ce " + " WHERE ce.AD_Client_ID = " + client.getAD_Client_ID() + " AND ce.IsActive = 'Y' " + " AND ce.AD_Tab_ID IS NOT NULL " + " AND ce.AD_Field_ID IS NULL " + // Show
" AND ce.ASP_Status = 'S') " + " ) " + " AND AD_Tab_ID NOT IN ( " + // minus hide ASP exceptions for client
" SELECT AD_Tab_ID " + " FROM ASP_ClientException ce " + " WHERE ce.AD_Client_ID = " + client.getAD_Client_ID() + " AND ce.IsActive = 'Y' " + " AND ce.AD_Tab_ID IS NOT NULL " + " AND ce.AD_Field_ID IS NULL " + // Hide
" AND ce.ASP_Status = 'H')";
//
sql = "SELECT Name, TableName FROM AD_Tab_v WHERE AD_Tab_ID=? " + ASPFilter;
if (!Env.isBaseLanguage(Env.getCtx(), "AD_Tab"))
sql = "SELECT Name, TableName FROM AD_Tab_vt WHERE AD_Tab_ID=?" + " AND AD_Language='" + Env.getAD_Language(Env.getCtx()) + "' " + ASPFilter;
try {
PreparedStatement pstmt = DB.prepareStatement(sql, null);
pstmt.setInt(1, AD_Tab_ID);
ResultSet rs = pstmt.executeQuery();
//
if (rs.next()) {
title = rs.getString(1);
tableName = rs.getString(2);
}
//
rs.close();
pstmt.close();
} catch (SQLException e) {
log.log(Level.SEVERE, sql, e);
}
GridField[] findFields = null;
if (tableName != null)
findFields = GridField.createFields(m_ctx, m_WindowNo, 0, AD_Tab_ID);
// FR [ 295 ]
if (findFields == null) {
// No Tab for Table exists
if (launchProcessPara()) {
try {
renderReport();
} catch (Exception e) {
throw new AdempiereException("Failed to render report", e);
}
revalidate();
} else {
return;
}
} else {
FindWindow find = new FindWindow(m_WindowNo, title, AD_Table_ID, tableName, "", findFields, 1, AD_Tab_ID);
if (!find.isCancel()) {
m_reportEngine.setQuery(find.getQuery());
try {
renderReport();
} catch (Exception e) {
throw new AdempiereException("Failed to render report", e);
}
revalidate();
}
find = null;
}
}
use of org.adempiere.exceptions.AdempiereException in project adempiere by adempiere.
the class ZkReportViewer method init.
private void init() {
Borderlayout layout = new Borderlayout();
layout.setStyle("position: absolute; height: 99%; width: 99%");
this.appendChild(layout);
this.setStyle("width: 100%; height: 100%; position: absolute");
toolBar.setHeight("26px");
previewType.setMold("select");
previewType.appendItem("PDF", "PDF");
previewType.appendItem("HTML", "HTML");
previewType.appendItem("Excel", "XLS");
toolBar.appendChild(previewType);
previewType.addEventListener(Events.ON_SELECT, this);
toolBar.appendChild(new Separator("vertical"));
//set default type
String type = m_reportEngine.getPrintFormat().isForm() ? MSysConfig.getValue("ZK_REPORT_FORM_OUTPUT_TYPE") : MSysConfig.getValue("ZK_REPORT_TABLE_OUTPUT_TYPE");
if ("PDF".equals(type))
previewType.setSelectedIndex(0);
else if ("HTML".equals(type))
previewType.setSelectedIndex(1);
else if ("XLS".equals(type))
previewType.setSelectedIndex(2);
else
//fallback to PDF
previewType.setSelectedIndex(0);
labelDrill.setValue(Msg.getMsg(Env.getCtx(), "Drill") + ": ");
toolBar.appendChild(labelDrill);
comboDrill.setMold("select");
comboDrill.setTooltiptext(Msg.getMsg(Env.getCtx(), "Drill"));
toolBar.appendChild(comboDrill);
toolBar.appendChild(new Separator("vertical"));
comboReport.setMold("select");
comboReport.setTooltiptext(Msg.translate(Env.getCtx(), "AD_PrintFormat_ID"));
toolBar.appendChild(comboReport);
// FR [ 237 ]
// toolBar.appendChild(new Separator("vertical"));
comboReportView.setMold("select");
comboReportView.setTooltiptext(Msg.translate(Env.getCtx(), "AD_ReportView_ID"));
toolBar.appendChild(comboReportView);
summary.setText(Msg.getMsg(Env.getCtx(), "Summary"));
toolBar.appendChild(summary);
bCustomize.setImage(ServletFns.resolveThemeURL("~./images/Preference24.png"));
bCustomize.setTooltiptext(Msg.getMsg(Env.getCtx(), "PrintCustomize"));
toolBar.appendChild(bCustomize);
bCustomize.addEventListener(Events.ON_CLICK, this);
bFind.setImage(ServletFns.resolveThemeURL("~./images/Find24.png"));
bFind.setTooltiptext(Msg.getMsg(Env.getCtx(), "Find"));
toolBar.appendChild(bFind);
bFind.addEventListener(Events.ON_CLICK, this);
toolBar.appendChild(new Separator("vertical"));
bSendMail.setImage(ServletFns.resolveThemeURL("~./images/SendMail24.png"));
bSendMail.setTooltiptext(Msg.getMsg(Env.getCtx(), "SendMail"));
toolBar.appendChild(bSendMail);
bSendMail.addEventListener(Events.ON_CLICK, this);
bArchive.setImage(ServletFns.resolveThemeURL("~./images/Archive24.png"));
bArchive.setTooltiptext(Msg.getMsg(Env.getCtx(), "Archive"));
toolBar.appendChild(bArchive);
bArchive.addEventListener(Events.ON_CLICK, this);
if (m_isCanExport) {
bExport.setImage(ServletFns.resolveThemeURL("~./images/ExportX24.png"));
bExport.setTooltiptext(Msg.getMsg(Env.getCtx(), "Export"));
toolBar.appendChild(bExport);
bExport.addEventListener(Events.ON_CLICK, this);
}
toolBar.appendChild(new Separator("vertical"));
bRefresh.setImage(ServletFns.resolveThemeURL("~./images/Refresh24.png"));
bRefresh.setTooltiptext(Msg.getMsg(Env.getCtx(), "Refresh"));
toolBar.appendChild(bRefresh);
bRefresh.addEventListener(Events.ON_CLICK, this);
North north = new North();
layout.appendChild(north);
north.appendChild(toolBar);
Center center = new Center();
center.setHflex("true");
center.setVflex("true");
layout.appendChild(center);
iframe = new Iframe();
iframe.setId("reportFrame");
iframe.setHeight("100%");
iframe.setWidth("100%");
iframe.addEventListener(Events.ON_CLICK, this);
iframe.addEventListener(Events.ON_RIGHT_CLICK, this);
center.appendChild(iframe);
try {
renderReport();
} catch (Exception e) {
throw new AdempiereException("Failed to render report", e);
}
iframe.setAutohide(true);
this.setBorder("normal");
this.addEventListener("onZoom", new EventListener() {
public void onEvent(Event event) throws Exception {
if (event instanceof ZoomEvent) {
ZoomEvent ze = (ZoomEvent) event;
if (ze.getData() != null && ze.getData() instanceof MQuery) {
AEnv.zoom((MQuery) ze.getData());
}
}
}
});
this.addEventListener(DrillEvent.ON_DRILL_ACROSS, new EventListener() {
public void onEvent(Event event) throws Exception {
if (event instanceof DrillEvent) {
DrillEvent de = (DrillEvent) event;
if (de.getData() != null && de.getData() instanceof MQuery) {
MQuery query = (MQuery) de.getData();
Listitem item = comboDrill.getSelectedItem();
if (item != null && item.getValue() != null && item.toString().trim().length() > 0) {
query.setTableName(item.getValue().toString());
executeDrill(query, event.getTarget());
}
}
}
}
});
this.addEventListener(DrillEvent.ON_DRILL_DOWN, new EventListener() {
public void onEvent(Event event) throws Exception {
if (event instanceof DrillEvent) {
DrillEvent de = (DrillEvent) event;
if (de.getData() != null && de.getData() instanceof MQuery) {
MQuery query = (MQuery) de.getData();
executeDrill(query, event.getTarget());
}
}
}
});
}
use of org.adempiere.exceptions.AdempiereException in project adempiere by adempiere.
the class GenericZoomProvider method retrieveZoomInfos.
public List<ZoomInfoFactory.ZoomInfo> retrieveZoomInfos(PO po) {
String sql = "SELECT DISTINCT ws.AD_Window_ID, ws.Name, wp.AD_Window_ID, wp.Name, t.TableName, tts.AD_Tab_ID, ttp.AD_Tab_ID " + "FROM AD_Table t ";
boolean baseLanguage = Env.isBaseLanguage(Env.getCtx(), "AD_Window");
if (baseLanguage)
sql += "INNER JOIN AD_Window ws ON (t.AD_Window_ID=ws.AD_Window_ID)" + " LEFT OUTER JOIN AD_Window wp ON (t.PO_Window_ID=wp.AD_Window_ID) ";
else
sql += "INNER JOIN AD_Window_Trl ws ON (t.AD_Window_ID=ws.AD_Window_ID AND ws.AD_Language=?)" + " LEFT OUTER JOIN AD_Window_Trl wp ON (t.PO_Window_ID=wp.AD_Window_ID AND wp.AD_Language=?) ";
// WARNING - HardCoded: first tab must have SeqNo = 10
sql += // first tab so
"JOIN AD_Tab tts ON (tts.AD_Window_ID=ws.AD_Window_ID AND tts.AD_Table_ID=t.AD_Table_ID AND tts.SeqNo=10)" + // first tab po
" LEFT OUTER JOIN AD_Tab ttp ON (ttp.AD_Window_ID=wp.AD_Window_ID AND ttp.AD_Table_ID=t.AD_Table_ID AND ttp.SeqNo=10)" + // No Import
" WHERE t.TableName NOT LIKE 'I%'" + " AND t.AD_Table_ID IN " + "(SELECT AD_Table_ID FROM AD_Column " + // #x
"WHERE ColumnName=? AND IsKey='N' AND IsParent='N') " + "ORDER BY 2";
final PreparedStatement pstmt = DB.prepareStatement(sql, null);
ResultSet rs = null;
try {
int index = 1;
if (!baseLanguage) {
pstmt.setString(index++, Env.getAD_Language(Env.getCtx()));
pstmt.setString(index++, Env.getAD_Language(Env.getCtx()));
}
pstmt.setString(index++, po.get_TableName() + "_ID");
rs = pstmt.executeQuery();
final List<ZoomInfoFactory.ZoomInfo> result = new ArrayList<ZoomInfoFactory.ZoomInfo>();
while (rs.next()) {
int AD_Window_ID = rs.getInt(1);
String Name = rs.getString(2);
int PO_Window_ID = rs.getInt(3);
int AD_Tab_ID = rs.getInt(6);
int PO_Tab_ID = rs.getInt(7);
String targetTableName = rs.getString(5);
final MQuery query = evaluateQuery(targetTableName, AD_Tab_ID, Name, po);
result.add(new ZoomInfoFactory.ZoomInfo(AD_Window_ID, query, Name));
if (PO_Window_ID != 0 && PO_Tab_ID != 0) {
Name = rs.getString(4);
final MQuery querypo = evaluateQuery(targetTableName, PO_Tab_ID, Name, po);
result.add(new ZoomInfoFactory.ZoomInfo(PO_Window_ID, querypo, Name));
}
}
return result;
} catch (SQLException e) {
logger.log(Level.SEVERE, sql, e);
throw new AdempiereException(e);
} finally {
DB.close(rs, pstmt);
}
}
use of org.adempiere.exceptions.AdempiereException in project adempiere by adempiere.
the class POWrapper method create.
@SuppressWarnings("unchecked")
public static <T> T create(Object obj, Class<T> cl, boolean useOldValues, String trlAdLanguage) {
if (obj == null) {
return null;
}
if (cl.isInstance(obj) && !useOldValues && trlAdLanguage == null) {
return (T) obj;
}
final PO po;
if (obj instanceof PO) {
po = (PO) obj;
} else {
po = getPO(obj);
}
if (!(po instanceof PO)) {
throw new AdempiereException("Not a PO object - " + obj);
}
//
// Check TableName
final String classTableName = InterfaceWrapperHelper.getTableNameOrNull(cl);
if (classTableName != null) {
final String poTableName = po.get_TableName();
if (!poTableName.equals(classTableName)) {
throw new IllegalArgumentException("PO " + po + " (TableName:" + poTableName + ") and class " + cl + " (TableName:" + classTableName + ") are not compatible");
}
}
return (T) Proxy.newProxyInstance(cl.getClassLoader(), new Class<?>[] { cl }, new POWrapper(cl, po, useOldValues, trlAdLanguage));
}
use of org.adempiere.exceptions.AdempiereException in project adempiere by adempiere.
the class GridTabWrapper method invoke.
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
if (methodName.startsWith("set") && args.length == 1) {
final Class<?> paramType = method.getParameterTypes()[0];
final String propertyName;
final Object value;
if (isModelInterface(paramType)) {
// Model setter - me00_03374
propertyName = methodName.substring(3) + "_ID";
value = InterfaceWrapperHelper.getId(args[0]);
} else {
propertyName = methodName.substring(3);
value = POWrapper.checkZeroIdValue(propertyName, args[0]);
}
final String errorMsg = m_gridTab.setValue(propertyName, value);
if (!Util.isEmpty(errorMsg)) {
final String msg = "Attempt to set field " + propertyName + " of grid tab " + m_gridTab + " to value '" + value + " (original: " + args[0] + ")" + "' returned an error message: " + errorMsg;
if (failOnColumnNotFound) {
throw new AdempiereException(msg);
} else {
log.severe(msg);
}
}
return null;
} else if (methodName.startsWith("get") && (args == null || args.length == 0) && // metas: GridTab direct calls should be forwarded to GridTab directly
!methodName.startsWith("get_")) {
String propertyName = methodName.substring(3);
Object value = m_gridTab.getValue(propertyName);
if (value != null) {
return value;
}
//
if (method.getReturnType() == int.class) {
value = Integer.valueOf(0);
} else if (method.getReturnType() == BigDecimal.class) {
value = BigDecimal.ZERO;
} else if (isModelInterface(method.getReturnType())) {
value = getReferencedObject(propertyName, method);
} else if (PO.class.isAssignableFrom(method.getReturnType())) {
throw new IllegalArgumentException("Method not supported - " + methodName);
}
return value;
} else if (methodName.startsWith("is") && (args == null || args.length == 0)) {
String propertyName = methodName.substring(2);
GridField field = m_gridTab.getField(propertyName);
if (field != null) {
final Object value = field.getValue();
return value instanceof Boolean ? value : "Y".equals(value);
}
//
field = m_gridTab.getField("Is" + propertyName);
if (field != null) {
final Object value = field.getValue();
return value instanceof Boolean ? value : "Y".equals(value);
}
//
throw new IllegalArgumentException("Method not supported - " + methodName);
} else if (method.getName().equals("get_TableName")) {
return m_gridTab.get_TableName();
} else {
// TODO: this is not working; we need to find the similar method in m_gridTab.getClass() class
return method.invoke(m_gridTab, args);
}
}
Aggregations