public virtual JObject GetSimulateInfo(HttpContext context) { YZRequest request = new YZRequest(context); string processName = request.GetString("processName"); Version version = request.GetVersion("version"); string permisions = request.GetString("Permisions", null); string uid = request.GetString("uid"); BPMProcStep step; BPMTask task; CommentItemCollection comments; FlowDataSet formdataset; BPMStepCollection steps; ProcessSubModel subModel; JObject perm = null; JObject directSendInfo = null; User user; YZAuthHelper.SetAuthCookie(uid); try { using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); TableIdentityCollection tableIdentities = BPMProcess.GetProcessGlobalTableIdentitys(cn, processName, version); formdataset = DataSourceManager.LoadDataSetSchema(cn, tableIdentities); user = User.TryGetUser(cn, uid); if (user == null) { user = new User(); user.Account = uid; user.DisplayName = "张三"; } } } catch (Exception e) { YZAuthHelper.ClearAuthCookie(); throw e; } task = this.GetSimulateTask(user, processName, version); step = this.GetSimulateStep(task, user); comments = new CommentItemCollection(); steps = this.GetSimulateSteps(task, step, user); subModel = ProcessSubModel.Process; perm = new JObject(); directSendInfo = null; int total = 3; int newMessageCount = 1; //准备返回值 JObject result = new JObject(); JObject jForm = new JObject(); jForm["xclass"] = "YZSoft.form.Form5"; jForm["config"] = new JObject(); result["form"] = jForm; result["subModel"] = subModel.ToString(); result["task"] = this.Serialize(task); result["step"] = this.Serialize(step); result["NodePermisions"] = this.Serialize(NodePermision.Inform); result["Comments"] = step.Comments; result["perm"] = perm; result["socialInfo"] = this.SerializeSocialInfo(total, newMessageCount); result["steps"] = this.SerializeForTrace(steps); result["signcomments"] = JArray.FromObject(comments); result["formdataset"] = this.ToResult(formdataset, true); if (subModel == ProcessSubModel.Process) { result["shareTask"] = step.Share; result["IsConsign"] = step.IsConsignStep; JArray links = new JArray(); result["links"] = links; result["directsend"] = directSendInfo; } return(result); }
private void Form_我的流程2(Model model, JObject form, JArray formitems, BPMTask task, BPMProcStep step, FlowDataSet formdataset, CommentItemCollection comments) { JObject fieldset; JArray items; JObject field; int index; //在头部加入一行 fieldset = this.TryGetFieldSet(form, "Header"); items = fieldset["items"] as JArray; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Field"; field["label"] = "AAA"; field["html"] = "AAAValue"; //在表Purchase中加入一行 fieldset = this.TryGetFieldSet(form, "Purchase"); items = fieldset["items"] as JArray; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Field"; field["label"] = "BBB"; field["html"] = "BBBValue"; //在表Purchase前加入一个fieldset fieldset = this.TryGetFieldSet(form, "Purchase"); index = formitems.IndexOf(fieldset); fieldset = new JObject(); formitems.Insert(index, fieldset); fieldset["xtype"] = "fieldset"; items = new JArray(); fieldset["items"] = items; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Field"; field["label"] = "CCC"; field["html"] = "CCCValue"; //在末尾加入一行 fieldset = new JObject(); formitems.Add(fieldset); fieldset["xtype"] = "fieldset"; items = new JArray(); fieldset["items"] = items; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Field"; field["label"] = "DDD"; field["html"] = "DDDValue"; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Field"; field["label"] = "EEE"; field["html"] = "EEEValue"; }
protected virtual void Default(Model model, JObject form, JArray formitems, BPMTask task, BPMProcStep step, FlowDataSet formdataset, CommentItemCollection comments) { }
//根据流程名调用相应的函数,一个流程一个文件,参考“我的流程1、我的流程2” protected virtual void ApplyCustomFields(Model model, JObject form, JArray formitems, BPMTask task, BPMProcStep step, FlowDataSet formdataset, CommentItemCollection comments) { string processName = ""; //string processName = "我的流程1"; //表单定制演示 string functionName = "Form_" + processName; MethodInfo method = this.GetType().GetMethod(functionName, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); if (method != null) { method.Invoke(this, new object[] { model, form, formitems, task, step, formdataset, comments }); } this.Default(model, form, formitems, task, step, formdataset, comments); }
public virtual JObject GetSimulateForm(HttpContext context) { YZRequest request = new YZRequest(context); string processName = request.GetString("processName"); Version version = request.GetVersion("version"); string uid = request.GetString("uid"); BPMProcStep step; BPMTask task; MobileFormSetting formSetting; FlowDataSet formdataset; CommentItemCollection comments; User user; YZAuthHelper.SetAuthCookie(uid); try { using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); TableIdentityCollection tableIdentities = BPMProcess.GetProcessGlobalTableIdentitys(cn, processName, version); formdataset = DataSourceManager.LoadDataSetSchema(cn, tableIdentities); user = User.TryGetUser(cn, uid); if (user == null) { user = new User(); user.Account = uid; user.DisplayName = "张三"; } } } catch (Exception e) { YZAuthHelper.ClearAuthCookie(); throw e; } task = this.GetSimulateTask(user, processName, version); step = this.GetSimulateStep(task, user); JObject post = request.GetPostData <JObject>(); if (post != null) { formSetting = post.ToObject <MobileFormSetting>(); } else { formSetting = new MobileFormSetting(); } comments = new CommentItemCollection(); for (int i = 0; i < formdataset.Tables.Count; i++) { FlowDataTable table = formdataset.Tables[i]; if (!table.IsRepeatableTable) { table.Rows.Add(this.CreateNewRow(table, i, 0)); } else { table.Rows.Add(this.CreateNewRow(table, i, 0)); table.Rows.Add(this.CreateNewRow(table, i, 1)); } } //附件的演示数据会导致错误(附件ID没有),必须处理(将附件数据置空) foreach (FlowDataTable table in formSetting.ControlDataSet.Tables) { FlowDataTable dataTable = formdataset.Tables.TryGetTable(table.TableName); if (dataTable != null) { foreach (FlowDataColumn column in table.Columns) { if (column.MapTo == "YZSoft$ux.field.Attachment") { foreach (FlowDataRow row in dataTable.Rows) { row[column.ColumnName] = ""; //不能设置null,设置null附件控件表现形式不同 } } } } } this.ParseMobileFormSetting(formSetting); //准备返回值 JObject result = new JObject(); //填充form域(表单信息) JObject fieldset; JArray items; JObject field; JObject form = new JObject(); result["form"] = form; JArray formitems = new JArray(); form["items"] = formitems; //基本信息的fieldset填充 fieldset = new JObject(); formitems.Add(fieldset); fieldset["xtype"] = "fieldset"; fieldset["innerName"] = "Header"; //fieldset["title", "基本信息"); items = new JArray(); fieldset["items"] = items; field = new JObject(); items.Add(field); field["xclass"] = "YZSoft.form.FormHeader"; field["padding"] = "16 10 10 16"; field["task"] = this.Serialize(task); field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Field"; field["label"] = Resources.YZMobile.Aspx_FormData_StepName; field["html"] = step.StepDisplayName; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Field"; field["label"] = Resources.YZMobile.Aspx_FormData_Date; field["html"] = YZStringHelper.DateToStringL(task.CreateAt); field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Field"; field["label"] = Resources.YZMobile.Aspx_FormData_Desc; field["html"] = task.Description; //应用移动表单设定字段 - 非可重复表 this.ApplyMasterFields(Model.Process, form, formitems, task, step, formSetting, formdataset); //应用移动表单设定字段 - 可重复表 this.ApplyDetailFields(Model.Process, form, formitems, task, step, formSetting, formdataset); //自定义信息 this.ApplyCustomFields(Model.Process, form, formitems, task, step, formdataset, comments); //控件测试 //this.AddTestingFields(Model.Process, form, formitems, task, step, formdataset, comments); return(result); }
public virtual void AddTestingFields(JObject form, JArray formitems, JObject fieldset, JArray items, BPMTask task, BPMProcStep step, FlowDataSet formdataset, CommentItemCollection comments) { JObject field; fieldset = new JObject(); formitems.Add(fieldset); items = new JArray(); fieldset["items"] = items; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Text"; field["label"] = "Text"; field["value"] = task.ProcessName; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Number"; field["label"] = "Number"; field["value"] = 123; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.TextArea"; field["label"] = "TextArea"; field["value"] = task.ProcessName; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.DatePicker"; field["label"] = "DatePicker"; field["value"] = DateTime.Today; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Email"; field["label"] = "Email"; field["value"] = task.ProcessName; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Password"; field["label"] = "Password"; field["value"] = "123"; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Checkbox"; field["label"] = "Checkbox"; field["value"] = true; field = new JObject(); items.Add(field); field["xclass"] = "Ext.field.Radio"; field["label"] = "Radio"; field["value"] = true; //field = new JObject(); //items.Add(field); //field["xclass"] = "Ext.field.Select"; //field["label"] = "Select"; //field["value"] = "SH"; //field = new JObject(); //items.Add(field); //field["xclass"] = "YZSoft$ux.field.Attachment"; //field["label"] = "Attachment"; //field["value"] = task.ProcessName; }
public virtual JObject GetPostForm(HttpContext context) { YZRequest request = new YZRequest(context); string processName = request.GetString("processName"); Version processVersion = request.GetVersion("processVersion"); int restartTaskID = request.GetInt32("restartTaskID", -1); string uid = YZAuthHelper.LoginUserAccount; MobileFormSetting formSetting; FlowDataSet formdataset; CommentItemCollection comments = new CommentItemCollection(); User user = new User(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); user.Open(cn, uid); formSetting = BPMProcess.GetMobileFormSetting(cn, processName, processVersion); formdataset = BPMProcess.GetFormData(cn, processName, processVersion, null, restartTaskID); } this.ParseMobileFormSetting(formSetting); //准备返回值 JObject result = new JObject(); //填充form域(表单信息) JObject fieldset; JArray items; JObject form = new JObject(); result["form"] = form; JArray formitems = new JArray(); form["items"] = formitems; //基本信息的fieldset填充 fieldset = new JObject(); formitems.Add(fieldset); fieldset["xtype"] = "fieldset"; fieldset["hidden"] = true; fieldset["innerName"] = "Header"; //fieldset["title", "基本信息"); items = new JArray(); fieldset["items"] = items; //field = new JObject(); //items.Add(field); //field["xclass"] = "Ext.field.Field"; //field["label"] = "提交人"; //field["html"] = user.ShortName; //field = new JObject(); //items.Add(field); //field["xclass"] = "Ext.field.Field"; //field["label"] = Resources.YZMobile.Aspx_FormData_Date; //field["html"] = YZStringHelper.DateToStringM(DateTime.Today); //field = new JObject(); //items.Add(field); //field["xclass"] = "Ext.field.Field"; //field["label"] = "部门"; //field["html"] = "财务部"; //应用移动表单设定字段 - 非可重复表 this.ApplyMasterFields(Model.Post, form, formitems, null, null, formSetting, formdataset); //应用移动表单设定字段 - 可重复表 this.ApplyDetailFields(Model.Post, form, formitems, null, null, formSetting, formdataset); //自定义信息 this.ApplyCustomFields(Model.Post, form, formitems, null, null, formdataset, comments); //控件测试 //this.AddTestingFields(Model.Post, form, formitems, null, null, formdataset, comments); return(result); }