using Genersoft.Fms.Center.Pub.Com;
using Genersoft.Platform.AdpBizIntegration.Entity;
using Genersoft.Platform.AppFramework.Service;
using Genersoft.Platform.Core.Common;
using Genersoft.Platform.Core.DataAccess;
using Genersoft.Platform.Core.Error;
using Genersoft.Platform.Engine.DataAccess.ClientSPI;
using Genersoft.Platform.Resource.Metadata.Common;
using Genersoft.Platform.Resource.Metadata.DataModel;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Genersoft.SZYD.SXTB
{
class SXQDTBFormDataAccess :FMSFormDataAccess
{
#region 卡片表单

#region 新增前

/// <summary>
/// 重写新增前检查
/// 注意此方法是在新增后点击保存时触发
/// </summary>
/// <param name="dataModel">数据模型</param>
/// <param name="data">表单数据</param>
protected override void BeforeAddObjectInTransaction(GspDataModel dataModel, DataSet data)
{
string errorMessage = string.Empty;
if (!CheckBeforeSave(dataModel, data, out errorMessage))
{
throw new GSPException(errorMessage, ErrorLevel.Info);
}
base.BeforeAddObjectInTransaction(dataModel, data);
}

#endregion

#region 新增后

/// <summary>
/// 重写新增后
/// 注意此方法是在新增后点击保存时触发
/// </summary>
/// <param name="dataModel">数据模型</param>
/// <param name="data">表单数据</param>
protected override void AfterAddObjectInTransaction(GspDataModel dataModel, DataSet data)
{
base.AfterAddObjectInTransaction(dataModel, data);
}

#endregion

#region 保存前

/// <summary>
/// 重写保存前
/// 注意新增后的保存不会触发,会触发BeforeAddObjectInTransaction
/// </summary>
/// <param name="dataModel">数据模型</param>
/// <param name="data">表单数据</param>
protected override void BeforeSaveObjectInTransaction(GspDataModel dataModel, DataSet data)
{
string errorMessage = string.Empty;
if (!CheckBeforeSave(dataModel, data, out errorMessage))
{
throw new GSPException(errorMessage, ErrorLevel.Info);
}
base.BeforeSaveObjectInTransaction(dataModel, data);
}

#endregion

#region 保存后

/// <summary>
/// 重写保存后
/// 注意新增后的保存不会触发,会触发AfterAddObjectInTransaction
/// </summary>
/// <param name="dataModel">数据模型</param>
/// <param name="data">表单数据</param>
protected override void AfterSaveObjectInTransaction(GspDataModel dataModel, DataSet data)
{
base.AfterSaveObjectInTransaction(dataModel, data);
}

#endregion

#region 删除前

/// <summary>
/// 重写删除前
/// </summary>
/// <param name="dataModel">数据模型</param>
/// <param name="data">模型数据</param>
/// <param name="dataID">内码</param>
protected override void BeforeRemoveObjectInTransaction(GspDataModel dataModel, DataSet data, object dataID)
{
base.BeforeRemoveObjectInTransaction(dataModel, data, dataID);
}

#endregion

#region 删除后

/// <summary>
/// 重写删除后
/// </summary>
/// <param name="dataModel">数据模型</param>
/// <param name="data">模型数据</param>
/// <param name="dataID">内码</param>
protected override void AfterRemoveObjectInTransaction(GspDataModel dataModel, DataSet data, object dataID)
{
base.AfterRemoveObjectInTransaction(dataModel, data, dataID);
}

#endregion

#region 保存前检查

/// <summary>
/// 保存前检查
/// </summary>
/// <param name="dataModel">数据模型</param>
/// <param name="data">模型数据</param>
/// <param name="errorMessage">错误信息</param>
/// <returns>检查结果</returns>
private bool CheckBeforeSave(GspDataModel dataModel, DataSet data, out string errorMessage)
{
errorMessage = string.Empty;
return true;

}

#endregion

#endregion

#region 列表表单

#region 列表取数

/// <summary>
/// 列表表单取数扩展
/// </summary>
/// <param name="dataModelID">数据模型ID</param>
/// <param name="filter">表单中加的过滤条件</param>
/// <param name="queryType">查询类型</param>
/// <param name="policy">策略</param>
/// <param name="otherParam">其他参数</param>
/// <param name="dataContext">表单传值</param>
/// <returns></returns>
public override DataSet GetObjectsXmlByOtherParam3(string dataModelID, ref GSPFilter filter, DataQueryType queryType, IQueryFilterPolicy policy, WebSolutionContext otherParam, JObject dataContext)
{
//解析出表单中加的过滤条件
List<Express> lstCondition = ExpressParser.ParserExpression(filter.FilterCondition);

return base.GetObjectsXmlByOtherParam3(dataModelID, ref filter, queryType, policy, otherParam, dataContext);
}

#endregion

#region 批量删除前

/// <summary>
/// 重写批量删除前
/// </summary>
/// <param name="dataModel">数据模型</param>
/// <param name="data">模型数据</param>
/// <param name="condition">过滤条件</param>
protected override void BeforeRemoveObjectsInTransaction(GspDataModel dataModel, DataSet data, string condition)
{
base.BeforeRemoveObjectsInTransaction(dataModel, data, condition);
}

#endregion

#region 批量删除后

/// <summary>
/// 重写批量删除后
/// </summary>
/// <param name="dataModel">数据模型</param>
/// <param name="data">模型数据</param>
/// <param name="condition">过滤条件</param>
protected override void AfterRemoveObjectsInTransaction(GspDataModel dataModel, DataSet data, string condition)
{
base.AfterRemoveObjectsInTransaction(dataModel, data, condition);
}

#endregion

#endregion
}
}

