蜗牛一般的UAP开发(四)单表档案

一、本节内容

根据元数据,使用向导生成单表档案。
在这里插入图片描述
大致的开发流程是这样:
在这里插入图片描述

二、使用代码生成向导生成代码

前提是元数据已经创建、保存、发布,因为不管是单表档案还是多表档案,最基础的地方永远是元数据。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
单表档案只有增删改,无需修改。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
全部显示绿色就是代码生成完毕了。

三、代码结构介绍

  • 公共类
    在这里插入图片描述
  • 前台类
    在这里插入图片描述
    为什么会有两个按钮动作类?因为一个是编辑态一个是非编辑态。
  • 后台类
    在这里插入图片描述

四、定制化

自动生成的代码已经能够正常操作了,不过在基础上我们还需要根据业务进行一些定制化。
怎么弄呢?
SendtypeAddlineAction和SendtypeAddlineActiona都是按钮动作类,只不过前者是非编辑态的按钮动作,后者是编辑态的按钮动作。对表单进行操作就看他俩了。

  • 设置默认数据
    在SendtypeAddlineAction/SendtypeAddlineActiona的setDefaultData方法中,可以设置每一列的默认数据,例如创建人、创建时间。
package nc.ui.train.bd.sendtype.action;

import nc.ui.pubapp.uif2app.actions.batch.BatchAddLineAction;
import nc.vo.pubapp.AppContext;
import nc.vo.train.sendtype.SendTypeVO;
/**
  batch addLine or insLine action autogen
*/
public class SendtypeAddLineActiona extends BatchAddLineAction {

	private static final long serialVersionUID = 1L;

	@Override
	protected void setDefaultData(Object obj) {
		super.setDefaultData(obj);
		SendTypeVO singleDocVO = (SendTypeVO) obj;
		singleDocVO.setPk_group(this.getModel().getContext().getPk_group());
		singleDocVO.setPk_org(this.getModel().getContext().getPk_org());
		singleDocVO.setAttributeValue("creator", this.getModel().getContext().getPk_loginUser());
		singleDocVO.setAttributeValue("creationtime", AppContext.getInstance().getServerTime());
	}

}
  • 保存数据
    在Sendtype_config.xml中可以搜索到保存事件的注册信息(搜saveaction),可以看到保存动作类是BatchSaveAction,可以正常执行保存功能,可是如果我想要保存的时候设置默认信息怎么办?例如创建人、创建时间。
    答案来了,
    可以在按钮配置类SendtypeAddlineAction所在包下新增一个类,名字叫SendtypeSaveLineAction,继承BatchSaveAction类,重写doAction方法↓
package nc.ui.train.bd.sendtype.action;

import java.awt.event.ActionEvent;

import nc.ui.uif2.UIState;
import nc.ui.pubapp.uif2app.actions.batch.BatchSaveAction;
import nc.vo.pubapp.AppContext;
import nc.vo.train.sendtype.SendTypeVO;

public class SendTypeSaveLineAction extends BatchSaveAction{
	
	@Override
	public void doAction(ActionEvent e) throws Exception {
		//停止编辑,否则正在编辑的行可能获取不到
		((nc.ui.pubapp.uif2app.view.ShowUpableBatchBillTable)getEditor()).getBillCardPanel().stopEditing();
		//获取正在进行保存操作的参数VO
		Object[] objs = getModel().getCurrentSaveObject().getUpdObjs();
		//循环表体,对修改人和修改时间字段赋值
		if (null != objs && objs.length > 0) {
			for (int i = 0; i < objs.length; i++) {
				SendTypeVO baseDocVO = (SendTypeVO) objs[i];
				//如果元数据设置了动态属性(推荐),可以用这种方式
				/*baseDocVO.setAttributeValue("modifier", this.getModel().getContext().getPk_loginUser());
				baseDocVO.setAttributeValue("modifiedtime", AppContext.getInstance().getServerTime());*/
				baseDocVO.setModifier(this.getModel().getContext().getPk_loginUser());
				baseDocVO.setModifiedtime(AppContext.getInstance().getBusiDate());
			}
		}
		//继续接下来的代码
		super.doAction(e);
	}
	
}

接着Sendtype_config.xml中将保存注册信息修改一下↓

	<!--======= 动作:[newActions] [保存] ===========-->
	<!-- <bean id="batchSaveAction" class="nc.ui.pubapp.uif2app.actions.batch.BatchSaveAction"> -->
	<bean id="batchSaveAction" class="nc.ui.train.bd.sendtype.action.SendTypeSaveLineAction">
		<property name="model"><ref bean="batchModel"/></property>
		<property name="editor"><ref bean="batchBillTable"/></property>
		<property name="validationService"><ref bean="batchBillTableValidateService" /></property>
		<property name="exceptionHandler"><ref bean="exceptionHandler" /></property>
	</bean>

这样,就能在保存的时候也设置默认信息了。

至此,单表档案就完成了。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值