⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acctviewer.java

📁 Java写的ERP系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	}   //  jbInit

	/**
	 *  Dynamic Init
	 *
	 *  @param AD_Table_ID table
	 *  @param Record_ID record
	 */
	private void dynInit(int AD_Table_ID, int Record_ID)
	{
		ImageIcon iFind = new ImageIcon(org.compiere.Compiere.class.getResource("images/Find16.gif"));

		if (m_data.ASchemas.length > 1)
			m_data.fillAcctSchema(selAcctSchema);
		else
		{
			lacctSchema.setVisible(false);
			selAcctSchema.setVisible(false);
		}
		m_data.fillTable(selTable);
		selTable.addActionListener(this);
		selRecord.addActionListener(this);
		selRecord.setIcon(iFind);
		selRecord.setText("");

		//  Sort Options
		ValueNamePair vn = new ValueNamePair("","");
		sortBy1.addItem(vn);    sortBy2.addItem(vn);    sortBy3.addItem(vn);    sortBy4.addItem(vn);
		vn = new ValueNamePair("DateAcct", Msg.translate(Env.getCtx(), "DateAcct"));
		sortBy1.addItem(vn);    sortBy2.addItem(vn);    sortBy3.addItem(vn);    sortBy4.addItem(vn);
		vn = new ValueNamePair("DateTrx", Msg.translate(Env.getCtx(), "DateTrx"));
		sortBy1.addItem(vn);    sortBy2.addItem(vn);    sortBy3.addItem(vn);    sortBy4.addItem(vn);
		vn = new ValueNamePair("C_Period_ID", Msg.translate(Env.getCtx(), "C_Period_ID"));
		sortBy1.addItem(vn);    sortBy2.addItem(vn);    sortBy3.addItem(vn);    sortBy4.addItem(vn);

		//  Mandatory Elements
		m_data.fillOrg(selOrg);
		selAcct.setActionCommand("Account_ID");
		selAcct.addActionListener(this);
		selAcct.setText("");
		selAcct.setIcon(iFind);
		//
		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;
		ArrayList elements = m_data.AS.getAcctSchemaElementList();
		for (int i = 0; i < elements.size() && selectionIndex < labels.length; i++)
		{
			AcctSchemaElement ase = (AcctSchemaElement)elements.get(i);
			String columnName = ase.getColumnName();
			//  Add Sort Option
			vn = new ValueNamePair(columnName, Msg.translate(Env.getCtx(), columnName));
			sortBy1.addItem(vn);
			sortBy2.addItem(vn);
			sortBy3.addItem(vn);
			sortBy4.addItem(vn);
			//  Additional Elements
			if (!ase.isSegmentType(ase.SEGMENT_Org) && !ase.isSegmentType(ase.SEGMENT_Account))
			{
				labels[selectionIndex].setText(Msg.translate(Env.getCtx(), columnName));
				buttons[selectionIndex].setActionCommand(columnName);
				buttons[selectionIndex].addActionListener(this);
				buttons[selectionIndex].setIcon(iFind);
				buttons[selectionIndex].setText("");
				selectionIndex++;
			}
		}
		//	don't show remaining
		while (selectionIndex < labels.length)
		{
			labels[selectionIndex].setVisible(false);
			buttons[selectionIndex++].setVisible(false);
		}

		//  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.trace(Log.l1_User, "AcctViewer.stateChanged");
		bRePost.setVisible(m_data.documentQuery && tabbedPane.getSelectedIndex() == 1);
	}   //  stateChanged


	/**
	 *  Action Performed (Action Listener)
	 *  @param e ActionEvent
	 */
	public void actionPerformed(ActionEvent e)
	{
		Log.trace(Log.l1_User, "AcctViewer.actionPerformed", e.getActionCommand());
		if (e.getSource() == bQuery)
			actionQuery();
		else if (e.getSource() == selDocument)
			actionDocument();
		else if (e.getSource() == selTable)
			actionTable();
		else if (e.getSource() == bRePost)
			actionRePost();
		//  InfoButtons
		else if (e.getSource() instanceof CButton)
			actionButton((CButton)e.getSource());
	}   //  actionPerformed

	/**
	 *  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);

		//  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.trace(Log.l3_Util, "AcctViewer.actionQuery", 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.trace(Log.l3_Util, "AcctViewer.actionTable", 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();
		String lookupColumn = keyColumn;
		if (keyColumn.equals("Account_ID") || keyColumn.startsWith("User"))
			lookupColumn = "C_ElementValue_ID";
		String tableName = lookupColumn.substring(0, lookupColumn.length()-3);
		Info info = Info.create(this, true, m_data.WindowNo, tableName, lookupColumn, "", false, "");
		if (!info.loadedOK())
		{
			info.dispose();
			info = null;
			button.setText("");
			m_data.whereInfo.put(keyColumn, "");
			return 0;
		}
		info.show();
		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.trace(Log.l3_Util, "AcctViewer.actionButton", 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));
			AEnv.postImmediate (m_data.WindowNo, m_data.AD_Client_ID,
				m_data.AD_Table_ID, m_data.Record_ID, true);
			setCursor(Cursor.getDefaultCursor());
			actionQuery();
		}
	}   //  actionRePost

}   //  AcctViewer

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -