XAF ObjectSpace保存时添加记录
点击保存按钮时自动添加相关记录(用于界面查看),另外还有Audit控件可使用,此处只是一个简单的功能。
新建一个VC并关联到相关的View,代码如下:
public partial class GongZuoJiaoShenController : ViewController
{
public GongZuoJiaoShenController()
{
InitializeComponent();
// Target required Views (via the TargetXXX properties) and create their Actions.
} protected override void OnActivated()
{
base.OnActivated();
// Perform various tasks depending on the target View.
//注册提交事件
ObjectSpace.Committing += ObjectSpace_Committing;
} private void ObjectSpace_Committing(object sender, System.ComponentModel.CancelEventArgs e)
{
GongZuoJiaoShen gongZuoJiaoShen = View.CurrentObject as GongZuoJiaoShen;
JiaoShenJiLu jiaoShenJiLu = ObjectSpace.CreateObject<JiaoShenJiLu>();
//新建时自动添加处理记录
if (View.ObjectSpace.IsNewObject(gongZuoJiaoShen))
{
jiaoShenJiLu.CaoZuoLeiXing = JiaoShenCaoZuoLeiXing.新建;
jiaoShenJiLu.ChuLiRen = (YuanGong)ObjectSpace.GetObject(SecuritySystem.Instance.User);
jiaoShenJiLu.ChuLiShiJian = DateTime.Now;
jiaoShenJiLu.ChuLiYiJian = "自校通过";
gongZuoJiaoShen.JiaoShenJiLu.Add(jiaoShenJiLu);
}
} protected override void OnViewControlsCreated()
{
base.OnViewControlsCreated();
// Access and customize the target View control.
} protected override void OnDeactivated()
{
// Unsubscribe from previously subscribed events and release other references and resources.
base.OnDeactivated();
ObjectSpace.Committing -= ObjectSpace_Committing;
} #region 审核通过事件
private void ShenHe_CustomizePopupWindowParams(object sender, CustomizePopupWindowParamsEventArgs e)
{
ShenHeJieMian(e, "审核通过");
} private void ShenHe_Execute(object sender, PopupWindowShowActionExecuteEventArgs e)
{
//创建对象并赋值
JiaoShenJiLu_Create(e.PopupWindowViewCurrentObject, JiaoShenCaoZuoLeiXing.审核通过);
View.ObjectSpace.CommitChanges();
}
#endregion #region 审核不通过事件
private void ShenHeBuTongGuo_CustomizePopupWindowParams(object sender, CustomizePopupWindowParamsEventArgs e)
{
ShenHeJieMian(e, "审核不通过");
} private void ShenHeBuTongGuo_Execute(object sender, PopupWindowShowActionExecuteEventArgs e)
{
JiaoShenJiLu_Create(e.PopupWindowViewCurrentObject, JiaoShenCaoZuoLeiXing.审核不通过);
}
#endregion /// 创建校审记录对象
/// <summary>
/// 创建校审记录对象
/// </summary>
/// <param name="obj"></param>
/// <param name="caoZuoLeiXing"></param>
private void JiaoShenJiLu_Create(object obj, JiaoShenCaoZuoLeiXing caoZuoLeiXing)
{
//创建对象并赋值
JiaoShenJiLu jiaoShenJiLu = (JiaoShenJiLu)obj;
jiaoShenJiLu.GongZuoJiaoShen = View.CurrentObject as GongZuoJiaoShen;
jiaoShenJiLu.CaoZuoLeiXing = caoZuoLeiXing;
jiaoShenJiLu.ChuLiRen = (YuanGong)ObjectSpace.GetObject(SecuritySystem.Instance.User);
jiaoShenJiLu.ChuLiShiJian = DateTime.Now;
View.ObjectSpace.CommitChanges();
//View.Refresh(true);
// View.RefreshDataSource();
} /// 弹出窗口对象
/// <summary>
/// 弹出窗口对象
/// </summary>
/// <param name="e"></param>
/// <param name="caption">标题</param>
private void ShenHeJieMian(CustomizePopupWindowParamsEventArgs e, string caption)
{
e.DialogController.SaveOnAccept = false;
IObjectSpace objectSpace = this.ObjectSpace;
//创建DetailView对象
JiaoShenJiLu jiaoShenJiLu = objectSpace.CreateObject(typeof(JiaoShenJiLu)) as JiaoShenJiLu;
e.View = Application.CreateDetailView(objectSpace, jiaoShenJiLu, this.View);
e.View.Caption = caption;
} }
效果图如下:

