Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Consider providing a Combo Box for the list of Debit Account No and Beneficiary Account fetched dynamically from database. This can be done using the data-support class.

...

Code Block
languagejava
package com.intellectdesign.modelhouse.dataSupport; 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; 
import com.intellectdesign.canvas.database.DatabaseConstants;
import com.intellectdesign.canvas.database.DatabaseException;
import com.intellectdesign.canvas.database.DatabaseRequest;
import com.intellectdesign.canvas.database.DatabaseResult;
import com.intellectdesign.canvas.formdefinition.FormDefinitionException;
import com.intellectdesign.canvas.formdefinition.FormItemDefinition;
import com.intellectdesign.canvas.formdefinition.addinfo.AdditionalDataCodeValue;
import com.intellectdesign.canvas.formdefinition.addinfo.IAdditionalDataSupport;
import com.intellectdesign.canvas.value.IUserValue; 

public class PaymentDataSupport implements IAdditionalDataSupport
{ 
	/* This method is invoked by the Form Manager to provide a hook for the data support 
	*  to handle the data fetch for fields that need additional data. This method is 
	*  intended to provide a list of all the supported data that is needed for the Form Item 
	*  whose definition is passed as a parameter to this method.
	* 
	*  @param itemDefn - FormItemDefinition that contains the items which need additional data 
	*  @param userValue - UserValue object containing logged on user details 
	*  @param inputParams - Hashmap of cached client input parameters 
	*  @return ArrayList<AdditionalDataCodeValue> - Parameters for AdditionalDataCodeValue are Data Code and Display Value.
	*  @throws FormDefinitionException is thrown if any errors/exceptions while getting Additional Data.
	*/ 
	
	@Override
	public ArrayList<AdditionalDataCodeValue> getAdditionalDataFor(
            FormItemDefinition itemDefn, IUserValue userValue, HashMap inputParams) throws FormDefinitionException
	{
		ArrayList<AdditionalDataCodeValue> resultList = null;
		DatabaseRequest dbRequest = null;
		DatabaseResult dbResult = null;
		List tmpList = null;
		String key = null;
		
		try
		{
			//Create a DB Request to fetch the Account No from DB to the combo 
			dbRequest = new DatabaseRequest();
			dbResult = new DatabaseResult();
			tmpList = new ArrayList();
			resultList = new ArrayList<AdditionalDataCodeValue>();
			dbRequest.setDataSource(DatabaseConstants.DEFAULT_DATASOURCE); 

			//Getting the data for the Debit Account No combo
			if (itemDefn.getItemId().equals("ACC_NO"))
			{
				dbRequest.setOperation(DatabaseConstants.SELECT); 
				// Actual result map key, which contains the SQL to be executed
				dbRequest.setDataAccessMapKey("FUNDTRANS");
				dbRequest.setOperationExtension("ACC_NO");
				dbResult = dbRequest.execute(); 
				key = "ACCOUNT_NO"; 
				tmpList = dbResult.getReturnedList(); 
			} else if (itemDefn.getItemId().equals("BENE_ACC_NO"))
			{
				dbRequest.setOperation(DatabaseConstants.SELECT);
				dbRequest.setDataAccessMapKey("FUNDTRANS");
				dbRequest.setOperationExtension("BENE_NO");
				dbResult = dbRequest.execute();
				key = "BENE_ACC_NO";
				tmpList = dbResult.getReturnedList();
			}
			for (int i = 0; i < tmpList.size(); i++)
			{
				Map tmpMap = (HashMap) tmpList.get;
				resultList.add(new AdditionalDataCodeValue((String) tmpMap.get(key), (String) tmpMap.get(key)));
			}
		} catch (DatabaseException dbExcep)
		{
			throw new FormDefinitionException(dbExcep);
		}
		return resultList;
	}
} 


Info

The following method can be used from the FormItemDefinition class:

  • getItemId - This method returns the form item ID.

The following methods can be used from the IUserValue class:

  • getUserNo - This method returns the user number of the current user.
  • getLoginId - This method returns the login ID of the current user.

For more information, refer the Java documentation of the IUserValue interface. You must download the JavaDoc ZIP and open the index.html file.

The getAdditionalDataFor method must return a list of AdditionalDataCodeValue objects. The AdditionalDataCodeValue has the following types of constructors:

  • AdditionalDataCodeValue(List valArray)
  • AdditionalDataCodeValue(String codeKey, String codeValue) - the first parameter is the display value and the second parameter is the code.

Now, create a Select SQL result map in SQLMap file to get the data from the database for the access map key.

...