找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 7434|回复: 5

[类库] .Net UAP表单开发 重写ReceiptPluginBase中的方法不生效

[复制链接]
发表于 2014-11-30 11:18:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
本帖最后由 lpawuu 于 2014-11-30 11:22 编辑

按照开发文档的说法
表单开发访问模型对象的接口UFIDA.U8.UAP.UI.Runtime.Model.ReceiptPluginBase,该接口被定义在UFIDA.U8.UAP.UI.Runtime.Model.dll中,所以在做表单开发前,你需要为新建的表单开发项目添加UFIDA.U8.UAP.UI.Runtime.Model.dll的引用。
表单开发又可细分为表单功能开发和表单实体功能开发,每个不同部分的开发又都分为UAP已有按钮的功能修改开发和新增按钮的功能开发。目前为止,只要是表单开发,只需要实现上述类即可。在继承ReceiptPluginBase后,在子类中会重写(override)以下这些方法:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using UFIDA.U8.UAP.UI.Runtime.Model;
  5. using UFIDA.U8.UAP.UI.Runtime.Common;
  6. using System.Windows.Forms;

  7. namespace RuiGe
  8. {
  9.     public class SalesContract : ReceiptPluginBase
  10.     {
  11.         /// <summary>
  12.         /// 按钮事件入口
  13.         /// </summary>
  14.         /// <param name="ButtonArgs"></param>
  15.         /// <param name="voucherObject"></param>
  16.         /// <returns></returns>
  17.         public override IButtonEventHandler GetButtonEventHandler(UFIDA.U8.UAP.UI.Runtime.Common.VoucherButtonArgs ButtonArgs, VoucherProxy voucherObject)
  18.         {
  19.             MessageBox.Show("IButtonEventHandler ");

  20.             return null;
  21.         }

  22.         /// <summary>
  23.         /// 值更新之前的接口,对值的合法性检查在这里进行
  24.         /// <param name="para">Cell的值变动参数</param>
  25.         /// <param name="businessObject">所属业务对象</param>
  26.         /// <param name="voucherObject">所属表单对象</param>
  27.         /// <return>是否允许更新单元格的值,false--不允许更新,将保持原值</return>
  28.         /// </summary>
  29.         public override bool CellChanging(UFIDA.U8.UAP.UI.Runtime.Common.CellChangeEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject)
  30.         {
  31.             MessageBox.Show("CellChanging");
  32.             return false;
  33.         }
  34.         /// <summary>
  35.         /// 值更新之后的接口,对值的后续处理(如对其他Cell值的变更)在这里进行
  36.         /// <param name="para">Cell的值变动参数</param>
  37.         /// <param name="businessObject">所属业务对象</param>
  38.         /// <param name="voucherObject">所属表单对象</param>
  39.         /// </summary>
  40.         public override void CellChanged(UFIDA.U8.UAP.UI.Runtime.Common.CellChangeEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject)
  41.         {

  42.             MessageBox.Show("CellChanged");
  43.         }
  44.     }
  45. }
复制代码

以上 GetButtonEventHandler 按钮的方法能正常调用 但是在操作表单的时候 CellChanging 和 CellChanged 没调用到

求高手求解啊

发表于 2014-11-30 15:23:49 | 显示全部楼层


                               
登录/注册后可看大图


姐姐又在这里水经验了。。。不说了。。。睡觉去了
回复 点赞 拍砖

使用道具 举报

 楼主| 发表于 2014-12-1 09:13:28 | 显示全部楼层
不能沉~  没人知道吗?
回复 点赞 拍砖

使用道具 举报

发表于 2015-5-19 13:08:04 | 显示全部楼层
本帖最后由 jojo_bj 于 2015-5-19 13:16 编辑

[IsImplement]方法前加
回复 点赞 拍砖

使用道具 举报

发表于 2015-6-15 11:26:32 | 显示全部楼层
学习学习, 呵呵.
回复 点赞 拍砖

使用道具 举报

发表于 2015-11-9 14:09:55 | 显示全部楼层
你需要在GetButtonEventHandler中判断ButtonKey值,不同的Key值执行不同的操作,最好把你自己那个按钮要做到是单独放在一个IButtonEventHandler类中,然后GetButtonEventHandler中在new一个新的IButtonEventHandler,这样就自然关联了。
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-11-23 21:49 , Processed in 0.053240 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表