This commit is contained in:
高飞 2024-04-18 15:04:15 +08:00
commit 8f650add98
29 changed files with 2199 additions and 50 deletions

View File

@ -0,0 +1,2 @@
update Comprehensive_DesignChangeOrder set ImplementationFrontState='已完成' where ImplementationFrontState like'%完成%';
update Comprehensive_DesignChangeOrder set ImplementationFrontState='实施中' where ImplementationFrontState !='已完成';

View File

@ -21,6 +21,17 @@ namespace BLL
return Funs.DB.Comprehensive_TrainingRecords.FirstOrDefault(e => e.TrainingRecordsId == trainingRecordsId);
}
/// <summary>
/// 根据培训内容、专业获取培训记录
/// </summary>
/// <param name="trainingContents"></param>
/// <param name="cNProfessionalId"></param>
/// <returns></returns>
public static Model.Comprehensive_TrainingRecords GetTrainingRecordsByName(string trainingContents, string cNProfessionalId)
{
return Funs.DB.Comprehensive_TrainingRecords.FirstOrDefault(e => e.TrainingContents == trainingContents && e.CNProfessionalId == cNProfessionalId);
}
/// <summary>
/// 添加培训记录
/// </summary>

View File

@ -3245,6 +3245,11 @@ namespace BLL
/// 资料收发文登记记录导入模板原始虚拟路径
/// </summary>
public const string CQMS_DataReceivingDocTempUrl = "File\\Excel\\DataIn\\资料收发文登记记录导入模板.xlsx";
/// <summary>
/// 培训记录导入模板原始虚拟路径
/// </summary>
public const string CQMS_TrainingRecordsTemplateUrl= "File\\Excel\\DataIn\\培训记录导入模板.xlsx";
#endregion
#region
@ -3844,6 +3849,11 @@ namespace BLL
/// </summary>
public const string DesignDrawingsMenuId = "d8de4143-b680-44cf-9a78-acd3d49a8d00";
/// <summary>
/// 培训记录
/// </summary>
public const string TrainingRecordsMenuId = "CFD19410-DF80-494A-A2DD-D23A03438742";
/// <summary>
/// 图纸会审管理
/// </summary>

View File

@ -42,7 +42,12 @@
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtImplementationFrontState" runat="server" Label="执行情况" MaxLength="50" LabelAlign="right"></f:TextBox>
<%--<f:TextBox ID="txtImplementationFrontState" runat="server" Label="执行情况" MaxLength="50" LabelAlign="right"></f:TextBox>--%>
<f:DropDownList ID="drpImplementationFrontState" runat="server" Label="执行情况" LabelAlign="right">
<f:ListItem Value="实施中" Text="实施中" Selected="true"/>
<f:ListItem Value="已完成" Text="已完成"/>
</f:DropDownList>
<f:DatePicker runat="server" DateFormatString="yyyy-MM-dd" Label="施工完成日期" ID="txtCompleteDate" LabelWidth="120px"
LabelAlign="right">
</f:DatePicker>

View File

@ -75,8 +75,8 @@ namespace FineUIPro.Web.CQMS.Comprehensive
{
this.txtCompleteDate.Text = string.Format("{0:yyyy-MM-dd}", designChangeOrder.CompleteDate);
}
this.txtImplementationFrontState.Text = designChangeOrder.ImplementationFrontState;
//this.txtImplementationFrontState.Text = designChangeOrder.ImplementationFrontState;
this.drpImplementationFrontState.SelectedValue= designChangeOrder.ImplementationFrontState;
var currApprove = DesignChangeOrderApproveService.GetCurrentApprove(designChangeOrder.DesignChangeOrderId);
@ -192,7 +192,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive
designChangeOrder.IssuedDate = Funs.GetNewDateTime(this.txtIssuedDate.Text);
designChangeOrder.ApprovalDate = Funs.GetNewDateTime(this.txtApprovalDate.Text);
designChangeOrder.CompleteDate = Funs.GetNewDateTime(this.txtCompleteDate.Text);
designChangeOrder.ImplementationFrontState = this.txtImplementationFrontState.Text.Trim();
designChangeOrder.ImplementationFrontState = this.drpImplementationFrontState.SelectedValue;
if (!string.IsNullOrEmpty(this.drpAudit.SelectedValue))
{
designChangeOrder.AuditMan = drpAudit.SelectedValue;
@ -273,7 +273,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive
designChangeOrder.IssuedDate = Funs.GetNewDateTime(this.txtIssuedDate.Text);
designChangeOrder.ApprovalDate = Funs.GetNewDateTime(this.txtApprovalDate.Text);
designChangeOrder.CompleteDate = Funs.GetNewDateTime(this.txtCompleteDate.Text);
designChangeOrder.ImplementationFrontState = this.txtImplementationFrontState.Text.Trim();
designChangeOrder.ImplementationFrontState = this.drpImplementationFrontState.SelectedValue;
if (!string.IsNullOrEmpty(this.drpAudit.SelectedValue))
{
designChangeOrder.AuditMan = drpAudit.SelectedValue;

View File

@ -114,13 +114,13 @@ namespace FineUIPro.Web.CQMS.Comprehensive
protected global::FineUIPro.DatePicker txtApprovalDate;
/// <summary>
/// txtImplementationFrontState 控件。
/// drpImplementationFrontState 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtImplementationFrontState;
protected global::FineUIPro.DropDownList drpImplementationFrontState;
/// <summary>
/// txtCompleteDate 控件。

View File

@ -4,13 +4,106 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>培训记录</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<f:PageManager ID="PageManager1" runat="server" AutoSizePanelID="Panel1" />
<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="TrainingRecordsId" AllowCellEditing="true" EnableColumnLines="true" ClicksToEdit="2" DataIDField="TrainingRecordsId" AllowSorting="true"
SortField="" SortDirection="DESC" OnSort="Grid1_Sort" AllowPaging="true" IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True">
<Toolbars>
<f:Toolbar ID="ToolSearch" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DropDownList ID="drpCNProfessionalId" runat="server" Label="专业" LabelAlign="Right"></f:DropDownList>
<f:TextBox ID="txtTrainingContents" runat="server" Label="培训内容" LabelAlign="Right"></f:TextBox>
<f:Button ID="btnSearch" Icon="SystemSearch"
EnablePostBack="true" runat="server" ToolTip="查询" OnClick="btnSearch_Click">
</f:Button>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnNew" Icon="Add" ToolTip="新增" Hidden="true" EnablePostBack="true" runat="server" OnClick="btnNew_Click">
</f:Button>
<f:Button ID="btnImport" ToolTip="导入" Hidden="true" Icon="PackageIn" runat="server" OnClick="btnImport_Click">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField ColumnID="tfPageIndex" Width="55px" HeaderText="序号" HeaderTextAlign="Center" TextAlign="Center"
EnableLock="true" Locked="False">
<ItemTemplate>
<asp:Label ID="lblPageIndex" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField ColumnID="TrainingContents" DataField="TrainingContents" FieldType="String" HeaderText="培训内容" TextAlign="Center"
HeaderTextAlign="Center" Width="300px">
</f:RenderField>
<f:RenderField ColumnID="ProfessionalName" DataField="ProfessionalName" FieldType="String" HeaderText="专业" TextAlign="Center"
HeaderTextAlign="Center" Width="120px">
</f:RenderField>
<f:RenderField ColumnID="TrainingObject" DataField="TrainingObject" FieldType="String" HeaderText="培训对象" TextAlign="Center"
HeaderTextAlign="Center" Width="200px">
</f:RenderField>
<f:RenderField ColumnID="TrainingAddress" DataField="TrainingAddress" FieldType="String" HeaderText="培训地点" TextAlign="Center"
HeaderTextAlign="Center" Width="200px">
</f:RenderField>
<f:RenderField ColumnID="Hours" DataField="Hours" FieldType="String" HeaderText="课时(小时)" TextAlign="Center"
HeaderTextAlign="Center" Width="120px">
</f:RenderField>
<f:RenderField ColumnID="KeynoteSpeaker" DataField="KeynoteSpeaker" FieldType="String" HeaderText="主讲人" TextAlign="Center"
HeaderTextAlign="Center" Width="120px">
</f:RenderField>
<f:RenderField ColumnID="Remark" DataField="Remark" FieldType="String" HeaderText="备注" TextAlign="Center"
HeaderTextAlign="Center" Width="120px" ExpandUnusedSpace="true">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
<PageItems>
<f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:">
</f:ToolbarText>
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true" OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
<f:ListItem Text="10" Value="10" />
<f:ListItem Text="15" Value="15" />
<f:ListItem Text="20" Value="20" />
<f:ListItem Text="25" Value="25" />
<f:ListItem Text="所有行" Value="100000" />
</f:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="培训记录" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" OnClose="Window1_Close"
Width="800px" Height="500px">
</f:Window>
<f:Window ID="Window2" Title="培训记录导入" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" OnClose="Window1_Close"
Width="1024px" Height="650px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<Items>
<f:MenuButton ID="btnMenuModify" EnablePostBack="true" runat="server" Text="修改" Icon="Pencil" OnClick="btnMenuModify_Click" Hidden="true">
</f:MenuButton>
<f:MenuButton ID="btnMenuDel" EnablePostBack="true" runat="server" Icon="Delete" Text="删除" ConfirmText="确定删除当前数据?" OnClick="btnMenuDel_Click" Hidden="true">
</f:MenuButton>
</Items>
</f:Menu>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';
// 返回false来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) {
F(menuID).show(); //showAt(event.pageX, event.pageY);
return false;
}
</script>
</body>
</html>

View File

@ -1,5 +1,8 @@
using System;
using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
@ -7,11 +10,237 @@ using System.Web.UI.WebControls;
namespace FineUIPro.Web.CQMS.Comprehensive
{
public partial class TrainingRecords : System.Web.UI.Page
public partial class TrainingRecords : PageBase
{
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetButtonPower();
BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessionalId, true);
BindGrid();
}
}
/// <summary>
/// 数据绑定
/// </summary>
public void BindGrid()
{
string strSql = @"SELECT C.TrainingRecordsId,
C.ProjectId,
C.TrainingContents,
C.CNProfessionalId,
C.TrainingObject,
C.TrainingAddress,
C.Hours,
C.KeynoteSpeaker,
C.Remark,
CN.ProfessionalName"
+ @" FROM Comprehensive_TrainingRecords C "
+ @" LEFT JOIN Base_CNProfessional CN ON C.CNProfessionalId=CN.CNProfessionalId"
+ @" WHERE C.ProjectId = @ProjectId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
if (drpCNProfessionalId.SelectedValue != BLL.Const._Null)
{
strSql += " AND C.CNProfessionalId=@CNProfessionalId";
listStr.Add(new SqlParameter("@CNProfessionalId", drpCNProfessionalId.SelectedValue));
}
if (!string.IsNullOrEmpty(this.txtTrainingContents.Text.Trim()))
{
strSql += " AND C.TrainingContents LIKE @TrainingContents";
listStr.Add(new SqlParameter("@TrainingContents", "%" + this.txtTrainingContents.Text.Trim() + "%"));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
//tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
#endregion
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSearch_Click(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region
/// <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, GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 新增按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TrainingRecordsEdit.aspx", "编辑 - ")));
}
#endregion
#region
/// <summary>
/// 右键修改
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuModify_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TrainingRecordsEdit.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
this.btnMenuModify_Click(sender, e);
}
#endregion
#region
/// <summary>
/// 右键删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDel_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
var trainingRecords = BLL.TrainingRecordsService.GetTrainingRecordsById(rowID);
if (trainingRecords != null)
{
BLL.TrainingRecordsService.DeleteTrainingRecordsById(rowID);
}
}
BindGrid();
ShowNotify("删除数据成功!", MessageBoxIcon.Success);
}
}
#endregion
#region
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 导入按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnImport_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("TrainingRecordsDataIn.aspx", "导入 - ")));
}
#endregion
#region
/// <summary>
/// 获取按钮权限
/// </summary>
/// <param name="button"></param>
/// <returns></returns>
private void GetButtonPower()
{
if (Request.Params["value"] == BLL.Const._Null)
{
return;
}
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TrainingRecordsMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnAdd))
{
this.btnNew.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnMenuModify.Hidden = false;
this.Grid1.EnableRowDoubleClickEvent = true;
}
else
{
this.Grid1.EnableRowDoubleClickEvent = false;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnMenuDel.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnSave))
{
this.btnImport.Hidden = false;
}
}
}
#endregion
}
}