??????FormDataAccess的更多相关文章

随机推荐

  1. vue的增删改查(简单版)

    <template>   <div class="about">     <div>       <input type="te ...

  2. TP3.2.x判断手机端访问,同一个域名在PC和手机端展示不同模板(半独立式网站)

    首先介绍APP_STATUS内置常量,TP入口文件增加APP_STATUS 参数,  自动加载不同的项目配置文件,通过配置文件指向不同的模块 手机端访问时调用Wap手机模块,实现在手机端访问时展示出手 ...

  3. ES-分页查询

    从一个分页问题开始 做分页查询,当分页达到一定量的时候,报如下错误 Result window is too large, from + size must be less than or equal ...

  4. SQL server数据库 账户SA登录失败,提示错误:18456

    在我们使用数据库的时候,偶尔会遇到一些登录上的错误提示.比如,在数据库配置上没有正确开启用户的登录策略以及服务器身份验证模式时,就会提示"用户'sa'登录失败.(Microsoft SQL ...

  5. 读后笔记 -- Python 全栈测试开发 Chapter7:移动自动化测试框架

    7.1 主流框架优缺点剖析 1. APP 主要测试策略 安装.卸载测试: 安装:1)安装路径:2)安装环境(平台.安全软件):3)安全权限(获取位置.摄像头.通讯录.ROOT管理员等权限):4)安装的 ...

  6. C#中DataTable新增列、删除列、更改列名、交换列位置

    一.新增列 1.1.新增列 /*新增列*/ dataTable.Columns.Add("列名称", Type.GetType("数据类型")); /*比如添加 ...

  7. CSS渐变样色的字

    width: 118px; height: 17px; font-size: 13px; font-family: MicrosoftYaHei-Bold, MicrosoftYaHei; font- ...

  8. Redis容器的二种常用启动方式

    #==========redis:latest镜像的容器启动命令============# docker run -d --name redis01 -p 6379 --restart unless- ...

  9. onedrive 不显示图标

    步骤一 https://www.xitongbuluo.com/jiaocheng/67248.html 步骤二 https://blog.csdn.net/weixin_44041700/artic ...

  10. 8. semahpore原理

    一.上游服务比下游服务抗压能力应该更强一些,因为直接面对的是前端.Semphore控制访问特定资源的线程数目.实际场景可用于限流.在hystrix里面用了. 另:ReadWriteLock的作用是什么 ...