/
ivan
/
ModMas
Обзор
Документация
Войти
/
ivan
/
ModMas
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ModuleMaster/kit/kit.aspx.vb
157 строк
7 KB
i.krivokon
Initial commit
13 мар 2026, 13:49
13 мар 2026, 13:49
00d9fb6
Код
Авторство
О чём код?
Imports System.Data Imports System.Data.SqlClient Imports System.Net Imports System.IO Partial Class Xml_viewTable Inherits System.Web.UI.Page Private sqlf As New sharedClasses.dbFunctions.SqlFunctions Private a As sharedClasses.Auth.auth Private Sub authorize(mode As String) a = New sharedClasses.Auth.auth(mode, IIf(Request.UserHostAddress = "::1", "106.109.72.69", Request.UserHostAddress)) End Sub Dim tableId As String = "" Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load Dim userid As String = "" If Not IsNothing(Request.QueryString("OrchUserLogin")) Then userid = Request.QueryString("OrchUserLogin") End If If Not IsNothing(Request.QueryString("u")) Then userid = Request.QueryString("u") End If If userid = "" Then authorize("SSO") userid = a.userId 'edTableToView.Message = "By SSO: " & a.userId edTableToView.Message = "-" End If If Not IsNothing(Request.QueryString("tableId")) Then tableId = Request.QueryString("tableId") End If If Not IsNothing(Request.QueryString("t")) Then tableId = Request.QueryString("t") End If edTableToView.IsReadOnly = True edTableToView.UserName = userid.ToUpper If IsNumeric(tableId) Then edTableToView.TableId = tableId End If If Not IsPostBack Then If IsNothing(Request.QueryString("f")) Then Dim w As String = GetCurrentWeek() Response.Redirect("kit.aspx?f={week:""" & w & """}") End If End If edTableToView.SubReport.Controls.Add(createSubreport(tableId)) End Sub Protected Sub Page_PreRender(sender As Object, e As System.EventArgs) Handles Me.PreRender edTableToView.CollectHeaderColumn(2) edTableToView.CollectHeaderColumn(3) Title = edTableToView.TableDescription End Sub Private Function createSubreport(tid As String) As GridView Dim gv As New GridView Dim sqlf As New sharedClasses.dbFunctions.SqlFunctions Dim query As String = sqlf.GetScalar("SELECT isnull(SUBREPORT_QUERY,'') from usermodules.dbo.moduletables where id = " & tid) If query <> "" And Not (query.Contains("update") Or query.Contains("delete") Or query.Contains("exec") Or query.Contains("truncate") Or query.Contains("drop")) Then gv.DataSource = sqlf.GetData(query) Try gv.DataBind() Catch ex As Exception Return Nothing End Try End If Return gv End Function Protected Sub ActionRequest(sender As Object, e As CommandEventArgs) Handles edTableToView.ActionRequest Dim sql As New StringBuilder Select Case e.CommandArgument Case "GET_LAST_WEEK_DATA" Try Dim w As String = edTableToView.Filters("[WEEK]").ToString.Replace("like N'%", "").Replace("%'", "").Trim.ToUpper If Not w.Contains("W") Then w = "W" & w Dim prevW As String = "W" & (Convert.ToInt16(w.Replace("W", "")) - 1).ToString.PadLeft(2, "0") edTableToView.Message = "Copy data from week " & prevW sql.AppendLine("with source as ( ") sql.AppendLine("select * from Usermodules.[user].kit ") sql.AppendLine("where week = '" & prevW & "') ") sql.AppendLine("Merge UserModules.[user].kit as target ") sql.AppendLine("USING source ") sql.AppendLine("on target.week = '" & w & "' ") sql.AppendLine("and target.model = source.model ") sql.AppendLine("and target.group_item = source.group_item ") sql.AppendLine("when not matched then ") 'sql.AppendLine("insert (week, model, group_item, ON_HAND_PREVIOUS_WEEK) ") 'sql.AppendLine("values ('" & w & "', source.model, source.group_item, isnull(source.ON_HAND_PREVIOUS_WEEK,0) + isnull(source.in_transit,0) + isnull(source.po,0) ); ") sql.AppendLine("insert (week, model, group_item) ") sql.AppendLine("values ('" & w & "', source.model, source.group_item); ") sqlf.NonQuery(sql.ToString) edTableToView.RefreshData() Catch ex As Exception edTableToView.Message = "SELECT WEEK Number you want to update" End Try Case "GET_NEW_DATA" sql.AppendLine("with new_models as ( ") sql.AppendLine("select ML.WEEK ") sql.AppendLine(", ML.MODEL ") sql.AppendLine(", KM.MATERIAL_TYPE ") sql.AppendLine("from UserModules.[user].MODEL_LIST ML ") sql.AppendLine("LEFT JOIN UserModules.[user].KEY_MATERIAL_LIST KM ") sql.AppendLine("ON 1=1 ") sql.AppendLine("WHERE KM.ENABLED = 'Y' ) ") sql.AppendLine("Merge UserModules.[user].kit as target ") sql.AppendLine("USING new_models as source ") sql.AppendLine("on target.week = source.week ") sql.AppendLine("and target.model = source.model ") sql.AppendLine("and target.group_item = source.material_type ") sql.AppendLine("when not matched then ") sql.AppendLine("insert (week, model, group_item) ") sql.AppendLine("values (source.week, source.model, source.material_type); ") sqlf.NonQuery(sql.ToString) edTableToView.RefreshData() End Select End Sub Private Function GetCurrentWeek() As String Dim w As String = sqlf.GetScalar("SELECT max(week) FROM UserModules.[user].Kit ") If IsDBNull(w) Then Return "" Else Return w End If End Function Protected Sub UpdateUserInfo(ByRef com As SqlCommand) Handles edTableToView.NewRecordSaving Try com.Parameters("@CHANGED_BY").Value = Request.QueryString("orchuserlogin") Catch ex As Exception End Try End Sub Protected Sub Page_SaveStateComplete(sender As Object, e As EventArgs) Handles Me.SaveStateComplete edTableToView.CreateGroupingText() End Sub Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) End Sub End Class