用友nc65 uap开发主子表单据跳转编辑态时设置某几个值不可编辑
1.目标:通过调用合同续约按钮打开主子表单据跳转编辑态,使得表头其中几个字段不可编辑,因为合同和合同续约处于同一个单据中,所以要通过判断区别合同和续约合同的区别显示。如图,合同续约按钮调用新增按钮并且传入相关数据后使得合同开始日期不可编辑。
2.代码:重写视图元素配置xml
<!--====== 视图元素:[PUBAPP表单控件(ShowUpableBillForm)实例对象] ==============-->
<bean id="billForm" class="nc.ui.fdc_pr.h303113510.ace.view.MyShowUpableBillForm" init-method="initUI">
<property name="model"><ref bean="bmModel" /></property>
<property name="nodekey" value="bt" />
<!-- 表体行操作按钮注册,这只是一组默认设置,开发人员需要自己在此添加其他需要的表体行操作按钮 -->
<property name="bodyLineActions">
<list>
<bean class="nc.ui.fdc_pr.h303113510.actions.AddLineAction" />
<bean class="nc.ui.pubapp.uif2app.actions.BodyInsertLineAction" />
<bean class="nc.ui.pubapp.uif2app.actions.BodyDelLineAction" />
</list>
</property>
</bean>" init-method="initUI">
<property name="model"><ref bean="bmModel" /></property>
<property name="nodekey" value="bt" />
<!-- 表体行操作按钮注册,这只是一组默认设置,开发人员需要自己在此添加其他需要的表体行操作按钮 -->
<property name="bodyLineActions">
<list>
<bean class="nc.ui.fdc_pr.h303113510.actions.AddLineAction" />
<bean class="nc.ui.pubapp.uif2app.actions.BodyInsertLineAction" />
<bean class="nc.ui.pubapp.uif2app.actions.BodyDelLineAction" />
</list>
</property>
</bean>
MyShowUpableBillForm类代码:
package nc.ui.fdc_pr.h303113510.ace.view;
import nc.ui.pub.bill.BillItem;
import nc.vo.pub.lang.UFDate;
import nc.vo.pub.lang.UFDouble;
/**
*
* @author: zenglong
* @ClassName: MyShowUpableBillForm
* @Description:合同续约时开始日期不可编辑
* @date: 2016年12月21日
*/
public class MyShowUpableBillForm extends
nc.ui.pubapp.uif2app.view.ShowUpableBillForm {
private static final long serialVersionUID = 8111660983732584919L;
@Override
public void setValue(Object object) {
// TODO 自动生成的方法存根
super.setValue(object);
String date=getBillCardPanel().getHeadItem("dpactstart").getValue();
String brenewal=getBillCardPanel().getHeadItem("brenewal").getValue();
if (date!=null && brenewal!=null && brenewal.equals("true")) {
getBillCardPanel().getHeadItem("dpactstart").setEdit(false);
}
// BillItem[] bodyItems =getBillCardPanel().getBillModel("id_standardpact").getBodyItems();
// for (BillItem item : bodyItems) {
// item.setEnabled(false);
// }
// getBillCardPanel().getBillModel("id_standardpact").setEnabledAllItems(false);
// getBillCardPanel().getBillTable("id_standardpact").get
}
}