View File

@ -20,5 +20,158 @@ namespace FineUIPro.Web.CQMS.Comprehensive {
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </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>
/// ToolSearch 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar ToolSearch;
/// <summary>
/// drpCNProfessionalId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpCNProfessionalId;
/// <summary>
/// txtTrainingContents 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtTrainingContents;
/// <summary>
/// btnSearch 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSearch;
/// <summary>
/// btnNew 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnNew;
/// <summary>
/// btnImport 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnImport;
/// <summary>
/// lblPageIndex 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPageIndex;
/// <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>
/// Menu1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuModify 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuModify;
/// <summary>
/// btnMenuDel 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuDel;
}
}

View File

@ -0,0 +1,167 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TrainingRecordsDataIn.aspx.cs" Inherits="FineUIPro.Web.CQMS.Comprehensive.TrainingRecordsDataIn" %>
<!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>
<style type="text/css">
.f-grid-row.red {
background-color: LightCoral;
}
.Label {
font-size: larger;
font-weight: bold;
}
</style>
<style type="text/css">
/*定义父容器*/
.content {
width: 550px;
height: 30px;
background: #E4F1FB;
margin: 0 auto;
}
/*定义进度条*/
.box {
width: 0px;
height: 30px;
line-height: 30px;
text-align: center;
background: #3BAAE3;
color: #fff;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:HiddenField ID="id" ClientIDMode="Static" runat="server"></f:HiddenField>
<f:Panel ID="Panel1" runat="server" Margin="2px" BodyPadding="2px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Right">
<Items>
<f:HiddenField ID="hdfileName" runat="server"></f:HiddenField>
<f:FileUpload ID="FileExcel" runat="server" Label="数据文件" EmptyText="请上传EXCEl格式文件" Width="350px" LabelWidth="90px" LabelAlign="Right"></f:FileUpload>
<f:Button ID="imgbtnImport" runat="server" Text="上传" ToolTip="文件上传" OnClick="imgbtnImport_Click"></f:Button>
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
<f:CheckBox ID="ckUpdate" runat="server" Text="更新导入"></f:CheckBox>
<f:Button ID="btnSave" runat="server" Text="保存" ToolTip="审核保存" Icon="SystemSave" OnClick="btnSave_Click"></f:Button>
<f:Button ID="btnRefresh" runat="server" ClientIDMode="Static" Text="刷新" Icon="SystemSave" OnClick="btnRefresh_Click" Hidden="true"></f:Button>
<f:Button ID="btnAllDelete" runat="server" Icon="Delete" Text="删除记录" ToolTip="删除当前人所有临时导入记录" ConfirmText="删除当前人所有临时导入记录?"
ConfirmTarget="Top" OnClick="btnAllDelete_Click">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" Text="导出" Icon="TableGo"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
<f:Button ID="imgbtnUpload" runat="server" Icon="DiskDownload" Text="模板下载" OnClick="imgbtnUpload_Click" EnableAjaxLoading="false"></f:Button>
<%--<f:Button ID="lkAchievements" runat="server" Icon="DiskDownload" Text="导入说明" OnClick="lkAchievements_Click" EnableAjaxLoading="false"></f:Button>--%>
</Items>
<Items>
</Items>
</f:Toolbar>
</Toolbars>
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="数据导入" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="TempId" AllowCellEditing="true" PageSize="15" OnPageIndexChange="Grid1_PageIndexChange"
EnableColumnLines="true" ClicksToEdit="2" DataIDField="TempId" AllowSorting="true"
SortField="RowNo" SortDirection="ASC" OnSort="Grid1_Sort" AllowPaging="true" IsDatabasePaging="true"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True">
<Columns>
<f:TemplateField ColumnID="tfPageIndex" Width="55px" HeaderText="序号" HeaderTextAlign="Center" TextAlign="Center"
EnableLock="true" Locked="False">
<ItemTemplate>
<asp:Label ID="lblPageIndex" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="70px" HeaderText="行号" ColumnID="RowNo" DataField="RowNo" SortField="RowNo"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="Value1" DataField="Value1" FieldType="String" HeaderText="培训内容" TextAlign="Center"
HeaderTextAlign="Center" Width="130px">
</f:RenderField>
<f:RenderField ColumnID="Value2" DataField="Value2" FieldType="String" HeaderText="专业" TextAlign="Center"
HeaderTextAlign="Center" Width="130px">
</f:RenderField>
<f:RenderField ColumnID="Value3" DataField="Value3" FieldType="String" HeaderText="培训对象" TextAlign="Center"
HeaderTextAlign="Center" Width="130px">
</f:RenderField>
<f:RenderField ColumnID="Value4" DataField="Value4" FieldType="String" HeaderText="培训地点" TextAlign="Center"
HeaderTextAlign="Center" Width="130px">
</f:RenderField>
<f:RenderField ColumnID="Value5" DataField="Value5" FieldType="String" HeaderText="课时(小时)" TextAlign="Center"
HeaderTextAlign="Center" Width="130px">
</f:RenderField>
<f:RenderField ColumnID="Value6" DataField="Value6" FieldType="String" HeaderText="主讲人" TextAlign="Center"
HeaderTextAlign="Center" Width="110px">
</f:RenderField>
<f:RenderField ColumnID="Value7" DataField="Value7" FieldType="String" HeaderText="备注" TextAlign="Center"
HeaderTextAlign="Center" Width="110px">
</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:ListItem Text="10" Value="10" />
<f:ListItem Text="15" Value="15" Selected="true" />
<f:ListItem Text="20" Value="20" />
<f:ListItem Text="25" Value="25" />
</f:DropDownList>
<f:Label Label="错误记录数" runat="server" ID="lbDataCout" CssClass="Label" LabelAlign="right" LabelWidth="120px"></f:Label>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="数据信息" Hidden="true" EnableIFrame="true"
EnableMaximize="true" Target="Top" EnableResize="true" runat="server"
IsModal="true" Width="1200px" Height="600px">
</f:Window>
<f:Window ID="Window2" Hidden="true" runat="server" MinHeight="30px"
Target="Parent" ShowHeader="false" BodyPadding="0" Margin="0"
IsModal="true" Width="550px" Height="32px">
<Items>
<f:ContentPanel ShowBorder="false" Height="30px" ShowHeader="false" ID="ContentPanel3" runat="server">
<div class="content" id="content">
<div class="box" id="box"></div>
</div>
</f:ContentPanel>
</Items>
</f:Window>
<f:Menu ID="Menu1" ClientIDMode="Static" runat="server">
<f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" EnablePostBack="true"
runat="server" Text="编辑" Icon="TableEdit">
</f:MenuButton>
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true"
ConfirmText="删除选中行?" ConfirmTarget="Top" runat="server" Text="删除" Icon="Delete">
</f:MenuButton>
</f:Menu>
<asp:ScriptManager ID="ScriptManager2" runat="server" EnablePageMethods="true">
<Scripts>
<asp:ScriptReference Path="~/res/DataInTable.js" />
</Scripts>
</asp:ScriptManager>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';
// 返回false来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) {
F(menuID).show(); //showAt(event.pageX, event.pageY);
return false;
}
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
}
</script>
</body>
</html>

View File

@ -0,0 +1,521 @@
using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Threading;
namespace FineUIPro.Web.CQMS.Comprehensive
{
public partial class TrainingRecordsDataIn : PageBase
{
#region
/// <summary>
/// 上传预设的虚拟路径
/// </summary>
private string initPath = Const.ExcelUrl;
/// <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)
{
if (percent == null)
{
percent = new Dictionary<string, int>();
}
this.id.Text = this.CurrUser.UserId;
this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
this.BindGrid();
}
else if (GetRequestEventArgument() == "reloadGrid")
{
BindGrid();
}
}
#endregion
#region
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
string strSql = @"SELECT TempId,ProjectId,UserId,Time,RowNo,ToopValue,Value1,Value2,Value3,Value4,Value5,Value6,Value7,Value8,Value9,Value10"
+ @" ,Value11,Value12,Value13,Value14,Value15,Value16,Value17,Value18,Value19,Value20,Value21,Value22,Value23,Value24,Value25,Value26,Value27,Value28,Value29,Value30"
+ @" ,Value31,Value32,Value33,Value34,Value35,Value36,Value37,Value38,Value39,Value40,Value41,Value42,Value43,Value44,Value45,Value46,Value47,Value48,Value49,Value50,ToopValue,Type"
+ @" FROM Sys_DataInTemp "
+ @" WHERE ProjectId=@ProjectId AND UserId=@UserId AND Type=@Type";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@UserId", this.CurrUser.UserId));
listStr.Add(new SqlParameter("@Type", "TrainingRecords"));//培训记录
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();
var dataInTempAll = from x in Funs.DB.Sys_DataInTemp
where x.ProjectId == this.CurrUser.LoginProjectId && x.UserId == this.CurrUser.UserId && x.Type == "TrainingRecords"
select x;
for (int i = 0; i < Grid1.Rows.Count; i++)
{
var dataInTemp = dataInTempAll.FirstOrDefault(x => x.TempId == Grid1.Rows[i].DataKeys[0].ToString());
if (dataInTemp != null)
{
if (!string.IsNullOrEmpty(dataInTemp.ToopValue))
{
Grid1.Rows[i].RowCssClass = "red";
}
}
}
var errData = from x in dataInTempAll where x.ToopValue != null select x;
this.lbDataCout.Text = errData.Count().ToString();
}
#endregion
#region
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
return;
}
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.TrainingRecordsMenuId, Const.BtnSave))
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TrainingRecordsDataInEdit.aspx?TempId={0}", Grid1.SelectedRowID, "维护 - ")));
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
#endregion
#region
/// <summary>
/// 导入信息编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TrainingRecordsMenuId, BLL.Const.BtnSave))
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TrainingRecordsDataInEdit.aspx?TempId={0}", Grid1.SelectedRowID, "维护 - ")));
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
/// <summary>
/// 删除按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.TrainingRecordsMenuId, Const.BtnSave))
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
return;
}
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
BLL.Sys_DataTempService.DeleteDataInTempByDataInTempID(rowID);
}
ShowNotify("删除成功!", MessageBoxIcon.Success);
this.BindGrid();
}
else
{
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
return;
}
}
#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 btnAllDelete_Click(object sender, EventArgs e)
{
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.TrainingRecordsMenuId, Const.BtnSave))
{
//先删除临时表中 该人员以前导入的数据
BLL.Sys_DataTempService.DeleteDataInTempByProjectIdUserId(this.CurrUser.LoginProjectId, this.CurrUser.UserId, "TrainingRecords");
this.BindGrid();
ShowNotify("删除成功!", MessageBoxIcon.Success);
this.lbDataCout.Text = string.Empty;
}
else
{
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
return;
}
}
#endregion
#region
/// <summary>
/// 下载模板
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void imgbtnUpload_Click(object sender, EventArgs e)
{
this.TemplateUpload(BLL.Const.CQMS_TrainingRecordsTemplateUrl);
}
protected void TemplateUpload(string initTemplatePath)
{
string rootPath = Server.MapPath("~/");
string uploadfilepath = rootPath + initTemplatePath;
string filePath = Const.CQMS_TrainingRecordsTemplateUrl;
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();
}
/// <summary>
/// 导入说明
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
//protected void lkAchievements_Click(object sender, EventArgs e)
//{
// this.TemplateUpload(Const.CQMS_DataReceivingDocTempUrl);
//}
#endregion
#region
public static Dictionary<string, int> percent { get; set; }
public static Dictionary<string, string> url { get; set; }
[System.Web.Services.WebMethod]
public static int getPercent(string id)
{
return percent[id];
}
#endregion
#region
/// <summary>
/// 文件上传
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void imgbtnImport_Click(object sender, EventArgs e)
{
try
{
if (this.FileExcel.HasFile == false)
{
ShowNotify("请选择Excel文件!", MessageBoxIcon.Warning);
return;
}
string IsXls = Path.GetExtension(this.FileExcel.FileName).ToString().Trim().ToLower();
if (IsXls != ".xls" && IsXls != ".xlsx")
{
ShowNotify("只能选择Excel文件!", MessageBoxIcon.Warning);
return;
}
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.FileExcel.PostedFile.SaveAs(filePath);
//文件上传服务器后的名称
string fileName = rootPath + initPath + this.hdfileName.Text;
//读取Excel
DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out errorInfos, true);
//验证Excel读取是否有误
if (!string.IsNullOrEmpty(errorInfos))
{
ShowNotify(errorInfos, MessageBoxIcon.Warning);
return;
}
if (ds.Tables.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Sys_DataInTemp newDataInTemp = new Sys_DataInTemp();
newDataInTemp.TempId = SQLHelper.GetNewID(typeof(Model.Sys_DataInTemp));
newDataInTemp.ProjectId = this.CurrUser.LoginProjectId;
newDataInTemp.UserId = this.CurrUser.UserId;
newDataInTemp.Time = System.DateTime.Now;
newDataInTemp.Type = "TrainingRecords";
newDataInTemp.RowNo = i + 2;
newDataInTemp.Value1 = ds.Tables[0].Rows[i]["培训内容"].ToString().Trim();
newDataInTemp.Value2 = ds.Tables[0].Rows[i]["专业"].ToString().Trim();
newDataInTemp.Value3 = ds.Tables[0].Rows[i]["培训对象"].ToString().Trim();
newDataInTemp.Value4 = ds.Tables[0].Rows[i]["培训地点"].ToString().Trim();
newDataInTemp.Value5 = ds.Tables[0].Rows[i]["课时(小时)"].ToString().Trim();
newDataInTemp.Value6 = ds.Tables[0].Rows[i]["主讲人"].ToString().Trim();
newDataInTemp.Value7 = ds.Tables[0].Rows[i]["备注"].ToString().Trim();
BLL.Sys_DataTempService.AddDataInTemp(newDataInTemp);
}
this.BindGrid();
ShowNotify("数据已导入临时表!", MessageBoxIcon.Success);
}
else
{
ShowNotify("无数据!", MessageBoxIcon.Warning);
return;
}
}
catch (Exception ex)
{
Alert.ShowInTop("'" + ex.Message + "'", MessageBoxIcon.Warning);
}
}
#endregion
#region
/// <summary>
/// 保存审核事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(() => { btnSaveMethod(this.CurrUser.LoginProjectId, this.CurrUser.UserId); }));
t.Start();
if (percent.ContainsKey(this.CurrUser.UserId))
{
percent[CurrUser.UserId] = 0;
}
else
{
percent.Add(CurrUser.UserId, 0);
}
PageContext.RegisterStartupScript("printX()");
}
protected void btnRefresh_Click(object sender, EventArgs e)
{
this.BindGrid();
}
protected void btnSaveMethod(string LoginProjectId, string UserId)
{
var cNProfessionals = from x in Funs.DB.Base_CNProfessional select x;//专业
var dataInTemp = from x in Funs.DB.Sys_DataInTemp
where x.ProjectId == LoginProjectId && x.UserId == UserId && x.Type == "TrainingRecords"
select x;
int okCount = 0;
int i = 0;
int ir = dataInTemp.Count();
string erreMessage = "";
foreach (var tempData in dataInTemp)
{
if (tempData != null)
{
i++;
percent[UserId] = (int)(100 * i / ir);
string errInfo = string.Empty;
var isExitValue = Funs.DB.Comprehensive_TrainingRecords.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.TrainingContents == tempData.Value1
&& x.CNProfessionalId == tempData.Value2);
if (isExitValue == null || this.ckUpdate.Checked)
{
Model.Comprehensive_TrainingRecords newData = new Model.Comprehensive_TrainingRecords();
if (!string.IsNullOrEmpty(tempData.Value1.Trim()))
{
newData.TrainingContents = tempData.Value1.Trim();
}
else
{
errInfo += "培训内容为必填项;";
}
if (!string.IsNullOrEmpty(tempData.Value2.Trim()))
{
var professional = cNProfessionals.FirstOrDefault(e => e.ProfessionalName == tempData.Value2.Trim());
if (professional != null)
{
newData.CNProfessionalId = professional.CNProfessionalId;
}
else
{
errInfo += "专业不存在;";
}
}
else
{
errInfo += "专业为必填项;";
}
if (!string.IsNullOrEmpty(tempData.Value3.Trim()))
{
newData.TrainingObject = tempData.Value3.Trim();
}
else
{
errInfo += "培训对象为必填项;";
}
if (!string.IsNullOrEmpty(tempData.Value4.Trim()))
{
newData.TrainingAddress = tempData.Value4.Trim();
}
else
{
errInfo += "培训地点为必填项;";
}
if (!string.IsNullOrEmpty(tempData.Value5.Trim()))
{
try
{
newData.Hours = Funs.GetNewDecimal(tempData.Value5.Trim());
}
catch (Exception)
{
errInfo += "课时(小时)格式错误;";
}
}
if (!string.IsNullOrEmpty(tempData.Value6.Trim()))
{
newData.KeynoteSpeaker = tempData.Value6.Trim();
}
if (!string.IsNullOrEmpty(tempData.Value7.Trim()))
{
newData.Remark = tempData.Value7.Trim();
}
if (string.IsNullOrEmpty(errInfo)) ////所有信息正确的话 这插入管线焊口
{
newData.ProjectId = this.CurrUser.LoginProjectId;
var data = BLL.TrainingRecordsService.GetTrainingRecordsByName(newData.TrainingContents, newData.CNProfessionalId);
if (data == null)
{
newData.TrainingRecordsId = SQLHelper.GetNewID(typeof(Model.Comprehensive_TrainingRecords));
BLL.TrainingRecordsService.AddTrainingRecords(newData);
}
else
{
newData.TrainingRecordsId = data.TrainingRecordsId;
BLL.TrainingRecordsService.UpdateTrainingRecords(newData);
}
BLL.Sys_DataTempService.DeleteDataInTempByDataInTempID(tempData.TempId);
okCount++;
}
}
else
{
errInfo = "该条记录已存在于培训记录表中。";
}
if (!string.IsNullOrEmpty(errInfo))
{
tempData.ToopValue = errInfo;
BLL.Sys_DataTempService.UpdateDataInTemp(tempData);
erreMessage += errInfo + ";";
}
}
}
}
#endregion
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_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) + ".xlsx");
Response.ContentType = "application/excel";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.Write(GetGridTableHtml(Grid1));
Response.End();
}
#endregion
}
}

View File

@ -0,0 +1,267 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.CQMS.Comprehensive {
public partial class TrainingRecordsDataIn {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// id 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField id;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// hdfileName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hdfileName;
/// <summary>
/// FileExcel 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.FileUpload FileExcel;
/// <summary>
/// imgbtnImport 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button imgbtnImport;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// ckUpdate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.CheckBox ckUpdate;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// btnRefresh 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnRefresh;
/// <summary>
/// btnAllDelete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnAllDelete;
/// <summary>
/// btnOut 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnOut;
/// <summary>
/// imgbtnUpload 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button imgbtnUpload;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// lblPageIndex 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPageIndex;
/// <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>
/// lbDataCout 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lbDataCout;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Window2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window2;
/// <summary>
/// ContentPanel3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel3;
/// <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>
/// ScriptManager2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.ScriptManager ScriptManager2;
}
}

View File

@ -0,0 +1,66 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TrainingRecordsDataInEdit.aspx.cs" Inherits="FineUIPro.Web.CQMS.Comprehensive.TrainingRecordsDataInEdit" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Right">
<Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" Text="保存" ValidateForms="SimpleForm1"
OnClick="btnSave_Click">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtValue1" Label="培训内容" ShowRedStar="true" Required="true" runat="server" FocusOnPageLoad="true" MaxLength="50" LabelWidth="120px">
</f:TextBox>
<f:TextBox ID="txtValue2" Label="专业" ShowRedStar="true" Required="true" runat="server" MaxLength="50" LabelWidth="120px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtValue3" Label="培训对象" ShowRedStar="true" Required="true" runat="server" MaxLength="50" LabelWidth="120px">
</f:TextBox>
<f:TextBox ID="txtValue4" Label="培训地点" ShowRedStar="true" Required="true" runat="server" MaxLength="50" LabelWidth="120px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtValue5" Label="课时(小时)" ShowRedStar="true" Required="true" runat="server" MaxLength="50" LabelWidth="120px">
</f:TextBox>
<f:TextBox ID="txtValue6" Label="主讲人" ShowRedStar="true" Required="true" runat="server" LabelWidth="120px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtValue7" Label="备注" runat="server" LabelWidth="120px">
</f:TextBox>
<f:CheckBox ID="ckAll" runat="server" Checked="true" Text="是否批量修改"></f:CheckBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea runat="server" Label="错误信息" ID="lbErrCout" Readonly="true" LabelWidth="120px"></f:TextArea>
</Items>
</f:FormRow>
</Rows>
</f:Form>
</form>
</body>
</html>

View File

@ -0,0 +1,175 @@
using BLL;
using System;
using System.Linq;
namespace FineUIPro.Web.CQMS.Comprehensive
{
public partial class TrainingRecordsDataInEdit : PageBase
{
#region
/// <summary>
/// 临时表主键
/// </summary>
public string TempId
{
get
{
return (string)ViewState["TempId"];
}
set
{
ViewState["TempId"] = value;
}
}
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.TempId = Request.Params["TempId"];
this.txtValue1.Focus();
var dataInTemp = BLL.Sys_DataTempService.GetDataInTempByTempId(this.TempId);
if (dataInTemp != null)
{
this.txtValue1.Text = dataInTemp.Value1;
this.txtValue2.Text = dataInTemp.Value2;
this.txtValue3.Text = dataInTemp.Value3;
this.txtValue4.Text = dataInTemp.Value4;
this.txtValue5.Text = dataInTemp.Value5;
this.txtValue6.Text = dataInTemp.Value6;
this.txtValue7.Text = dataInTemp.Value7;
this.lbErrCout.Text = dataInTemp.ToopValue;
}
}
}
#endregion
#region
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
var dataInTemp = BLL.Sys_DataTempService.GetDataInTempByTempId(this.TempId);
if (this.ckAll.Checked)
{
var allDataInTemp = from x in Funs.DB.Sys_DataInTemp where x.ProjectId == this.CurrUser.LoginProjectId && x.UserId == this.CurrUser.UserId select x;
if (dataInTemp.Value1 != this.txtValue1.Text.Trim())
{
var tempValue1 = allDataInTemp.Where(x => x.Value1 == dataInTemp.Value1 || (x.Value1 == null && dataInTemp.Value1 == null));
if (tempValue1 != null)
{
foreach (var item in tempValue1)
{
item.Value1 = this.txtValue1.Text.Trim();
Funs.DB.SubmitChanges();
}
}
}
if (dataInTemp.Value2 != this.txtValue2.Text.Trim())
{
var tempValue2 = allDataInTemp.Where(x => x.Value2 == dataInTemp.Value2 || (x.Value2 == null && dataInTemp.Value2 == null));
if (tempValue2 != null)
{
foreach (var item in tempValue2)
{
item.Value2 = this.txtValue2.Text.Trim();
Funs.DB.SubmitChanges();
}
}
}
if (dataInTemp.Value3 != this.txtValue3.Text.Trim())
{
var tempValue3 = allDataInTemp.Where(x => x.Value3 == dataInTemp.Value3 || (x.Value3 == null && dataInTemp.Value3 == null));
if (tempValue3 != null)
{
foreach (var item in tempValue3)
{
item.Value3 = this.txtValue3.Text.Trim();
Funs.DB.SubmitChanges();
}
}
}
if (dataInTemp.Value5 != this.txtValue5.Text.Trim())
{
var tempValue5 = allDataInTemp.Where(x => x.Value5 == dataInTemp.Value5 || (x.Value5 == null && dataInTemp.Value5 == null));
if (tempValue5 != null)
{
foreach (var item in tempValue5)
{
item.Value5 = this.txtValue5.Text.Trim();
Funs.DB.SubmitChanges();
}
}
}
if (dataInTemp.Value6 != this.txtValue6.Text.Trim())
{
var tempValue6 = allDataInTemp.Where(x => x.Value6 == dataInTemp.Value6 || (x.Value6 == null && dataInTemp.Value6 == null));
if (tempValue6 != null)
{
foreach (var item in tempValue6)
{
item.Value6 = this.txtValue6.Text.Trim();
Funs.DB.SubmitChanges();
}
}
}
if (dataInTemp.Value7 != this.txtValue7.Text.Trim())
{
var tempValue7 = allDataInTemp.Where(x => x.Value7 == dataInTemp.Value7 || (x.Value7 == null && dataInTemp.Value7 == null));
if (tempValue7 != null)
{
foreach (var item in tempValue7)
{
item.Value7 = this.txtValue7.Text.Trim();
Funs.DB.SubmitChanges();
}
}
}
var toopValue = allDataInTemp.Where(x => x.ToopValue == dataInTemp.ToopValue);
if (toopValue != null)
{
foreach (var item in toopValue)
{
item.ToopValue = null;
Funs.DB.SubmitChanges();
}
}
}
else
{
Model.Sys_DataInTemp newDataInTemp = new Model.Sys_DataInTemp();
newDataInTemp.ProjectId = this.CurrUser.LoginProjectId;
newDataInTemp.UserId = this.CurrUser.UserId;
newDataInTemp.Time = System.DateTime.Now;
newDataInTemp.Type = dataInTemp.Type;
newDataInTemp.Value1 = this.txtValue1.Text.Trim();
newDataInTemp.Value2 = this.txtValue2.Text.Trim();
newDataInTemp.Value3 = this.txtValue3.Text.Trim();
newDataInTemp.Value4 = this.txtValue4.Text.Trim();
newDataInTemp.Value5 = this.txtValue5.Text.Trim();
newDataInTemp.Value6 = this.txtValue6.Text.Trim();
newDataInTemp.Value7 = this.txtValue7.Text.Trim();
if (!string.IsNullOrEmpty(this.TempId))
{
newDataInTemp.TempId = this.TempId;
newDataInTemp.ToopValue = null;
BLL.Sys_DataTempService.UpdateDataInTemp(newDataInTemp);
}
}
ShowNotify("信息修改完成!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
#endregion
}
}

View File

@ -0,0 +1,150 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.CQMS.Comprehensive {
public partial class TrainingRecordsDataInEdit {
/// <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>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// txtValue1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtValue1;
/// <summary>
/// txtValue2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtValue2;
/// <summary>
/// txtValue3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtValue3;
/// <summary>
/// txtValue4 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtValue4;
/// <summary>
/// txtValue5 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtValue5;
/// <summary>
/// txtValue6 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtValue6;
/// <summary>
/// txtValue7 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtValue7;
/// <summary>
/// ckAll 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.CheckBox ckAll;
/// <summary>
/// lbErrCout 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea lbErrCout;
}
}

View File

@ -0,0 +1,62 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TrainingRecordsEdit.aspx.cs" Inherits="FineUIPro.Web.CQMS.Comprehensive.TrainingRecordsEdit" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" AutoSizePanelID="SimpleForm1" />
<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="txtTrainingContents" runat="server" Label="培训内容" MaxLength="100" LabelAlign="Right" LabelWidth="130px" Required="true" ShowRedStar="true"></f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpCNProfessionalId" runat="server" Label="专业" LabelAlign="Right" LabelWidth="130px" Required="true" ShowRedStar="true"></f:DropDownList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtTrainingObject" runat="server" Label="培训对象" MaxLength="50" LabelAlign="Right" LabelWidth="130px"></f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtTrainingAddress" runat="server" Label="培训地点" MaxLength="50" LabelAlign="Right" LabelWidth="130px"></f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:NumberBox ID="txtHours" runat="server" Label="课时(小时)" LabelAlign="Right" NoNegative="true" LabelWidth="130px"></f:NumberBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtKeynoteSpeaker" runat="server" Label="主讲人" MaxLength="50" LabelAlign="Right" LabelWidth="130px"></f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRemark" runat="server" Label="备注" MaxLength="50" LabelAlign="Right" LabelWidth="130px"></f:TextArea>
</Items>
</f:FormRow>
</Rows>
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" Text="保存" ToolTip="保存" ValidateForms="SimpleForm1" OnClick="btnSave_Click" Hidden="true">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</f:Form>
</form>
</body>
</html>

View File

@ -0,0 +1,118 @@
using BLL;
using System;
using System.Linq;
namespace FineUIPro.Web.CQMS.Comprehensive
{
public partial class TrainingRecordsEdit : PageBase
{
#region
/// <summary>
/// 主键
/// </summary>
public string TrainingRecordsId
{
get
{
return (string)ViewState["TrainingRecordsId"];
}
set
{
ViewState["TrainingRecordsId"] = value;
}
}
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetButtonPower();
BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessionalId, true);
this.TrainingRecordsId = Request.Params["id"];
Model.Comprehensive_TrainingRecords trainingRecords = BLL.TrainingRecordsService.GetTrainingRecordsById(this.TrainingRecordsId);
if (trainingRecords != null)
{
this.TrainingRecordsId = trainingRecords.TrainingRecordsId;
this.txtTrainingContents.Text = trainingRecords.TrainingContents;
if (!string.IsNullOrEmpty(trainingRecords.CNProfessionalId))
{
this.drpCNProfessionalId.SelectedValue = trainingRecords.CNProfessionalId;
}
this.txtTrainingObject.Text = trainingRecords.TrainingObject;
this.txtTrainingAddress.Text = trainingRecords.TrainingAddress;
this.txtHours.Text = trainingRecords.Hours.HasValue ? trainingRecords.Hours.ToString() : "";
this.txtKeynoteSpeaker.Text = trainingRecords.KeynoteSpeaker;
this.txtRemark.Text = trainingRecords.Remark;
}
}
}
#endregion
#region
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
if (drpCNProfessionalId.SelectedValue == BLL.Const._Null)
{
Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning);
return;
}
Model.Comprehensive_TrainingRecords trainingRecords = new Model.Comprehensive_TrainingRecords();
trainingRecords.CNProfessionalId = this.drpCNProfessionalId.SelectedValue;
trainingRecords.TrainingContents = this.txtTrainingContents.Text.Trim();
trainingRecords.TrainingObject = this.txtTrainingObject.Text.Trim();
trainingRecords.TrainingAddress = this.txtTrainingAddress.Text.Trim();
trainingRecords.Hours = Funs.GetNewDecimal(this.txtHours.Text.Trim());
trainingRecords.KeynoteSpeaker = this.txtKeynoteSpeaker.Text.Trim();
trainingRecords.Remark = this.txtRemark.Text.Trim();
if (!string.IsNullOrEmpty(this.TrainingRecordsId))
{
trainingRecords.TrainingRecordsId = this.TrainingRecordsId;
BLL.TrainingRecordsService.UpdateTrainingRecords(trainingRecords);
}
else
{
trainingRecords.TrainingRecordsId = SQLHelper.GetNewID(typeof(Model.Comprehensive_TrainingRecords));
trainingRecords.ProjectId = this.CurrUser.LoginProjectId;
BLL.TrainingRecordsService.AddTrainingRecords(trainingRecords);
}
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
#endregion
#region
/// <summary>
/// 获取按钮权限
/// </summary>
/// <param name="button"></param>
/// <returns></returns>
private void GetButtonPower()
{
if (Request.Params["value"] == "0")
{
return;
}
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TrainingRecordsMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnSave))
{
this.btnSave.Hidden = false;
}
}
}
#endregion
}
}

View File

@ -0,0 +1,123 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.CQMS.Comprehensive {
public partial class TrainingRecordsEdit {
/// <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>
/// txtTrainingContents 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtTrainingContents;
/// <summary>
/// drpCNProfessionalId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpCNProfessionalId;
/// <summary>
/// txtTrainingObject 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtTrainingObject;
/// <summary>
/// txtTrainingAddress 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtTrainingAddress;
/// <summary>
/// txtHours 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox txtHours;
/// <summary>
/// txtKeynoteSpeaker 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtKeynoteSpeaker;
/// <summary>
/// txtRemark 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtRemark;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
}
}

View File

@ -684,8 +684,8 @@ namespace FineUIPro.Web.CQMS.ManageReportNew
checkStatisc.TotalCheckNum = totalManagementList.Count();
checkStatisc.OKNum = managementList.Count(x => x.ApprovalDate != null);
checkStatisc.TotalOKNum = totalManagementList.Count(x => x.ApprovalDate != null);
checkStatisc.OneOKRate = managementList.Count(x => x.Status == "3").ToString(); //当期完成数
checkStatisc.TotalOneOKRate = totalManagementList.Count(x => x.Status == "3").ToString(); //累计完成数
checkStatisc.OneOKRate = managementList.Count(x => x.ImplementationFrontState == "已完成").ToString(); //当期完成数
checkStatisc.TotalOneOKRate = totalManagementList.Count(x => x.ImplementationFrontState == "已完成").ToString(); //累计完成数
StatisticsList.Add(checkStatisc);
Quantity1Sum += checkStatisc.CheckNum;

View File

@ -830,8 +830,8 @@ namespace FineUIPro.Web.CQMS.ManageReportNew
checkStatisc.TotalCheckNum = totalManagementList.Count();
checkStatisc.OKNum = managementList.Count(x => x.ApprovalDate != null);
checkStatisc.TotalOKNum = totalManagementList.Count(x => x.ApprovalDate != null);
checkStatisc.OneOKRate = managementList.Count(x => x.Status == "3").ToString(); //当期完成数
checkStatisc.TotalOneOKRate = totalManagementList.Count(x => x.Status == "3").ToString(); //累计完成数
checkStatisc.OneOKRate = managementList.Count(x => x.ImplementationFrontState == "已完成").ToString(); //当期完成数
checkStatisc.TotalOneOKRate = totalManagementList.Count(x => x.ImplementationFrontState == "已完成").ToString(); //累计完成数
StatisticsList.Add(checkStatisc);
Quantity1Sum += checkStatisc.CheckNum;

View File

@ -480,6 +480,9 @@
<Content Include="CQMS\Comprehensive\SpecialEquipmentApprove.aspx" />
<Content Include="CQMS\Comprehensive\SpecialEquipmentEdit.aspx" />
<Content Include="CQMS\Comprehensive\TrainingRecords.aspx" />
<Content Include="CQMS\Comprehensive\TrainingRecordsDataIn.aspx" />
<Content Include="CQMS\Comprehensive\TrainingRecordsDataInEdit.aspx" />
<Content Include="CQMS\Comprehensive\TrainingRecordsEdit.aspx" />
<Content Include="CQMS\DataBase\ConstructionStandardList.aspx" />
<Content Include="CQMS\DataBase\ConstructionStandardListEdit.aspx" />
<Content Include="CQMS\DataBase\ConstructionStandardListProject.aspx" />
@ -7732,6 +7735,27 @@
<Compile Include="CQMS\Comprehensive\TrainingRecords.aspx.designer.cs">
<DependentUpon>TrainingRecords.aspx</DependentUpon>
</Compile>
<Compile Include="CQMS\Comprehensive\TrainingRecordsDataIn.aspx.cs">
<DependentUpon>TrainingRecordsDataIn.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="CQMS\Comprehensive\TrainingRecordsDataIn.aspx.designer.cs">
<DependentUpon>TrainingRecordsDataIn.aspx</DependentUpon>
</Compile>
<Compile Include="CQMS\Comprehensive\TrainingRecordsDataInEdit.aspx.cs">
<DependentUpon>TrainingRecordsDataInEdit.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="CQMS\Comprehensive\TrainingRecordsDataInEdit.aspx.designer.cs">
<DependentUpon>TrainingRecordsDataInEdit.aspx</DependentUpon>
</Compile>
<Compile Include="CQMS\Comprehensive\TrainingRecordsEdit.aspx.cs">
<DependentUpon>TrainingRecordsEdit.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="CQMS\Comprehensive\TrainingRecordsEdit.aspx.designer.cs">
<DependentUpon>TrainingRecordsEdit.aspx</DependentUpon>
</Compile>
<Compile Include="CQMS\DataBase\ConstructionStandardList.aspx.cs">
<DependentUpon>ConstructionStandardList.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>

View File

@ -19,6 +19,7 @@
<TreeNode id="49b87812-c07d-4b0e-9909-960e5cd822c7" Text="压力管道管理" NavigateUrl="CQMS/Comprehensive/PressurePipe.aspx"></TreeNode>
<TreeNode id="1da8fd71-f653-4764-bbfd-65e43f0220e5" Text="质量事故处理记录" NavigateUrl="CQMS/Comprehensive/QualityAccident.aspx"></TreeNode>
<TreeNode id="E7C8C938-661C-438F-852F-F0A4C285306B" Text="资料收发文登记记录" NavigateUrl="CQMS/Comprehensive/DataReceivingDoc.aspx"></TreeNode>
<TreeNode id="CFD19410-DF80-494A-A2DD-D23A03438742" Text="培训记录" NavigateUrl="CQMS/Comprehensive/TrainingRecords.aspx"></TreeNode>
<TreeNode id="d8de4143-b680-44cf-9a78-acd3d49a8d00" Text="图纸收发记录" NavigateUrl="CQMS/Comprehensive/DesignDrawings.aspx"></TreeNode>
<TreeNode id="856D53B3-C5FB-443F-917B-39E83BE685DB" Text="图纸会审管理" NavigateUrl="CQMS/Comprehensive/ReviewDrawings.aspx"></TreeNode>
<TreeNode id="B2086D3A-2384-487E-AFFB-6FACDD09B621" Text="质量数据" NavigateUrl="ZHGL/DataSync/ProjectDataSync/Project_CQMSData_CQMS.aspx"></TreeNode>

View File

@ -6,7 +6,4 @@
<TreeNode id="C6EF06E5-9019-4583-8122-EA94FCC545C6" Text="员工总结" NavigateUrl=""></TreeNode>
<TreeNode id="AAF841AA-2EE8-4FEC-B1FB-B978736C6E1F" Text="员工责任书" NavigateUrl="Personal/PersonDuty.aspx"></TreeNode>
<TreeNode id="CB373458-30B0-4850-ABFF-B38D40A04D43" Text="员工绩效考核结果" NavigateUrl="Personal/PersonCheckInfo.aspx"></TreeNode>
<TreeNode id="522EAECC-3D40-4804-A066-A43BA8F6BFC1" Text="员工出差记录" NavigateUrl="Personal/BusinessTrip.aspx"></TreeNode>
<TreeNode id="16229932-671B-4E04-BB61-A5C7DE4CE47F" Text="员工开车绩效记录" NavigateUrl="Personal/TestRunPerformance.aspx"></TreeNode>
<TreeNode id="F0792B77-AEE4-4834-82C2-E5B75D0B0AB7" Text="开车月技术总结" NavigateUrl="Personal/TestRunMonthSummary.aspx"></TreeNode>
</Tree>

View File

@ -46,12 +46,12 @@
<TreeNode id="D9D90BA4-BF34-4045-977F-DCE9D507F40F" Text="生成工作包检查表" NavigateUrl="TestRun/BeforeTestRun/SubInspectTerm.aspx"></TreeNode>
<TreeNode id="150A6D3D-CAA2-4246-947C-6730A18BCC83" Text="检查表条件确认" NavigateUrl="TestRun/BeforeTestRun/SubWorkInspect.aspx"></TreeNode>
<TreeNode id="B6A6EA7D-EDAB-40C8-920D-A106731D0E08" Text="检查表尾项管理" NavigateUrl="TestRun/BeforeTestRun/InspectTailTermList.aspx"></TreeNode>
<TreeNode id="F7A324D0-2410-4B37-858C-10F0A3059C90" Text="尾项处理" NavigateUrl="TestRun/BeforeTestRun/TailTermHandleList.aspx"></TreeNode>
<TreeNode id="8542644D-BD9B-4188-9FDE-AE5D6D6D9A40" Text="尾项审核" NavigateUrl="TestRun/BeforeTestRun/TailTermApproveList.aspx"></TreeNode>
<TreeNode id="2254D22A-94EF-435F-9916-F07BD7082689" Text="检查表会签" NavigateUrl="TestRun/BeforeTestRun/InspectWanderAboutList.aspx"></TreeNode>
<TreeNode id="AF88737F-D665-4C81-99D5-A07A8910C1E0" Text="检查表流转全部通过" NavigateUrl="TestRun/BeforeTestRun/InspectWanderAboutAllPassList.aspx"></TreeNode>
<TreeNode id="F7A324D0-2410-4B37-858C-10F0A3059C90" Text="检查项确认" NavigateUrl="TestRun/BeforeTestRun/TailTermHandleList.aspx"></TreeNode>
<TreeNode id="2254D22A-94EF-435F-9916-F07BD7082689" Text="检查表流转" NavigateUrl="TestRun/BeforeTestRun/InspectWanderAboutList.aspx"></TreeNode>
<TreeNode id="8542644D-BD9B-4188-9FDE-AE5D6D6D9A40" Text="检查项审核" NavigateUrl="TestRun/BeforeTestRun/TailTermApproveList.aspx"></TreeNode>
<TreeNode id="F184E0FC-96E3-48A5-9515-21EAD37053B3" Text="现场实施" NavigateUrl="TestRun/BeforeTestRun/SiteImplementationList.aspx"></TreeNode>
<TreeNode id="19865B64-E0AA-4D32-9712-05C14FE6288F" Text="试车记录上传" NavigateUrl="TestRun/BeforeTestRun/TestRunRecordUploadList.aspx"></TreeNode>
<TreeNode id="AF88737F-D665-4C81-99D5-A07A8910C1E0" Text="检查表流转全部通过" NavigateUrl="TestRun/BeforeTestRun/InspectWanderAboutAllPassList.aspx"></TreeNode>
<TreeNode id="FCC050F0-0F13-4CE5-BE33-623377562965" Text="三查四定尾项清单" NavigateUrl="TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx"></TreeNode>
<TreeNode id="4822760B-395B-4979-B547-EA0D715C8A2C" Text="三查四定提出人处理" NavigateUrl="TestRun/BeforeTestRun/FourDecisionProposerHandle.aspx"></TreeNode>
<TreeNode id="E673FC27-74F1-479C-8DE1-950183566725" Text="三查四定责任人销项" NavigateUrl="TestRun/BeforeTestRun/FourDecisionResponsibilityConfirm.aspx"></TreeNode>
@ -69,11 +69,9 @@
<TreeNode id="0217CE50-3ABB-44F8-A38A-C9792C436639" Text="试车管理" NavigateUrl=""><TreeNode id="E3E38073-1DF4-4C02-AFC0-5C93EE7C23A8" Text="系统划分" NavigateUrl="TestRun/TestRunManage/DeviceRun.aspx"></TreeNode>
<TreeNode id="4B964B32-D5CC-48A2-8750-48BC4460C264" Text="工作包设置" NavigateUrl="TestRun/TestRunManage/SetWorkPackage.aspx"></TreeNode>
<TreeNode id="B6EE8E3B-77E2-416E-8985-3C78A2169B89" Text="工作包裁剪" NavigateUrl="TestRun/TestRunManage/SubSysWorkPackage.aspx"></TreeNode>
<TreeNode id="AF2B0CAD-DE15-4F15-A5EE-C8FB558D00C8" Text="检查项分组信息" NavigateUrl="TestRun/TestRunManage/TemplateItemGroup.aspx"></TreeNode>
<TreeNode id="545AACE6-34BE-4BAA-A495-B73198F1BDE2" Text="检查表模板" NavigateUrl="TestRun/TestRunManage/InspectTemplate.aspx"></TreeNode>
<TreeNode id="086DBD12-5649-4330-807A-44ABB257495F" Text="联动试车管理" NavigateUrl="TestRun/TestRunManage/SubInspectTerm.aspx"></TreeNode>
<TreeNode id="4041089F-5CC2-4070-9556-7DAB83CF6292" Text="检查表尾项管理" NavigateUrl="TestRun/TestRunManage/InspectTailTermList.aspx"></TreeNode>
<TreeNode id="A593B611-82C1-40D8-BB6A-DD025DB62F8C" Text="联动试车确认" NavigateUrl="TestRun/TestRunManage/SubWorkInspect.aspx"></TreeNode>
<TreeNode id="2232ED9A-EA3C-4CB5-A53C-D96D3F5E0527" Text="尾项处理" NavigateUrl="TestRun/TestRunManage/TailTermHandleList.aspx"></TreeNode>
<TreeNode id="9489BD6A-1A95-43BC-85C0-A65751C2C85E" Text="尾项审核" NavigateUrl="TestRun/TestRunManage/TailTermApproveList.aspx"></TreeNode>
<TreeNode id="26F8468D-4358-4E2A-895D-8720A6F1FA89" Text="检查表会签" NavigateUrl="TestRun/TestRunManage/InspectWanderAboutList.aspx"></TreeNode>
@ -121,8 +119,7 @@
<TreeNode id="EC4B11B4-AF9B-44E9-8CD4-364A5633CB76" Text="性能考核报告" NavigateUrl="TestRun/DriverReport/PropertyReport.aspx"></TreeNode>
<TreeNode id="0D5C3347-0484-4455-AD32-D558BCFF0D0B" Text="开车完工报告" NavigateUrl="TestRun/DriverReport/DriverRunComplete.aspx"></TreeNode>
</TreeNode>
<TreeNode id="ECDC614F-6239-44D2-9523-6A25D42C6A45" Text="项目开车总结" NavigateUrl=""><TreeNode id="9B32C4BF-62E9-4561-8632-97AC0F581701" Text="月技术总结" NavigateUrl="TestRun/DriverSummary/MonthSummary.aspx"></TreeNode>
<TreeNode id="D215165B-95BA-4298-9736-B7A20F27B5D1" Text="专项总结" NavigateUrl="TestRun/DriverSummary/SpecialSummary.aspx"></TreeNode>
<TreeNode id="ECDC614F-6239-44D2-9523-6A25D42C6A45" Text="项目开车总结" NavigateUrl=""><TreeNode id="D215165B-95BA-4298-9736-B7A20F27B5D1" Text="专项总结" NavigateUrl="TestRun/DriverSummary/SpecialSummary.aspx"></TreeNode>
<TreeNode id="9EBA628D-E725-4A0B-B765-171F405D0821" Text="完工后个人总结" NavigateUrl="TestRun/DriverSummary/PersonalSummary.aspx"></TreeNode>
<TreeNode id="AA88BD56-E0B4-4B9C-9238-3F48EA59C50A" Text="开车完工报告" NavigateUrl="TestRun/DriverSummary/CompleteSummary.aspx"></TreeNode>
</TreeNode>

