步骤预览
1.自定义请假窗体
1)另存(复制)演示流程下的请假流程将其命名:请假流程_自定义
2)删除请假流程_自定义文件夹下的请假表单
3)新增数据服务【更新自定义表单、加载自定义表单】
4)修改请假窗体名称为【请假窗体_自定义】
5)窗体设计
将里面的控件全部删除,重新设计窗体
(弹出框类型设置为PopupOrg,代码类为PopupCode,并设置代码类)
6)窗体属性设置
3)为流程引擎编写双击保存事件
选中流程引擎,双击保存表单时事件,编写代码将表单中的数据通过参数保存到流程表中,并做表单数据校验,通过同步数据服务,双击插入即可插入服务编码
保存表单时事件代码如下:
function bpmEngine1_OnSaveForm(sender, eventArgs) {
//流程引擎表单保存时事件:
//定义参数获取到表单中录入的数据
//再将表单中录入的数据保存到流程表 BPM_D_pack5_Main 中
var HolidayType = comboBoxTree2HolidayType.GetValue();
var Reason = textBox3Reason.GetText();
var StartDate = dateTimePicker2StartDate.GetValue();
var EndDate = dateTimePicker1EndDate.GetValue();
var Holidays = textBox2Holidays.GetText();
var Remarks = textBox4Remarks.GetText();
//做数据校验,如果录入为空则弹窗提示不能为空
if(!HolidayType) {
alert(“请假类别不能为空”);
return;
}
if(!Reason) {
alert(“请假原因不能为空”);
return;
}
var dataService = {
ID: “0B95E039A5D74BA498D0FA442DCB01F3”, //更新自定义请假表单.ds
Args: {
BizID: bpmEngine1.Context.BizID,
HolidayType: HolidayType,
Reason: Reason,
StartDate: StartDate,
EndDate: EndDate,
Holidays: Holidays,
Remarks: Remarks
}
};
Service.Core.executeDataService(dataService, function(ret) {
eventArgs.callback();
});
}
4)编写初始化脚本
编辑初始化后脚本,将流程表中的数据加载到表单中,并设置控件编辑权限
初始化后脚本:
//窗体初始化后通过加载自定义请假表单设置单元格值,加载并翻译数据显示在表单上
//通过设置窗体控件是否启用来控制控件的编辑权限
var context = bpmEngine1.Context;
var enabled = !context.Readonly && Page.Request.IsEdit == “1”;
var dataService = {
ID: “E5B0C046390047ABB3E7E0DB71D5B606”, //加载自定义请假表单.ds
Args: {
BizID: context.BizID
}
};
Service.Core.executeDataService(dataService, function(ret) {
textBox1A0101.SetText(ret.A0101);
comboBoxTree3B0001.LoadValue(ret.B0001);
comboBoxTree1B0002.LoadValue(ret.B0002);
comboBoxTree4B0003.LoadValue(ret.B0003);
comboBoxTree2HolidayType.LoadValue(ret.HolidayType);
comboBoxTree2HolidayType.SetEnabled(enabled);
dateTimePicker2StartDate.SetValue(ret.StartDate);
dateTimePicker2StartDate.SetEnabled(enabled);
dateTimePicker1EndDate.SetValue(ret.EndDate);
dateTimePicker1EndDate.SetEnabled(enabled);
textBox2Holidays.SetText(ret.Holidays);
textBox3Reason.SetText(ret.Reason);
textBox3Reason.SetEnabled(enabled);
textBox4Remarks.SetText(ret.Remarks);
textBox4Remarks.SetEnabled(enabled);
});
2.表单加载及更新脚本(数据服务)
1)更新自定义表单数据服务
- 新增参数
更新自定义表单,定义每个指标的参数,把保存后事件获取到表单数据,通过参数以及数据服务更新到流程表中
- 编写脚本
代码如下:
—通过窗体代码的参数值更新流程表 BPM_D_pack5_Main 的数据
UPDATE BPM_D_pack5_Main
SET
HolidayType=@HolidayType,
Reason=@Reason,
StartDate=@StartDate,
EndDate=@EndDate,
Holidays=@Holidays,
Remarks=@Remarks
WHERE BizID=@BizID
2)加载自定义表单数据服务
- 新增参数
加载自定义表单相当于数据源SQL,把流程表的数据加载到表单中。
- 编写脚本
代码如下:
—相当于表单设计器里编写的数据源SQL
SELECT
A0101,
B0001,
B0002,
B0003=(SELECT JobName FROM G01 WHERE JobID=BPM_D_pack5_Main.B0003),
HolidayType,
Reason,
StartDate,
EndDate,
Holidays,
Remarks
FROM BPM_D_pack5_Main
WHERE BizID=@BizID
3.新增流程表单
BMP流程——流程管理——流程表单——新增:新增自定义表单
4.另存请假流程V6,并进行修改
- 另存请假流程V6
BMP流程——流程管理——流程设计,选中流程设计
- 修改查看表单
- 修改流程默认表单以及申请人填写表单
5.保存发布后,演示
以admin的身份登录发起流程
可以点击查看流程状态,看到它的申请时间大于三天,审批人则是刘二
以刘二的身份登录审批
打开SQL Server查看演示表Demo_AskHoliday中是否存在数据
查询语句:
select * from Demo_AskHoliday