📄 archiveviewer.java
字号:
if (getSelectedIndex() == 1)
dispose();
else
cmd_query();
}
else if (e.getSource() == reportField)
updateQDisplay();
else if (e.getSource() == bBack)
updateVDisplay(false);
else if (e.getSource() == bNext)
updateVDisplay(true);
} // actionPerformed
/**
* Field Listener
* @param evt event
* @throws PropertyVetoException
*/
public void vetoableChange(PropertyChangeEvent evt) throws PropertyVetoException
{
if (m_archives.length > 0)
updateArchive.setEnabled(true);
} // vetableChange
/**
* Update Query Display
*/
private void updateQDisplay()
{
boolean reports = reportField.isSelected();
log.config("Reports=" + reports);
// Show
processLabel.setVisible(reports);
processField.setVisible(reports);
// Hide
bPartnerLabel.setVisible(!reports);
bPartnerField.setVisible(!reports);
} // updateQDisplay
/**
* Update View Display
* @param next show next Archive
*/
private void updateVDisplay (boolean next)
{
if (m_archives == null)
m_archives = new MArchive[0];
if (next)
m_index++;
else
m_index--;
if (m_index >= m_archives.length-1)
m_index = m_archives.length-1;
if (m_index < 0)
m_index = 0;
bBack.setEnabled(m_index > 0);
bNext.setEnabled(m_index < m_archives.length-1);
updateArchive.setEnabled(false);
//
log.info("Index=" + m_index + ", Length=" + m_archives.length);
if (m_archives.length == 0)
{
positionInfo.setText("No Record Found");
createdByField.setText("");
createdField.setValue(null);
nameField.setText("");
descriptionField.setText("");
helpField.setText("");
pdfViewer.clearDocument();
return;
}
//
positionInfo.setText(m_index+1 + " of " + m_archives.length);
MArchive ar = m_archives[m_index];
createdByField.setText(ar.getCreatedByName());
createdField.setValue(ar.getCreated());
nameField.setText(ar.getName());
descriptionField.setText(ar.getDescription());
helpField.setText(ar.getHelp());
//
try
{
InputStream in = ar.getInputStream();
pdfViewer.setScale(reportField.isSelected() ? 50 : 75);
if (in != null)
pdfViewer.loadPDF(in);
else
pdfViewer.clearDocument();
}
catch (Exception e)
{
log.log(Level.SEVERE, "pdf", e);
pdfViewer.clearDocument();
}
} // updateVDisplay
/**
* Update Archive Info
*/
private void cmd_updateArchive()
{
MArchive ar = m_archives[m_index];
boolean update = false;
if (!isSame(nameField.getText(), ar.getName()))
{
String newText = nameField.getText();
if (newText != null && newText.length() > 0)
{
ar.setName(newText);
update = true;
}
}
if (!isSame(descriptionField.getText(), ar.getDescription()))
{
ar.setDescription(descriptionField.getText());
update = true;
}
if (!isSame(helpField.getText(), ar.getHelp()))
{
ar.setHelp(helpField.getText());
update = true;
}
log.info("Update=" + update);
if (update)
ar.save();
//
m_index++;
updateVDisplay(false);
} // cmd_updateArchive
/**
* Is it the same
* @param s1 s1
* @param s2 s1
* @return true if the same
*/
private boolean isSame (String s1, String s2)
{
if (s1 == null)
return s2 == null;
else if (s2 == null)
return false;
else
return s1.equals(s2);
} // isSame
/**
* Query Directly
* @param isReport report
* @param AD_Table_ID table
* @param Record_ID tecord
*/
public void query (boolean isReport, int AD_Table_ID, int Record_ID)
{
log.config("Report=" + isReport + ", AD_Table_ID=" + AD_Table_ID + ",Record_ID=" + Record_ID);
reportField.setSelected(isReport);
m_AD_Table_ID = AD_Table_ID;
m_Record_ID = Record_ID;
cmd_query();
} // query
/**************************************************************************
* Create Query
*/
private void cmd_query()
{
StringBuffer sql = new StringBuffer();
boolean reports = reportField.isSelected();
MRole role = MRole.getDefault();
if (!role.isCanReport())
{
log.warning("User/Role cannot Report AD_User_ID=" + Env.getAD_User_ID(Env.getCtx()));
return;
}
sql.append(" AND IsReport=").append(reports ? "'Y'" : "'N'");
// Process
if (reports)
{
KeyNamePair nn = (KeyNamePair)processField.getSelectedItem();
if (nn != null && nn.getKey() > 0)
sql.append(" AND AD_Process_ID=").append(nn.getKey());
}
// Table
if (m_AD_Table_ID > 0)
{
sql.append(" AND ((AD_Table_ID=").append(m_AD_Table_ID);
if (m_Record_ID > 0)
sql.append(" AND Record_ID=").append(m_Record_ID);
sql.append(")");
if (m_AD_Table_ID == MBPartner.Table_ID && m_Record_ID > 0)
sql.append(" OR C_BPartner_ID=").append(m_Record_ID);
sql.append(")");
// Reset for query
m_AD_Table_ID = 0;
m_Record_ID = 0;
}
else
{
KeyNamePair nn = (KeyNamePair)tableField.getSelectedItem();
if (nn != null && nn.getKey() > 0)
sql.append(" AND AD_Table_ID=").append(nn.getKey());
}
// Business Partner
if (!reports)
{
Integer ii = (Integer)bPartnerField.getValue();
if (ii != null)
sql.append(" AND C_BPartner_ID=").append(ii);
else
sql.append(" AND C_BPartner_ID IS NOT NULL");
}
// Name
String ss = nameQField.getText();
if (ss != null && ss.length() > 0)
{
if (ss.indexOf("%") != -1 || ss.indexOf("_") != -1)
sql.append(" AND Name LIKE ").append(DB.TO_STRING(ss));
else
sql.append(" AND Name=").append(DB.TO_STRING(ss));
}
// Description
ss = descriptionQField.getText();
if (ss != null && ss.length() > 0)
{
if (ss.indexOf("%") != -1 || ss.indexOf("_") != -1)
sql.append(" AND Description LIKE ").append(DB.TO_STRING(ss));
else
sql.append(" AND Description=").append(DB.TO_STRING(ss));
}
// Help
ss = helpQField.getText();
if (ss != null && ss.length() > 0)
{
if (ss.indexOf("%") != -1 || ss.indexOf("_") != -1)
sql.append(" AND Help LIKE ").append(DB.TO_STRING(ss));
else
sql.append(" AND Help=").append(DB.TO_STRING(ss));
}
// CreatedBy
KeyNamePair nn = (KeyNamePair)createdByQField.getSelectedItem();
if (nn != null && nn.getKey() > 0)
sql.append(" AND CreatedBy=").append(nn.getKey());
// Created
Timestamp tt = createdQFrom.getTimestamp();
if (tt != null)
sql.append(" AND Created>=").append(DB.TO_DATE(tt, true));
tt = createdQTo.getTimestamp();
if (tt != null)
sql.append(" AND Created<").append(DB.TO_DATE(TimeUtil.addDays(tt,1), true));
log.fine(sql.toString());
// Process Access
sql.append(" AND (AD_Process_ID IS NULL OR AD_Process_ID IN "
+ "(SELECT AD_Process_ID FROM AD_Process_Access WHERE AD_Role_ID=")
.append(role.getAD_Role_ID()).append("))");
// Table Access
sql.append(" AND (AD_Table_ID IS NULL "
+ "OR (AD_Table_ID IS NOT NULL AND AD_Process_ID IS NOT NULL) " // Menu Reports
+ "OR AD_Table_ID IN "
+ "(SELECT t.AD_Table_ID FROM AD_Tab t"
+ " INNER JOIN AD_Window_Access wa ON (t.AD_Window_ID=wa.AD_Window_ID) "
+ "WHERE wa.AD_Role_ID=").append(role.getAD_Role_ID()).append("))");
log.finest(sql.toString());
//
m_archives = MArchive.get(Env.getCtx(), sql.toString());
log.info("Length=" + m_archives.length);
// Display
this.setSelectedIndex(1);
m_index = 1;
updateVDisplay(false);
} // cmd_query
} // ArchiveViewer
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -