AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
表单数据保存前事件,主要用来检查数据是否可以保存 **返回值** string,正常返回值为空,如果不为空,会抛出异常,异常信息就是返回值 **参数** | 名称 | 类型 | 描述 |非空 | --- | --- | --- |--- | | objContext| Entities| 数据库上下文 |是 | uid| int|当前操作用户ID |是 | isNew| bool |是否新增数据 |是 | bizId| int|业务数据ID,如果新增,则是0 |是 | o| JObject |表单控件数据集 |是 **示例** ``` public static string BeforeSaveCustomer(Entities objContext, int uid, bool isNew, int bizId, JObject o) { var values = (JArray)o["Values"]; if (isNew) { var level = FormDataUtil.GetFieldIntValue(values, "LevelID") ?? 0; if (!CanCreateCustomer(objContext, uid, level)) { return "您当前客户数量已达到上限,不能再新增客户了"; } } return null; } //如何从参数o里读取子表的数据 public static string BeforeSaveReport(Entities objContext, int uid, bool isNew, int bizId, JObject o) { var childDatas = (JArray)o["ChildDatas"]; if (childDatas.Count > 0) { foreach (JObject v in childDatas) { string tableName = v["TableName"].ToString();//获取子表表名 if (tableName == "PMS_ReportDetail") { var rows = (JArray)v["Values"];//子表所有数据 foreach (JArray row in rows)//row代表一行子表数据 { var tid = FormDataUtil.GetFieldIntValue(row, "Item"); var hour = FormDataUtil.GetFieldDecimalValue(row, "Hour"); //这里可以加上其他业务逻辑处理 } } } } return null; } ```