OThinker.H3.WorkSheet.SheetPage
Enviroment
属性
名称 | 类型 | 说明 |
Approval | OThinker.Data.BoolMatchValue | 获取或设置当前任务审核结果 |
Comment | string | 获取或设置当前任务审核意见 |
DisplayName | string | 获取当前表单显示名称 |
Enviroment | OThinker.H3.WorkSheet.SheetEnviroment | 获取表单任务环境对象 |
InstanceNameEditor | SheetInstanceNameEditor | 获取流程实例名称编辑控件 |
PortalRoot | string | 获取Portal根目录路径 |
PriorityType | OThinker.H3.Instance.PriorityType | 获取或设置当前流程实例紧急程度 |
方法
名称 | 参数 | 说明 |
CancelInstance | 在表单取消流程实例时事件 | |
CancelWorkItem | 在表单取消工作任务时事件 | |
GetItemEditable | string ItemName | 获取指定数据项在当前任务是否可编辑 |
GetItemRequired | string ItemName | 获取指定数据项在当前任务是否必填 |
GetItemTrackVisible | string ItemName | 获取指定数据项在当前任务是可查看痕迹 |
GetItemVisible | string ItemName | 获取指定数据项在当前任务是可见 |
GetItemValue | string ItemName, ref object Value | 获取指定数据项的值 |
GetOptionalRecipients | SelectRecipientType SelectRecipientType | 设置当前任务协助/征询/传阅的可选人范围 |
IsActivitySelectable | string ActivityName | 当活动节点是手工选择时,设置某个活动节点是否允许被选择 |
LoadDataFields | 表单加载数据项的值 | |
OnOriginatingInstance | object Sender, OriginateInstanceEventArgs Args | 流程被发起时触发事件 |
OnSubmit | SheetSubmitEventArgs Args | 流程提交时触发事件 |
SaveDataFields | SheetSubmitEventArgs Args | 流程保存/提交时触发,将表单上的值保存到数据项中 |
SetItemValue | string ItemName, object Value | 设置数据项的值 |
ValidateAuthorization | 权限验证方法,设置当前用户是否有权限打开表单 | |
ValidateDataFields | SheetSubmitEventArgs Args, List<string> Errors | 数据项验证方法,设置数据项在后台验证是否通过 |
示例:
ASPX
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SheetControl.aspx.cs" Inherits="OThinker.H3.Portal.Sheets.SheetControl" EnableEventValidation="false" %> <%@ Register Assembly="OThinker.H3.WorkSheet" Namespace="OThinker.H3.WorkSheet" TagPrefix="SheetControls" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>表单控件</title> <script language="javascript" type="text/javascript" src="<%=ResolveUrl("~/WFRes/Scripts/JQuery.js")%>"></script> <script language="javascript" type="text/javascript" src="<%=ResolveUrl("~/WFRes/Scripts/Validation.js")%>"></script> <script type="text/javascript" src="<%=this.Enviroment.PortalFCKEditorRoot %>/fckeditor.js"></script> <script type="text/javascript" src="<%=this.Enviroment.PortalScriptRoot %>/SheetCommon.js"></script> <script type="text/javascript" src="<%=this.Enviroment.PortalScriptRoot %>/xmlHttp.js"></script> <script language="javascript" type="text/javascript"> pageInfo.LockImage = "<%=ResolveUrl("~/WFRes/Images/WaitProcess.gif")%>"; // 页面对象 var pageObject = { controls:{ txtInstanceName : null, hidSavePdf : null, hidPdfFileID : null } } $(function(){ pageObject.controls.txtInstanceName = $("#<%=txtInstanceName.ClientID %>"); pageObject.controls.hidSavePdf = $("#<%=hidSavePdf.ClientID %>"); pageObject.controls.hidPdfFileID = $("#<%=hidPdfFileID.ClientID %>"); }); // 保存 WORD 文档,点击确认提交后事件发生 var saveDocument = function(){ var fileName = pageObject.controls.txtInstanceName.length > 0 ? pageObject.controls.txtInstanceName.val() : "<%=this.Enviroment.InstanceData["流程名称控件"].Value %>"; saveDoc(fileName); return true; }; // 套用模板方法 function TANGER_OCX_Template() { var miji,fawenzihao,biaoti,fujian,fujianliebiao,qianfariqi,zhutici,chaosongdanwei; var yinfariqi,wenjianyinshu,jiaodui,zhubandanwei; var zhusongdanwei,qianfaren,chaobaodanwei,fasongdanwei; var jianyao,biaoti1,banjixinxi,zhifadanwei; var lianxiren,lianxidianhua; var fawenzi,fawennian,fawenhao; fawenzi = "奥哲科技"; fawennian = 2012; fawenhao = 1; biaoti = "关于加强XXXXXXX的通知"; zhusongdanwei = "公司各部门"; qianfaren = "张三"; zhutici = "加强 通知"; wenjianyinshu = 15; jiaodui = "王二"; zhubandanwei = "研发部"; yinfariqi = "2012-3-1"; qianfariqi = "二〇一二年二月十二日"; fawenzihao = fawenzi + "["+fawennian+"]"+fawenhao+"号"; var value = {mark:[ {Name:"fawenzihao",Value:fawenzihao } // 发文字号 ,{Name:"fawenzi",Value:fawenzi} // 发文字 ,{Name:"fawennian",Value:fawennian} // 发文年 ,{Name:"fawenhao",Value:fawenhao} // 发文号 ,{Name:"fawenhao1",Value:fawenhao} // 发文号 ,{Name:"miji",Value:miji} // 密级 ,{Name:"biaoti",Value:biaoti} // 文件标题 ,{Name:"fujian",Value:fujian} // 附件 ,{Name:"fujianliebiao",Value:fujianliebiao} // 附件列表,只显示附件 2 个字 ,{Name:"fujianlibiao",Value:fujianliebiao} // 附件列表,只显示附件 2 个字 ,{Name:"qianfariqi",Value:qianfariqi} // 签发日期 ,{Name:"zhutici",Value:zhutici} // 主题词 ,{Name:"chaosongdanwei",Value:chaosongdanwei} // 抄送单位 ,{Name:"fasongdanwei",Value:fasongdanwei} // 抄报单位 ,{Name:"chaobaodanwei",Value:chaobaodanwei} // 发送单位 ,{Name:"yinfariqi",Value:yinfariqi} // 印发日期 ,{Name:"wenjianyinshu",Value:wenjianyinshu} // 文件印数 ,{Name:"jiaodui",Value:jiaodui} // 校对 ,{Name:"zhubandanwei",Value:zhubandanwei} // 主办单位 ,{Name:"qianfaren",Value:qianfaren} // 签发人 ,{Name:"lianxiren",Value:lianxiren} // 联系人 ,{Name:"lianxidianhua",Value:lianxidianhua} // 联系电话 ,{Name:"zhusongjiguan",Value:zhusongdanwei} // 主送机关 ,{Name:"jianyao",Value:jianyao} // 简要(连体文正文) ,{Name:"biaoti1",Value:biaoti1} // 标题1(连体文文件标题) ,{Name:"banjixinxi",Value:banjixinxi} // 版记信息 ,{Name:"zhifadanwei",Value:zhifadanwei} // 制发单位 ]}; var template = "http://localhost:8010/Portal/Sheets/ControlDemo/奥哲科技发文模板.doc"; TANGER_OCX_DoPaiBan(template,value); }; // 点击“盖章”执行方法,该方法会在 sheetword.js 中被调用 function doSign() { // 调用服务器盖章方法 印章路径、发文红头ID、签发日期 addSecSignFromURL("http://localhost:8010/Portal/Sheets/ControlDemo/测试章.esp", "印章使用者", 0, 0); } // 保存PDF文档 function saveWordToPDF() { var fileName = pageObject.controls.txtInstanceName.length > 0 ? pageObject.controls.txtInstanceName.val() : "<%=this.Enviroment.InstanceData["流程名称控件"].Value %>"; // 调用 PDF 保存方法 saveFileAsPdfToUrl(fileName,1); pageObject.controls.hidSavePdf.val("1"); } // 查看PDF正文 var viewDocument = function() { // 请先保存PDF文档,再进行查看正文操作 if(pageObject.controls.hidSavePdf.val() != "1") { alert("请先套用模板、盖章、保存PDF后,再查看正文!"); return false; } var attachmentID = pageObject.controls.hidPdfFileID.val(); window.open("<%=this.Enviroment.PortalRoot%>/ReadAttachment.aspx?AttachmentID="+attachmentID+"&OpenMethod=1"); } // 自定义客户端验证事件 function validation(eventType){ // eventType == 2 表示提交 return true; } </script> </head> <body> <form id="form1" runat="server"> <link href="<%=this.Enviroment.PortalCssRoot %>/SheetStyle.css" rel="stylesheet" type="text/css" /> <div style="width: 100%; text-align: center"> <center> <div class="divContent"> <div id="divTopBars"> <SheetControls:SheetActionPane ID="SheetActionPane1" runat="server" Dock="Top" ClientValidation="validation({EventType})" AfterConfirmation="saveDocument();"> <SheetControls:SheetActionButton ID="btnClick" ImageSrc="" OnClick="btnClick_Click" Text="后端事件按钮" /> <SheetControls:SheetActionButton ID="btnClient" OnClientClick="alert('前端事件');" ImageSrc="" Text="前端事件按钮" /> <SheetControls:SheetActionButton ID="btnViewPDF" Text="查看正文" ImageSrc="gosearch.gif" OnClientClick="viewDocument();" /> </SheetControls:SheetActionPane> </div> <div style="height: 33px"> </div> <div id="divProcessTitle" class="processTitle"> <asp:Label ID="lblTitle" runat="server" Text="表单控件"></asp:Label></div> <table id="tbTable" class="tableStyle" border="1" cellpadding="0" cellspacing="0"> <tr> <td width="20%"> </td> <td width="27%"> </td> <td width="3%"> </td> <td width="20%"> </td> <td width="27%"> </td> <td width="3%"> </td> </tr> <tr> <th colspan="6"> 基本信息 </th> </tr> <tr> <td class="tdTitle"> 发起人 </td> <td class="tdData" colspan="2"> <SheetControls:SheetLabel ID="lblOriginator1" runat="server" DataField="Originator.FullName" /> </td> <td class="tdTitle"> 发起时间 </td> <td class="tdData" colspan="2"> <SheetControls:SheetLabel ID="lblOriginateFullTime1" runat="server" DataField="OriginateFullTime" /> </td> </tr> <tr> <td class="tdTitle"> 所属组织 </td> <td class="tdData" colspan="2"> <SheetControls:SheetLabel ID="Department" runat="server" DataField="Originator.OUName"></SheetControls:SheetLabel> </td> <td class="tdTitle"> 流水号 </td> <td class="tdData" colspan="2"> <SheetControls:SheetSequenceID ID="SheetSequenceID1" runat="server" /> </td> </tr> <tr> <th colspan="6"> 表单明细 </th> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label12" runat="server" BindType="OnlyVisibility" DataField="流程名称控件" Text="流程名称控件" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetInstanceNameEditor ID="txtInstanceName" runat="server" Width="80%" DataField="流程名称控件" /> </td> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label13" runat="server" BindType="OnlyVisibility" DataField="紧急程度控件" Text="紧急程度控件" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetInstancePrioritySelector ID="ddlPriority" runat="server" DataField="紧急程度控件" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label10" runat="server" BindType="OnlyVisibility" DataField="链接控件" Text="链接控件" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetHyperlink ID="linkControl" runat="server" Width="80%" DataField="链接控件" NavigateUrlDataField="链接控件的URL" TextDataField="链接控件的URL" Target="_blank" /> </td> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label11" runat="server" BindType="OnlyVisibility" DataField="链接控件的URL" Text="链接控件的URL" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetTextBox ID="linkControlUrl" runat="server" Width="80%" DataField="链接控件的URL" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label18" runat="server" BindType="OnlyVisibility" DataField="流水号控件" Text="流水号控件" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetSequenceID ID="seqInstance" runat="server" DataField="流水号控件" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label20" runat="server" BindType="OnlyVisibility" DataField="文本框控件" Text="文本框控件" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetTextBox ID="Control20" runat="server" Width="80%" DataField="文本框控件" /> </td> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label4" runat="server" BindType="OnlyVisibility" DataField="痕迹查看控件" Text="痕迹查看控件" /> </td> <td class="tdData"> <SheetControls:SheetTextBox ID="Control4" runat="server" Width="80%" DataField="痕迹查看控件" /> <SheetControls:SheetDataTrackLink ID="SheetDataTrackLink_Control4" runat="server" DataField="痕迹查看控件" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label3" runat="server" BindType="OnlyVisibility" DataField="审批控件" Text="审批控件" /> </td> <td class="tdData" colspan="5"> <SheetControls:SheetComment ID="Control3" runat="server" DataField="审批控件" ReadDataFields="审批控件" Height="180px" Width="91.5%" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label0" runat="server" BindType="OnlyVisibility" DataField="附件控件" Text="附件控件" /> </td> <td class="tdData" colspan="5"> <SheetControls:SheetAttachment ID="Control0" Width="91.5%" runat="server" DataField="附件控件" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label6" runat="server" BindType="OnlyVisibility" DataField="下拉框控件" Text="下拉框控件" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetDropDownList ID="ddlList" runat="server" DataField="下拉框控件" DataTextField="下拉框控件的显示值"> <asp:ListItem Value="深圳">深圳</asp:ListItem> <asp:ListItem Value="广州">广州</asp:ListItem> <asp:ListItem Value="北京">北京</asp:ListItem> <asp:ListItem Value="上海">上海</asp:ListItem> </SheetControls:SheetDropDownList> <SheetControls:SheetLabel ID="Label7" runat="server" BindType="OnlyVisibility" DataField="下拉框控件的显示值" /> </td> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label16" runat="server" BindType="OnlyVisibility" DataField="单选框控件" Text="单选框控件" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetRadioButtonList ID="rbtnSingle" runat="server" RepeatColumns="5" RepeatDirection="Horizontal" DataField="单选框控件"> <asp:ListItem Value="广州" Selected="True">广州</asp:ListItem> <asp:ListItem Value="深圳">深圳</asp:ListItem> <asp:ListItem Value="佛山">佛山</asp:ListItem> </SheetControls:SheetRadioButtonList> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label14" runat="server" BindType="OnlyVisibility" DataField="列表框控件" Text="列表框控件" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetListBox ID="listCity" runat="server" DataField="列表框控件" Width="100px"> <asp:ListItem Value="广州" Selected="True">广州</asp:ListItem> <asp:ListItem Value="深圳">深圳</asp:ListItem> <asp:ListItem Value="佛山">佛山</asp:ListItem> <asp:ListItem Value="北京">北京</asp:ListItem> </SheetControls:SheetListBox> </td> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label2" runat="server" BindType="OnlyVisibility" DataField="复选框控件" Text="复选框控件" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetCheckBox ID="Control2" runat="server" DataField="复选框控件" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label17" runat="server" BindType="OnlyVisibility" DataField="编辑框控件" Text="编辑框控件" /> </td> <td class="tdData" colspan="5"> <SheetControls:SheetRichTextBox ID="richBox" runat="server" Width="80%" DataField="编辑框控件" /> </td> </tr> <tr> <td class="tdTitle"> HTML控件 </td> <td class="tdData" colspan="5"> <SheetControls:SheetHtmlForm ID="htmlControl" runat="server" Width="80%" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label1" runat="server" BindType="OnlyVisibility" DataField="日历控件" Text="日历控件" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetTime ID="Control1" runat="server" Width="80%" Modal="SimplifiedTime" DefaultValue="CurrentTime" DataField="日历控件" /> </td> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label21" runat="server" BindType="OnlyVisibility" DataField="日期控件" Text="日期控件" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetTime ID="Control21" runat="server" Width="80%" Modal="SimplifiedTime" DefaultValue="CurrentTime" DataField="日期控件" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label22" runat="server" BindType="OnlyVisibility" DataField="SheetUserList" Text="SheetUserList" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetUserList ID="sulUser" runat="server" Width="80%" DataField="SheetUserList" UserSelectable="true" OrgUnitSelectable="true" /> </td> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label24" runat="server" BindType="OnlyVisibility" DataField="SheetUserSelector" Text="SheetUserSelector" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetUserSelector ID="Control24" runat="server" Width="80%" DataField="SheetUserSelector" UserSelectable="true" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label15" runat="server" BindType="OnlyVisibility" DataField="组织机构显示控件" Text="组织机构显示控件" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetOrgList ID="orgUser" runat="server" DataField="组织机构显示控件" Width="80%" /> </td> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label23" runat="server" BindType="OnlyVisibility" DataField="SheetUserQuerier" Text="SheetUserQuerier" /> </td> <td class="tdData" colspan="2"> <SheetControls:SheetUserQuerier ID="suqUser" runat="server" Width="80%" DataField="SheetUserQuerier" UserSelectable="true" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label19" runat="server" BindType="OnlyVisibility" DataField="SheetSubTable" Text="SheetSubTable" /> </td> <td class="tdData" colspan="5"> <SheetControls:SheetSubTable ID="sstTable" runat="server" DataField="SheetSubTable" Width="100%" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label5" runat="server" BindType="OnlyVisibility" DataField="SheetDetail" Text="SheetDetail" /> </td> <td class="tdData" colspan="5"> <SheetControls:SheetDetail ID="detailTable" Width="91.5%" runat="server" DataField="SheetDetail" /> </td> </tr> <tr> <td class="tdTitle"> <SheetControls:SheetLabel ID="Label8" runat="server" BindType="OnlyVisibility" DataField="SheetGridView" Text="SheetGridView" /> </td> <td class="tdData" colspan="5"> <SheetControls:SheetGridView ID="gridTable" runat="server" AutoGenerateColumns="false" DataField="SheetGridView" Width="100%"> <Columns> <asp:TemplateField HeaderStyle-Width="95%"> <HeaderTemplate> <table border="1" cellpadding="0" cellspacing="0" style="width: 100%"> <tr> <th rowspan="2" style="text-align: center; width: 26%"> 姓名 </th> <th style="text-align: center; width: 12%"> 生日 </th> <th style="text-align: center"> 性别 </th> <th style="text-align: center"> 籍贯 </th> </tr> <tr> <th style="text-align: center"> 年龄 </th> <th style="text-align: center"> 学历 </th> <th style="text-align: center"> 爱好 </th> </tr> </table> </HeaderTemplate> <ItemTemplate> <table border="1" cellpadding="0" cellspacing="0" style="width: 100%"> <tr> <td rowspan="2" style="text-align: center; width: 26%"> <SheetControls:SheetTextBox Width="95%" ID="txtName" runat="server" DataField="姓名" /> </td> <td style="text-align: center; width: 12%"> <SheetControls:SheetTime ID="stBirth" runat="server" DataField="生日" Modal="OnlyDate" Width="95%" /> </td> <td style="text-align: left"> <SheetControls:SheetRadioButtonList ID="rbtnSex" runat="server" DataField="性别" RepeatColumns="2" RepeatDirection="Horizontal"> <asp:ListItem Value="男">男</asp:ListItem> <asp:ListItem Value="女">女</asp:ListItem> </SheetControls:SheetRadioButtonList> </td> <td style="text-align: center"> <SheetControls:SheetTextBox ID="txtNation" runat="server" DataField="籍贯" Width="95%" /> </td> </tr> <tr> <td style="text-align: center"> <SheetControls:SheetTextBox ID="txtAge" runat="server" DataField="年龄" Width="95%" /> </td> <td style="text-align: left"> <SheetControls:SheetDropDownList ID="ddlDegree" runat="server" DataField="学历"> <asp:ListItem Value="博士">博士</asp:ListItem> <asp:ListItem Value="硕士">硕士</asp:ListItem> <asp:ListItem Value="本科">本科</asp:ListItem> <asp:ListItem Value="大专">大专</asp:ListItem> </SheetControls:SheetDropDownList> </td> <td style="text-align: left"> <SheetControls:SheetCheckBoxList ID="chkInterest" runat="server" DataField="爱好" RepeatColumns="5" RepeatDirection="Horizontal"> <asp:ListItem Value="星际" Text="星际" /> <asp:ListItem Value="帝国" Text="帝国" /> <asp:ListItem Value="红警" Text="红警" /> </SheetControls:SheetCheckBoxList> </td> </tr> </table> </ItemTemplate> </asp:TemplateField> </Columns> <EmptyDataTemplate> <table border="1" cellpadding="0" cellspacing="0" style="width: 100%"> <tr> <th rowspan="2" style="text-align: center"> 姓名 </th> <th style="text-align: center"> 生日 </th> <th style="text-align: center"> 性别 </th> <th style="text-align: center"> 籍贯 </th> </tr> <tr> <th style="text-align: center"> 年龄 </th> <th style="text-align: center"> 学历 </th> <th style="text-align: center"> 爱好 </th> </tr> </table> </EmptyDataTemplate> </SheetControls:SheetGridView> <SheetControls:SheetLinkButton ID="lbtnAddNew" runat="server" DataField="SheetGridView" Text="新增" OnClick="lbtnAddNew_Click" /> </td> </tr> </table> <table id="tbBody" class="tableStyle" border="1" cellpadding="0" cellspacing="0"> <tr> <td colspan="4" id="tdWordBody"> 正文: </td> </tr> <tr> <td colspan="4" style="text-align: center; height: 900px"> <table border="0" style="text-align: center"> <tr> <td width="10%"> </td> <td align="center"> <SheetControls:SheetOfficeWord ID="wordContent" runat="server" DataField="正文" Width="880px" Height="1000px" PDFDataField="PDF正文" CABPath="../../Office/OfficeControl.cab" /> </td> <td width="10%"> </td> </table> </td> </tr> </table> <div id="divBottomBars"> <SheetControls:SheetActionPane ID="SheetActionPane2" runat="server" ClientValidation="validation({EventType})" AfterConfirmMethod="$.lockScreen(this);" /> </div> <br /> <br /> <br /> </div> </center> </div> <!-- 是否保存了PDF --> <SheetControls:SheetHiddenField ID="hidSavePdf" runat="server" /> <!-- PDF 文件的ID --> <asp:HiddenField ID="hidPdfFileID" runat="server" Value="" /> </form> </body> </html> |
cs
using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; namespace OThinker.H3.Portal.Sheets { /// <summary> /// 控件及表单开发示例程序 /// </summary> public partial class SheetControl : OThinker.H3.WorkSheet.SheetPage { /// <summary> /// 填写申请单活动节点名称 /// </summary> private const string Activity_Startup = "填写申请单"; /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { // 子表控件数据初始化,用于初始化子表数据 detailTable.EditorSourceLoading += new EventHandler<WorkSheet.EditorSourceLoadingEventArgs>(detailTable_EditorSourceLoading); // 子表编辑控件初始化,用于切换子表控件的编辑类型 detailTable.EditorLoading += new EventHandler<WorkSheet.EditorLoadingEventArgs>(detailTable_EditorLoading); // HTML 控件 htmlControl.Initialize(this, "<div><table><tr><td><b>通过后台Initialize方法,输出HTML在表单上</b></td></tr></table></div>"); } /// <summary> /// 控件初始化事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void detailTable_EditorLoading(object sender, WorkSheet.EditorLoadingEventArgs e) { TableCell cell = e.Control as TableCell; if (e.ColumnName == "学历") { DropDownList ddl = new DropDownList(); ddl.Items.Add(new ListItem("博士", "博士")); ddl.Items.Add(new ListItem("硕士", "硕士")); ddl.Items.Add(new ListItem("本科", "本科")); ddl.Items.Add(new ListItem("大专", "大专")); ddl.SelectedValue = e.Value + string.Empty; cell.Controls.Add(ddl); e.Set = true; } } /// <summary> /// 子表控件数据源初始化事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void detailTable_EditorSourceLoading(object sender, WorkSheet.EditorSourceLoadingEventArgs e) { if (e.DataTableSource.Rows.Count == 0) { DataRow row = e.DataTableSource.NewRow(); row[0] = "张三"; e.DataTableSource.Rows.Add(row); } } /// <summary> /// 表单数据项加载 /// </summary> public override void LoadDataFields() { // 当前流程实例对象:this.Enviroment.InstanceContext; // 当前任务对象:this.Enviroment.WorkItem; // 当前流程实例ID:this.Enviroment.InstanceId; // 当前任务ID: this.Enviroment.WorkItemID; // 当前流程模板类型:this.Enviroment.WorkflowPackage; // 当前流程模板名称:this.Enviroment.WorkflowName; // 当前活动节点:this.Enviroment.WorkflowActivity; // 基类加载数据项方法 base.LoadDataFields(); if (hidPdfFileID.Value == string.Empty) { this.hidPdfFileID.Value = this.wordContent.PdfID; } } /// <summary> /// 表单数据项保存 /// </summary> /// <param name="Args">表单事件对象</param> public override void SaveDataFields(OThinker.H3.WorkSheet.SheetSubmitEventArgs Args) { // 是否提交任务: Args.Finish // 提交按钮类型:Args.ButtonType // 目标节点名称:Args.DestActivityName // 基类保存数据项方法 base.SaveDataFields(Args); } /// <summary> /// 设置路由是否可以允许选择,适用于手工选择路由时,根据逻辑条件屏蔽路由 /// </summary> /// <param name="ActivityName"></param> /// <returns></returns> public override bool IsActivitySelectable(string ActivityName) { return base.IsActivitySelectable(ActivityName); } /// <summary> /// 表单后台验证操作 /// </summary> /// <param name="Args">表单事件对象</param> /// <param name="Errors">错误类型集合</param> /// <returns></returns> public override bool ValidateDataFields(WorkSheet.SheetSubmitEventArgs Args, System.Collections.Generic.List<string> Errors) { // Errors.Add("后台验证不通过!"); return base.ValidateDataFields(Args, Errors) && Errors.Count == 0; } /// <summary> /// 设置(传阅/协办/征询/调整参与者)选择人员的范围 /// </summary> /// <param name="SelectRecipientType"></param> /// <returns>可选择范围组织的ObjectID数组</returns> public override string[] GetOptionalRecipients(WorkSheet.SelectRecipientType SelectRecipientType) { return base.GetOptionalRecipients(SelectRecipientType); } #region 数据项权限相关操作 ---------------- /// <summary> /// 设置数据项读写权限 /// 每个数据项都会执行该方法,当返回为 True 时,表示该数据项可编辑,否则不可编辑 /// 基类方法读取活动属性数据权限配置 /// </summary> /// <param name="ItemName">数据项名称</param> /// <returns></returns> public override OThinker.Data.BoolMatchValue GetItemEditable(string ItemName) { // 参考代码:活动【填写申请单】在工作模式时,设置数据项【申请原因】可编辑; if (this.Enviroment.ActivityName == Activity_Startup && this.Enviroment.IsWorkMode && ItemName == "申请原因") { return OThinker.Data.BoolMatchValue.True; } return base.GetItemEditable(ItemName); } /// <summary> /// 设置数据项是否必须输入 /// </summary> /// <param name="ItemName">数据项名称</param> /// <returns></returns> public override OThinker.Data.BoolMatchValue GetItemRequired(string ItemName) { return base.GetItemRequired(ItemName); } /// <summary> /// 设置数据项查看痕迹权限是否可见,该功能需要数据项设置了记录痕迹功能 /// </summary> /// <param name="ItemName">数据项名称</param> /// <returns></returns> public override OThinker.Data.BoolMatchValue GetItemTrackVisible(string ItemName) { return base.GetItemTrackVisible(ItemName); } /// <summary> /// 设置数据项是否可见 /// </summary> /// <param name="ItemName">数据项名称</param> /// <returns></returns> public override OThinker.Data.BoolMatchValue GetItemVisible(string ItemName) { return base.GetItemVisible(ItemName); } #endregion /// <summary> /// 模板子表控件新增行数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lbtnAddNew_Click(object sender, EventArgs e) { this.gridTable.AddNew(); } /// <summary> /// 自定义按钮事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnClick_Click(object sender, EventArgs e) { Response.Write(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); } } } #region 数据库创建脚本 ----------- /* CREATE TABLE [dbo].SheetGridView( [ObjectID] [nvarchar](36) NULL, [InstanceId] [nvarchar](36) NULL, [DataField] [nvarchar](32) NULL, [姓名] [nvarchar](32) NULL, [生日] [datetime] NULL, [籍贯] [nvarchar](32) NULL, [性别] [nvarchar](32) NULL, [爱好] [nvarchar](32) NULL, [学历] [nvarchar](16) NULL, [年龄] [int] NULL ) ON [PRIMARY] GO CREATE TABLE SheetDetail ( [ObjectID] [nvarchar](36) NULL, [InstanceId] [nvarchar](36) NULL, [DataField] [nvarchar](32) NULL, [姓名] [nvarchar](32) NULL, [生日] [datetime] NULL, [籍贯] [nvarchar](32) NULL, [性别] bit, [爱好] [nvarchar](32) NULL, [学历] [nvarchar](16) NULL, [年龄] [int] NULL ) CREATE TABLE SheetSubTable ( [ObjectID] [nvarchar](36) NULL, [InstanceId] [nvarchar](36) NULL, [DataField] [nvarchar](32) NULL, [姓名] [nvarchar](32) NULL, [生日] [datetime] NULL, [籍贯] [nvarchar](32) NULL, [性别] bit NULL, [爱好] [nvarchar](32) NULL, [学历] [nvarchar](16) NULL, [年龄] [int] NULL ) */ #endregion |