📄 acctviewer.java
字号:
//
m_data.fillTable(selTable);
selTable.addActionListener(this);
selRecord.setIcon(m_iFind);
selRecord.addActionListener(this);
selRecord.setText("");
//
m_data.fillPostingType (selPostingType);
// Mandatory Elements
m_data.fillOrg(selOrg);
selAcct.setActionCommand("Account_ID");
selAcct.addActionListener(this);
selAcct.setText("");
selAcct.setIcon(m_iFind);
// Document Select
boolean haveDoc = AD_Table_ID != 0 && Record_ID != 0;
selDocument.setSelected (haveDoc);
actionDocument();
actionTable();
statusLine.setText(" " + Msg.getMsg(Env.getCtx(), "ViewerOptions"));
// Initial Query
if (haveDoc)
{
m_data.AD_Table_ID = AD_Table_ID;
m_data.Record_ID = Record_ID;
actionQuery();
}
} // dynInit
/**
* Dispose
*/
public void dispose()
{
m_data.dispose();
m_data = null;
super.dispose();
} // dispose;
/**************************************************************************
* Tab Changed
* @param e ChangeEvent
*/
public void stateChanged(ChangeEvent e)
{
// log.info( "AcctViewer.stateChanged");
boolean visible = m_data.documentQuery && tabbedPane.getSelectedIndex() == 1;
bRePost.setVisible(visible);
if (Ini.isPropertyBool(Ini.P_SHOW_ADVANCED))
forcePost.setVisible(visible);
} // stateChanged
/**
* Action Performed (Action Listener)
* @param e ActionEvent
*/
public void actionPerformed(ActionEvent e)
{
// log.info(e.getActionCommand());
Object source = e.getSource();
if (source == selAcctSchema)
actionAcctSchema();
else if (source == bQuery)
actionQuery();
else if (source == selDocument)
actionDocument();
else if (source == selTable)
actionTable();
else if (source == bRePost)
actionRePost();
else if (source == bPrint)
PrintScreenPainter.printScreen(this);
// InfoButtons
else if (source instanceof CButton)
actionButton((CButton)source);
} // actionPerformed
/**
* New Acct Schema
*/
private void actionAcctSchema()
{
KeyNamePair kp = (KeyNamePair)selAcctSchema.getSelectedItem();
if (kp == null)
return;
m_data.C_AcctSchema_ID = kp.getKey();
m_data.ASchema = MAcctSchema.get(Env.getCtx(), m_data.C_AcctSchema_ID);
log.info(m_data.ASchema.toString());
//
// Sort Options
sortBy1.removeAllItems();
sortBy2.removeAllItems();
sortBy3.removeAllItems();
sortBy4.removeAllItems();
sortAddItem(new ValueNamePair("",""));
sortAddItem(new ValueNamePair("DateAcct", Msg.translate(Env.getCtx(), "DateAcct")));
sortAddItem(new ValueNamePair("DateTrx", Msg.translate(Env.getCtx(), "DateTrx")));
sortAddItem(new ValueNamePair("C_Period_ID", Msg.translate(Env.getCtx(), "C_Period_ID")));
//
CLabel[] labels = new CLabel[] {lsel1, lsel2, lsel3, lsel4, lsel5, lsel6, lsel7, lsel8};
CButton[] buttons = new CButton[] {sel1, sel2, sel3, sel4, sel5, sel6, sel7, sel8};
int selectionIndex = 0;
MAcctSchemaElement[] elements = m_data.ASchema.getAcctSchemaElements();
for (int i = 0; i < elements.length && selectionIndex < labels.length; i++)
{
MAcctSchemaElement ase = elements[i];
String columnName = ase.getColumnName();
// Add Sort Option
sortAddItem(new ValueNamePair(columnName, Msg.translate(Env.getCtx(), columnName)));
// Additional Elements
if (!ase.isElementType(MAcctSchemaElement.ELEMENTTYPE_Organization)
&& !ase.isElementType(MAcctSchemaElement.ELEMENTTYPE_Account))
{
labels[selectionIndex].setText(Msg.translate(Env.getCtx(), columnName));
labels[selectionIndex].setVisible(true);
buttons[selectionIndex].setActionCommand(columnName);
buttons[selectionIndex].addActionListener(this);
buttons[selectionIndex].setIcon(m_iFind);
buttons[selectionIndex].setText("");
buttons[selectionIndex].setVisible(true);
selectionIndex++;
}
}
// don't show remaining
while (selectionIndex < labels.length)
{
labels[selectionIndex].setVisible(false);
buttons[selectionIndex++].setVisible(false);
}
} // actionAcctSchema
/**
* Add to Sort
* @param vn name pair
*/
private void sortAddItem(ValueNamePair vn)
{
sortBy1.addItem(vn);
sortBy2.addItem(vn);
sortBy3.addItem(vn);
sortBy4.addItem(vn);
} // sortAddItem
/**
* Query
*/
private void actionQuery()
{
// Parameter Info
StringBuffer para = new StringBuffer();
// Reset Selection Data
m_data.C_AcctSchema_ID = 0;
m_data.AD_Org_ID = 0;
// Save Selection Choices
KeyNamePair kp = (KeyNamePair)selAcctSchema.getSelectedItem();
if (kp != null)
m_data.C_AcctSchema_ID = kp.getKey();
para.append("C_AcctSchema_ID=").append(m_data.C_AcctSchema_ID);
//
ValueNamePair vp = (ValueNamePair)selPostingType.getSelectedItem();
m_data.PostingType = vp.getValue();
para.append(", PostingType=").append(m_data.PostingType);
// Document
m_data.documentQuery = selDocument.isSelected();
para.append(", DocumentQuery=").append(m_data.documentQuery);
if (selDocument.isSelected())
{
if (m_data.AD_Table_ID == 0 || m_data.Record_ID == 0)
return;
para.append(", AD_Table_ID=").append(m_data.AD_Table_ID)
.append(", Record_ID=").append(m_data.Record_ID);
}
else
{
m_data.DateFrom = (Timestamp)selDateFrom.getValue();
para.append(", DateFrom=").append(m_data.DateFrom);
m_data.DateTo = (Timestamp)selDateTo.getValue();
para.append(", DateTo=").append(m_data.DateTo);
kp = (KeyNamePair)selOrg.getSelectedItem();
if (kp != null)
m_data.AD_Org_ID = kp.getKey();
para.append(", AD_Org_ID=").append(m_data.AD_Org_ID);
//
Iterator it = m_data.whereInfo.values().iterator();
while (it.hasNext())
para.append(", ").append(it.next());
}
// Save Display Choices
m_data.displayQty = displayQty.isSelected();
para.append(" - Display Qty=").append(m_data.displayQty);
m_data.displaySourceAmt = displaySourceAmt.isSelected();
para.append(", Source=").append(m_data.displaySourceAmt);
m_data.displayDocumentInfo = displayDocumentInfo.isSelected();
para.append(", Doc=").append(m_data.displayDocumentInfo);
//
m_data.sortBy1 = ((ValueNamePair)sortBy1.getSelectedItem()).getValue();
m_data.group1 = group1.isSelected();
para.append(" - Sorting: ").append(m_data.sortBy1).append("/").append(m_data.group1);
m_data.sortBy2 = ((ValueNamePair)sortBy2.getSelectedItem()).getValue();
m_data.group2 = group2.isSelected();
para.append(", ").append(m_data.sortBy2).append("/").append(m_data.group2);
m_data.sortBy3 = ((ValueNamePair)sortBy3.getSelectedItem()).getValue();
m_data.group3 = group3.isSelected();
para.append(", ").append(m_data.sortBy3).append("/").append(m_data.group3);
m_data.sortBy4 = ((ValueNamePair)sortBy4.getSelectedItem()).getValue();
m_data.group4 = group4.isSelected();
para.append(", ").append(m_data.sortBy4).append("/").append(m_data.group4);
bQuery.setEnabled(false);
statusLine.setText(" " + Msg.getMsg(Env.getCtx(), "Processing"));
log.config(para.toString());
Thread.yield();
// Switch to Result pane
tabbedPane.setSelectedIndex(1);
// Set TableModel with Query
table.setModel(m_data.query());
bQuery.setEnabled(true);
statusLine.setText(" " + Msg.getMsg(Env.getCtx(), "ViewerOptions"));
} // actionQuery
/**
* Document selection
*/
private void actionDocument()
{
boolean doc = selDocument.isSelected();
selTable.setEnabled(doc);
selRecord.setEnabled(doc);
//
selDateFrom.setReadWrite(!doc);
selDateTo.setReadWrite(!doc);
selOrg.setEnabled(!doc);
selAcct.setEnabled(!doc);
sel1.setEnabled(!doc);
sel2.setEnabled(!doc);
sel3.setEnabled(!doc);
sel4.setEnabled(!doc);
sel5.setEnabled(!doc);
sel6.setEnabled(!doc);
sel7.setEnabled(!doc);
sel8.setEnabled(!doc);
} // actionDocument
/**
* Save Table selection (reset Record selection)
*/
private void actionTable()
{
ValueNamePair vp = (ValueNamePair)selTable.getSelectedItem();
m_data.AD_Table_ID = ((Integer)m_data.tableInfo.get(vp.getValue())).intValue();
log.config(vp.getValue() + " = " + m_data.AD_Table_ID);
// Reset Record
m_data.Record_ID = 0;
selRecord.setText("");
selRecord.setActionCommand(vp.getValue() + "_ID");
} // actionTable
/**
* Action Button
*
* @param button pressed button
* @return ID
*/
private int actionButton(CButton button)
{
String keyColumn = button.getActionCommand();
log.info(keyColumn);
String whereClause = "IsSummary='N'";
String lookupColumn = keyColumn;
if (keyColumn.equals("Account_ID"))
{
lookupColumn = "C_ElementValue_ID";
MAcctSchemaElement ase = m_data.ASchema.getAcctSchemaElement(MAcctSchemaElement.ELEMENTTYPE_Account);
if (ase != null)
whereClause += " AND C_Element_ID=" + ase.getC_Element_ID();
}
else if (keyColumn.equals("User1_ID"))
{
lookupColumn = "C_ElementValue_ID";
MAcctSchemaElement ase = m_data.ASchema.getAcctSchemaElement(MAcctSchemaElement.ELEMENTTYPE_UserList1);
if (ase != null)
whereClause += " AND C_Element_ID=" + ase.getC_Element_ID();
}
else if (keyColumn.equals("User2_ID"))
{
lookupColumn = "C_ElementValue_ID";
MAcctSchemaElement ase = m_data.ASchema.getAcctSchemaElement(MAcctSchemaElement.ELEMENTTYPE_UserList2);
if (ase != null)
whereClause += " AND C_Element_ID=" + ase.getC_Element_ID();
}
else if (selDocument.isSelected())
whereClause = "";
String tableName = lookupColumn.substring(0, lookupColumn.length()-3);
Info info = Info.create(this, true, m_data.WindowNo, tableName, lookupColumn, "", false, whereClause);
if (!info.loadedOK())
{
info.dispose();
info = null;
button.setText("");
m_data.whereInfo.put(keyColumn, "");
return 0;
}
info.setVisible(true);
String selectSQL = info.getSelectedSQL(); // C_Project_ID=100 or ""
Integer key = (Integer)info.getSelectedKey();
info = null;
if (selectSQL == null || selectSQL.length() == 0 || key == null)
{
button.setText("");
m_data.whereInfo.put(keyColumn, ""); // no query
return 0;
}
// Save for query
log.config(keyColumn + " - " + key);
if (button == selRecord) // Record_ID
m_data.Record_ID = key.intValue();
else
m_data.whereInfo.put(keyColumn, keyColumn + "=" + key.intValue());
// Display Selection and resize
button.setText(m_data.getButtonText(tableName, lookupColumn, selectSQL));
pack();
return key.intValue();
} // actionButton
/**
* RePost Record
*/
private void actionRePost()
{
if (m_data.documentQuery
&& m_data.AD_Table_ID != 0 && m_data.Record_ID != 0
&& ADialog.ask(m_data.WindowNo, this, "PostImmediate?"))
{
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
boolean force = forcePost.isSelected();
String error = AEnv.postImmediate (m_data.WindowNo, m_data.AD_Client_ID,
m_data.AD_Table_ID, m_data.Record_ID, force);
setCursor(Cursor.getDefaultCursor());
if (error != null)
ADialog.error(0, this, "PostingError-N", error);
actionQuery();
}
} // actionRePost
} // AcctViewer
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -