1、前端
1.1 单据模板修改
在单据模板初始化找到需要添加页签的单据,然后找的要加的数据库表(红框部分
)
注:没有找到,一般是【数据字典管理】里没有导入,可重新导入要添加的表
(图)
修改单据模板,在把要生成的表增加到表体(表头、表尾都行),形成一个新页签。
(效果)
2、数据库
数据表关系要 一对多。
3、后端java部分
ClientUi类继承 MultiChildBillManageUI,添加方法
@Override
protected BusinessDelegator createBusinessDelegator() {
// TODO Auto-generated method stub
return new FbzbDelegator();
}
事务加载类 [Delegator]
private String[] m_ChildrenVoNames = new String[] {
MonthlyssbVO.class.getName(), XMBGCJDBVO.class.getName() };
@Override
public Hashtable loadChildDataAry(String[] tableCodes,String key)
throws Exception{
Hashtable hashtable = new Hashtable();
if (m_ChildrenVoNames != null) {
for (int i = 0; i < m_ChildrenVoNames.length; i++) {
CircularlyAccessibleValueObject[] childVOs = null;
if(m_ChildrenVoNames[i].equals("nc.vo.jzpm.zhgl.XMBGCJDBVO")){
childVOs = queryByCondition(
Class.forName(m_ChildrenVoNames[i]), "dr = '0' and pk_zhgl_xmbgcjdh = '"+key+"'");
}else{
childVOs = queryByCondition(
Class.forName(m_ChildrenVoNames[i]), "dr = '0' and pk_bz_monthlyss='" + key+ "'");
}
if (childVOs != null) {
hashtable.put(tableCodes[i], childVOs);
}
}
}
return hashtable;
}
public String getBodyCondition(Class bodyClass, String key) {
return super.getBodyCondition(bodyClass, key);
}
按钮控制类 [ ClientUICtrl],添加表VO
//集合vo
public String[] getBillVoName() {
return new String[]{
AggMonthlyssVO.class.getName(),
MonthlyssVO.class.getName(),
MonthlyssbVO.class.getName(),
XMBGCJDBVO.class.getName()
};
}
聚合VO [AggVO]
实现 IExAggVO,重写方法
private HashMap hmChildVOs;
public AggMonthlyssVO()
{
hmChildVOs = new HashMap();
}
public CircularlyAccessibleValueObject[] getAllChildrenVO()
{
ArrayList voList = new ArrayList();
String arr$[] = getTableCodes();
int len$ = arr$.length;
for(int i$ = 0; i$ < len$; i$++)
{
String tablecode = arr$[i$];
CircularlyAccessibleValueObject vos[] = (CircularlyAccessibleValueObject[])hmChildVOs.get(tablecode);
if(vos != null && vos.length > 0)
voList.addAll(Arrays.asList(vos));
}
return (CircularlyAccessibleValueObject[])voList.toArray(new SuperVO[0]);
}
public SuperVO[] getChildVOsByParentId(String tableCode, String parentid)
{
return null;
}
public String getDefaultTableCode()
{
return getTableCodes()[0];
}
public HashMap getHmEditingVOs()
throws Exception
{
return null;
}
public String getParentId(SuperVO item)
{
return null;
}
public CircularlyAccessibleValueObject[] getTableVO(String tableCode)
{
return (CircularlyAccessibleValueObject[])hmChildVOs.get(tableCode);
}
public void setParentId(SuperVO supervo, String s)
{
}
public void setTableVO(String tableCode, CircularlyAccessibleValueObject values[])
{
hmChildVOs.put(tableCode, values);
}
public static String m_tableCodes[] = {
"jzpm_bz_monthlyss_b", "jzpm_zhgl_xmbgcjdb",
};
private String m_tableNames[]={
"jzpm_bz_monthlyss_b", "jzpm_zhgl_xmbgcjdb",
};
public String[] getTableCodes()
{
return m_tableCodes;
}
public String[] getTableNames()
{
return m_tableNames;
}
注:子表名称别写错了
最后就是事件处理类[Handler], 根据自己需求进行修改,比如加载时页签添加默认值