/
ivan
/
ModMas
Обзор
Документация
Войти
/
ivan
/
ModMas
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ModuleMaster/production/capa.aspx.vb
231 строка
9 KB
i.krivokon
Initial commit
13 мар 2026, 13:49
13 мар 2026, 13:49
00d9fb6
Код
Авторство
О чём код?
Imports System.Data Imports System.IO Partial Class capa Inherits System.Web.UI.Page Private collection As New Dictionary(Of Integer, String) Private sqlf As New sharedClasses.dbFunctions.SqlFunctions Protected Function ProcessMyDataItem(myValue1 As Object, myValue2 As Object) As String Dim V1, V2 As Integer If IsDBNull(myValue1) Or myValue1.ToString = "" Then V1 = 0 Else V1 = Integer.Parse(myValue1.ToString) End If If IsDBNull(myValue2) Or myValue2.ToString = "" Then V2 = 0 Else V2 = Integer.Parse(myValue2.ToString) End If If (V1 + V2) = 0 Then Return "" Else Return (V1 + V2).ToString End If End Function Public Shared Sub ApplyGridViewHeader(ParentId As String, ByRef gv As GridView, ByRef a As Collection) 'процедура написана таким образом, что в нее всегда должны передаваться индексы с учетом только фактически отображаемых колонок 'т.е. при вычислении индекса объединяемой колонки (передаваемой в качестве параметра в процедуру) считается, 'что колонок со свойством Visible = false в таблице как бы нет. 'индексы (передаваемые в качестве параметров в процедуру) указываются по исходному порядку необъединенных колонок Dim AllowSorting As Boolean = gv.AllowSorting If gv.Rows.Count > 0 Then Dim row = New GridViewRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal) Dim r = gv.HeaderRow Dim cell As TableHeaderCell Dim i, j As Integer Dim invisibleColsCount As Integer = 0 Dim cnt As Integer = 0 'i = 1 For Each rcell As TableCell In r.Cells cell = New TableHeaderCell If AllowSorting Then Dim lb As New HyperLink Try lb.Style("color") = "White" lb.Text = CType(rcell.Controls(0), LinkButton).Text lb.NavigateUrl = "javascript:__doPostBack('" & ParentId & "$" & gv.ID & "','Sort$" & CType(rcell.Controls(0), LinkButton).CommandArgument & "')" cell.Controls.Add(lb) Catch ex As Exception cell.Text = rcell.Text End Try Else cell.Text = rcell.Text End If cell.Style("text-align") = "center" cell.Visible = rcell.Visible 'If cnt > a(i)(1) And cnt < a(i)(1) + a(i)(2) Then ' If Not rcell.Visible Then ' invisibleColsCount += 1 ' End If 'End If cnt += 1 row.Cells.Add(cell) 'End If Next 'для нужных ячеек в верхней строке, прописываем тексты объединяющих ячеек и их ColumnSpan For i = 1 To a.Count row.Cells(a(i)(1)).Text = a(i)(0) row.Cells(a(i)(1)).ColumnSpan = a(i)(2) - invisibleColsCount Next 'идем по верхней строке у оставшихся ячеек (не задействованных) в предыдущем цикле ставим им RowSpan = 2 'одновременно ячееки с таким же индексом в нижней строке помечаем на удаление For i = 0 To row.Cells.Count - 1 If row.Cells(i).Visible Then If row.Cells(i).ColumnSpan < 2 Then row.Cells(i).RowSpan = 2 r.Cells(i).ColumnSpan = 100 Else 'пропускаем ячейки на которые распространяется ColumnSpan i = i + row.Cells(i).ColumnSpan - 1 + invisibleColsCount End If End If Next 'удаляем помеченные ячейки в нижней строке i = 0 While i < r.Cells.Count If r.Cells(i).ColumnSpan = 100 Then r.Cells.RemoveAt(i) Else : i = i + 1 End If End While 'идем по верхней строке удаляем соответствующее ColumnSpan количество ячеек после ячеек имеющих ColumnSpan > 1 i = 0 While i < row.Cells.Count If row.Cells(i).ColumnSpan > 1 Then For j = 1 To row.Cells(i).ColumnSpan - 1 + invisibleColsCount row.Cells.RemoveAt(i + 1) Next End If i = i + 1 End While CType(gv.Controls(0), Table).Rows.AddAt(0, row) End If End Sub Public Sub CollectHeaderColumn(ByRef gv As GridView, colNumber As Integer, Optional referenceColNumber As Integer = -1) Dim curCell As New TableCell With {.Text = "."} Dim rowSpan As Integer = 1 Dim ColNumberToCheckText As Integer If referenceColNumber = -1 Then ColNumberToCheckText = colNumber Else ColNumberToCheckText = referenceColNumber End If Dim curText As String = "." For Each dr As GridViewRow In gv.Rows If dr.Cells(ColNumberToCheckText).Text <> curText Then 'curCell.Text Then If rowSpan > 1 Then curCell.RowSpan = rowSpan End If curCell = dr.Cells(colNumber) curText = dr.Cells(ColNumberToCheckText).Text rowSpan = 1 Else dr.Cells(colNumber).Visible = False rowSpan += 1 End If Next If rowSpan > 1 Then curCell.RowSpan = rowSpan End If End Sub Private Sub capa_Load(sender As Object, e As EventArgs) Handles Me.Load 'ListView1.DataSource = sdsPlanStatus report.DataSource = queue Try report.DataBind() Dim dr As Data.DataRow = sqlf.GetRow("select distinct top 1 plan_id as sop, max(cast(create_date as date)) as tt_up from [UserModules].[user].[SOP_FLUCTUATION] full join [UserModules].[user].[PLANNING_TT] on 1=1 group by PLAN_ID order by plan_id desc") If Not IsNothing(dr) Then 'Title = dr("MODULE_NAME") Dim sop_ver As String = dr("sop") Dim tt_up As String = dr("tt_up") sop.Text = sop.Text + sop_ver tt.Text = tt.Text + tt_up End If Catch ex As Exception End Try End Sub Private Sub report_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles report.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then 'Подсветка расхождения ТТ 'If Not e.Row.Cells(2).Text.Equals(e.Row.Cells(5).Text) Then e.Row.Cells(2).BColor = Drawing.Color.Red Try If Math.Abs(Convert.ToDecimal(e.Row.Cells(2).Text) - Convert.ToDecimal(e.Row.Cells(5).Text)) >= 0.1 Then e.Row.Cells(2).BackColor = Drawing.Color.Red e.Row.Cells(5).BackColor = Drawing.Color.Red End If Catch ex As Exception End Try If (e.Row.Cells(2).Text.Equals(" ") And Not e.Row.Cells(5).Text.Equals(" ")) Or (e.Row.Cells(5).Text.Equals(" ") And Not e.Row.Cells(2).Text.Equals(" ")) Then e.Row.Cells(2).BackColor = Drawing.Color.Red e.Row.Cells(5).BackColor = Drawing.Color.Red End If 'Цвет модели в зависимости от года If e.Row.Cells(0).Text.Contains("2017") Then e.Row.Cells(0).BackColor = Drawing.Color.FromArgb(204, 204, 153) If e.Row.Cells(0).Text.Contains("2016") Then e.Row.Cells(0).BackColor = Drawing.Color.FromArgb(33, 204, 255) If e.Row.Cells(0).Text.Contains("2015") Then e.Row.Cells(0).BackColor = Drawing.Color.FromArgb(255, 99, 33) If e.Row.Cells(0).Text.Contains("2014") Then e.Row.Cells(0).BackColor = Drawing.Color.FromArgb(255, 204, 33) If e.Row.Cells(0).Text.Contains("2013") Then e.Row.Cells(0).BackColor = Drawing.Color.FromArgb(204, 204, 204) 'Подсветка модели, для которой ещё нет значений в справочнике 'If e.Row.Cells(7).Text = "N" Then e.Row.Cells(1).BackColor = Drawing.Color.FromArgb(0, 204, 0) End If End Sub Private Sub report_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles report.RowCommand End Sub Private Sub report_Init(sender As Object, e As EventArgs) Handles report.Init End Sub Private Sub report_PreRender(sender As Object, e As EventArgs) Handles report.PreRender 'report.Columns(7).Visible = False report.Columns(6).Visible = False End Sub End Class