View File

@ -1,21 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<Tree>
<TreeNode id="48545C6A-9D10-47F4-810F-DAB0CFCD5BF9" Text="Project Set up" NavigateUrl="Transfer/ProjectSetup.aspx">
</TreeNode>
<TreeNode id="D94C1BA4-9DFD-4514-AE12-6F886C5D8C9B" Text="Piping" NavigateUrl="Transfer/Piping.aspx"></TreeNode>
<TreeNode id="982F746C-084C-445C-9AE8-8C37BDFE7994" Text="Static Equipment" NavigateUrl="Transfer/StaticEquipment.aspx"></TreeNode>
<TreeNode id="7E2FB5F9-FB99-4455-B68F-460F1F9A2676" Text="Rotating Equipment" NavigateUrl="Transfer/RotatingEquipment.aspx"></TreeNode>
<TreeNode id="88F51059-55B4-4CD5-A38C-36404E5029F6" Text="Instrumentation" NavigateUrl="Transfer/Instrumentation.aspx"></TreeNode>
<TreeNode id="296E75D2-192A-4D1F-8471-DD34263F8691" Text="Electrical" NavigateUrl="Transfer/Electrical.aspx"></TreeNode>
<TreeNode id="95C39F86-C060-452E-BA37-D891C466A39B" Text="Civil Structure" NavigateUrl="Transfer/CivilStructure.aspx"></TreeNode>
<TreeNode id="794E64E2-FDD2-4B7D-8408-F7FB06F9C92A" Text="Firefighting" NavigateUrl="Transfer/Firefighting.aspx"></TreeNode>
<TreeNode id="58FFBD80-ACB9-4830-A18A-E025D9600D94" Text="Telecom" NavigateUrl="Transfer/Telecom.aspx"></TreeNode>
<TreeNode id="95295BF7-FB51-480D-9902-6ADA4E8427FC" Text="Plumbing" NavigateUrl="Transfer/Plumbing.aspx"></TreeNode>
<TreeNode id="05442049-1310-45B1-9D3D-CAAE759D8F3E" Text="HVAC" NavigateUrl="Transfer/HVAC.aspx"></TreeNode>
<TreeNode id="016903B1-3B86-4CF5-AFF8-FF8BE389BEE5" Text="Punchlist from" NavigateUrl="Transfer/PunchlistFrom.aspx"></TreeNode>
<TreeNode id="3517DBE2-9728-4BA0-9EA5-AE2147DB883B" Text="移交图表" NavigateUrl=""><TreeNode id="E6F5125D-DD94-4978-B7EB-D9C26694D86D" Text="全厂移交统计表" NavigateUrl="Transfer/Chart/Instrumentation.aspx"></TreeNode>
<TreeNode id="F97BCF55-E450-4007-AD84-AB64B3496204" Text="全厂移交统计递增表" NavigateUrl="Transfer/Chart/TransferChart.aspx"></TreeNode>
<TreeNode id="C2DD3E9E-DB18-466F-8FA0-19AD6E21EEF0" Text="Punchlist from" NavigateUrl="Transfer/Chart/PunchlistFrom.aspx"></TreeNode>
<TreeNode id="BB5EC5E1-A23D-4A3F-8772-CD40757974EC" Text="Punchlist from统计递增表" NavigateUrl="Transfer/Chart/PunchlistFromChart.aspx"></TreeNode>
</TreeNode>
</Tree>

View File

@ -83,8 +83,4 @@
</TreeNode>
<TreeNode id="EA413D2A-8D29-4DE2-932D-8511BB7F6CB2" Text="各项目巡查汇总" NavigateUrl="ZHGL/InspectionSummary/InspectionSummary.aspx"></TreeNode>
<TreeNode id="F2133BD6-C786-407A-AD6F-3EEF613229A8" Text="施工管理绩效数据" NavigateUrl="ZHGL/Performance/PerformanceAllData.aspx"></TreeNode>
<TreeNode id="53D8CED2-9AA7-43EA-B27D-EA10A06DF713" Text="开车人员绩效管理" NavigateUrl=""><TreeNode id="383290E0-60AE-4D16-8B5E-3899B85EC2ED" Text="开车绩效评分标准" NavigateUrl="ZHGL/TestRunPerformance/TestRunPerformanceStandard.aspx"></TreeNode>
<TreeNode id="C1240FCB-4C72-445E-82B5-EBFAA87D0AC6" Text="开车人员月绩效报告" NavigateUrl="ZHGL/TestRunPerformance/TestRunPerformanceMonthReport.aspx"></TreeNode>
<TreeNode id="0C6BB051-6BD1-4E35-90CE-9376F3C2D454" Text="开车人员月技术总结" NavigateUrl="ZHGL/TestRunPerformance/TestRunMonthSummaryReport.aspx"></TreeNode>
</TreeNode>
</Tree>