fix:考试
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
ALTER TABLE Training_TestRecord
|
||||
ADD Signature NVARCHAR(1000),
|
||||
ADD Fingerprint NVARCHAR(1000),
|
||||
ADD Signature NVARCHAR(1000);
|
||||
go
|
||||
ALTER TABLE Training_TestRecord
|
||||
ADD Fingerprint NVARCHAR(1000);
|
||||
go
|
||||
ALTER TABLE Training_TestRecord
|
||||
ADD CompanyTrainingItemId NVARCHAR(50);
|
||||
go
|
||||
@@ -0,0 +1,25 @@
|
||||
-- 分值
|
||||
ALTER TABLE Training_TestTrainingItem
|
||||
ADD Score int;
|
||||
go
|
||||
|
||||
-- 菜单
|
||||
INSERT INTO [dbo].[Sys_Menu] ( [MenuId], [MenuName], [Icon], [Url], [SortIndex], [SuperMenu], [MenuType], [IsOffice], [IsEnd], [IsUsed] )
|
||||
VALUES
|
||||
( N'2D889FC1-6B76-4F16-B19B-2D586B569B65', N'岗位试题库', NULL, N'HSSE/EduTrain/WorkPostTestTraining.aspx', 40, N'E26D223B-4CA2-4A6D-82D0-224CC9C8676D', N'Menu_DigData', '1', '1', '1' );
|
||||
|
||||
INSERT INTO [dbo].[Sys_ButtonToMenu] ( [ButtonToMenuId], [MenuId], [ButtonName], [SortIndex] )
|
||||
VALUES
|
||||
( NewID(), N'2D889FC1-6B76-4F16-B19B-2D586B569B65', N'删除', 3 );
|
||||
INSERT INTO [dbo].[Sys_ButtonToMenu] ( [ButtonToMenuId], [MenuId], [ButtonName], [SortIndex] )
|
||||
VALUES
|
||||
( NewID(), N'2D889FC1-6B76-4F16-B19B-2D586B569B65', N'导出', 5 );
|
||||
INSERT INTO [dbo].[Sys_ButtonToMenu] ( [ButtonToMenuId], [MenuId], [ButtonName], [SortIndex] )
|
||||
VALUES
|
||||
( NewID(), N'2D889FC1-6B76-4F16-B19B-2D586B569B65', N'保存', 4 );
|
||||
INSERT INTO [dbo].[Sys_ButtonToMenu] ( [ButtonToMenuId], [MenuId], [ButtonName], [SortIndex] )
|
||||
VALUES
|
||||
( NewID(), N'2D889FC1-6B76-4F16-B19B-2D586B569B65', N'增加', 1 );
|
||||
INSERT INTO [dbo].[Sys_ButtonToMenu] ( [ButtonToMenuId], [MenuId], [ButtonName], [SortIndex] )
|
||||
VALUES
|
||||
( NewID(), N'2D889FC1-6B76-4F16-B19B-2D586B569B65', N'修改', 2 );
|
||||
@@ -45,6 +45,7 @@ namespace BLL
|
||||
DItem = TestTrainingItem.DItem,
|
||||
EItem = TestTrainingItem.EItem,
|
||||
AnswerItems = TestTrainingItem.AnswerItems,
|
||||
Score = TestTrainingItem.Score,
|
||||
};
|
||||
db.Training_TestTrainingItem.InsertOnSubmit(newTestTrainingItem);
|
||||
db.SubmitChanges();
|
||||
@@ -74,6 +75,7 @@ namespace BLL
|
||||
newTestTrainingItem.DItem = TestTrainingItem.DItem;
|
||||
newTestTrainingItem.EItem = TestTrainingItem.EItem;
|
||||
newTestTrainingItem.AnswerItems = TestTrainingItem.AnswerItems;
|
||||
newTestTrainingItem.Score = TestTrainingItem.Score;
|
||||
db.SubmitChanges();
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -708,6 +708,24 @@
|
||||
<Content Include="Door\InOutRecordStatisticsGrid.aspx" />
|
||||
<Content Include="Door\LeaveRecord.aspx" />
|
||||
<Content Include="Door\LeaveRecordEdit.aspx" />
|
||||
<Content Include="File\Excel\DataIn\岗位考试试题模版.xls" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(司索信号工).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(塔吊司机).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(挖机司机).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(施工电梯司机).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(普工).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(木工).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(架子工).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(桩基).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(水电工).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(渣土车司机).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(班组管理员).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(瓦工).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(电焊工).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(管理人员).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(装配、灌浆工).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(钢筋工).doc" />
|
||||
<Content Include="File\Word\Person\安全教育培训打印整套(防水普工).doc" />
|
||||
<Content Include="HJGL\BaseInfo\Components.aspx" />
|
||||
<Content Include="HJGL\BaseInfo\ComponentsEdit.aspx" />
|
||||
<Content Include="HJGL\BaseInfo\ComponentsIn.aspx" />
|
||||
@@ -1016,6 +1034,11 @@
|
||||
<Content Include="HSSE\EduTrain\TrainTestDBSelectCloumn.aspx" />
|
||||
<Content Include="HSSE\EduTrain\TrainTestItemEdit.aspx" />
|
||||
<Content Include="HSSE\EduTrain\TrainTestView.aspx" />
|
||||
<Content Include="HSSE\EduTrain\WorkPostTestTraining.aspx" />
|
||||
<Content Include="HSSE\EduTrain\WorkPostTestTrainingItemIn.aspx" />
|
||||
<Content Include="HSSE\EduTrain\WorkPostTestTrainingItemSave.aspx" />
|
||||
<Content Include="HSSE\EduTrain\WorkPostTestTrainingOut.aspx" />
|
||||
<Content Include="HSSE\EduTrain\WorkPostTestTrainingSave.aspx" />
|
||||
<Content Include="HSSE\Emergency\DrillRecordList.aspx" />
|
||||
<Content Include="HSSE\Emergency\DrillRecordListEdit.aspx" />
|
||||
<Content Include="HSSE\Emergency\DrillRecordListView.aspx" />
|
||||
@@ -11783,6 +11806,26 @@
|
||||
<Compile Include="HSSE\EduTrain\TrainTestView.aspx.designer.cs">
|
||||
<DependentUpon>TrainTestView.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HSSE\EduTrain\WorkPostTestTraining.aspx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HSSE\EduTrain\WorkPostTestTraining.aspx.designer.cs" />
|
||||
<Compile Include="HSSE\EduTrain\WorkPostTestTrainingItemIn.aspx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HSSE\EduTrain\WorkPostTestTrainingItemIn.aspx.designer.cs" />
|
||||
<Compile Include="HSSE\EduTrain\WorkPostTestTrainingItemSave.aspx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HSSE\EduTrain\WorkPostTestTrainingItemSave.aspx.designer.cs" />
|
||||
<Compile Include="HSSE\EduTrain\WorkPostTestTrainingOut.aspx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HSSE\EduTrain\WorkPostTestTrainingOut.aspx.designer.cs" />
|
||||
<Compile Include="HSSE\EduTrain\WorkPostTestTrainingSave.aspx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HSSE\EduTrain\WorkPostTestTrainingSave.aspx.designer.cs" />
|
||||
<Compile Include="HSSE\Emergency\DrillRecordList.aspx.cs">
|
||||
<DependentUpon>DrillRecordList.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
|
||||
@@ -85,7 +85,7 @@ namespace FineUIPro.Web.HSSE.EduTrain
|
||||
private List<Model.Training_TestTraining> GetNewTraining(string parentId)
|
||||
{
|
||||
return (from x in Funs.DB.Training_TestTraining
|
||||
where x.SupTrainingId == parentId
|
||||
where x.SupTrainingId == parentId && x.TrainingId != "99ccf4c8-6f8e-47da-a900-53b12a278f25"
|
||||
orderby x.TrainingCode
|
||||
select x).ToList();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,198 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WorkPostTestTraining.aspx.cs" Inherits="FineUIPro.Web.HSSE.EduTrain.WorkPostTestTraining" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title></title>
|
||||
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
|
||||
<f:Panel ID="Panel1" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region">
|
||||
<Items>
|
||||
<f:Panel runat="server" ID="panelLeftRegion" RegionPosition="Left" RegionSplit="true"
|
||||
EnableCollapse="true" Width="210px" Title="考试试题库" TitleToolTip="考试试题库" ShowBorder="true"
|
||||
ShowHeader="false" AutoScroll="true" BodyPadding="2px" IconFont="ArrowCircleLeft"
|
||||
Layout="Fit">
|
||||
<Items>
|
||||
<f:Toolbar ID="Toolbar2" Position="Top" runat="server" ToolbarAlign="Right">
|
||||
<Items>
|
||||
<%-- <f:Button ID="btnNew" Icon="Add" runat="server" OnClick="btnNew_Click" Hidden="true">
|
||||
</f:Button>--%>
|
||||
<f:Button ID="btnOut" ToolTip="导出" Icon="FolderUp" runat="server" Text="导出"
|
||||
OnClick="btnMenuOut_Click">
|
||||
</f:Button>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
<f:Tree ID="tvTestTraining" EnableCollapse="true" ShowHeader="true" Title="考试试题库" OnNodeCommand="tvTestTraining_NodeCommand"
|
||||
AutoLeafIdentification="true" runat="server" EnableTextSelection="True">
|
||||
<Listeners>
|
||||
<f:Listener Event="beforenodecontextmenu" Handler="onTreeNodeContextMenu" />
|
||||
</Listeners>
|
||||
</f:Tree>
|
||||
</Items>
|
||||
</f:Panel>
|
||||
<f:Panel runat="server" ID="panelCenterRegion" RegionPosition="Center" ShowBorder="true"
|
||||
Layout="VBox" ShowHeader="false" BodyPadding="5px" IconFont="PlusCircle" Title="考试试题明细"
|
||||
TitleToolTip="考试试题明细" AutoScroll="true">
|
||||
<Items>
|
||||
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" EnableCollapse="true"
|
||||
runat="server" BoxFlex="1" DataKeyNames="TrainingItemId" DataIDField="TrainingItemId"
|
||||
AllowSorting="true" SortField="TrainingItemCode" ForceFit="true"
|
||||
SortDirection="DESC" OnSort="Grid1_Sort" AllowPaging="true" IsDatabasePaging="true"
|
||||
PageSize="15" OnPageIndexChange="Grid1_PageIndexChange" EnableRowDoubleClickEvent="true"
|
||||
OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True" EnableColumnLines="true">
|
||||
<Toolbars>
|
||||
<f:Toolbar ID="Toolbar3" Position="Top" runat="server">
|
||||
<Items>
|
||||
<f:TextBox ID="txtName" runat="server" Label="查询" EmptyText="输入查询条件"
|
||||
AutoPostBack="true" OnTextChanged="TextBox_TextChanged" Width="250px" LabelWidth="80px"
|
||||
LabelAlign="Right">
|
||||
</f:TextBox>
|
||||
<f:DropDownList runat="server" ID="drptype" AutoPostBack="true" Label="题型" LabelWidth="60px" OnSelectedIndexChanged="TextBox_TextChanged">
|
||||
<f:ListItem Value="0" Text="全部" Selected="true"/>
|
||||
<f:ListItem Value="1" Text="单选题"/>
|
||||
<f:ListItem Value="2" Text="多选题"/>
|
||||
<f:ListItem Value="3" Text="判断题"/>
|
||||
</f:DropDownList>
|
||||
<f:CheckBox runat="server" ID="ckIsItem" Text="选项不全" AutoPostBack="true" OnCheckedChanged="ckIsItem_CheckedChanged"></f:CheckBox>
|
||||
<f:ToolbarFill ID="ToolbarFill1" runat="server">
|
||||
</f:ToolbarFill>
|
||||
<f:Button ID="btnNewDetail" ToolTip="新增" Icon="Add" runat="server" OnClick="btnNewDetail_Click" Text="新增"
|
||||
Hidden="true">
|
||||
</f:Button>
|
||||
<f:Button ID="btnImport" ToolTip="导入" Icon="PageExcel" Hidden="true" runat="server" Text="导入"
|
||||
OnClick="btnImport_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="Button1" OnClick="btnMenuOut1_Click" runat="server" ToolTip="导出" Icon="FolderUp" Text="导出"
|
||||
EnableAjax="false" DisableControlBeforePostBack="false">
|
||||
</f:Button>
|
||||
<%-- <f:Button ID="btnRefresh" ToolTip="按基础数据刷新" Icon="ArrowRefresh" runat="server" OnClick="Refresh_Click"
|
||||
Hidden="true">
|
||||
</f:Button>
|
||||
<f:Button ID="btnRefresh1" ToolTip="按列表名称刷新" Icon="ArrowRefresh" runat="server" OnClick="Refresh1_Click"
|
||||
Hidden="true">
|
||||
</f:Button>--%>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
</Toolbars>
|
||||
<Columns>
|
||||
<f:RenderField ColumnID="TrainingItemCode" DataField="TrainingItemCode" SortField="TrainingItemCode"
|
||||
Width="80px" FieldType="String" HeaderText="编号" HeaderTextAlign="Center" TextAlign="left">
|
||||
</f:RenderField>
|
||||
<f:RenderField ColumnID="Abstracts" DataField="Abstracts" SortField="Abstracts"
|
||||
Width="600px" FieldType="String" HeaderText="教材内容" HeaderTextAlign="Center" TextAlign="left">
|
||||
</f:RenderField>
|
||||
<f:RenderField ColumnID="WorkPostNames" DataField="WorkPostNames" SortField="WorkPostNames"
|
||||
Width="200px" FieldType="String" HeaderText="适合岗位" HeaderTextAlign="Center" TextAlign="left">
|
||||
</f:RenderField>
|
||||
<f:RenderField ColumnID="TestTypeName" DataField="TestTypeName" SortField="TestTypeName"
|
||||
Width="70px" FieldType="String" HeaderText="题型" HeaderTextAlign="Center" TextAlign="left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="200px" ColumnID="AItem" DataField="AItem" FieldType="String"
|
||||
HeaderText="答案项A" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="200px" ColumnID="BItem" DataField="BItem" FieldType="String"
|
||||
HeaderText="答案项B" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="200px" ColumnID="CItem" DataField="CItem" FieldType="String"
|
||||
HeaderText="答案项C" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="200px" ColumnID="DItem" DataField="DItem" FieldType="String"
|
||||
HeaderText="答案项D" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="200px" ColumnID="EItem" DataField="EItem" FieldType="String"
|
||||
HeaderText="答案项E" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="90px" ColumnID="AnswerItems" DataField="AnswerItems" FieldType="String"
|
||||
HeaderText="正确答案项" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="90px" ColumnID="Score" DataField="Score" FieldType="String"
|
||||
HeaderText="分值" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
</Columns>
|
||||
<Listeners>
|
||||
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
|
||||
</Listeners>
|
||||
<PageItems>
|
||||
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
|
||||
</f:ToolbarSeparator>
|
||||
<f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:">
|
||||
</f:ToolbarText>
|
||||
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
|
||||
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
|
||||
</f:DropDownList>
|
||||
</PageItems>
|
||||
</f:Grid>
|
||||
</Items>
|
||||
</f:Panel>
|
||||
</Items>
|
||||
</f:Panel>
|
||||
<f:Window ID="Window1" Title="考试试题" Hidden="true" EnableIFrame="true" EnableMaximize="true"
|
||||
Target="Parent" EnableResize="false" runat="server" OnClose="Window1_Close" IsModal="true"
|
||||
Width="600px" Height="350px">
|
||||
</f:Window>
|
||||
<f:Window ID="Window2" Title="考试试题详情" Hidden="true" EnableIFrame="true" EnableMaximize="true"
|
||||
Target="Parent" EnableResize="false" runat="server" OnClose="Window2_Close" IsModal="true"
|
||||
Width="900px" Height="580px">
|
||||
</f:Window>
|
||||
<f:Window ID="Window3" Title="导入信息" Hidden="true" EnableIFrame="true" EnableMaximize="true"
|
||||
Target="Parent" EnableResize="false" runat="server" OnClose="Window3_Close" IsModal="false"
|
||||
CloseAction="HidePostBack" Width="1200px" Height="560px">
|
||||
</f:Window>
|
||||
<f:Menu ID="Menu1" runat="server">
|
||||
<f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" EnablePostBack="true"
|
||||
runat="server" Text="编辑" Hidden="true" Icon="Pencil">
|
||||
</f:MenuButton>
|
||||
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true"
|
||||
Icon="Delete" ConfirmText="删除选中行?" ConfirmTarget="Parent" runat="server" Text="删除"
|
||||
Hidden="true">
|
||||
</f:MenuButton>
|
||||
</f:Menu>
|
||||
<f:Menu ID="Menu2" runat="server">
|
||||
<f:MenuButton ID="btnMenuADD" OnClick="btnMenuADD_Click" EnablePostBack="true"
|
||||
runat="server" Text="新增" Icon="Add" Hidden="true">
|
||||
</f:MenuButton>
|
||||
<f:MenuButton ID="btnTreeMenuEdit" OnClick="btnTreeMenuEdit_Click" EnablePostBack="true"
|
||||
runat="server" Text="编辑" Hidden="true" Icon="Pencil">
|
||||
</f:MenuButton>
|
||||
|
||||
<f:MenuButton ID="btnQR" OnClick="btnQR_Click" EnablePostBack="true"
|
||||
runat="server" Text="二维码" Icon="Shading">
|
||||
</f:MenuButton>
|
||||
|
||||
|
||||
<f:MenuButton ID="btnTreeMenuDelete" OnClick="btnTreeMenuDelete_Click" EnablePostBack="true"
|
||||
Icon="Delete" ConfirmText="删除选中节点?" ConfirmTarget="Parent" runat="server" Text="删除"
|
||||
Hidden="true">
|
||||
</f:MenuButton>
|
||||
</f:Menu>
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
var treeID = '<%= tvTestTraining.ClientID %>';
|
||||
var menuID = '<%= Menu1.ClientID %>';
|
||||
var menuID2 = '<%= Menu2.ClientID %>';
|
||||
// 保存当前菜单对应的树节点ID
|
||||
var currentNodeId;
|
||||
|
||||
// 返回false,来阻止浏览器右键菜单
|
||||
function onTreeNodeContextMenu(event, nodeId) {
|
||||
currentNodeId = nodeId;
|
||||
F(menuID2).show();
|
||||
return false;
|
||||
}
|
||||
// 返回false,来阻止浏览器右键菜单
|
||||
function onRowContextMenu(event, rowId) {
|
||||
F(menuID).show(); //showAt(event.pageX, event.pageY);
|
||||
return false;
|
||||
}
|
||||
|
||||
function reloadGrid() {
|
||||
__doPostBack(null, 'reloadGrid');
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,557 @@
|
||||
using BLL;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.SqlClient;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
public partial class WorkPostTestTraining : PageBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 加载页面
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
Funs.DropDownPageSize(this.ddlPageSize);
|
||||
this.GetButtonPower();
|
||||
this.InitTreeMenu();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化树
|
||||
/// </summary>
|
||||
private void InitTreeMenu()
|
||||
{
|
||||
tvTestTraining.Nodes.Clear();
|
||||
tvTestTraining.ShowBorder = false;
|
||||
tvTestTraining.ShowHeader = false;
|
||||
tvTestTraining.EnableIcons = true;
|
||||
tvTestTraining.AutoScroll = true;
|
||||
tvTestTraining.EnableSingleClickExpand = true;
|
||||
TreeNode rootNode = new TreeNode
|
||||
{
|
||||
Text = "考试试题库",
|
||||
NodeID = "0",
|
||||
Expanded = true
|
||||
};
|
||||
this.tvTestTraining.Nodes.Add(rootNode);
|
||||
BoundTree(rootNode.Nodes, rootNode.NodeID);
|
||||
}
|
||||
|
||||
private void BoundTree(TreeNodeCollection nodes, string parentId)
|
||||
{
|
||||
var dt = GetNewTraining(parentId);
|
||||
if (dt.Count() > 0)
|
||||
{
|
||||
TreeNode tn = null;
|
||||
foreach (var dr in dt)
|
||||
{
|
||||
string name = dr.TrainingName;
|
||||
if (!string.IsNullOrEmpty(dr.TrainingCode))
|
||||
{
|
||||
name = "[" + dr.TrainingCode + "]" + dr.TrainingName;
|
||||
}
|
||||
tn = new TreeNode
|
||||
{
|
||||
|
||||
Text = name,
|
||||
NodeID = dr.TrainingId,
|
||||
EnableClickEvent = true,
|
||||
ToolTip = dr.TrainingName
|
||||
};
|
||||
nodes.Add(tn);
|
||||
///是否存在下级节点
|
||||
var sup = Funs.DB.Training_TestTraining.FirstOrDefault(x => x.SupTrainingId == tn.NodeID);
|
||||
if (sup != null)
|
||||
{
|
||||
BoundTree(tn.Nodes, tn.NodeID);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到培训类型
|
||||
/// </summary>
|
||||
/// <param name="parentId"></param>
|
||||
/// <returns></returns>
|
||||
private List<Model.Training_TestTraining> GetNewTraining(string parentId)
|
||||
{
|
||||
return (from x in Funs.DB.Training_TestTraining
|
||||
where x.SupTrainingId == parentId && x.TrainingId == "99ccf4c8-6f8e-47da-a900-53b12a278f25"
|
||||
orderby x.TrainingCode
|
||||
select x).ToList();
|
||||
}
|
||||
|
||||
//protected void btnNew_Click(object sender, EventArgs e)
|
||||
//{
|
||||
// PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TrainingSave.aspx", "编辑 - ")));
|
||||
//}
|
||||
|
||||
|
||||
protected void btnMenuADD_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.tvTestTraining.SelectedNode != null)
|
||||
{
|
||||
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WorkPostTestTrainingSave.aspx?SupTrainingId={0}", this.tvTestTraining.SelectedNode.NodeID, "新增 - ")));
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnTreeMenuEdit_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.tvTestTraining.SelectedNode != null)
|
||||
{
|
||||
if (this.tvTestTraining.SelectedNode.NodeID != "0") //非根节点可以编辑
|
||||
{
|
||||
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WorkPostTestTrainingSave.aspx?TrainingId={0}", this.tvTestTraining.SelectedNode.NodeID, "编辑 - ")));
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify("根节点无法编辑!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnTreeMenuDelete_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.tvTestTraining.SelectedNode != null && this.tvTestTraining.SelectedNodeID != "0")
|
||||
{
|
||||
var edu = Funs.DB.Training_TestTraining.FirstOrDefault(x => x.SupTrainingId == this.tvTestTraining.SelectedNode.NodeID);
|
||||
if (edu == null)
|
||||
{
|
||||
BLL.TestTrainingService.DeleteTestTrainingById(this.tvTestTraining.SelectedNode.NodeID);
|
||||
InitTreeMenu();
|
||||
Grid1.DataSource = null;
|
||||
Grid1.DataBind();
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify("存在子目录,不能删除!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify("请选择删除项!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
protected void tvTestTraining_NodeCommand(object sender, FineUIPro.TreeCommandEventArgs e)
|
||||
{
|
||||
BindGrid();
|
||||
}
|
||||
|
||||
#region BindGrid
|
||||
|
||||
private void BindGrid()
|
||||
{
|
||||
if (this.tvTestTraining.SelectedNode != null && !string.IsNullOrEmpty(this.tvTestTraining.SelectedNode.NodeID))
|
||||
{
|
||||
string strSql = @"SELECT TrainingItemId,TrainingId,TrainingItemCode,TrainingItemName,Abstracts,AttachUrl,VersionNum,TestType "
|
||||
+ @" ,(CASE WHEN TestType = '1' THEN '单选题' WHEN TestType = '2' THEN '多选题' ELSE '判断题' END) AS TestTypeName "
|
||||
+ @" ,(CASE WHEN WorkPostNames IS NULL THEN '通用' ELSE WorkPostNames END) AS WorkPostNames,AItem,BItem,CItem,DItem,EItem,AnswerItems,Score "
|
||||
+ @" FROM dbo.Training_TestTrainingItem"
|
||||
+ @" WHERE TrainingId=@TrainingId ";
|
||||
List<SqlParameter> listStr = new List<SqlParameter>
|
||||
{
|
||||
new SqlParameter("@TrainingId", this.tvTestTraining.SelectedNode.NodeID)
|
||||
};
|
||||
if (!string.IsNullOrEmpty(this.txtName.Text.Trim()))
|
||||
{
|
||||
strSql += " AND (TrainingItemCode LIKE @Name OR TrainingItemName LIKE @Name OR Abstracts LIKE @Name OR WorkPostNames LIKE @Name)";
|
||||
listStr.Add(new SqlParameter("@Name", "%" + this.txtName.Text.Trim() + "%"));
|
||||
}
|
||||
if (this.drptype.SelectedValue != "0")
|
||||
{
|
||||
strSql += " AND TestType=@TestType";
|
||||
listStr.Add(new SqlParameter("@TestType", this.drptype.SelectedValue));
|
||||
}
|
||||
if (this.ckIsItem.Checked)
|
||||
{
|
||||
strSql += " AND (AItem IS NULL OR BItem IS NULL OR AItem ='' OR BItem ='')";
|
||||
}
|
||||
|
||||
SqlParameter[] parameter = listStr.ToArray();
|
||||
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
|
||||
Grid1.RecordCount = tb.Rows.Count;
|
||||
var table = this.GetPagedDataTable(Grid1, tb);
|
||||
Grid1.DataSource = table;
|
||||
Grid1.DataBind();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Events
|
||||
protected void Window1_Close(object sender, EventArgs e)
|
||||
{
|
||||
this.InitTreeMenu();
|
||||
}
|
||||
|
||||
protected void Window2_Close(object sender, EventArgs e)
|
||||
{
|
||||
this.BindGrid();
|
||||
}
|
||||
protected void Window3_Close(object sender, EventArgs e)
|
||||
{
|
||||
this.InitTreeMenu();
|
||||
this.BindGrid();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 右键删除事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnMenuDelete_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.DeleteData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除方法
|
||||
/// </summary>
|
||||
private void DeleteData()
|
||||
{
|
||||
if (Grid1.SelectedRowIndexArray.Length > 0)
|
||||
{
|
||||
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
|
||||
{
|
||||
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
|
||||
var getD = BLL.TestTrainingItemService.GetTestTrainingItemById(rowID);
|
||||
if (getD != null)
|
||||
{
|
||||
BLL.LogService.AddSys_Log(this.CurrUser, getD.TrainingItemCode, getD.TrainingItemId, BLL.Const.TestTrainingMenuId, BLL.Const.BtnDelete);
|
||||
BLL.TestTrainingItemService.DeleteTestTrainingItemById(rowID);
|
||||
}
|
||||
}
|
||||
|
||||
BindGrid();
|
||||
ShowNotify("删除数据成功!");
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region GV排序页面
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
|
||||
{
|
||||
Grid1.PageIndex = e.NewPageIndex;
|
||||
BindGrid();
|
||||
}
|
||||
|
||||
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
|
||||
BindGrid();
|
||||
}
|
||||
|
||||
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
|
||||
{
|
||||
Grid1.SortDirection = e.SortDirection;
|
||||
Grid1.SortField = e.SortField;
|
||||
|
||||
BindGrid();
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 编辑试题
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
|
||||
{
|
||||
this.EditData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 右键编辑事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnMenuEdit_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.EditData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 编辑数据方法
|
||||
/// </summary>
|
||||
private void EditData()
|
||||
{
|
||||
if (Grid1.SelectedRowIndexArray.Length == 0)
|
||||
{
|
||||
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
string trainingItemId = Grid1.SelectedRowID;
|
||||
|
||||
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("WorkPostTestTrainingItemSave.aspx?TrainingItemId={0}", trainingItemId, "编辑 - ")));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 增加
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnNewDetail_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.tvTestTraining.SelectedNode != null)
|
||||
{
|
||||
string id = this.tvTestTraining.SelectedNodeID;
|
||||
var testTrain = BLL.TestTrainingService.GetTestTrainingById(id);
|
||||
if (testTrain != null && testTrain.IsEndLever == true)
|
||||
{
|
||||
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("WorkPostTestTrainingItemSave.aspx?TrainingId={0}", this.tvTestTraining.SelectedNode.NodeID, "编辑 - ")));
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify("请选择末级树节点!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
#region 按钮权限
|
||||
/// <summary>
|
||||
/// 获取按钮权限
|
||||
/// </summary>
|
||||
/// <param name="button"></param>
|
||||
/// <returns></returns>
|
||||
private void GetButtonPower()
|
||||
{
|
||||
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TestTrainingMenuId);
|
||||
if (buttonList.Count() > 0)
|
||||
{
|
||||
if (buttonList.Contains(BLL.Const.BtnAdd))
|
||||
{
|
||||
this.btnMenuADD.Hidden = false;
|
||||
this.btnImport.Hidden = false;
|
||||
this.btnNewDetail.Hidden = false;
|
||||
}
|
||||
if (buttonList.Contains(BLL.Const.BtnModify))
|
||||
{
|
||||
this.btnTreeMenuEdit.Hidden = false;
|
||||
this.btnMenuEdit.Hidden = false;
|
||||
}
|
||||
if (buttonList.Contains(BLL.Const.BtnDelete))
|
||||
{
|
||||
this.btnTreeMenuDelete.Hidden = false;
|
||||
this.btnMenuDelete.Hidden = false;
|
||||
}
|
||||
}
|
||||
|
||||
//if (this.CurrUser.UserId == BLL.Const.sysglyId)
|
||||
//{
|
||||
// this.btnRefresh.Hidden = false;
|
||||
// this.btnRefresh1.Hidden = false;
|
||||
//}
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 查询
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void TextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
this.BindGrid();
|
||||
}
|
||||
|
||||
#region 导入
|
||||
/// <summary>
|
||||
/// 导入按钮
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnImport_Click(object sender, EventArgs e)
|
||||
{
|
||||
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("WorkPostTestTrainingItemIn.aspx", "导入 - ")));
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 导出
|
||||
/// <summary>
|
||||
/// 导出按钮
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnMenuOut_Click(object sender, EventArgs e)
|
||||
{
|
||||
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("WorkPostTestTrainingOut.aspx", "导出 - ")));
|
||||
}
|
||||
/// <summary>
|
||||
/// 导出按钮
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnMenuOut1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.tvTestTraining.SelectedNode != null && this.tvTestTraining.SelectedNodeID != "0")
|
||||
{
|
||||
Response.ClearContent();
|
||||
string filename = Funs.GetNewFileName();
|
||||
Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("考试试题" + filename, System.Text.Encoding.UTF8) + ".xls");
|
||||
Response.ContentType = "application/excel";
|
||||
Response.ContentEncoding = System.Text.Encoding.UTF8;
|
||||
this.Grid1.PageSize = Grid1.RecordCount;
|
||||
BindGrid();
|
||||
Response.Write(GetGridTableHtml(Grid1));
|
||||
Response.End();
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 刷新装置
|
||||
/// <summary>
|
||||
/// 刷新
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void Refresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
var trainingItems = from x in Funs.DB.Training_TestTrainingItem select x;
|
||||
if (trainingItems.Count() > 0)
|
||||
{
|
||||
foreach (var trainingItem in trainingItems)
|
||||
{
|
||||
if (trainingItem.TestType == "3" && string.IsNullOrEmpty(trainingItem.AItem))
|
||||
{
|
||||
trainingItem.AItem = "对";
|
||||
trainingItem.BItem = "错";
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(trainingItem.WorkPostIds))
|
||||
{
|
||||
string name = string.Empty;
|
||||
var workPostList = Funs.GetStrListByStr(trainingItem.WorkPostIds, ',');
|
||||
if (workPostList.Count() > 0)
|
||||
{
|
||||
foreach (var workPostId in workPostList)
|
||||
{
|
||||
var workPost = BLL.WorkPostService.GetWorkPostById(workPostId).WorkPostName;
|
||||
if (!string.IsNullOrEmpty(workPost))
|
||||
{
|
||||
name += workPost + ",";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(name))
|
||||
{
|
||||
trainingItem.WorkPostNames = name.Substring(0, name.LastIndexOf(","));
|
||||
}
|
||||
}
|
||||
|
||||
BLL.TestTrainingItemService.UpdateTestTrainingItem(trainingItem);
|
||||
}
|
||||
}
|
||||
|
||||
Alert.ShowInTop("操作完成!", MessageBoxIcon.Success);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 刷新
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void Refresh1_Click(object sender, EventArgs e)
|
||||
{
|
||||
var trainingItems = from x in Funs.DB.Training_TestTrainingItem select x;
|
||||
if (trainingItems.Count() > 0)
|
||||
{
|
||||
foreach (var trainingItem in trainingItems)
|
||||
{
|
||||
if (trainingItem.TestType == "3" && string.IsNullOrEmpty(trainingItem.AItem))
|
||||
{
|
||||
trainingItem.AItem = "对";
|
||||
trainingItem.BItem = "错";
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(trainingItem.WorkPostNames))
|
||||
{
|
||||
string getInstallationId = string.Empty;
|
||||
var installList = Funs.GetStrListByStr(trainingItem.WorkPostNames, ',');
|
||||
if (installList.Count() > 0)
|
||||
{
|
||||
foreach (var installItem in installList)
|
||||
{
|
||||
var install = Funs.DB.Base_WorkPost.FirstOrDefault(x => x.WorkPostName == installItem);
|
||||
if (install != null && !string.IsNullOrEmpty(install.WorkPostId))
|
||||
{
|
||||
getInstallationId += install.WorkPostId + ",";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(getInstallationId))
|
||||
{
|
||||
trainingItem.WorkPostIds = getInstallationId.Substring(0, getInstallationId.LastIndexOf(","));
|
||||
}
|
||||
}
|
||||
|
||||
BLL.TestTrainingItemService.UpdateTestTrainingItem(trainingItem);
|
||||
}
|
||||
}
|
||||
|
||||
Alert.ShowInTop("操作完成!", MessageBoxIcon.Success);
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 显示选项不全的题目
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void ckIsItem_CheckedChanged(object sender, CheckedEventArgs e)
|
||||
{
|
||||
this.BindGrid();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查看二维码
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnQR_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
PageContext.RegisterStartupScript(Window1.GetShowReference
|
||||
(String.Format("~/Controls/SeeQRImage.aspx?TrainingId={0}&strCode={1}", this.tvTestTraining.SelectedNode.NodeID
|
||||
, "testTraining$" + this.tvTestTraining.SelectedNode.NodeID),
|
||||
|
||||
"二维码查看", 400, 400));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,296 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <自动生成>
|
||||
// 此代码由工具生成。
|
||||
//
|
||||
// 对此文件的更改可能导致不正确的行为,如果
|
||||
// 重新生成代码,则所做更改将丢失。
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
|
||||
|
||||
public partial class WorkPostTestTraining
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// form1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
/// <summary>
|
||||
/// PageManager1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.PageManager PageManager1;
|
||||
|
||||
/// <summary>
|
||||
/// Panel1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel Panel1;
|
||||
|
||||
/// <summary>
|
||||
/// panelLeftRegion 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel panelLeftRegion;
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar2;
|
||||
|
||||
/// <summary>
|
||||
/// btnOut 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnOut;
|
||||
|
||||
/// <summary>
|
||||
/// tvTestTraining 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Tree tvTestTraining;
|
||||
|
||||
/// <summary>
|
||||
/// panelCenterRegion 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel panelCenterRegion;
|
||||
|
||||
/// <summary>
|
||||
/// Grid1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Grid Grid1;
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar3 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar3;
|
||||
|
||||
/// <summary>
|
||||
/// txtName 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtName;
|
||||
|
||||
/// <summary>
|
||||
/// drptype 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList drptype;
|
||||
|
||||
/// <summary>
|
||||
/// ckIsItem 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.CheckBox ckIsItem;
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarFill1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarFill ToolbarFill1;
|
||||
|
||||
/// <summary>
|
||||
/// btnNewDetail 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnNewDetail;
|
||||
|
||||
/// <summary>
|
||||
/// btnImport 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnImport;
|
||||
|
||||
/// <summary>
|
||||
/// Button1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button Button1;
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarSeparator1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarText1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarText ToolbarText1;
|
||||
|
||||
/// <summary>
|
||||
/// ddlPageSize 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList ddlPageSize;
|
||||
|
||||
/// <summary>
|
||||
/// Window1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window Window1;
|
||||
|
||||
/// <summary>
|
||||
/// Window2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window Window2;
|
||||
|
||||
/// <summary>
|
||||
/// Window3 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window Window3;
|
||||
|
||||
/// <summary>
|
||||
/// Menu1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Menu Menu1;
|
||||
|
||||
/// <summary>
|
||||
/// btnMenuEdit 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.MenuButton btnMenuEdit;
|
||||
|
||||
/// <summary>
|
||||
/// btnMenuDelete 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.MenuButton btnMenuDelete;
|
||||
|
||||
/// <summary>
|
||||
/// Menu2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Menu Menu2;
|
||||
|
||||
/// <summary>
|
||||
/// btnMenuADD 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.MenuButton btnMenuADD;
|
||||
|
||||
/// <summary>
|
||||
/// btnTreeMenuEdit 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.MenuButton btnTreeMenuEdit;
|
||||
|
||||
/// <summary>
|
||||
/// btnQR 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.MenuButton btnQR;
|
||||
|
||||
/// <summary>
|
||||
/// btnTreeMenuDelete 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.MenuButton btnTreeMenuDelete;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WorkPostTestTrainingItemIn.aspx.cs" Inherits="FineUIPro.Web.HSSE.EduTrain.WorkPostTestTrainingItemIn" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<title>导入考试试题</title>
|
||||
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" OnCustomEvent="PageManager1_CustomEvent" />
|
||||
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
|
||||
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
|
||||
<Toolbars>
|
||||
<f:Toolbar ID="Toolbar2" Position="Top" ToolbarAlign="Right" runat="server">
|
||||
<Items>
|
||||
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
|
||||
<f:Button ID="btnAudit" Icon="ApplicationEdit" runat="server" ToolTip="数据导入" ValidateForms="SimpleForm1" Text="数据导入"
|
||||
OnClick="btnAudit_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="btnDownLoad" runat="server" Icon="ApplicationGo" ToolTip="下载模板" OnClick="btnDownLoad_Click" Text="下载模板">
|
||||
</f:Button>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
</Toolbars>
|
||||
<Rows>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:FileUpload runat="server" ID="fuAttachUrl" EmptyText="选择要导入的文件" Label="选择要导入的文件"
|
||||
LabelWidth="150px">
|
||||
</f:FileUpload>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" EnableCollapse="true" runat="server"
|
||||
EnableColumnLines="true" BoxFlex="1" DataKeyNames="TrainingItemId" ForceFit="true"
|
||||
DataIDField="TrainingItemId" AllowSorting="true" SortField="TrainingCode,TrainingItemCode"
|
||||
PageSize="50" Height="360px">
|
||||
<Columns>
|
||||
<f:TemplateField Width="55px" HeaderText="序号">
|
||||
<ItemTemplate>
|
||||
<asp:Label ID="Label2" runat="server" Text='<%# Container.DataItemIndex + 1 %>'></asp:Label>
|
||||
</ItemTemplate>
|
||||
</f:TemplateField>
|
||||
<f:RenderField Width="90px" ColumnID="TrainingCode" DataField="TrainingCode" FieldType="String"
|
||||
HeaderText="类型编号" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="110px" ColumnID="TrainingName" DataField="TrainingName" FieldType="String"
|
||||
HeaderText="试题类型" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="80px" ColumnID="TrainingItemCode" DataField="TrainingItemCode" FieldType="String"
|
||||
HeaderText="编号" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="90px" ColumnID="TestTypeName" DataField="TestTypeName" FieldType="String"
|
||||
HeaderText="题型" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="140px" ColumnID="WorkPostNames" DataField="WorkPostNames" FieldType="String"
|
||||
HeaderText="适合岗位" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="200px" ColumnID="Abstracts" DataField="Abstracts" FieldType="String"
|
||||
HeaderText="试题内容" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="80px" ColumnID="AItem" DataField="AItem" FieldType="String"
|
||||
HeaderText="答案项A" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="80px" ColumnID="BItem" DataField="BItem" FieldType="String"
|
||||
HeaderText="答案项B" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="80px" ColumnID="CItem" DataField="CItem" FieldType="String"
|
||||
HeaderText="答案项C" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="80px" ColumnID="DItem" DataField="DItem" FieldType="String"
|
||||
HeaderText="答案项D" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="80px" ColumnID="EItem" DataField="EItem" FieldType="String"
|
||||
HeaderText="答案项E" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="90px" ColumnID="AnswerItems" DataField="AnswerItems" FieldType="String"
|
||||
HeaderText="正确答案项" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
</Columns>
|
||||
</f:Grid>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:HiddenField ID="hdFileName" runat="server">
|
||||
</f:HiddenField>
|
||||
<f:HiddenField ID="hdCheckResult" runat="server">
|
||||
</f:HiddenField>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:Label ID="lblBottom" runat="server" Text="说明:1 导入模板为.xls后缀的EXCEL文件,黑体字为必填项。2 对于导入信息中重复记录自动过滤插入一条记录。3 题型为单选题、多选题、判断题,多岗位时用,隔开。4 适合岗位空时为通用试题。 5 数据导入完成,成功后自动返回,如果有不成功数据页面弹出提示框,列表显示导入成功数据。">
|
||||
</f:Label>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
</Rows>
|
||||
</f:Form>
|
||||
<f:Window ID="Window1" Title="导入信息" Hidden="true" EnableIFrame="true" EnableMaximize="true"
|
||||
Target="Parent" EnableResize="false" runat="server" OnClose="Window1_Close" IsModal="false"
|
||||
CloseAction="HidePostBack" Width="900px" Height="600px">
|
||||
</f:Window>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,452 @@
|
||||
using BLL;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.OleDb;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
public partial class WorkPostTestTrainingItemIn : PageBase
|
||||
{
|
||||
#region 定义变量
|
||||
/// <summary>
|
||||
/// 上传预设的虚拟路径
|
||||
/// </summary>
|
||||
private string initPath = Const.ExcelUrl;
|
||||
|
||||
/// <summary>
|
||||
/// 导入集合
|
||||
/// </summary>
|
||||
public static List<Model.View_Training_TestTrainingItem> viewTrainingItems = new List<Model.View_Training_TestTrainingItem>();
|
||||
|
||||
/// <summary>
|
||||
/// 错误集合
|
||||
/// </summary>
|
||||
public static string errorInfos = string.Empty;
|
||||
#endregion
|
||||
|
||||
#region 加载页面
|
||||
/// <summary>
|
||||
/// 加载页面
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
this.hdFileName.Text = string.Empty;
|
||||
this.hdCheckResult.Text = string.Empty;
|
||||
if (viewTrainingItems != null)
|
||||
{
|
||||
viewTrainingItems.Clear();
|
||||
}
|
||||
errorInfos = string.Empty;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 数据导入
|
||||
/// <summary>
|
||||
/// 数据导入
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnAudit_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (this.fuAttachUrl.HasFile == false)
|
||||
{
|
||||
ShowNotify("请您选择Excel文件!", MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
string IsXls = Path.GetExtension(this.fuAttachUrl.FileName).ToString().Trim().ToLower();
|
||||
if (IsXls != ".xls")
|
||||
{
|
||||
ShowNotify("只可以选择Excel文件!", MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
if (viewTrainingItems != null)
|
||||
{
|
||||
viewTrainingItems.Clear();
|
||||
}
|
||||
if (!string.IsNullOrEmpty(errorInfos))
|
||||
{
|
||||
errorInfos = string.Empty;
|
||||
}
|
||||
string rootPath = Server.MapPath("~/");
|
||||
string initFullPath = rootPath + initPath;
|
||||
if (!Directory.Exists(initFullPath))
|
||||
{
|
||||
Directory.CreateDirectory(initFullPath);
|
||||
}
|
||||
|
||||
this.hdFileName.Text = BLL.Funs.GetNewFileName() + IsXls;
|
||||
string filePath = initFullPath + this.hdFileName.Text;
|
||||
this.fuAttachUrl.PostedFile.SaveAs(filePath);
|
||||
ImportXlsToData(rootPath + initPath + this.hdFileName.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowNotify("'" + ex.Message + "'", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
#region 读Excel提取数据
|
||||
/// <summary>
|
||||
/// 从Excel提取数据--》Dataset
|
||||
/// </summary>
|
||||
/// <param name="filename">Excel文件路径名</param>
|
||||
private void ImportXlsToData(string fileName)
|
||||
{
|
||||
try
|
||||
{
|
||||
viewTrainingItems.Clear();
|
||||
string oleDBConnString = String.Empty;
|
||||
oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;";
|
||||
oleDBConnString += "Data Source=";
|
||||
oleDBConnString += fileName;
|
||||
oleDBConnString += ";Extended Properties=Excel 8.0;";
|
||||
OleDbConnection oleDBConn = null;
|
||||
OleDbDataAdapter oleAdMaster = null;
|
||||
DataTable m_tableName = new DataTable();
|
||||
DataSet ds = new DataSet();
|
||||
|
||||
oleDBConn = new OleDbConnection(oleDBConnString);
|
||||
oleDBConn.Open();
|
||||
m_tableName = oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
|
||||
|
||||
if (m_tableName != null && m_tableName.Rows.Count > 0)
|
||||
{
|
||||
|
||||
m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString().Trim();
|
||||
|
||||
}
|
||||
string sqlMaster;
|
||||
sqlMaster = " SELECT * FROM [" + m_tableName.TableName + "]";
|
||||
oleAdMaster = new OleDbDataAdapter(sqlMaster, oleDBConn);
|
||||
oleAdMaster.Fill(ds, "m_tableName");
|
||||
oleAdMaster.Dispose();
|
||||
oleDBConn.Close();
|
||||
oleDBConn.Dispose();
|
||||
|
||||
AddDatasetToSQL(ds.Tables[0]);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 将Dataset的数据导入数据库
|
||||
/// <summary>
|
||||
/// 将Dataset的数据导入数据库
|
||||
/// </summary>
|
||||
/// <param name="pds">数据集</param>
|
||||
/// <param name="Cols">数据集行数</param>
|
||||
/// <returns></returns>
|
||||
private bool AddDatasetToSQL(DataTable pds)
|
||||
{
|
||||
string result = string.Empty;
|
||||
int ic, ir;
|
||||
ic = pds.Columns.Count;
|
||||
ir = pds.Rows.Count;
|
||||
if (pds != null && ir > 0)
|
||||
{
|
||||
///试题类型
|
||||
var trainings = from x in Funs.DB.Training_TestTraining select x;
|
||||
///岗位
|
||||
var workPosts = from x in Funs.DB.Base_WorkPost select x;
|
||||
for (int i = 0; i < ir; i++)
|
||||
{
|
||||
Model.View_Training_TestTrainingItem newViewTrainingItem = new Model.View_Training_TestTrainingItem
|
||||
{
|
||||
TrainingCode = pds.Rows[i][0].ToString().Trim(),
|
||||
TrainingItemCode = pds.Rows[i][2].ToString().Trim(),
|
||||
Abstracts = pds.Rows[i][5].ToString().Trim(),
|
||||
AItem = pds.Rows[i][6].ToString().Trim(),
|
||||
BItem = pds.Rows[i][7].ToString().Trim(),
|
||||
};
|
||||
|
||||
if (!string.IsNullOrEmpty(pds.Rows[i][12].ToString().Trim()))
|
||||
{
|
||||
newViewTrainingItem.Score = int.Parse(pds.Rows[i][12].ToString().Trim());
|
||||
}
|
||||
|
||||
////试题类型
|
||||
string col1 = pds.Rows[i][1].ToString().Trim();
|
||||
if (string.IsNullOrEmpty(col1))
|
||||
{
|
||||
result += "第" + (i + 2).ToString() + "行," + "导入试题类型" + "," + "此项为必填项!" + "|";
|
||||
}
|
||||
else
|
||||
{
|
||||
var standard = trainings.FirstOrDefault(x => x.TrainingName == col1);
|
||||
if (standard != null)
|
||||
{
|
||||
newViewTrainingItem.TrainingId = standard.TrainingId;
|
||||
newViewTrainingItem.TrainingCode = standard.TrainingCode;
|
||||
newViewTrainingItem.TrainingName = standard.TrainingName;
|
||||
}
|
||||
else
|
||||
{
|
||||
Model.Training_TestTraining newTraining = new Model.Training_TestTraining();
|
||||
newViewTrainingItem.TrainingId = newTraining.TrainingId = SQLHelper.GetNewID(typeof(Model.Training_TestTraining));
|
||||
newViewTrainingItem.TrainingName = newTraining.TrainingName = col1;
|
||||
newTraining.TrainingCode = newViewTrainingItem.TrainingCode;
|
||||
BLL.TestTrainingService.AddTestTraining(newTraining);
|
||||
}
|
||||
}
|
||||
///试题题型
|
||||
string col3 = pds.Rows[i][3].ToString().Trim();
|
||||
if (string.IsNullOrEmpty(col3))
|
||||
{
|
||||
result += "第" + (i + 2).ToString() + "行," + "导入试题题型" + "," + "此项为必填项!" + "|";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (col3 == "单选题")
|
||||
{
|
||||
newViewTrainingItem.TestType = "1";
|
||||
//newViewTrainingItem.Score = SValue;
|
||||
newViewTrainingItem.CItem = pds.Rows[i][8].ToString().Trim();
|
||||
newViewTrainingItem.DItem = pds.Rows[i][9].ToString().Trim();
|
||||
//if (string.IsNullOrEmpty(newViewTrainingItem.AItem) || string.IsNullOrEmpty(newViewTrainingItem.BItem) || string.IsNullOrEmpty(newViewTrainingItem.CItem) || string.IsNullOrEmpty(newViewTrainingItem.DItem))
|
||||
//{
|
||||
// result += "第" + (i + 2).ToString() + "行," + "单选题ABCD都不能为空!" + "|";
|
||||
//}
|
||||
|
||||
}
|
||||
else if (col3 == "多选题")
|
||||
{
|
||||
newViewTrainingItem.TestType = "2";
|
||||
//newViewTrainingItem.Score = MValue;
|
||||
newViewTrainingItem.CItem = pds.Rows[i][8].ToString().Trim();
|
||||
newViewTrainingItem.DItem = pds.Rows[i][9].ToString().Trim();
|
||||
newViewTrainingItem.EItem = pds.Rows[i][10].ToString().Trim();
|
||||
//if (string.IsNullOrEmpty(newViewTrainingItem.AItem) || string.IsNullOrEmpty(newViewTrainingItem.BItem) || string.IsNullOrEmpty(newViewTrainingItem.CItem) || string.IsNullOrEmpty(newViewTrainingItem.DItem))
|
||||
//{
|
||||
// result += "第" + (i + 2).ToString() + "行," + "多选题ABCD都不能为空!" + "|";
|
||||
//}
|
||||
}
|
||||
else
|
||||
{
|
||||
newViewTrainingItem.TestType = "3";
|
||||
//newViewTrainingItem.Score = JValue;
|
||||
//if (string.IsNullOrEmpty(newViewTrainingItem.AItem) || string.IsNullOrEmpty(newViewTrainingItem.BItem))
|
||||
//{
|
||||
// result += "第" + (i + 2).ToString() + "行," + "判断题AB不能为空!" + "|";
|
||||
//}
|
||||
}
|
||||
}
|
||||
////适合岗位
|
||||
string col4 = pds.Rows[i][4].ToString().Trim();
|
||||
if (!string.IsNullOrEmpty(col4))
|
||||
{
|
||||
|
||||
List<string> WorkPostSels = Funs.GetStrListByStr(col4, ',');
|
||||
if (WorkPostSels.Count() > 0)
|
||||
{
|
||||
string ids = string.Empty;
|
||||
foreach (var item in WorkPostSels)
|
||||
{
|
||||
var wp = workPosts.FirstOrDefault(x => x.WorkPostName == item);
|
||||
if (wp != null)
|
||||
{
|
||||
ids += wp.WorkPostId + ",";
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "第" + (i + 2).ToString() + "行," + "导入适合岗位" + item + "," + "此项基础表不存在!" + "|";
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(ids))
|
||||
{
|
||||
newViewTrainingItem.WorkPostNames = col4;
|
||||
newViewTrainingItem.WorkPostIds = ids.Substring(0, ids.LastIndexOf(","));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////正确答案
|
||||
string col11 = pds.Rows[i][11].ToString().Trim();
|
||||
if (string.IsNullOrEmpty(col11))
|
||||
{
|
||||
result += "第" + (i + 2).ToString() + "行," + "导入正确答案项" + "," + "为必填项!" + "|";
|
||||
}
|
||||
else
|
||||
{
|
||||
int icount = 0;
|
||||
List<string> selecItem = Funs.GetStrListByStr(col11, ',');
|
||||
foreach (var item in selecItem)
|
||||
{
|
||||
if (item != "A" && item != "a" && item != "B" && item != "b" && item != "C" && item != "c" && item != "D" && item != "d" && item != "E" && item != "e")
|
||||
{
|
||||
icount++;
|
||||
}
|
||||
}
|
||||
if (icount == 0)
|
||||
{
|
||||
newViewTrainingItem.AnswerItems = col11.Replace("a", "A").Replace("b", "B").Replace("c", "C").Replace("d", "D").Replace("e", "E");
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "第" + (i + 2).ToString() + "行," + "正确答案项只能输入ABCDE且用','隔开!" + "|";
|
||||
}
|
||||
}
|
||||
|
||||
////试题内容
|
||||
if (string.IsNullOrEmpty(newViewTrainingItem.Abstracts))
|
||||
{
|
||||
result += "第" + (i + 2).ToString() + "行," + "导入试题内容" + "," + "为必填项!" + "|";
|
||||
}
|
||||
else
|
||||
{
|
||||
var addTrainingItem = Funs.DB.Training_TestTrainingItem.FirstOrDefault(x => x.Abstracts == newViewTrainingItem.Abstracts
|
||||
&& x.TrainingId == newViewTrainingItem.TrainingId);
|
||||
if (addTrainingItem == null)
|
||||
{
|
||||
Model.Training_TestTrainingItem newTrainingItem = new Model.Training_TestTrainingItem
|
||||
{
|
||||
TrainingItemId = newViewTrainingItem.TrainingItemId = SQLHelper.GetNewID(typeof(Model.Training_TestTraining)),
|
||||
TrainingId = newViewTrainingItem.TrainingId,
|
||||
TrainingItemCode = newViewTrainingItem.TrainingItemCode,
|
||||
TrainingItemName = newViewTrainingItem.TrainingItemName,
|
||||
|
||||
AttachUrl = newViewTrainingItem.AttachUrl,
|
||||
VersionNum = newViewTrainingItem.VersionNum,
|
||||
TestType = newViewTrainingItem.TestType,
|
||||
WorkPostIds = newViewTrainingItem.WorkPostIds,
|
||||
WorkPostNames = newViewTrainingItem.WorkPostNames,
|
||||
AItem = newViewTrainingItem.AItem,
|
||||
BItem = newViewTrainingItem.BItem,
|
||||
CItem = newViewTrainingItem.CItem,
|
||||
DItem = newViewTrainingItem.DItem,
|
||||
EItem = newViewTrainingItem.EItem,
|
||||
Score = newViewTrainingItem.Score,
|
||||
AnswerItems = newViewTrainingItem.AnswerItems,
|
||||
};
|
||||
if (newViewTrainingItem.Abstracts.Contains("(") || newViewTrainingItem.Abstracts.Contains(")")
|
||||
|| newViewTrainingItem.Abstracts.Contains("(") || newViewTrainingItem.Abstracts.Contains(")"))
|
||||
{
|
||||
newTrainingItem.Abstracts = newViewTrainingItem.Abstracts;
|
||||
}
|
||||
else
|
||||
{
|
||||
newTrainingItem.Abstracts = newViewTrainingItem.Abstracts + "( )";
|
||||
}
|
||||
|
||||
BLL.TestTrainingItemService.AddTestTrainingItem(newTrainingItem);
|
||||
///加入培训试题库
|
||||
viewTrainingItems.Add(newViewTrainingItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += "第" + (i + 2).ToString() + "行," + "导入试题重复" + "|";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (viewTrainingItems.Count > 0)
|
||||
{
|
||||
viewTrainingItems = viewTrainingItems.Distinct().ToList();
|
||||
this.Grid1.Hidden = false;
|
||||
this.Grid1.DataSource = viewTrainingItems;
|
||||
this.Grid1.DataBind();
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(result))
|
||||
{
|
||||
viewTrainingItems.Clear();
|
||||
result = "数据导入完成,未成功数据:" + result.Substring(0, result.LastIndexOf("|"));
|
||||
errorInfos = result;
|
||||
Alert alert = new Alert
|
||||
{
|
||||
Message = result,
|
||||
Target = Target.Self
|
||||
};
|
||||
alert.Show();
|
||||
}
|
||||
else
|
||||
{
|
||||
errorInfos = string.Empty;
|
||||
ShowNotify("导入成功!", MessageBoxIcon.Success);
|
||||
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Alert.ShowInTop("导入数据为空!", MessageBoxIcon.Warning);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
#region 关闭弹出窗口
|
||||
/// <summary>
|
||||
/// 关闭导入弹出窗口
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void Window1_Close(object sender, WindowCloseEventArgs e)
|
||||
{
|
||||
if (Session["trainingItem"] != null)
|
||||
{
|
||||
viewTrainingItems = Session["trainingItem"] as List<Model.View_Training_TestTrainingItem>;
|
||||
}
|
||||
if (viewTrainingItems.Count > 0)
|
||||
{
|
||||
this.Grid1.Hidden = false;
|
||||
this.Grid1.DataSource = viewTrainingItems;
|
||||
this.Grid1.DataBind();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 下载模板
|
||||
/// <summary>
|
||||
/// 下载模板按钮
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnDownLoad_Click(object sender, EventArgs e)
|
||||
{
|
||||
PageContext.RegisterStartupScript(Confirm.GetShowReference("确定下载导入模板吗?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 下载导入模板
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void PageManager1_CustomEvent(object sender, CustomEventArgs e)
|
||||
{
|
||||
if (e.EventArgument == "Confirm_OK")
|
||||
{
|
||||
string rootPath = Server.MapPath("~/");
|
||||
string filePath = "File\\Excel\\DataIn\\岗位考试试题模版.xls";;
|
||||
string uploadfilepath = rootPath + filePath;
|
||||
string fileName = Path.GetFileName(filePath);
|
||||
FileInfo info = new FileInfo(uploadfilepath);
|
||||
long fileSize = info.Length;
|
||||
Response.ClearContent();
|
||||
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
|
||||
Response.ContentType = "excel/plain";
|
||||
Response.ContentEncoding = System.Text.Encoding.UTF8;
|
||||
Response.AddHeader("Content-Length", fileSize.ToString().Trim());
|
||||
Response.TransmitFile(uploadfilepath, 0, fileSize);
|
||||
Response.End();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
+143
@@ -0,0 +1,143 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <自动生成>
|
||||
// 此代码由工具生成。
|
||||
//
|
||||
// 对此文件的更改可能导致不正确的行为,如果
|
||||
// 重新生成代码,则所做更改将丢失。
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
|
||||
|
||||
public partial class WorkPostTestTrainingItemIn
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// form1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
/// <summary>
|
||||
/// PageManager1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.PageManager PageManager1;
|
||||
|
||||
/// <summary>
|
||||
/// SimpleForm1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Form SimpleForm1;
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar2;
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarFill1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarFill ToolbarFill1;
|
||||
|
||||
/// <summary>
|
||||
/// btnAudit 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnAudit;
|
||||
|
||||
/// <summary>
|
||||
/// btnDownLoad 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnDownLoad;
|
||||
|
||||
/// <summary>
|
||||
/// fuAttachUrl 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.FileUpload fuAttachUrl;
|
||||
|
||||
/// <summary>
|
||||
/// Grid1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Grid Grid1;
|
||||
|
||||
/// <summary>
|
||||
/// Label2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label Label2;
|
||||
|
||||
/// <summary>
|
||||
/// hdFileName 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.HiddenField hdFileName;
|
||||
|
||||
/// <summary>
|
||||
/// hdCheckResult 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.HiddenField hdCheckResult;
|
||||
|
||||
/// <summary>
|
||||
/// lblBottom 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label lblBottom;
|
||||
|
||||
/// <summary>
|
||||
/// Window1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window Window1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WorkPostTestTrainingItemSave.aspx.cs" Inherits="FineUIPro.Web.HSSE.EduTrain.WorkPostTestTrainingItemSave" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title></title>
|
||||
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" AjaxAspnetControls="divFile,divBeImageUrl" />
|
||||
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
|
||||
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
|
||||
<Rows>
|
||||
<f:FormRow ColumnWidths="40% 40% 20%">
|
||||
<Items>
|
||||
<f:TextBox ID="txtTrainingItemCode" runat="server" Label="编号" Required="true" ShowRedStar="true"
|
||||
FocusOnPageLoad="true" MaxLength="50">
|
||||
</f:TextBox>
|
||||
<f:RadioButtonList runat="server" ID="rblTestType" Label="题型"
|
||||
AutoPostBack="true" OnSelectedIndexChanged="rblTestType_SelectedIndexChanged">
|
||||
<f:RadioItem Text="单选题" Value="1" Selected="true"/>
|
||||
<f:RadioItem Text="多选题" Value="2" />
|
||||
<f:RadioItem Text="判断题" Value="3" />
|
||||
</f:RadioButtonList>
|
||||
<f:Label runat="server" ID="lbScore" Label="分值"></f:Label>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:DropDownBox runat="server" Label="适合岗位" ID="DropDownBox1"
|
||||
DataControlID="RadioButtonList1" EnableMultiSelect="true" >
|
||||
<PopPanel>
|
||||
<f:SimpleForm ID="SimpleForm2" BodyPadding="10px" runat="server" AutoScroll="true"
|
||||
ShowBorder="True" ShowHeader="false" Hidden="true">
|
||||
<Items>
|
||||
<f:Label ID="Label1" runat="server" Text="请选择适合的岗位"></f:Label>
|
||||
<f:CheckBoxList ID="RadioButtonList1" ColumnNumber="3" runat="server">
|
||||
</f:CheckBoxList>
|
||||
</Items>
|
||||
</f:SimpleForm>
|
||||
</PopPanel>
|
||||
</f:DropDownBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextArea ID="txtAbstracts" runat="server" Label="内容" Required="true" ShowRedStar="true"
|
||||
MaxLength="2000" Height="64px"></f:TextArea>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextBox ID="txtAItem" runat="server" Label="答案项A" MaxLength="500" ShowRedStar="true" Required="true">
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextBox ID="txtBItem" runat="server" Label="答案项B" MaxLength="500" ShowRedStar="true" Required="true">
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow runat="server" ID="trC">
|
||||
<Items>
|
||||
<f:TextBox ID="txtCItem" runat="server" Label="答案项C" MaxLength="500">
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow runat="server" ID="trD">
|
||||
<Items>
|
||||
<f:TextBox ID="txtDItem" runat="server" Label="答案项D" MaxLength="500">
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow runat="server" ID="trE">
|
||||
<Items>
|
||||
<f:TextBox ID="txtEItem" runat="server" Label="答案项E" MaxLength="500">
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:DropDownBox runat="server" Label="正确答案项" ID="DropDownBox2" DataControlID="RadioButtonList2" EnableMultiSelect="true">
|
||||
<PopPanel>
|
||||
<f:SimpleForm ID="SimpleForm3" BodyPadding="10px" runat="server" AutoScroll="true"
|
||||
ShowBorder="True" ShowHeader="false" Hidden="true">
|
||||
<Items>
|
||||
<f:Label ID="Label2" runat="server" Text="请选择正确答案项:"></f:Label>
|
||||
<f:CheckBoxList ID="RadioButtonList2" ColumnNumber="1" runat="server">
|
||||
</f:CheckBoxList>
|
||||
</Items>
|
||||
</f:SimpleForm>
|
||||
</PopPanel>
|
||||
</f:DropDownBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:FileUpload runat="server" ID="btnFile" EmptyText="请选择图片/视频" OnFileSelected="btnFile_Click"
|
||||
AutoPostBack="true" Label="图片/视频" >
|
||||
</f:FileUpload>
|
||||
<f:ContentPanel ID="ContentPanel2" runat="server" ShowHeader="false" ShowBorder="false"
|
||||
Title="附件">
|
||||
<table>
|
||||
<tr style="height: 25px">
|
||||
<td align="left">
|
||||
<div id="divFile" runat="server">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height:130px" runat="server" id="trImageUrl" visible="false">
|
||||
<td style="text-align:left">
|
||||
<div id="divBeImageUrl" runat="server">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</f:ContentPanel>
|
||||
<f:Button ID="btnDelete" Icon="Delete" runat="server" OnClick="btnDelete_Click" ToolTip="删除">
|
||||
</f:Button>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
</Rows>
|
||||
<Toolbars>
|
||||
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
|
||||
<Items>
|
||||
<f:Label runat="server" ID="lbTemp"></f:Label>
|
||||
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
|
||||
<f:Button ID="btnSave" Icon="SystemSave" runat="server" ValidateForms="SimpleForm1" Text="保存"
|
||||
OnClick="btnSave_Click" Hidden="true">
|
||||
</f:Button>
|
||||
<f:Button ID="btnClose" EnablePostBack="false" runat="server" Icon="SystemClose" Text="关闭">
|
||||
</f:Button>
|
||||
<f:HiddenField ID="hdCompileMan" runat="server">
|
||||
</f:HiddenField>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
</Toolbars>
|
||||
</f:Form>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,391 @@
|
||||
using BLL;
|
||||
using Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
public partial class WorkPostTestTrainingItemSave : PageBase
|
||||
{
|
||||
#region 定义变量
|
||||
/// <summary>
|
||||
/// 主键
|
||||
/// </summary>
|
||||
public string TrainingItemId
|
||||
{
|
||||
get
|
||||
{
|
||||
return (string)ViewState["TrainingItemId"];
|
||||
}
|
||||
set
|
||||
{
|
||||
ViewState["TrainingItemId"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 主表主键
|
||||
/// </summary>
|
||||
public string TrainingId
|
||||
{
|
||||
get
|
||||
{
|
||||
return (string)ViewState["TrainingId"];
|
||||
}
|
||||
set
|
||||
{
|
||||
ViewState["TrainingId"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 附件
|
||||
/// </summary>
|
||||
private string AttachUrl
|
||||
{
|
||||
get
|
||||
{
|
||||
return (string)ViewState["AttachUrl"];
|
||||
}
|
||||
set
|
||||
{
|
||||
ViewState["AttachUrl"] = value;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 单选题分值
|
||||
/// </summary>
|
||||
private int SValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return (int)ViewState["SValue"];
|
||||
}
|
||||
set
|
||||
{
|
||||
ViewState["SValue"] = value;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 多选题分值
|
||||
/// </summary>
|
||||
private int MValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return (int)ViewState["MValue"];
|
||||
}
|
||||
set
|
||||
{
|
||||
ViewState["MValue"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 判断题分值
|
||||
/// </summary>
|
||||
private int JValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return (int)ViewState["JValue"];
|
||||
}
|
||||
set
|
||||
{
|
||||
ViewState["JValue"] = value;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 加载页面
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
SValue = 1;
|
||||
MValue = 2;
|
||||
JValue = 1;
|
||||
var testRule = Funs.DB.Sys_TestRule.FirstOrDefault();
|
||||
if (testRule != null)
|
||||
{
|
||||
SValue = testRule.SValue;
|
||||
MValue = testRule.MValue;
|
||||
JValue = testRule.JValue;
|
||||
}
|
||||
|
||||
this.GetButtonPower();
|
||||
LoadData();
|
||||
BindEnumrableToDropDownList();
|
||||
this.TrainingItemId = Request.QueryString["TrainingItemId"];
|
||||
this.TrainingId = Request.QueryString["TrainingId"];
|
||||
if (!String.IsNullOrEmpty(this.TrainingItemId))
|
||||
{
|
||||
var q = BLL.TestTrainingItemService.GetTestTrainingItemById(this.TrainingItemId);
|
||||
if (q != null)
|
||||
{
|
||||
txtTrainingItemCode.Text = q.TrainingItemCode;
|
||||
if (!string.IsNullOrEmpty(q.TestType))
|
||||
{
|
||||
this.rblTestType.SelectedValue = q.TestType;
|
||||
if (q.TestType == "1")
|
||||
{
|
||||
this.lbScore.Text = SValue.ToString();
|
||||
this.trE.Hidden = true;
|
||||
}
|
||||
else if (q.TestType == "2")
|
||||
{
|
||||
this.lbScore.Text = MValue.ToString();
|
||||
}
|
||||
else if (q.TestType == "3")
|
||||
{
|
||||
this.lbScore.Text = JValue.ToString();
|
||||
this.trC.Hidden = true;
|
||||
this.trD.Hidden = true;
|
||||
this.trE.Hidden = true;
|
||||
}
|
||||
|
||||
System.Web.UI.WebControls.ListItem[] myList2 = BLL.TestTrainingItemService.GetAnswerItemsList(this.rblTestType.SelectedValue);
|
||||
RadioButtonList2.DataTextField = "Text";
|
||||
RadioButtonList2.DataValueField = "Value";
|
||||
RadioButtonList2.DataSource = myList2;
|
||||
RadioButtonList2.DataBind();
|
||||
|
||||
if (!string.IsNullOrEmpty(q.AnswerItems))
|
||||
{
|
||||
string[] ids2 = q.AnswerItems.Split(',');
|
||||
DropDownBox2.Values = ids2;
|
||||
}
|
||||
}
|
||||
txtAbstracts.Text = q.Abstracts;
|
||||
if (!string.IsNullOrEmpty(q.WorkPostIds))
|
||||
{
|
||||
string[] ids1 = q.WorkPostIds.Split(',');
|
||||
DropDownBox1.Values = ids1;
|
||||
}
|
||||
this.txtAItem.Text = q.AItem;
|
||||
this.txtBItem.Text = q.BItem;
|
||||
this.txtCItem.Text = q.CItem;
|
||||
this.txtDItem.Text = q.DItem;
|
||||
this.txtEItem.Text = q.EItem;
|
||||
|
||||
this.AttachUrl = q.AttachUrl;
|
||||
if (!string.IsNullOrEmpty(this.AttachUrl))
|
||||
{
|
||||
this.trImageUrl.Visible = true;
|
||||
this.divFile.InnerHtml = BLL.UploadAttachmentService.ShowAttachment("../../", this.AttachUrl);
|
||||
this.divBeImageUrl.InnerHtml = BLL.UploadAttachmentService.ShowImage("../../", this.AttachUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.lbScore.Text = SValue.ToString();
|
||||
this.trE.Hidden = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除附件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnDelete_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.trImageUrl.Visible = false;
|
||||
this.AttachUrl = string.Empty;
|
||||
this.divFile.InnerHtml = string.Empty;
|
||||
this.divBeImageUrl.InnerHtml = string.Empty; ;
|
||||
}
|
||||
|
||||
private void LoadData()
|
||||
{
|
||||
btnClose.OnClientClick = ActiveWindow.GetHideReference();
|
||||
}
|
||||
|
||||
private void BindEnumrableToDropDownList()
|
||||
{
|
||||
List<Model.Base_WorkPost> myList = BLL.WorkPostService.GetWorkPostList();
|
||||
RadioButtonList1.DataTextField = "WorkPostName";
|
||||
RadioButtonList1.DataValueField = "WorkPostId";
|
||||
RadioButtonList1.DataSource = myList;
|
||||
RadioButtonList1.DataBind();
|
||||
System.Web.UI.WebControls.ListItem[] myList2 = BLL.TestTrainingItemService.GetAnswerItemsList(this.rblTestType.SelectedValue);
|
||||
RadioButtonList2.DataTextField = "Text";
|
||||
RadioButtonList2.DataValueField = "Value";
|
||||
RadioButtonList2.DataSource = myList2;
|
||||
RadioButtonList2.DataBind();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 保存
|
||||
/// <summary>
|
||||
/// 保存数据
|
||||
/// </summary>
|
||||
private void SaveData(bool isClosed)
|
||||
{
|
||||
Model.Training_TestTrainingItem trainingItem = new Training_TestTrainingItem
|
||||
{
|
||||
TrainingItemCode = txtTrainingItemCode.Text.Trim(),
|
||||
Abstracts = txtAbstracts.Text.Trim(),
|
||||
TestType = this.rblTestType.SelectedValue,
|
||||
AItem = txtAItem.Text.Trim(),
|
||||
BItem = txtBItem.Text.Trim(),
|
||||
CItem = txtCItem.Text.Trim(),
|
||||
DItem = txtDItem.Text.Trim(),
|
||||
EItem = txtEItem.Text.Trim(),
|
||||
AttachUrl = this.AttachUrl,
|
||||
|
||||
};
|
||||
if (!string.IsNullOrEmpty(DropDownBox1.Text))
|
||||
{
|
||||
trainingItem.WorkPostIds = String.Join(",", DropDownBox1.Values);
|
||||
trainingItem.WorkPostNames = String.Join(",", DropDownBox1.Texts);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(DropDownBox2.Text))
|
||||
{
|
||||
trainingItem.AnswerItems = String.Join(",", DropDownBox2.Values);
|
||||
}
|
||||
else
|
||||
{
|
||||
trainingItem.AnswerItems = string.Empty;
|
||||
}
|
||||
if (String.IsNullOrEmpty(TrainingItemId))
|
||||
{
|
||||
trainingItem.TrainingItemId = SQLHelper.GetNewID(typeof(Model.Training_TestTrainingItem));
|
||||
trainingItem.TrainingId = this.TrainingId;
|
||||
this.TrainingItemId = trainingItem.TrainingItemId;
|
||||
BLL.TestTrainingItemService.AddTestTrainingItem(trainingItem);
|
||||
BLL.LogService.AddSys_Log(this.CurrUser, trainingItem.TrainingItemCode, trainingItem.TrainingItemId, BLL.Const.TestTrainingMenuId, BLL.Const.BtnAdd);
|
||||
}
|
||||
else
|
||||
{
|
||||
Model.Training_TestTrainingItem t = BLL.TestTrainingItemService.GetTestTrainingItemById(TrainingItemId);
|
||||
trainingItem.TrainingItemId = TrainingItemId;
|
||||
if (t != null)
|
||||
{
|
||||
trainingItem.TrainingId = t.TrainingId;
|
||||
}
|
||||
BLL.TestTrainingItemService.UpdateTestTrainingItem(trainingItem);
|
||||
BLL.LogService.AddSys_Log(this.CurrUser, trainingItem.TrainingItemCode, trainingItem.TrainingItemId, BLL.Const.TestTrainingMenuId, BLL.Const.BtnModify);
|
||||
}
|
||||
if (isClosed)
|
||||
{
|
||||
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
SaveData(true);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 附件上传
|
||||
/// <summary>
|
||||
/// 附件上传
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnFile_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (btnFile.HasFile)
|
||||
{
|
||||
this.AttachUrl = BLL.UploadFileService.UploadAttachment(BLL.Funs.RootPath, this.btnFile, this.AttachUrl, UploadFileService.TrainingFilePath);
|
||||
if (!string.IsNullOrEmpty(this.AttachUrl))
|
||||
{
|
||||
this.trImageUrl.Visible = true;
|
||||
this.divFile.InnerHtml = BLL.UploadAttachmentService.ShowAttachment("../../", this.AttachUrl);
|
||||
this.divBeImageUrl.InnerHtml = BLL.UploadAttachmentService.ShowImage("../../", this.AttachUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 按钮权限
|
||||
/// <summary>
|
||||
/// 获取按钮权限
|
||||
/// </summary>
|
||||
/// <param name="button"></param>
|
||||
/// <returns></returns>
|
||||
private void GetButtonPower()
|
||||
{
|
||||
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TestTrainingMenuId);
|
||||
if (buttonList.Count() > 0)
|
||||
{
|
||||
if (buttonList.Contains(BLL.Const.BtnSave))
|
||||
{
|
||||
this.btnSave.Hidden = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 验证教材名称是否存在
|
||||
/// <summary>
|
||||
/// 验证教材名称是否存在
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void TextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
//var q = Funs.DB.Training_TrainingItem.FirstOrDefault(x => x.IsPass == true && x.TrainingId == this.TrainingId && x.TrainingItemName == this.txtTrainingItemName.Text.Trim() && (x.TrainingItemId != this.TrainingItemId || (this.TrainingItemId == null && x.TrainingItemId != null)));
|
||||
//if (q != null)
|
||||
//{
|
||||
// ShowNotify("输入的教材名称已存在!", MessageBoxIcon.Warning);
|
||||
//}
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 题型变换事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void rblTestType_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
this.trC.Hidden = false;
|
||||
this.trD.Hidden = false;
|
||||
this.trE.Hidden = false;
|
||||
|
||||
this.txtAItem.Text = string.Empty;
|
||||
this.txtBItem.Text = string.Empty;
|
||||
this.txtCItem.Text = string.Empty;
|
||||
this.txtDItem.Text = string.Empty;
|
||||
this.txtEItem.Text = string.Empty;
|
||||
|
||||
string testType = this.rblTestType.SelectedValue;
|
||||
System.Web.UI.WebControls.ListItem[] myList2 = BLL.TestTrainingItemService.GetAnswerItemsList(testType);
|
||||
RadioButtonList2.DataTextField = "Text";
|
||||
RadioButtonList2.DataValueField = "Value";
|
||||
RadioButtonList2.DataSource = myList2;
|
||||
RadioButtonList2.DataBind();
|
||||
|
||||
DropDownBox2.Text = string.Empty;
|
||||
DropDownBox2.Values = null;
|
||||
|
||||
if (testType == "1")
|
||||
{
|
||||
this.lbScore.Text = SValue.ToString();
|
||||
this.trE.Hidden = true;
|
||||
}
|
||||
else if (testType == "2")
|
||||
{
|
||||
this.lbScore.Text = MValue.ToString();
|
||||
}
|
||||
else if (testType == "3")
|
||||
{
|
||||
this.lbScore.Text = JValue.ToString();
|
||||
this.trC.Hidden = true;
|
||||
this.trD.Hidden = true;
|
||||
this.trE.Hidden = true;
|
||||
this.txtAItem.Text = "对";
|
||||
this.txtBItem.Text = "错";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+332
@@ -0,0 +1,332 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <自动生成>
|
||||
// 此代码由工具生成。
|
||||
//
|
||||
// 对此文件的更改可能导致不正确的行为,如果
|
||||
// 重新生成代码,则所做更改将丢失。
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
|
||||
|
||||
public partial class WorkPostTestTrainingItemSave
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// form1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
/// <summary>
|
||||
/// PageManager1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.PageManager PageManager1;
|
||||
|
||||
/// <summary>
|
||||
/// SimpleForm1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Form SimpleForm1;
|
||||
|
||||
/// <summary>
|
||||
/// txtTrainingItemCode 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtTrainingItemCode;
|
||||
|
||||
/// <summary>
|
||||
/// rblTestType 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.RadioButtonList rblTestType;
|
||||
|
||||
/// <summary>
|
||||
/// lbScore 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label lbScore;
|
||||
|
||||
/// <summary>
|
||||
/// DropDownBox1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownBox DropDownBox1;
|
||||
|
||||
/// <summary>
|
||||
/// SimpleForm2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.SimpleForm SimpleForm2;
|
||||
|
||||
/// <summary>
|
||||
/// Label1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label Label1;
|
||||
|
||||
/// <summary>
|
||||
/// RadioButtonList1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.CheckBoxList RadioButtonList1;
|
||||
|
||||
/// <summary>
|
||||
/// txtAbstracts 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextArea txtAbstracts;
|
||||
|
||||
/// <summary>
|
||||
/// txtAItem 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtAItem;
|
||||
|
||||
/// <summary>
|
||||
/// txtBItem 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtBItem;
|
||||
|
||||
/// <summary>
|
||||
/// trC 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.FormRow trC;
|
||||
|
||||
/// <summary>
|
||||
/// txtCItem 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtCItem;
|
||||
|
||||
/// <summary>
|
||||
/// trD 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.FormRow trD;
|
||||
|
||||
/// <summary>
|
||||
/// txtDItem 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtDItem;
|
||||
|
||||
/// <summary>
|
||||
/// trE 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.FormRow trE;
|
||||
|
||||
/// <summary>
|
||||
/// txtEItem 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtEItem;
|
||||
|
||||
/// <summary>
|
||||
/// DropDownBox2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownBox DropDownBox2;
|
||||
|
||||
/// <summary>
|
||||
/// SimpleForm3 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.SimpleForm SimpleForm3;
|
||||
|
||||
/// <summary>
|
||||
/// Label2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label Label2;
|
||||
|
||||
/// <summary>
|
||||
/// RadioButtonList2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.CheckBoxList RadioButtonList2;
|
||||
|
||||
/// <summary>
|
||||
/// btnFile 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.FileUpload btnFile;
|
||||
|
||||
/// <summary>
|
||||
/// ContentPanel2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ContentPanel ContentPanel2;
|
||||
|
||||
/// <summary>
|
||||
/// divFile 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divFile;
|
||||
|
||||
/// <summary>
|
||||
/// trImageUrl 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlTableRow trImageUrl;
|
||||
|
||||
/// <summary>
|
||||
/// divBeImageUrl 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divBeImageUrl;
|
||||
|
||||
/// <summary>
|
||||
/// btnDelete 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnDelete;
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar1;
|
||||
|
||||
/// <summary>
|
||||
/// lbTemp 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label lbTemp;
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarFill1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarFill ToolbarFill1;
|
||||
|
||||
/// <summary>
|
||||
/// btnSave 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnSave;
|
||||
|
||||
/// <summary>
|
||||
/// btnClose 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnClose;
|
||||
|
||||
/// <summary>
|
||||
/// hdCompileMan 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.HiddenField hdCompileMan;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WorkPostTestTrainingOut.aspx.cs" Inherits="FineUIPro.Web.HSSE.EduTrain.WorkPostTestTrainingOut" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<title>培训试题</title>
|
||||
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
|
||||
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
|
||||
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
|
||||
<Items>
|
||||
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="考试试题库" EnableCollapse="true"
|
||||
runat="server" BoxFlex="1" DataKeyNames="TrainingItemId" EnableColumnLines="true" ForceFit="true"
|
||||
DataIDField="TrainingItemId" AllowSorting="true" SortField="TrainingCode,TrainingItemCode"
|
||||
SortDirection="ASC" OnSort="Grid1_Sort" AllowPaging="true" IsDatabasePaging="true"
|
||||
PageSize="15" OnPageIndexChange="Grid1_PageIndexChange" Width="980px" EnableTextSelection="True">
|
||||
<Toolbars>
|
||||
<f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Right">
|
||||
<Items>
|
||||
<f:Button ID="btnOut" OnClick="btnMenuOut_Click" runat="server" ToolTip="导出" Icon="FolderUp" Text="导出"
|
||||
EnableAjax="false" DisableControlBeforePostBack="false">
|
||||
</f:Button>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
</Toolbars>
|
||||
<Columns>
|
||||
<f:RenderField Width="90px" ColumnID="TrainingCode" DataField="TrainingCode" FieldType="String"
|
||||
HeaderText="类型编号" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="150px" ColumnID="TrainingName" DataField="TrainingName" FieldType="String"
|
||||
HeaderText="试题类型" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="90px" ColumnID="TrainingItemCode" DataField="TrainingItemCode" FieldType="String"
|
||||
HeaderText="试题编号" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="80px" ColumnID="TestTypeName" DataField="TestTypeName" FieldType="String"
|
||||
HeaderText="题型" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="150px" ColumnID="WorkPostNames" DataField="WorkPostNames" FieldType="String"
|
||||
HeaderText="适合岗位" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="300px" ColumnID="Abstracts" DataField="Abstracts" FieldType="String"
|
||||
HeaderText="试题内容" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="150px" ColumnID="AItem" DataField="AItem" FieldType="String"
|
||||
HeaderText="答案项A" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="150px" ColumnID="BItem" DataField="BItem" FieldType="String"
|
||||
HeaderText="答案项B" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="150px" ColumnID="CItem" DataField="CItem" FieldType="String"
|
||||
HeaderText="答案项C" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="150px" ColumnID="DItem" DataField="DItem" FieldType="String"
|
||||
HeaderText="答案项D" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="150px" ColumnID="EItem" DataField="EItem" FieldType="String"
|
||||
HeaderText="答案项E" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="80px" ColumnID="AnswerItems" DataField="AnswerItems" FieldType="String"
|
||||
HeaderText="答案项" HeaderTextAlign="Center" TextAlign="Left">
|
||||
</f:RenderField>
|
||||
</Columns>
|
||||
<Listeners>
|
||||
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
|
||||
</Listeners>
|
||||
<PageItems>
|
||||
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
|
||||
</f:ToolbarSeparator>
|
||||
<f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:">
|
||||
</f:ToolbarText>
|
||||
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
|
||||
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
|
||||
</f:DropDownList>
|
||||
</PageItems>
|
||||
</f:Grid>
|
||||
</Items>
|
||||
</f:Panel>
|
||||
</form>
|
||||
<script type="text/jscript">
|
||||
// 返回false,来阻止浏览器右键菜单
|
||||
function onRowContextMenu(event, rowId) {
|
||||
// F(menuID).show(); //showAt(event.pageX, event.pageY);
|
||||
return false;
|
||||
}
|
||||
|
||||
function reloadGrid() {
|
||||
__doPostBack(null, 'reloadGrid');
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,124 @@
|
||||
using BLL;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.SqlClient;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
public partial class WorkPostTestTrainingOut : PageBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 加载页面
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
Funs.DropDownPageSize(this.ddlPageSize);
|
||||
this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
|
||||
// 绑定表格
|
||||
this.BindGrid();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 绑定数据
|
||||
/// </summary>
|
||||
private void BindGrid()
|
||||
{
|
||||
string strSql = @"SELECT TrainingItemId,Training.TrainingCode,Training.TrainingName,TrainingItemCode,TrainingItemName,Abstracts,AttachUrl,VersionNum,TestType,WorkPostIds "
|
||||
+ @" ,(CASE WHEN TestType = '1' THEN '单选题' WHEN TestType = '2' THEN '多选题' ELSE '判断题' END) AS TestTypeName,WorkPostNames,AItem,BItem,CItem,DItem,EItem "
|
||||
+ @" ,Score,Replace(Replace(Replace(Replace(Replace(AnswerItems,'1','A'),'2', 'B'),'3', 'C'),'4', 'D'),'5', 'E') AS AnswerItems "
|
||||
+ @" FROM dbo.Training_TestTrainingItem AS Item"
|
||||
+ @" LEFT JOIN Training_TestTraining AS Training ON Item.TrainingId=Training.TrainingId"
|
||||
+ @" WHERE 1 = 1";
|
||||
List<SqlParameter> listStr = new List<SqlParameter>();
|
||||
|
||||
//if (!string.IsNullOrEmpty(this.txtName.Text.Trim()))
|
||||
//{
|
||||
// strSql += " AND (JobActivityName LIKE @Name OR JobActivityCode LIKE @Name OR JobActivitys.Remark LIKE @Name OR WorkAreas.WorkAreaName LIKE @Name OR Installation.InstallationName LIKE @Name)";
|
||||
// listStr.Add(new SqlParameter("@Name", "%" + this.txtName.Text.Trim() + "%"));
|
||||
//}
|
||||
|
||||
SqlParameter[] parameter = listStr.ToArray();
|
||||
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
|
||||
|
||||
Grid1.RecordCount = tb.Rows.Count;
|
||||
var table = this.GetPagedDataTable(Grid1, tb);
|
||||
Grid1.DataSource = table;
|
||||
Grid1.DataBind();
|
||||
}
|
||||
|
||||
#region 查询
|
||||
/// <summary>
|
||||
/// 查询
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void TextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
this.BindGrid();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 分页
|
||||
/// <summary>
|
||||
/// 分页
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
|
||||
{
|
||||
BindGrid();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 分页显示条数下拉框
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
|
||||
BindGrid();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
|
||||
{
|
||||
BindGrid();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 导出按钮
|
||||
/// <summary>
|
||||
/// 导出事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnMenuOut_Click(object sender, EventArgs e)
|
||||
{
|
||||
Response.ClearContent();
|
||||
string filename = Funs.GetNewFileName();
|
||||
Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("考试试题" + filename, System.Text.Encoding.UTF8) + ".xls");
|
||||
Response.ContentType = "application/excel";
|
||||
Response.ContentEncoding = System.Text.Encoding.UTF8;
|
||||
this.Grid1.PageSize = Grid1.RecordCount;
|
||||
BindGrid();
|
||||
Response.Write(GetGridTableHtml(Grid1));
|
||||
Response.End();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <自动生成>
|
||||
// 此代码由工具生成。
|
||||
//
|
||||
// 对此文件的更改可能导致不正确的行为,如果
|
||||
// 重新生成代码,则所做更改将丢失。
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
|
||||
|
||||
public partial class WorkPostTestTrainingOut
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// form1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
/// <summary>
|
||||
/// PageManager1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.PageManager PageManager1;
|
||||
|
||||
/// <summary>
|
||||
/// Panel1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel Panel1;
|
||||
|
||||
/// <summary>
|
||||
/// Grid1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Grid Grid1;
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar1;
|
||||
|
||||
/// <summary>
|
||||
/// btnOut 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnOut;
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarSeparator1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarText1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarText ToolbarText1;
|
||||
|
||||
/// <summary>
|
||||
/// ddlPageSize 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList ddlPageSize;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WorkPostTestTrainingSave.aspx.cs" Inherits="FineUIPro.Web.HSSE.EduTrain.WorkPostTestTrainingSave" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<title></title>
|
||||
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
|
||||
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
|
||||
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
|
||||
<Rows>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextBox ID="txtSupTraining" runat="server" Label="上级" Required="true" ShowRedStar="true" MaxLength="50" AutoPostBack="true" OnTextChanged="TextBox_TextChanged"></f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextBox ID="txtTrainingCode" runat="server" Label="编号"
|
||||
Required="true" ShowRedStar="true" FocusOnPageLoad="true" MaxLength="50"></f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextArea ID="txtTrainingName" runat="server" Label="名称" Required="true" ShowRedStar="true"
|
||||
MaxLength="100" AutoPostBack="true" OnTextChanged="TextBox_TextChanged"></f:TextArea>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:CheckBox ID="ckIsEndLever" runat="server" Label="末级" Checked="true"></f:CheckBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
</Rows>
|
||||
<Toolbars>
|
||||
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
|
||||
<Items>
|
||||
<f:Button ID="btnSave" Icon="SystemSave" runat="server" ValidateForms="SimpleForm1" Text="保存"
|
||||
OnClick="btnSave_Click" Hidden="true">
|
||||
</f:Button>
|
||||
<f:Button ID="btnClose" EnablePostBack="false" runat="server" Icon="SystemClose" MarginRight="10px" Text="关闭">
|
||||
</f:Button>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
</Toolbars>
|
||||
</f:Form>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,154 @@
|
||||
using BLL;
|
||||
using Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
public partial class WorkPostTestTrainingSave : PageBase
|
||||
{
|
||||
#region 自定义项
|
||||
/// <summary>
|
||||
/// 主键
|
||||
/// </summary>
|
||||
public string TrainingId
|
||||
{
|
||||
get
|
||||
{
|
||||
return (string)ViewState["TrainingId"];
|
||||
}
|
||||
set
|
||||
{
|
||||
ViewState["TrainingId"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 上级主键
|
||||
/// </summary>
|
||||
public string SupTrainingId
|
||||
{
|
||||
get
|
||||
{
|
||||
return (string)ViewState["SupTrainingId"];
|
||||
}
|
||||
set
|
||||
{
|
||||
ViewState["SupTrainingId"] = value;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
this.GetButtonPower();
|
||||
btnClose.OnClientClick = ActiveWindow.GetHideReference();
|
||||
this.TrainingId = Request.QueryString["TrainingId"];
|
||||
this.SupTrainingId = Request.QueryString["SupTrainingId"];
|
||||
if (!String.IsNullOrEmpty(TrainingId))
|
||||
{
|
||||
var q = BLL.TestTrainingService.GetTestTrainingById(TrainingId);
|
||||
if (q != null)
|
||||
{
|
||||
this.SupTrainingId = q.SupTrainingId;
|
||||
txtTrainingCode.Text = q.TrainingCode;
|
||||
txtTrainingName.Text = q.TrainingName;
|
||||
if (q.IsEndLever == true)
|
||||
{
|
||||
ckIsEndLever.Checked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ckIsEndLever.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
var supq = BLL.TestTrainingService.GetTestTrainingById(this.SupTrainingId);
|
||||
if (supq != null)
|
||||
{
|
||||
this.txtSupTraining.Text = supq.TrainingName;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.SupTrainingId = "0";
|
||||
this.txtSupTraining.Text = "考试试题库";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
Model.Training_TestTraining training = new Training_TestTraining
|
||||
{
|
||||
TrainingCode = txtTrainingCode.Text.Trim(),
|
||||
TrainingName = txtTrainingName.Text.Trim(),
|
||||
SupTrainingId = this.SupTrainingId,
|
||||
IsEndLever = this.ckIsEndLever.Checked,
|
||||
};
|
||||
|
||||
if (String.IsNullOrEmpty(TrainingId))
|
||||
{
|
||||
TrainingId = SQLHelper.GetNewID(typeof(Model.Training_TestTraining));
|
||||
training.TrainingId = TrainingId;
|
||||
BLL.TestTrainingService.AddTestTraining(training);
|
||||
}
|
||||
else
|
||||
{
|
||||
training.TrainingId = TrainingId;
|
||||
BLL.TestTrainingService.UpdateTestTraining(training);
|
||||
}
|
||||
// 2. 关闭本窗体,然后刷新父窗体
|
||||
// PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
|
||||
// 2. 关闭本窗体,然后回发父窗体
|
||||
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
|
||||
//PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(trainingId) + ActiveWindow.GetHideReference());
|
||||
|
||||
}
|
||||
|
||||
#region 按钮权限
|
||||
/// <summary>
|
||||
/// 获取按钮权限
|
||||
/// </summary>
|
||||
/// <param name="button"></param>
|
||||
/// <returns></returns>
|
||||
private void GetButtonPower()
|
||||
{
|
||||
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TestTrainingMenuId);
|
||||
if (buttonList.Count() > 0)
|
||||
{
|
||||
if (buttonList.Contains(BLL.Const.BtnSave))
|
||||
{
|
||||
this.btnSave.Hidden = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 验证考试试题库名称是否存在
|
||||
/// <summary>
|
||||
/// 验证考试试题库名称是否存在
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void TextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
var standard = Funs.DB.Training_TestTraining.FirstOrDefault(x => x.TrainingName == this.txtTrainingName.Text.Trim() && (x.TrainingId != this.TrainingId || (this.TrainingId == null && x.TrainingId != null)));
|
||||
if (standard != null)
|
||||
{
|
||||
ShowNotify("输入的名称已存在!", MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
+107
@@ -0,0 +1,107 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <自动生成>
|
||||
// 此代码由工具生成。
|
||||
//
|
||||
// 对此文件的更改可能导致不正确的行为,如果
|
||||
// 重新生成代码,则所做更改将丢失。
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
|
||||
|
||||
public partial class WorkPostTestTrainingSave
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// form1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
/// <summary>
|
||||
/// PageManager1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.PageManager PageManager1;
|
||||
|
||||
/// <summary>
|
||||
/// SimpleForm1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Form SimpleForm1;
|
||||
|
||||
/// <summary>
|
||||
/// txtSupTraining 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtSupTraining;
|
||||
|
||||
/// <summary>
|
||||
/// txtTrainingCode 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtTrainingCode;
|
||||
|
||||
/// <summary>
|
||||
/// txtTrainingName 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextArea txtTrainingName;
|
||||
|
||||
/// <summary>
|
||||
/// ckIsEndLever 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.CheckBox ckIsEndLever;
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar1;
|
||||
|
||||
/// <summary>
|
||||
/// btnSave 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnSave;
|
||||
|
||||
/// <summary>
|
||||
/// btnClose 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnClose;
|
||||
}
|
||||
}
|
||||
@@ -822,70 +822,74 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(电工).doc";
|
||||
}
|
||||
// else if (person.WorkPostName == "电焊工")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(电焊工).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "防水普工")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(防水普工).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "钢筋工")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(钢筋工).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "管理人员")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(管理人员).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "架子工")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(架子工).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "木工")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(木工).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "普工")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(普工).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "施工电梯司机")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(施工电梯司机).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "水电工")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(水电工).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "司索信号工")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(司索信号工).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "塔吊司机")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(塔吊司机).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "挖机司机")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(挖机司机).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "瓦工")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(瓦工).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "渣土车司机")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(渣土车司机).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "桩基")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(桩基).doc";
|
||||
// }
|
||||
// else if (person.WorkPostName == "装配、灌浆工")
|
||||
// {
|
||||
// initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(装配、灌浆工).doc";
|
||||
// }
|
||||
else if (person.WorkPostName == "电焊工")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(电焊工).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "防水普工")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(防水普工).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "钢筋工")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(钢筋工).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "管理人员")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(管理人员).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "架子工")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(架子工).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "木工")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(木工).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "普工")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(普工).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "施工电梯司机")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(施工电梯司机).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "水电工")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(水电工).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "司索信号工")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(司索信号工).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "塔吊司机")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(塔吊司机).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "挖机司机")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(挖机司机).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "瓦工")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(瓦工).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "渣土车司机")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(渣土车司机).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "桩基")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(桩基).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "装配、灌浆工")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(装配、灌浆工).doc";
|
||||
}
|
||||
else if (person.WorkPostName == "班组管理员")
|
||||
{
|
||||
initTemplatePath = "File\\Word\\Person\\安全教育培训打印整套(班组管理员).doc";
|
||||
}
|
||||
else
|
||||
{
|
||||
Alert.ShowInTop("当前岗位类型不可导出!", MessageBoxIcon.Warning);
|
||||
@@ -965,7 +969,7 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
int MValueCount = 0;
|
||||
int JValue = 0;
|
||||
int JValueCount = 0;
|
||||
Sys_TestRule sysTestRule = null;
|
||||
// Sys_TestRule sysTestRule = null;
|
||||
IQueryable<Training_TestRecordItem> getTestItems = null;
|
||||
List<Training_TestRecordItem> getSingleItem = new List<Training_TestRecordItem>();
|
||||
List<Training_TestRecordItem> getMultipleItem = new List<Training_TestRecordItem>();
|
||||
@@ -985,21 +989,21 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
|
||||
unitName = BLL.UnitService.GetUnitNameByUnitId(person.UnitId);
|
||||
workPostName = WorkPostService.getWorkPostNamesWorkPostIds(person.WorkPostId);
|
||||
sysTestRule = Funs.DB.Sys_TestRule.FirstOrDefault();
|
||||
// sysTestRule = Funs.DB.Sys_TestRule.FirstOrDefault();
|
||||
getTestItems = from x in Funs.DB.Training_TestRecordItem
|
||||
where x.TestRecordId == TestRecordId
|
||||
select x;
|
||||
getSingleItem = getTestItems.Where(x => x.TestType == "1").ToList();
|
||||
SValue = sysTestRule.SValue; //每题分数
|
||||
SValueCount = sysTestRule.SValue * getSingleItem.Count; //总分
|
||||
// SValue = sysTestRule.SValue; //每题分数
|
||||
// SValueCount = sysTestRule.SValue * getSingleItem.Count; //总分
|
||||
|
||||
getMultipleItem = getTestItems.Where(x => x.TestType == "2").ToList();
|
||||
MValue = sysTestRule.MValue; //每题分数
|
||||
MValueCount = sysTestRule.MValue * getMultipleItem.Count; //总分
|
||||
// MValue = sysTestRule.MValue; //每题分数
|
||||
// MValueCount = sysTestRule.MValue * getMultipleItem.Count; //总分
|
||||
|
||||
getIsTrueItem = getTestItems.Where(x => x.TestType == "3").ToList();
|
||||
JValue = sysTestRule.JValue; //每题分数
|
||||
JValueCount = sysTestRule.JValue * getIsTrueItem.Count; //总分
|
||||
// JValue = sysTestRule.JValue; //每题分数
|
||||
// JValueCount = sysTestRule.JValue * getIsTrueItem.Count; //总分
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(sign1))
|
||||
@@ -1081,6 +1085,8 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
|
||||
if (getSingleItem.Count > 0)
|
||||
{
|
||||
SValue = (int)getSingleItem.FirstOrDefault().Score; //每题分数
|
||||
SValueCount = (int)getSingleItem.Sum(item => item.Score); //总分
|
||||
int num = 1;
|
||||
foreach (var item in getSingleItem)
|
||||
{
|
||||
@@ -1132,6 +1138,8 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
tableM.Columns.Add("MOption");
|
||||
if (getMultipleItem.Count > 0)
|
||||
{
|
||||
MValue = (int)getMultipleItem.FirstOrDefault().Score; //每题分数
|
||||
MValueCount = (int)getMultipleItem.Sum(item => item.Score); //总分
|
||||
int num = 1;
|
||||
foreach (var item in getMultipleItem)
|
||||
{
|
||||
@@ -1183,6 +1191,8 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
|
||||
if (getIsTrueItem.Count > 0)
|
||||
{
|
||||
JValue = (int)getIsTrueItem.FirstOrDefault().Score; //每题分数
|
||||
JValueCount = (int)getIsTrueItem.Sum(item => item.Score); //总分
|
||||
int num = 1;
|
||||
foreach (var item in getIsTrueItem)
|
||||
{
|
||||
|
||||
@@ -439196,6 +439196,8 @@ namespace Model
|
||||
|
||||
private string _EItemRussian;
|
||||
|
||||
private System.Nullable<int> _Score;
|
||||
|
||||
private EntityRef<Training_TestTraining> _Training_TestTraining;
|
||||
|
||||
private EntityRef<Training_TestTraining> _Training;
|
||||
@@ -439260,6 +439262,8 @@ namespace Model
|
||||
partial void OnDItemRussianChanged();
|
||||
partial void OnEItemRussianChanging(string value);
|
||||
partial void OnEItemRussianChanged();
|
||||
partial void OnScoreChanging(System.Nullable<int> value);
|
||||
partial void OnScoreChanged();
|
||||
#endregion
|
||||
|
||||
public Training_TestTrainingItem()
|
||||
@@ -439833,6 +439837,26 @@ namespace Model
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Score", DbType="Int")]
|
||||
public System.Nullable<int> Score
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._Score;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._Score != value))
|
||||
{
|
||||
this.OnScoreChanging(value);
|
||||
this.SendPropertyChanging();
|
||||
this._Score = value;
|
||||
this.SendPropertyChanged("Score");
|
||||
this.OnScoreChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Training_TestTrainingItem_Training_TestTraining", Storage="_Training_TestTraining", ThisKey="TrainingId", OtherKey="TrainingId", IsForeignKey=true)]
|
||||
public Training_TestTraining Training_TestTraining
|
||||
{
|
||||
@@ -486479,6 +486503,8 @@ namespace Model
|
||||
|
||||
private System.Nullable<int> _TrainCount;
|
||||
|
||||
private System.Nullable<int> _TestCount;
|
||||
|
||||
private string _AuditorId;
|
||||
|
||||
private string _AuditorName;
|
||||
@@ -487217,6 +487243,22 @@ namespace Model
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TestCount", DbType="Int")]
|
||||
public System.Nullable<int> TestCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._TestCount;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._TestCount != value))
|
||||
{
|
||||
this._TestCount = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AuditorId", DbType="NVarChar(50)")]
|
||||
public string AuditorId
|
||||
{
|
||||
@@ -492417,6 +492459,8 @@ namespace Model
|
||||
|
||||
private string _EItemEng;
|
||||
|
||||
private System.Nullable<int> _Score;
|
||||
|
||||
private string _AnswerItems;
|
||||
|
||||
public View_Training_TestTrainingItem()
|
||||
@@ -492791,6 +492835,22 @@ namespace Model
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Score", DbType="Int")]
|
||||
public System.Nullable<int> Score
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._Score;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._Score != value))
|
||||
{
|
||||
this._Score = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AnswerItems", DbType="NVarChar(50)")]
|
||||
public string AnswerItems
|
||||
{
|
||||
|
||||
@@ -429,5 +429,104 @@ namespace WebAPI.Controllers
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 根据PersonId的岗位获取试卷
|
||||
|
||||
/// <summary>
|
||||
/// 根据PersonId的岗位获取试卷
|
||||
/// </summary>
|
||||
/// <param name="personId">人员ID</param>
|
||||
/// <returns></returns>
|
||||
public Model.ResponeData getTestPlanRecordItemByPersonId(string personId, string projectId)
|
||||
{
|
||||
var responeData = new Model.ResponeData();
|
||||
try
|
||||
{
|
||||
var person = Funs.DB.View_SitePerson_Person.FirstOrDefault(x => x.PersonId == personId);
|
||||
if (person != null)
|
||||
{
|
||||
Model.Training_TestRecord newTestRecord = new Model.Training_TestRecord
|
||||
{
|
||||
TestRecordId = SQLHelper.GetNewID(),
|
||||
ProjectId = projectId,
|
||||
TestManId = person.PersonId
|
||||
};
|
||||
TestRecordService.AddTestRecord(newTestRecord);
|
||||
|
||||
var testRecordId = CreateTestRecordItemNew(newTestRecord.TestRecordId, person);
|
||||
responeData.code = 1;
|
||||
responeData.data = new { testRecordId };
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
responeData.code = 0;
|
||||
responeData.message = ex.Message;
|
||||
}
|
||||
|
||||
return responeData;
|
||||
}
|
||||
|
||||
|
||||
public static string CreateTestRecordItemNew(string testRecordId, Model.View_SitePerson_Person person)
|
||||
{
|
||||
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
|
||||
{
|
||||
var getTestTrainingItemList = (from x in Funs.DB.Training_TestTrainingItem
|
||||
where x.TrainingId == "99ccf4c8-6f8e-47da-a900-53b12a278f25" &&
|
||||
x.WorkPostNames.Contains(person.WorkPostName)
|
||||
orderby x.TestType, x.TrainingItemCode
|
||||
select new
|
||||
{
|
||||
x.TrainingItemId,
|
||||
x.TrainingId,
|
||||
x.TrainingItemName,
|
||||
x.TrainingItemCode,
|
||||
x.Abstracts,
|
||||
x.AttachUrl,
|
||||
x.TestType,
|
||||
x.WorkPostIds,
|
||||
x.WorkPostNames,
|
||||
x.AItem,
|
||||
x.BItem,
|
||||
x.CItem,
|
||||
x.DItem,
|
||||
x.EItem,
|
||||
x.AnswerItems,
|
||||
x.Score
|
||||
}).ToList();
|
||||
|
||||
|
||||
if (getTestTrainingItemList.Count() > 0)
|
||||
{
|
||||
var getItems = from x in getTestTrainingItemList
|
||||
select new Model.Training_TestRecordItem
|
||||
{
|
||||
TestRecordItemId = SQLHelper.GetNewID(),
|
||||
TestRecordId = testRecordId,
|
||||
TrainingItemName = x.TrainingItemName,
|
||||
TrainingItemCode = x.TrainingItemCode,
|
||||
Abstracts = x.Abstracts,
|
||||
AttachUrl = x.AttachUrl,
|
||||
TestType = x.TestType,
|
||||
AItem = x.AItem,
|
||||
BItem = x.BItem,
|
||||
CItem = x.CItem,
|
||||
DItem = x.DItem,
|
||||
EItem = x.EItem,
|
||||
AnswerItems = x.AnswerItems,
|
||||
Score = x.Score,
|
||||
};
|
||||
|
||||
db.Training_TestRecordItem.InsertAllOnSubmit(getItems);
|
||||
db.SubmitChanges();
|
||||
}
|
||||
|
||||
return testRecordId;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -634,5 +634,73 @@ namespace WebAPI.Controllers
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region 岗位交卷
|
||||
/// <summary>
|
||||
/// 岗位交卷
|
||||
/// <param name="testRecordId">试卷ID</param>
|
||||
/// </summary>
|
||||
public Model.ResponeData SaveSubmitTestRecord(string testRecordId,string Signature)
|
||||
{
|
||||
var responeData = new Model.ResponeData();
|
||||
try
|
||||
{
|
||||
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
|
||||
{
|
||||
string returnTestRecordId = string.Empty;
|
||||
decimal getTestScores = 0;
|
||||
var getTestRecord = db.Training_TestRecord.FirstOrDefault(e => e.TestRecordId == testRecordId);
|
||||
if (getTestRecord != null)
|
||||
{
|
||||
if (getTestRecord.TestStartTime.HasValue)
|
||||
{
|
||||
getTestRecord.Signature = Signature;
|
||||
getTestRecord.TestEndTime = DateTime.Now;
|
||||
getTestRecord.TestScores = db.Training_TestRecordItem.Where(x => x.TestRecordId == testRecordId).Sum(x => x.SubjectScore ?? 0);
|
||||
db.SubmitChanges();
|
||||
getTestScores = getTestRecord.TestScores ?? 0;
|
||||
}
|
||||
|
||||
////考试分数
|
||||
int getPassScores = 70;
|
||||
if (getTestScores < getPassScores)
|
||||
{
|
||||
int testCount = db.Training_TestRecord.Where(x => x.TestPlanId == getTestRecord.TestPlanId && x.TestManId == getTestRecord.TestManId).Count();
|
||||
if (testCount < 2)
|
||||
{
|
||||
////重新生成一条考试记录 以及考试试卷
|
||||
returnTestRecordId = APITestRecordService.getResitTestRecord(getTestRecord);
|
||||
responeData.message = "考试不合格!您的成绩为:【" + getTestScores.ToString() + "】,您将进入补考。";
|
||||
}
|
||||
else
|
||||
{
|
||||
// APITestRecordService.updateAll(getTestRecord.TestPlanId);
|
||||
responeData.message = "考试不合格!您的成绩为:【" + getTestScores.ToString() + "】,请再次参加培训后补考。";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// APITestRecordService.updateAll(getTestRecord.TestPlanId);
|
||||
responeData.message = "恭喜考试通过!您的成绩为:【" + getTestScores.ToString() + "】。";
|
||||
}
|
||||
|
||||
responeData.data = new { getTestScores, getPassScores, returnTestRecordId };
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
responeData.code = 0;
|
||||
responeData.message = ex.Message;
|
||||
}
|
||||
|
||||
return responeData;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1158,15 +1158,24 @@ namespace WebAPI.Controllers
|
||||
{
|
||||
if (person != null && !string.IsNullOrEmpty(person.IdentityCard))
|
||||
{
|
||||
var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == person.IdentityCard.Trim() && x.ProjectId == person.ProjectId);
|
||||
var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == person.IdentityCard.Trim() && x.UnitId == person.UnitId);
|
||||
if (getPerson != null)
|
||||
{
|
||||
responeData.code = -1;
|
||||
responeData.message = "该身份证号码已存在两条记录,请联系管理员处理!";
|
||||
responeData.message = "该身份证号码在次单位下已存在两条记录,请联系管理员处理!";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
var items = db.SitePerson_Person.Where(x => x.IdentityCard == person.IdentityCard.Trim()).ToList();
|
||||
if (items.Count > 0)
|
||||
{
|
||||
foreach (var item in items)
|
||||
{
|
||||
item.IsUsedType = "0";
|
||||
PersonService.UpdatePerson(item);
|
||||
}
|
||||
}
|
||||
|
||||
Model.SitePerson_Person newPerson = new Model.SitePerson_Person
|
||||
{
|
||||
PersonId = SQLHelper.GetNewID(),
|
||||
|
||||
@@ -154,6 +154,11 @@ namespace WebAPI.Filter
|
||||
, "ProjectUnitPenetrate*getDataByProjectUnitId"
|
||||
, "Rectify*getRectifyList"
|
||||
, "Rectify*getRectifyItemListBy"
|
||||
, "TestPlan*getTestPlanRecordItemByPersonId"
|
||||
, "TestRecord*getTestRecordItemListByTestRecordId"
|
||||
, "TestRecord*getTestTimesByTestRecordId"
|
||||
, "TestRecord*getTestRecordItemAnswerBySelectedItem"
|
||||
, "TestRecord*SaveSubmitTestRecord"
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -204,6 +204,7 @@
|
||||
<Compile Include="Controllers\HSSE\InformedConsentFormController.cs" />
|
||||
<Compile Include="Controllers\HSSE\MaterialController.cs" />
|
||||
<Compile Include="Controllers\HSSE\ModelTestRecordController.cs" />
|
||||
<Compile Include="Controllers\HSSE\RectifyController.cs" />
|
||||
<Compile Include="Controllers\HSSE\TrainTestRecordController.cs" />
|
||||
<Compile Include="Controllers\HSSE\ViolationPersonController.cs" />
|
||||
<Compile Include="Controllers\SHIYE\ShiYeController.cs" />
|
||||
|
||||
Reference in New Issue
Block a user