Views: 3
這個教學的目標一個是怎麼取得申請者的進階資訊,然後顯示在表單上,我原本寫了一個進階的版本…..發現不容易解釋我寫了什麼,我還是先寫簡單版的。
客製目標
固定顯示特定的使用者資訊在申請欄位上
外掛欄位產生器
- 外掛欄位代號:
ShowApplyInfo - 設計畫面名稱:
ShowApplyInfo_OptionField.aspx - 表單填寫之檔案名稱:
ShowApplyInfoUC.ascx
這邊依照自己需求簡單填一下,接著匯出外掛欄位
接著會產生兩個檔案
ShowApplyInfoUC.ascxShowApplyInfoUC.ascx.cs
程式碼-ShowApplyInfoUC.ascx
基本上就看你需求是什麼,自己保留需要的欄位,刪除用不到的欄位
這邊我把欄位大致上都列上去了,全部都寫在前端
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ShowApplyInfoUC.ascx.cs" Inherits="WKF_OptionalFields_ShowApplyInfoUC" %>
<%@ Import Namespace="Ede.Uof.WebApi.M.ViewModels.EIP" %>
<%@ Import Namespace="Ede.Uof.EIP.SystemInfo" %>
<%@ Import Namespace="Ede.Uof.EIP.Organization.Util" %>
<%@ Reference Control="~/WKF/FormManagement/VersionFieldUserControl/VersionFieldUC.ascx" %>
<%
string guid;
if (taskObj != null && taskObj.Applicant != null)
{
guid = taskObj.Applicant.UserGUID;
}
else
{
guid = Current.UserGUID;
}
var userUco = new UserUCO();
var ebUser = userUco.GetEBUser(guid);
%>
<table class="PopTable">
<tr>
<td>帳號</td>
<td><%= ebUser.Account %></td>
<td>姓名</td>
<td><%= ebUser.Name %></td>
</tr>
<tr>
<td>部門</td>
<td><%= ebUser.GroupName %></td>
<td>職務</td>
<td><%= ebUser.JobTitle %></td>
</tr>
<tr>
<td>姓名(帳號)</td>
<td><%= ebUser.NameWithAccount %></td>
<td>到職日</td>
<td><%= ebUser.ArriveDate?.ToString("yyyy/MM/dd") %></td>
</tr>
<tr>
<td>Email</td>
<td><%= ebUser.Email %></td>
<td>工號</td>
<td><%= ebUser.EmployeeNo %></td>
</tr>
<tr>
<td>分機</td>
<td><%= ebUser.ExtNum %></td>
<td>生日</td>
<td><%= ebUser.Birthday?.ToString("yyyy/MM/dd") %></td>
</tr>
<tr>
<td>ERP帳號(Option1)</td>
<td><%= ebUser.Option1 %></td>
<td>飲食習慣(Option2)</td>
<td><%= ebUser.Option2 %></td>
</tr>
<tr>
<td>車號(Option3)</td>
<td><%= ebUser.Option3 %></td>
<td>公務車位(Option4)</td>
<td><%= ebUser.Option4 %></td>
</tr>
<tr>
<td>Option5</td>
<td><%= ebUser.Option5 %></td>
<td>Option6</td>
<td><%= ebUser.Option6 %></td>
</tr>
</table>
<asp:Label ID="lblHasNoAuthority" runat="server" Text="無填寫權限" ForeColor="Red" Visible="False" meta:resourcekey="lblHasNoAuthorityResource1"></asp:Label>
<asp:Label ID="lblToolTipMsg" runat="server" Text="不允許修改(唯讀)" Visible="False" meta:resourcekey="lblToolTipMsgResource1"></asp:Label>
<asp:Label ID="lblModifier" runat="server" Visible="False" meta:resourcekey="lblModifierResource1"></asp:Label>
<asp:Label ID="lblMsgSigner" runat="server" Text="填寫者" Visible="False" meta:resourcekey="lblMsgSignerResource1"></asp:Label>
<asp:Label ID="lblAuthorityMsg" runat="server" Text="具填寫權限人員" Visible="False" meta:resourcekey="lblAuthorityMsgResource1"></asp:Label>
關鍵點說明
string guid;
if (taskObj != null && taskObj.Applicant != null)
{
guid = taskObj.Applicant.UserGUID;
}
else
{
guid = Current.UserGUID;
}
var userUco = new UserUCO();
var ebUser = userUco.GetEBUser(guid);
我把物件直接寫在前端,這算是ASP.NET 的其中一個彈性(雖然寫起來比較..髒),不過很適合這篇教學的用法,
- 判斷是不是在簽核中,簽核中才會有
taskObj這個物件,如果沒有就顯示現在使用者 - 讀取使用者資訊要透過
UserUCO()取得使用者的物件EBUser
後端程式碼
這邊基本上不需要改任何東西就能用了,所以我省略掉
0 Comments