XAF ObjectSpace保存时添加记录的更多相关文章
- mybatis添加记录时返回主键id
参考:mybatis添加记录时返回主键id 场景 有些时候我们在添加记录成功后希望能直接获取到该记录的主键id值,而不需要再执行一次查询操作.在使用mybatis作为ORM组件时,可以很方便地达到这个 ...
- 使用mybatis注解@Options实现添加记录时返回主键值
官网:http://www.mybatis.org/mybatis-3/index.html 在使用mybatis作为ORM框架时,我通常更喜欢使用注解而非xml配置文件的方式.业务场景:添加记录之后 ...
- 关于visocode 自动保存时自动添加分号问题
先下载插件: Vueter 打开设置的配置文件,写入一下代码: // //是否需要保存时自动格式化 "editor.formatOnSave": true, //使js 文件保存 ...
- FRM-40400:事务完成:已应用和保存X条记录"消息框不显示处理方法
oldmesl := :system.message_level; :system.message_level :;--不显示长度超过25的信息 do_key('COMMIT_FORM'); :sys ...
- java.util.Properties类,保存时保留注释及格式不变
原文地址:http://blog.csdn.net/benbenxiongyuan/article/details/53006097 参考地址:http://www.iteye.com/topic/1 ...
- 异步方式向WPF ListBox控件中一条一条添加记录
向ListBox绑定数据源时,如果数据量过大,可能会使得程序卡死,这是就需要一条一条的向ListBox的数据源中添加记录了,下面是个小Demo: 1.前台代码,就是一个ListBox控件 <Wi ...
- Vim保存时权限不足
保存时权限不足,由于打开时忘记在命令前添加sudo.我们并不需要放弃修改,从新以root权限打开 解决方案 命令模式使用:w !sudo tee %提权,保存
- Hibernate一对多关联关系保存时的探究
在以前使用hibernate时,经常对保存存在关联关系的对象时,不确定是否能保存成功. 因此,特意对一对多关系的2个对象进行实践. 一.pojo类和配置文件的准备 这里有一点提前 ...
- 在GridView控件FooterTemplate内添加记录 Ver3
重构此篇<在GridView控件FooterTemplate内添加记录 Ver2> http://www.cnblogs.com/insus/p/3270644.html 这有些缺陷,怎样 ...
随机推荐
- UGUI代码分析
1.canvas,screen模式和world模式区别:screen的绑定摄像机与canvas相对位置不会改变不可改变canvas,world模式下有个event camera相对位置可改变,canv ...
- 转载:centos7下使用yum安装mysql
转自:http://www.cnblogs.com/hwd-cnblogs/p/5213337.html CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql ...
- crontab 系列
crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序使用cron服务,用 service crond status 查看 cron服务状态,如果没有启动则 servi ...
- man ascii
Linux 2.6 - man page for ascii (linux section 7) - Unix & Linux Commands Linux 2.6 - man page fo ...
- quartz学习
quartz是一个作业调度框架,用于指定工作(作业)在指定时间执行——定时工作. quartz的核心接口有: Scheduler接口:Scheduler是job的执行对象,用于工作的执行. Job接口 ...
- 【学习笔记】Y2-1-1 Oracle数据库基础
Oracle 简介关系型(二维表)数据库 用来存储海量数据在大数据量的并发检索的情况下,性能要高于其他同类数据库产品一般运行环境是Linux和UnixOracle版本中的I(Internet) G(G ...
- jquery获取所选元素的outerHTML
大家都知道原生js可以获取匹配元素的内部html和外部html,内部是innerHTML,外部是outerHTML,原生js的dom对象是存在这两个属性的. 如果用jQuery如何获取匹配元素(包括自 ...
- 【循序渐进MVC】第一回——一物多用Project.json依赖关系之dependencies节点
Project.json统一了ASP.NET vNext之前版本的packages.config.NuGet 配置(nuspec)以及项目文件(csprojs):并集成在Project.json中. ...
- UItextFiled只能输入数字
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementS ...
- 20151208Study
20151208-----------------------------------------------------* Her main interest now is raising her ...