集团主数据

This commit is contained in:
2026-05-21 15:58:21 +08:00
parent 225f83a88d
commit f91ad2ca45
14 changed files with 850 additions and 130 deletions
@@ -0,0 +1,144 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MasterProjectData.aspx.cs" Inherits="FineUIPro.Web.ProjectData.MasterProjectData" %>
<!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" />
<style type="text/css">
.f-grid-row .f-grid-cell-inner {
white-space: normal;
word-break: break-all;
}
</style>
</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" EnableColumnLines="true"
DataKeyNames="Pid" DataIDField="Pid" AllowSorting="true" SortField="Start_date" SortDirection="DESC"
OnSort="Grid1_Sort" AllowPaging="true" IsDatabasePaging="false" PageSize="1000000" OnPageIndexChange="Grid1_PageIndexChange"
EnableRowDoubleClickEvent="false" EnableTextSelection="True">
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:TextBox runat="server" Label="主数据编号" ID="txtProjectCode" EmptyText="输入主数据项目编号"
AutoPostBack="true" OnTextChanged="TextBox_TextChanged" Width="260px" LabelWidth="100px" LabelAlign="Right">
</f:TextBox>
<f:TextBox runat="server" Label="主数据名称" ID="txtProjectName" EmptyText="输入主数据项目名称"
AutoPostBack="true" OnTextChanged="TextBox_TextChanged" Width="260px" LabelWidth="100px">
</f:TextBox>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField ColumnID="tfNumber" Width="55px" HeaderText="序号" HeaderTextAlign="Center"
TextAlign="Center">
<ItemTemplate>
<asp:Label ID="lblNumber" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<%--<f:RowNumberField EnablePagingNumber="true" HeaderText="序号" Width="50px" HeaderTextAlign="Center" TextAlign="Center" />--%>
<f:GroupField ColumnID="GroupField1" runat="server" HeaderText="集团主数据" HeaderTextAlign="Center">
<Columns>
<f:RenderField Width="260px" ColumnID="Pro_name" DataField="Pro_name"
FieldType="String" HeaderText="项目名称" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="180px" ColumnID="Pro_code" DataField="Pro_code"
FieldType="String" HeaderText="项目编号" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="110px" ColumnID="Start_date" DataField="Start_date" FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="开工时间" TextAlign="Center" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="Pro_status" DataField="Pro_status"
FieldType="String" HeaderText="状态" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
</Columns>
</f:GroupField>
<f:GroupField ColumnID="GroupField2" runat="server" HeaderText="QHSE系统" HeaderTextAlign="Center">
<Columns>
<f:RenderField Width="260px" ColumnID="ProjectName" DataField="ProjectName"
FieldType="String" HeaderText="项目名称" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="160px" ColumnID="ProjectCode" DataField="ProjectCode"
FieldType="String" HeaderText="项目编号" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="110px" ColumnID="StartDate" DataField="StartDate" FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="开工时间" TextAlign="Center" HeaderTextAlign="Center">
</f:RenderField>
<%--<f:RenderField Width="100px" ColumnID="ProjectState" DataField="ProjectState"
FieldType="String" HeaderText="状态" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>--%>
<f:TemplateField ColumnID="tfState" Width="110px" HeaderText="状态" HeaderTextAlign="Center" TextAlign="Center"
EnableLock="true" Locked="False">
<ItemTemplate>
<asp:Label ID="lblState" runat="server" Text='<%# ConvertProjectState(Eval("ProjectState")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
</Columns>
</f:GroupField>
<f:GroupField ColumnID="GroupField3" runat="server" HeaderText="项目使用情况及说明" HeaderTextAlign="Center">
<Columns>
<f:RenderField Width="120px" ColumnID="relate" DataField="relate"
FieldType="String" HeaderText="是否关联主数据" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="RenderField1" DataField="RenderField1"
FieldType="String" HeaderText="是否使用系统" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="200px" ColumnID="RenderField2" DataField="RenderField2"
FieldType="String" HeaderText="其他情况" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="200px" ColumnID="RenderField3" DataField="RenderField3"
FieldType="String" HeaderText="原因说明" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
</Columns>
</f:GroupField>
</Columns>
<Listeners>
<f:Listener Event="dataload" Handler="onGridDataLoad" />
<%--<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>
<%--<f:Window ID="Window1" Title="项目" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true"
Width="900px" Height="500px">
</f:Window>--%>
</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');
}
function onGridDataLoad(event) {
this.mergeColumns(['Pro_name', 'Pro_code', 'Start_date','Pro_status'], {
depends: true
});
}
</script>
</body>
</html>
@@ -0,0 +1,147 @@
using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Runtime.InteropServices.ComTypes;
namespace FineUIPro.Web.ProjectData
{
public partial class MasterProjectData : PageBase
{
#region
/// <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();
}
}
#endregion
#region
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
var db = Funs.DB;
var masterProDatas = ProjectService.GetMasterProjectDataInfos();
var query = from x in masterProDatas
join pro in db.Base_Project on x.Pro_id equals pro.MasterSysId into proGroup
from pro in proGroup.DefaultIfEmpty()
select new
{
Pid= x.Pro_id+(pro != null ? $"-{pro.ProjectId}":""),
x.Pro_id,
x.Pro_name,
x.Pro_code,
x.Start_date,
x.Pro_status,
ProjectName = pro != null ? pro.ProjectName : "",
ProjectCode = pro != null ? pro.ProjectCode : "",
StartDate = pro != null ? pro.StartDate : null,
ProjectState = pro != null ? pro.ProjectState : "",
relate = pro != null && pro.MasterSysId != null ? "已关联" : ""
};
string proName = this.txtProjectName.Text.Trim();
string proCode = this.txtProjectCode.Text.Trim();
if (!string.IsNullOrEmpty(proName))
{
query = query.Where(x => x.Pro_name.Contains(proName));
}
if (!string.IsNullOrEmpty(proCode))
{
query = query.Where(x => x.Pro_code.Contains(proCode));
}
DataTable tb = Funs.LINQToDataTable(query);
Grid1.RecordCount = tb.Rows.Count;
Grid1.DataSource = this.GetPagedDataTable(Grid1, tb);
Grid1.DataBind();
}
/// <summary>
/// 项目状态
/// </summary>
/// <param name="addType"></param>
/// <returns></returns>
protected string ConvertProjectState(object state)
{
string result = string.Empty;
string stateStr = state.ToString();
if (state != null && !string.IsNullOrWhiteSpace(stateStr))
{
result = stateStr == "2" ? "暂停中" : stateStr == "3" ? "已完工" : "施工中";
}
return result;
}
#endregion
#region Grid
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.BindGrid();
}
/// <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();
}
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
BindGrid();
}
#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) + ".xls");
Response.ContentType = "application/excel";
Response.ContentEncoding = System.Text.Encoding.UTF8;
this.Grid1.PageSize = this.Grid1.RecordCount;
this.BindGrid();
Response.Write(GetGridMultiHeaderTableHtml(Grid1));
//Response.Write(GetGridTableHtml(Grid1));
Response.End();
}
#endregion
}
}
@@ -0,0 +1,134 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.ProjectData
{
public partial class MasterProjectData
{
/// <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>
/// Toolbar2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar2;
/// <summary>
/// txtProjectCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtProjectCode;
/// <summary>
/// txtProjectName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtProjectName;
/// <summary>
/// btnOut 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnOut;
/// <summary>
/// lblNumber 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblNumber;
/// <summary>
/// lblState 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblState;
/// <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;
}
}
+110 -108
View File
@@ -5,88 +5,90 @@
<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" />
<link href="../res/css/common.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.f-grid-row .f-grid-cell-inner {
white-space: normal;
word-break: break-all;
}
}
</style>
</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" EnableColumnLines="true" ForceFit="true"
DataKeyNames="ProjectId" AllowCellEditing="true" ClicksToEdit="2" DataIDField="ProjectId"
AllowSorting="true" SortField="ProjectCode" 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="Toolbar2" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:RadioButtonList runat="server" ID="ckState" AutoPostBack="true"
OnSelectedIndexChanged="TextBox_TextChanged" Width="280px">
<f:RadioItem Text="全部" Value="0" />
<f:RadioItem Text="在建" Value="1" Selected="true" />
<f:RadioItem Text="停工" Value="2" />
<f:RadioItem Text="竣工" Value="3" />
</f:RadioButtonList>
<f:RadioButtonList runat="server" ID="ckMaster" AutoPostBack="true" Label="" LabelWidth="40px" LabelAlign="Right"
OnSelectedIndexChanged="TextBox_TextChanged" Width="340px">
<f:RadioItem Text="全部" Value="" Selected="true" />
<f:RadioItem Text="已关联主数据" Value="1" />
<f:RadioItem Text="关联" Value="0" />
</f:RadioButtonList>
<f:ToolbarSeparator runat="server"></f:ToolbarSeparator>
<f:TextBox runat="server" Label="名称" ID="txtProjectName" EmptyText="输入查询条件"
AutoPostBack="true" OnTextChanged="TextBox_TextChanged" Width="200px" LabelWidth="50px"></f:TextBox>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnUpdata" Text="推送" Icon="PageSave" runat="server" Hidden="true" ConfirmText="确定推送?"
ToolTip="推送" ValidateForms="SimpleForm1" OnClick="btnPush_Click" MarginRight="10px">
</f:Button>
<f:Button ID="btnNew" ToolTip="新增" Icon="Add" EnablePostBack="false" Hidden="true" runat="server">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField ColumnID="tfNumber" Width="55px" HeaderText="序号" HeaderTextAlign="Center"
TextAlign="Center">
<ItemTemplate>
<asp:Label ID="lblNumber" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="100px" ColumnID="ProjectCode" DataField="ProjectCode" SortField="ProjectCode" FieldType="String"
HeaderText="项目号">
</f:RenderField>
<f:RenderField Width="300px" ColumnID="ProjectName" DataField="ProjectName" SortField="ProjectName"
FieldType="String" HeaderText="项目名称" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<%-- <f:RenderField Width="200px" ColumnID="ShortName" DataField="ShortName" SortField="ShortName"
<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" EnableColumnLines="true" ForceFit="true"
DataKeyNames="ProjectId" AllowCellEditing="true" ClicksToEdit="2" DataIDField="ProjectId"
AllowSorting="true" SortField="ProjectCode" 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="Toolbar2" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:RadioButtonList runat="server" ID="ckState" AutoPostBack="true"
OnSelectedIndexChanged="TextBox_TextChanged" Width="280px">
<f:RadioItem Text="全部" Value="0" />
<f:RadioItem Text="在建" Value="1" Selected="true" />
<f:RadioItem Text="停工" Value="2" />
<f:RadioItem Text="竣工" Value="3" />
</f:RadioButtonList>
<f:ToolbarSeparator runat="server"></f:ToolbarSeparator>
<f:RadioButtonList runat="server" ID="ckMaster" AutoPostBack="true" Label="集团主数据" LabelWidth="100px" LabelAlign="Right"
OnSelectedIndexChanged="TextBox_TextChanged" Width="340px">
<f:RadioItem Text="全部" Value="" Selected="true" />
<f:RadioItem Text="关联" Value="1" />
<f:RadioItem Text="未关联" Value="0" />
</f:RadioButtonList>
<f:ToolbarSeparator runat="server"></f:ToolbarSeparator>
<f:TextBox runat="server" Label="名称" ID="txtProjectName" EmptyText="输入查询条件"
AutoPostBack="true" OnTextChanged="TextBox_TextChanged" Width="200px" LabelWidth="50px">
</f:TextBox>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnUpdata" Text="推送" Icon="PageSave" runat="server" Hidden="true" ConfirmText="确定推送?"
ToolTip="推送" ValidateForms="SimpleForm1" OnClick="btnPush_Click" MarginRight="10px">
</f:Button>
<f:Button ID="btnNew" ToolTip="新增" Icon="Add" EnablePostBack="false" Hidden="true" runat="server">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField ColumnID="tfNumber" Width="55px" HeaderText="序号" HeaderTextAlign="Center"
TextAlign="Center">
<ItemTemplate>
<asp:Label ID="lblNumber" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="100px" ColumnID="ProjectCode" DataField="ProjectCode" SortField="ProjectCode" FieldType="String"
HeaderText="项目号">
</f:RenderField>
<f:RenderField Width="300px" ColumnID="ProjectName" DataField="ProjectName" SortField="ProjectName"
FieldType="String" HeaderText="项目名称" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<%-- <f:RenderField Width="200px" ColumnID="ShortName" DataField="ShortName" SortField="ShortName"
FieldType="String" HeaderText="简称" HeaderTextAlign="Center" TextAlign="Left" >
</f:RenderField>--%>
<%--<f:RenderField Width="90px" ColumnID="ProjectStateName" DataField="ProjectStateName" SortField="ProjectStateName"
<%--<f:RenderField Width="90px" ColumnID="ProjectStateName" DataField="ProjectStateName" SortField="ProjectStateName"
FieldType="String" HeaderText="项目状态" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>--%>
<f:RenderField Width="100px" ColumnID="StartDate" DataField="StartDate" SortField="StartDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="开工日期"
HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="EndDate" DataField="EndDate" SortField="EndDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="竣工日期"
HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="90px" ColumnID="ProjectStateName2" DataField="ProjectStateName2" SortField="ProjectStateName2"
FieldType="String" HeaderText="细分状态" HeaderTextAlign="Center" TextAlign="Left" >
</f:RenderField>
<%-- <f:TemplateField ColumnID="tfPM" Width="85px" HeaderText="项目经理" HeaderTextAlign="Center" TextAlign="Center">
<f:RenderField Width="100px" ColumnID="StartDate" DataField="StartDate" SortField="StartDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="开工日期"
HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="EndDate" DataField="EndDate" SortField="EndDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="竣工日期"
HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="90px" ColumnID="ProjectStateName2" DataField="ProjectStateName2" SortField="ProjectStateName2"
FieldType="String" HeaderText="细分状态" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<%-- <f:TemplateField ColumnID="tfPM" Width="85px" HeaderText="项目经理" HeaderTextAlign="Center" TextAlign="Center">
<ItemTemplate>
<asp:Label ID="lblPM" runat="server" Text='<%# ConvertProjectManager(Eval("ProjectId")) %>'
ToolTip='<%# ConvertProjectManager(Eval("ProjectId")) %>'></asp:Label>
@@ -104,49 +106,49 @@
ToolTip='<%# ConvertHSSEManager(Eval("ProjectId")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField> --%>
<%--<f:RenderField Width="200px" ColumnID="UnitName" DataField="UnitName" SortField="UnitName"
<%--<f:RenderField Width="200px" ColumnID="UnitName" DataField="UnitName" SortField="UnitName"
FieldType="String" HeaderText="项目所属单位" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField> --%>
<f:RenderField Width="250px" ColumnID="ProjectAddress" DataField="ProjectAddress" SortField="ProjectAddress" 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>
<f:Window ID="Window1" Title="项目" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Maximized="true"
Width="1200px" Height="620px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" Icon="Pencil" EnablePostBack="true" Hidden="true"
runat="server" Text="编辑">
</f:MenuButton>
<f:MenuButton ID="btnEnter" EnablePostBack="true" runat="server" Icon="Outline" Text="进入项目"
</f:RenderField> --%>
<f:RenderField Width="250px" ColumnID="ProjectAddress" DataField="ProjectAddress" SortField="ProjectAddress" 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>
<f:Window ID="Window1" Title="项目" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Maximized="true"
Width="1200px" Height="620px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" Icon="Pencil" EnablePostBack="true" Hidden="true"
runat="server" Text="编辑">
</f:MenuButton>
<f:MenuButton ID="btnEnter" EnablePostBack="true" runat="server" Icon="Outline" Text="进入项目"
OnClick="btnEnter_Click">
</f:MenuButton>
<f:MenuButton ID="btnMonitor" EnablePostBack="true" runat="server" Icon="Outline" Text="关联摄像头"
</f:MenuButton>
<f:MenuButton ID="btnMonitor" EnablePostBack="true" runat="server" Icon="Outline" Text="关联摄像头"
OnClick="btnMonitor_Click">
</f:MenuButton>
<f:MenuButton ID="btnView" EnablePostBack="true" runat="server" Icon="Find" Text="坐标范围"
</f:MenuButton>
<f:MenuButton ID="btnView" EnablePostBack="true" runat="server" Icon="Find" Text="坐标范围"
OnClick="btnView_Click">
</f:MenuButton>
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true" Hidden="true" Icon="Delete"
ConfirmText="删除选中行?" ConfirmTarget="Parent" runat="server" Text="删除">
</f:MenuButton>
</f:Menu>
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true" Hidden="true" Icon="Delete"
ConfirmText="删除选中行?" ConfirmTarget="Parent" runat="server" Text="删除">
</f:MenuButton>
</f:Menu>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';
@@ -73,10 +73,10 @@
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownBox runat="server" ID="drpMasterBox1" Label="主数据项目" EmptyText="请从下拉表格中选择集团项目" DataControlID="Grid1"
EnableMultiSelect="false" MatchFieldWidth="false">
<f:DropDownBox runat="server" ID="drpMasterBox1" Label="集团主数据" EmptyText="请从下拉表格中选择集团主数据项目" DataControlID="Grid1"
EnableMultiSelect="false" MatchFieldWidth="false" ShowRedStar="true" Required="true" AutoPostBack="true" OnTextChanged="MasterData_Changed">
<PopPanel>
<f:Panel ID="Panel7" runat="server" BodyPadding="10px" Width="820px" Height="420px" Hidden="true"
<f:Panel ID="Panel7" runat="server" BodyPadding="10px" Width="1280px" Height="520px" Hidden="true"
ShowBorder="true" ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Items>
<f:Form ID="Form5" ShowBorder="False" ShowHeader="False" runat="server">
@@ -95,16 +95,26 @@
</f:FormRow>
</Rows>
</f:Form>
<f:Grid ID="Grid1" BoxFlex="1" DataKeyNames="SysId"
DataIDField="SysId" DataTextField="PrjName" EnableMultiSelect="false"
PageSize="1000" ShowBorder="true" ShowHeader="false"
AllowPaging="false" IsDatabasePaging="false" runat="server" EnableCheckBoxSelect="true"
AllowSorting="false" SortField="PrjName" SortDirection="ASC"
OnSort="Grid1_Sort">
<f:Grid ID="Grid1" BoxFlex="1" DataKeyNames="Pro_id" DataIDField="Pro_id" DataTextField="Pro_name" EnableMultiSelect="false"
PageSize="10000" ShowBorder="true" ShowHeader="false" AllowPaging="false" IsDatabasePaging="false" runat="server" EnableCheckBoxSelect="true"
AllowSorting="false" SortField="Start_date" SortDirection="DESC" OnSort="Grid1_Sort">
<Columns>
<f:RowNumberField TextAlign="Center" />
<f:BoundField Width="200px" DataField="PrjCode" HeaderText="项目编号" />
<f:BoundField ExpandUnusedSpace="true" MinWidth="400px" DataField="PrjName" HeaderText="项目名称" />
<f:BoundField Width="120px" DataField="Pro_code" HeaderText="项目编号" />
<f:BoundField ExpandUnusedSpace="true" MinWidth="220px" DataField="Pro_name" HeaderText="项目名称" />
<f:BoundField ExpandUnusedSpace="true" MinWidth="220px" DataField="Pro_short_name" HeaderText="项目简称" />
<f:RenderField Width="110px" ColumnID="Start_date" DataField="Start_date" SortField="Start_date" FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="开工日期" TextAlign="Center" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="110px" ColumnID="End_date" DataField="End_date" SortField="End_date" FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="完工日期" TextAlign="Center" HeaderTextAlign="Center">
</f:RenderField>
<f:BoundField ExpandUnusedSpace="true" MinWidth="160px" DataField="Address" HeaderText="详细地址" />
<%--<f:BoundField ExpandUnusedSpace="true" MinWidth="110px" DataField="Pro_add_type" HeaderText="境内/境外" />--%>
<f:TemplateField ColumnID="tfProaddtype" Width="110px" HeaderText="境内/境外" HeaderTextAlign="Center" TextAlign="Center"
EnableLock="true" Locked="False">
<ItemTemplate>
<asp:Label ID="lblProaddtype" runat="server" Text='<%# ConvertProAddType(Eval("Pro_add_type")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
</Columns>
</f:Grid>
</Items>
@@ -6,6 +6,7 @@ using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.Data;
using FineUIPro.Web.DataShow;
using AspNet = System.Web.UI.WebControls;
namespace FineUIPro.Web.ProjectData
{
@@ -234,6 +235,7 @@ namespace FineUIPro.Web.ProjectData
}
}
/// <summary>
/// 保存数据
/// </summary>
@@ -241,7 +243,44 @@ namespace FineUIPro.Web.ProjectData
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
SaveData();
if (this.drpUnit.SelectedValue == BLL.Const._Null)
{
Alert.ShowInTop("请选择所属单位!", MessageBoxIcon.Warning);
return;
}
//坐标不能出现汉字
if (HasChinese(this.txtMapCoordinates.Text.Trim()))
{
Alert.ShowInTop("坐标中不允许出现汉字,请输入正确的坐标!", MessageBoxIcon.Warning);
return;
}
string masterSysId = this.drpMasterBox1.Value;
if (!string.IsNullOrWhiteSpace(masterSysId))
{
var obj = Grid1.SelectedRow.Values;
var relatePro = Funs.DB.Base_Project.FirstOrDefault(x => x.MasterSysId == masterSysId && (x.ProjectId != this.ProjectId || (this.ProjectId == null && x.ProjectId != null)));
if (relatePro != null)
{
ShowNotify($"已存在关联此主数据的项目:({relatePro.ProjectCode}{relatePro.ProjectName}", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify($"请选择关联集团主数据项目!", MessageBoxIcon.Warning);
return;
}
this.SaveData();
}
/// <summary>
/// 判断字符串中是否包含中文
/// </summary>
/// <param name="str">需要判断的字符串</param>
/// <returns>判断结果</returns>
public bool HasChinese(string str)
{
return Regex.IsMatch(str, @"[\u4e00-\u9fa5]");
}
private void SaveData()
@@ -530,7 +569,7 @@ namespace FineUIPro.Web.ProjectData
/// </summary>
/// <param name="projectId"></param>
private void SetProjectManager(string projectId)
{
{
string newProjectSupervisor = this.drpProjectSupervisor.SelectedValue;
string newProjectManager = this.drpProjectManager.SelectedValue;
string newConstructionManager = this.drpConstructionManager.SelectedValue;
@@ -1836,6 +1875,26 @@ namespace FineUIPro.Web.ProjectData
#endregion
protected void txtStartDate_Blur(object sender, EventArgs e)
{
ChangeDuration();
//var sDate = Funs.GetNewDateTime(this.txtStartDate.Text);
//var eDate = Funs.GetNewDateTime(this.txtEndDate.Text);
//if (sDate.HasValue && eDate.HasValue && eDate.Value > sDate.Value)
//{
// int m1 = sDate.Value.Year * 12 + sDate.Value.Month;
// int m2 = eDate.Value.Year * 12 + eDate.Value.Month;
// int a = m2 - m1;
// TimeSpan ts1 = new TimeSpan(sDate.Value.Ticks);
// TimeSpan ts2 = new TimeSpan(eDate.Value.AddMonths(0 - a).Ticks);
// TimeSpan ts = ts1.Subtract(ts2).Duration();
// this.txtDuration.Text = (Math.Round((ts.Days * 1.0 / 30), 1) + a).ToString();
//}
}
/// <summary>
/// 自动计算工期(月)
/// </summary>
private void ChangeDuration()
{
var sDate = Funs.GetNewDateTime(this.txtStartDate.Text);
var eDate = Funs.GetNewDateTime(this.txtEndDate.Text);
@@ -1869,20 +1928,22 @@ namespace FineUIPro.Web.ProjectData
#region
/// <summary>
/// 集团主数据项目下拉加载方法
/// </summary>
private void BindGrid()
{
var list = ProjectService.GetMasterProjectInfos();
var list = ProjectService.GetMasterProjectDataInfos();
string code = ttbCodeSearch.Text.Trim();
string name = ttbNameSearch.Text.Trim();
if (!string.IsNullOrWhiteSpace(code))
{
list = list.Where(x => x.PrjCode.Contains(code)).ToList();
list = list.Where(x => x.Pro_code.Contains(code)).ToList();
}
if (!string.IsNullOrWhiteSpace(name))
{
list = list.Where(x => x.PrjName.Contains(name)).ToList();
list = list.Where(x => x.Pro_name.Contains(name)).ToList();
}
// 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount
Grid1.RecordCount = list.Count();
// 2.获取当前分页数据
@@ -1892,6 +1953,76 @@ namespace FineUIPro.Web.ProjectData
Grid1.DataSource = table;
Grid1.DataBind();
}
/// <summary>
/// 集团主数据境内外
/// </summary>
/// <param name="addType"></param>
/// <returns></returns>
protected string ConvertProAddType(object addType)
{
string result = string.Empty;
string addtypeStr = addType.ToString();
if (addType != null)
{
result = addtypeStr == "1" ? "境内" : addtypeStr == "2" ? "境外" : "";
}
return result;
}
/// <summary>
/// 集团主数据选择触发事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void MasterData_Changed(object sender, EventArgs e)
{
string proName = this.drpMasterBox1.Text.Trim();
string masterSysId = Grid1.SelectedRowID;
if (!string.IsNullOrWhiteSpace(masterSysId))
{
var obj = Grid1.SelectedRow.Values;
string num = obj[0].ToString();
string code = obj[1].ToString();
string name = obj[2].ToString();
string shortname = obj[3].ToString();
string startdate = obj[4].ToString();
string enddate = obj[5].ToString();
string address = obj[6].ToString();
//string proaddtype = obj[7].ToString();
string proaddtype = (Grid1.SelectedRow.FindControl("lblProaddtype") as AspNet.Label).Text;
var relatePro = Funs.DB.Base_Project.FirstOrDefault(x => x.MasterSysId == masterSysId && (x.ProjectId != this.ProjectId || (this.ProjectId == null && x.ProjectId != null)));
if (relatePro != null)
{
ShowNotify($"已存在关联此主数据的项目:({relatePro.ProjectCode}{relatePro.ProjectName}", MessageBoxIcon.Warning);
}
//var existPro = Funs.DB.Base_Project.FirstOrDefault(x => (x.ProjectName == name || x.ProjectName == code) && (x.ProjectId != this.ProjectId || (this.ProjectId == null && x.ProjectId != null)));
//if (existPro != null)
//{
// ShowNotify($"已存在相同名称、编号的项目:({relatePro.ProjectCode}{relatePro.ProjectName}", MessageBoxIcon.Warning);
//}
this.txtProjectCode.Text = code;
this.txtJTProjectCode.Text = code;
//this.txtProjectName.Text = name;
this.txtShortName.Text = shortname;
this.txtProjectAddress.Text = address;
if (!string.IsNullOrWhiteSpace(startdate))
{
this.txtStartDate.Text = startdate;
}
if (!string.IsNullOrWhiteSpace(enddate))
{
this.txtEndDate.Text = enddate;
ChangeDuration();
}
if (proaddtype == "境外")
{
this.ckbIsForeign.Checked = true;
}
}
}
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
@@ -176,6 +176,15 @@ namespace FineUIPro.Web.ProjectData
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// lblProaddtype 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblProaddtype;
/// <summary>
/// txtJTProjectCode 控件。
/// </summary>