<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ManHoursPlanEditNew.aspx.cs" Inherits="FineUIPro.Web.ManHours.ManHoursPlanEditNew" %> <!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"> .totalRed { color: red; } </style> </head> <body> <form id="form1" runat="server"> <f:PageManager ID="PageManager1" runat="server" AutoSizePanelID="Panel1" /> <f:Panel ID="Panel1" CssClass="blockpanel" Margin="20px" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region"> <Items> <f:Grid ID="Grid1" CssClass="blockpanel" runat="server" EnableCheckBoxSelect="false" ShowBorder="true" EnableCollapse="true" BoxFlex="1" DataIDField="ManHoursPlanId" DataKeyNames="ManHoursPlanId" AllowCellEditing="true" EnableColumnLines="true" Title="Planned" ShowHeader="false" AllowColumnLocking="true" ClicksToEdit="1" EnableSummary="true" SummaryPosition="Top"> <Columns> <f:RenderField Width="80px" ColumnID="JobNo" DataField="ProjectControl_JobNo" HeaderText="Job No" Locked="true"> </f:RenderField> <f:RenderField Width="400px" ColumnID="JobTitle" DataField="ProjectControl_JobTitle" HeaderText="Job Title" Locked="true"> </f:RenderField> <f:RenderField Width="90px" ColumnID="JobStatus" DataField="ProjectControl_JobStatus" HeaderText="Job Status"> </f:RenderField> <f:RenderField Width="80px" ColumnID="JobType" DataField="ProjectControl_JobType" HeaderText="Job Type"> </f:RenderField> <f:RenderField Width="150px" ColumnID="Discipline" DataField="Discipline" HeaderText="Discipline"> </f:RenderField> <f:RenderField Width="70px" ColumnID="Priority" DataField="PM_General_Priority" HeaderText="Priority"> </f:RenderField> <f:RenderField Width="190px" ColumnID="Roles" DataField="Roles" HeaderText="Role"> </f:RenderField> <f:RenderField Width="140px" ColumnID="Account" DataField="ProjectControl_Account" HeaderText="Account"> </f:RenderField> <f:RenderField Width="120px" ColumnID="ReceivedDate" DataField="ReceivedDate" HeaderText="Received Date"> </f:RenderField> <f:RenderField Width="120px" ColumnID="ApprovalDatePlan" DataField="ApprovalDatePlan" HeaderText="Approval Date Plan"> </f:RenderField> <f:RenderField Width="120px" ColumnID="ApprovalDateActual" DataField="ApprovalDateActual" HeaderText="Approval Date Actual"> </f:RenderField> <f:RenderField Width="120px" ColumnID="Civil_RevisedEnd" DataField="Civil_RevisedEnd" HeaderText="Detail Eng.-Civil End"> </f:RenderField> <f:RenderField Width="120px" ColumnID="EI_RevisedEnd" DataField="EI_RevisedEnd" HeaderText="Detail Eng.-Mech,E&I End"> </f:RenderField> <f:RenderField Width="120px" ColumnID="LLE_RevisedEnd" DataField="LLE_RevisedEnd" HeaderText="LLE Procument End"> </f:RenderField> <f:RenderField Width="120px" ColumnID="Const_Civil_RevisedEnd" DataField="Const_Civil_RevisedEnd" HeaderText="Const.-Civil End"> </f:RenderField> <f:RenderField Width="120px" ColumnID="Const_EI_RevisedEnd" DataField="Const_EI_RevisedEnd" HeaderText="Const.-Mech,E&I End"> </f:RenderField> <f:RenderField Width="70px" ColumnID="ManHours" DataField="ManHours" HeaderText="Manhour<br/>Plan"> </f:RenderField> <f:RenderField Width="70px" ColumnID="ManHoursActual" DataField="ManHoursActual" HeaderText="Manhour<br/>Actual"> </f:RenderField> <f:RenderField Width="70px" ColumnID="ManhourActualForecast" DataField="ManhourActualForecast" HeaderText="Manhour<br/>Actual+<br/>Forecast"> </f:RenderField> <f:RenderField Width="80px" ColumnID="Realization" DataField="Realization" HeaderText="Realization(%)"> </f:RenderField> <f:RenderField ColumnID="ManHoursPlanId" DataField="ManHoursPlanId" Hidden="true"> </f:RenderField> </Columns> <Listeners> <f:Listener Event="afteredit" Handler="onGridAfterEdit" /> </Listeners> </f:Grid> </Items> <Toolbars> <f:Toolbar ID="Toolbar2" Position="Bottom" ToolbarAlign="Right" runat="server"> <Items> <f:HiddenField ID="hidCurMonthManHour" runat="server"></f:HiddenField> <f:Button ID="btnSave" Icon="SystemSave" runat="server" Text="Save" ToolTip="Save" ValidateForms="SimpleForm1" OnClick="btnSave_Click" Hidden="true"> </f:Button> <f:Button ID="btnClose" EnablePostBack="false" Text="Close" ToolTip="Close" runat="server" Icon="SystemClose"> </f:Button> </Items> </f:Toolbar> </Toolbars> </f:Panel> </form> <script> var grid1ClientID = '<%= Grid1.ClientID %>'; var hidCurMonthManHourClientID = '<%= hidCurMonthManHour.ClientID %>'; // 渲染合计列 //function renderHeji(value, params) { // var actualForecast = calculateHejiValue(params.rowValue).toString(); // //ManhourActualForecast列合计 // this.updateCellValue(params.rowId, 'ManhourActualForecast', actualForecast); //} function onGridAfterEdit(event, value, params) { var myDate = new Date(); var month = ""; var year = parseInt(myDate.getFullYear()); var day = parseInt(myDate.getDate()); if (day >= 26) { month = parseInt(myDate.getMonth()); } else { month = parseInt(myDate.getMonth()) - 1; } for (var i = 0; i < 12; i++) { year = month + 1 > 12 ? year + 1 : year; month = month + 1 > 12 ? 1 : month + 1; var m = month < 10 ? "0" + month : month; if (params.columnId === year.toString() + "-" + m.toString()) { updateSummary(params.columnId); } } //var m = month < 10 ? "0" + month : month; ////头部合计 //if (params.columnId === year.toString() + "-" + m.toString()) { // updateSummary(params.columnId); //} var actualForecast = calculateHejiValue(params.rowValue).toString(); //ManhourActualForecast列合计 this.updateCellValue(params.rowId, 'ManhourActualForecast', actualForecast); var manHours = this.getCellValue(params.rowId, 'ManHours'); var rate = (actualForecast / manHours).toFixed(1) this.updateCellValue(params.rowId, 'Realization', rate); if (rate > 1) { this.updateCellValue(params.rowId, 'Realization.cls', 'highlight'); } else { this.updateCellValue(params.rowId, 'Realization.cls', ''); } } function calculateHejiValue(rowValue) { var total = 0; function addColumnValue(columnName) { var columnValue = rowValue[columnName]; if (typeof (columnValue) === 'number') { total += columnValue; } } var myDate = new Date(); var month = ""; var year = parseInt(myDate.getFullYear()); var day = parseInt(myDate.getDate()); if (day >= 26) { month = parseInt(myDate.getMonth()); } else { month = parseInt(myDate.getMonth()) - 1; } for (var i = 0; i < 12; i++) { year = month + 1 > 12 ? year + 1 : year; month = month + 1 > 12 ? 1 : month + 1; var m = month < 10 ? "0" + month : month; if (i > 0) { addColumnValue(year.toString() + "-" + m.toString()); } } return total + parseFloat(rowValue["ManHoursActual"]); } //合计 function updateSummary(obj) { var myDate = new Date(); var year = parseInt(myDate.getFullYear()); //var month = parseInt(myDate.getMonth()); var allhh = F(hidCurMonthManHourClientID).value.split('|'); var hh = 0; if (obj.substring(0, 4) == year && allhh.length > 0) { if (obj.substring(5, 7) == "01") { hh = parseFloat(allhh[0]) } if (obj.substring(5, 7) == "02") { hh = parseFloat(allhh[1]) } if (obj.substring(5, 7) == "03") { hh = parseFloat(allhh[2]) } if (obj.substring(5, 7) == "04") { hh = parseFloat(allhh[3]) } if (obj.substring(5, 7) == "05") { hh = parseFloat(allhh[4]) } if (obj.substring(5, 7) == "06") { hh = parseFloat(allhh[5]) } if (obj.substring(5, 7) == "07") { hh = parseFloat(allhh[6]) } if (obj.substring(5, 7) == "08") { hh = parseFloat(allhh[7]) } if (obj.substring(5, 7) == "09") { hh = parseFloat(allhh[8]) } if (obj.substring(5, 7) == "10") { hh = parseFloat(allhh[9]) } if (obj.substring(5, 7) == "11") { hh = parseFloat(allhh[10]) } if (obj.substring(5, 7) == "12") { hh = parseFloat(allhh[11]) } } if (obj.substring(0, 4) == year + 1 && allhh.length > 12) { if (obj.substring(5, 7) == "01") { hh = parseFloat(allhh[12]) } if (obj.substring(5, 7) == "02") { hh = parseFloat(allhh[13]) } if (obj.substring(5, 7) == "03") { hh = parseFloat(allhh[14]) } if (obj.substring(5, 7) == "04") { hh = parseFloat(allhh[15]) } if (obj.substring(5, 7) == "05") { hh = parseFloat(allhh[16]) } if (obj.substring(5, 7) == "06") { hh = parseFloat(allhh[17]) } if (obj.substring(5, 7) == "07") { hh = parseFloat(allhh[18]) } if (obj.substring(5, 7) == "08") { hh = parseFloat(allhh[19]) } if (obj.substring(5, 7) == "09") { hh = parseFloat(allhh[20]) } if (obj.substring(5, 7) == "10") { hh = parseFloat(allhh[21]) } if (obj.substring(5, 7) == "11") { hh = parseFloat(allhh[22]) } if (obj.substring(5, 7) == "12") { hh = parseFloat(allhh[23]) } } var me = F(grid1ClientID), nowTotal = 0; me.getRowEls().each(function (index, tr) { nowTotal += me.getCellValue(tr, obj); }); // 第三个参数 true,强制更新,不显示左上角的更改标识 me.updateSummaryCellValue(obj, nowTotal, true); //判断红色标识样式 if (hh != 0 && nowTotal > hh) { $(".f-grid-row-summary .f-grid-cell-" + obj + " .f-grid-cell-inner").addClass("totalRed"); } else { $(".f-grid-row-summary .f-grid-cell-" + obj + " .f-grid-cell-inner").removeClass("totalRed"); } } F.ready(function () { var myDate = new Date(); var month = ""; var year = parseInt(myDate.getFullYear()); var day = parseInt(myDate.getDate()); if (day >= 26) { month = parseInt(myDate.getMonth()); } else { month = parseInt(myDate.getMonth()) - 1; } //var m = month < 10 ? "0" + month : month; //头部合计 for (var i = 0; i < 12; i++) { year = month + 1 > 12 ? year + 1 : year; month = month + 1 > 12 ? 1 : month + 1; var m = month < 10 ? "0" + month : month; updateSummary(year.toString() + "-" + m.toString()); } //updateSummary(year.toString() + "-" + m.toString()); }); </script> </body> </html>