Option Explicit On Option Strict On Imports System.Data Imports System.Linq Imports Extensiones Imports Microsoft.Reporting.WebForms Partial Class AC_CatClasificacionFuncional Inherits ClsPaginas Private Property CveClasificacionFuncional() As Integer 'Guardamos el ID de registro para saber cual registro Editar Get Return If(IsNothing(ViewState("CveClasificacionFuncional")), -1, CInt(ViewState("CveClasificacionFuncional"))) End Get Set ViewState("CveClasificacionFuncional") = Value End Set End Property Private Property DtClasificacionFuncional As DataTable Get Return CType(ViewState("DtClasificacionFuncional"), DataTable) End Get Set(value As DataTable) ViewState("DtClasificacionFuncional") = value End Set End Property Public Property PuedeEditar As Boolean Get Return CBool(ViewState("PuedeEditar")) End Get Set(value As Boolean) ViewState("PuedeEditar") = value End Set End Property Public Property PuedeEliminar As Boolean Get Return CBool(ViewState("PuedeEditar")) End Get Set(value As Boolean) ViewState("PuedeEditar") = value End Set End Property Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then ViewState("Orden") = "" CargaDatos() End If End Sub Public Sub CargaDatos() Dim ObjClasificacionFuncional As New ClsAC If ObjClasificacionFuncional.GetClasificacionFuncional() Then ViewState("DTClasificacionFuncional") = ObjClasificacionFuncional.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTAC_ClasificacionFuncional(UsuarioActual.CveEmpresa) = ObjClasificacionFuncional.DtResultados Else Me.GvDatos.DataSource = Nothing End If ObjClasificacionFuncional.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Protected Sub BtnAgregarClasificacionFuncional_Click(sender As Object, e As EventArgs) Handles BtnAgregarClasificacionFuncional.Click TxtClasificacionFuncional.Text = "" TxtClaveClasificacionFuncional.Text = "" ChkEstatus.Checked = True CheckActiveSection.Visible = False LbAgregar.Text = "Agregar" UpModalTiposD.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarClasifFuncional")) End Sub Protected Sub LnkEditar_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) 'obtenemos el renglon que acabamos de seleccionar CveClasificacionFuncional = GvRow.DataKey("CveClasificacionFuncional").ToEntero TxtClasificacionFuncional.Text = GvRow.DataKey("ClasificacionFuncional") TxtClaveClasificacionFuncional.Text = GvRow.DataKey("ClaveClasificacionFuncional") CheckActiveSection.Visible = True ChkEstatus.Checked = GvRow.DataKey("Estatus") = "Activo" LbAgregar.Text = "Actualizar" UpModalTiposD.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarClasifFuncional")) End Sub Protected Sub LnkEliminar_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim ObjClasificacionFuncional As New ClsAC If ObjClasificacionFuncional.RemoveClasificacionFuncional(GvRow.DataKey("CveClasificacionFuncional").ToEntero) Then GvDatos.EditIndex = -1 ViewState("DTClasificacionFuncional") = ObjClasificacionFuncional.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTAC_ClasificacionFuncional(UsuarioActual.CveEmpresa) = ObjClasificacionFuncional.DtResultados Alert("El Registro se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjClasificacionFuncional.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Protected Sub LbAgregar_Click(sender As Object, e As System.EventArgs) Handles LbAgregar.Click Dim ObjClasificacionFuncional As New ClsAC If LbAgregar.Text = "Agregar" Then If ObjClasificacionFuncional.AddClasificacionFuncional(TxtClasificacionFuncional.Text.Trim, TxtClaveClasificacionFuncional.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then TxtClasificacionFuncional.Text = "" TxtClaveClasificacionFuncional.Text = "" Alert("El Nuevo Registro se guardó correctamente.", TipoMensaje.MsgInformacion) 'UpTitulos.Update() ViewState("DTClasificacionFuncional") = ObjClasificacionFuncional.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTAC_ClasificacionFuncional(UsuarioActual.CveEmpresa) = ObjClasificacionFuncional.DtResultados If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End If Else If ObjClasificacionFuncional.UpdateClasificacionFuncional(TxtClasificacionFuncional.Text.Trim, TxtClaveClasificacionFuncional.Text.Trim, ChkEstatus.Checked, CveClasificacionFuncional) Then GvDatos.EditIndex = -1 ViewState("DTClasificacionFuncional") = ObjClasificacionFuncional.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GlobalDTAC_ClasificacionFuncional(UsuarioActual.CveEmpresa) = ObjClasificacionFuncional.DtResultados Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End If End If ObjClasificacionFuncional.Dispose() RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarClasifFuncional")) End Sub #Region "G V D A T O S" Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowIndex = 0 Then e.Row.Cells(0).Width = Unit.Pixel(400) e.Row.Cells(1).Width = Unit.Pixel(100) e.Row.Cells(2).Width = Unit.Pixel(100) e.Row.Cells(3).Width = Unit.Pixel(100) e.Row.Cells(4).Width = Unit.Pixel(100) 'e.Row.Cells(5).Width = Unit.Pixel(105) 'e.Row.Cells(6).Width = Unit.Pixel(65) End If e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Center e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Center e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Center 'e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Center 'e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Center End If End Sub 'Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting ' Dim ObjClasificacionFuncional As New ClsAC ' If ObjClasificacionFuncional.RemoveClasificacionFuncional(GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then ' GvDatos.EditIndex = -1 ' ViewState("DTClasificacionFuncional") = ObjClasificacionFuncional.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) ' GlobalDTAC_ClasificacionFuncional(UsuarioActual.CveEmpresa) = ObjClasificacionFuncional.DtResultados ' Alert("El Registro se eliminó correctamente.", TipoMensaje.MsgInformacion) ' End If ' ObjClasificacionFuncional.Dispose() ' If ViewState("Orden").ToString() <> String.Empty Then ' CargaGrid(ViewState("Orden").ToString()) ' Else ' CargaGrid("") ' End If 'End Sub Protected Sub GvDatos_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvDatos.RowCancelingEdit GvDatos.EditIndex = -1 If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Protected Sub GvDatos_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvDatos.RowEditing GvDatos.EditIndex = e.NewEditIndex If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub #End Region #Region "O R D E N A M I E N T O" Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) Dim Orden As String = "" Dim Campo As String = "" Dim gvi As Integer = 0 Dim Literal As Literal = Nothing Const OrdenInicial As String = "" Dim Arg(2) As String Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c) Campo = Arg(0) gvi = Arg(1).ToEntero Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal) If ViewState(String.Format("O{0}{1}", Campo, gvi)) IsNot Nothing AndAlso ViewState(String.Format("O{0}{1}", Campo, gvi)).ToString = String.Format("{0} DESC", Campo) Then ViewState(String.Format("O{0}{1}", Campo, gvi)) = String.Format("{0} ASC", Campo) Literal.Text = String.Format("") Else ViewState(String.Format("O{0}{1}", Campo, gvi)) = String.Format("{0} DESC", Campo) Literal.Text = String.Format("") End If Orden = OrdenInicial & ViewState(String.Format("O{0}{1}", Campo, gvi)).ToString ViewState("Orden") = Orden CargaGrid(Orden) End Sub Private Sub CargaGrid(ByVal Orden As String) If Orden <> String.Empty Then Dim DV As New DataView(CType(ViewState("DTClasificacionFuncional"), DataTable), "", Orden, DataViewRowState.CurrentRows) GvDatos.DataSource = DV.ToTable() Gv.DataSource = DV.ToTable() DtClasificacionFuncional = DV.ToTable() DV.Dispose() Else GvDatos.DataSource = CType(ViewState("DTClasificacionFuncional"), DataTable) Gv.DataSource = CType(ViewState("DTClasificacionFuncional"), DataTable) DtClasificacionFuncional = CType(ViewState("DTClasificacionFuncional"), DataTable) End If GvDatos.DataBind() Gv.DataBind() UpDatos.Update() End Sub #End Region #Region " EXPORTAR - PDF - EXCEL " Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Tbl.ExportToExcel("Catalogo Clasificacion Funcional") End Sub Protected Sub BtnImprimir_Click(sender As Object, e As EventArgs) ImprimiReporte() End Sub 'No quitar porque no funciona el exporta PDF Public Overrides Sub VerifyRenderingInServerForm(control As Control) ' Verifies that the control is rendered End Sub Protected Sub ImprimiReporte() Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("pEmp", UsuarioActual.Empresa.Empresa)) Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") params.Add(New ReportParameter("pImg", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF("AC/Reportes/RepClasificacionFuncional.rdlc", DtClasificacionFuncional, params, "ReporteClasificacionFuncional") End Sub #End Region End Class