Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Partial Class AF_RepAF Inherits ClsPaginas #Region " PROPIEDADES " Private Property DtActivosFijos As DataTable Get Return CType(ViewState("DtActivosFijos"), DataTable) End Get Set(value As DataTable) ViewState("DtActivosFijos") = value End Set End Property Private ReadOnly Property CveActivoFijo As Integer Get Return ViewState("CveActivoFijo").ToString.ToEntero End Get End Property Private Property DTAFCaracteristicas As DataTable Get Return CType(ViewState("DTAFCaracteristicas"), DataTable) End Get Set(value As DataTable) ViewState("DTAFCaracteristicas") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then CargaFiltros() 'CargaDatos() ' If UsuarioActual.Empresa.GralSoloProyecto Then DivProyecto.Visible = False LblSubProyecto.Text = "Proyecto: " DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) ' End If End If End Sub #Region " CARGA COMBOS " Protected Sub CargaFiltros() DdlSubTipoActivo.Items.Insert(0, New ListItem("Todos", "-1")) DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) DdlEstatus.DataSource = GlobalDTEstadoActivoFijo DdlEstatus.DataBind() DdlEstatus.Items.Insert(0, New ListItem("Todos", "-1")) DdlProyecto.DataSource = GlobalDTProyectos(UsuarioActual.CveEmpresa) DdlProyecto.DataBind() DdlProyecto.Items.Insert(0, New ListItem("Todos", "-1")) DdlResponsable.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa).FiltraParametros("", "NombreCompleto") DdlResponsable.DataBind() DdlResponsable.Items.Insert(0, New ListItem("Todos", "-1")) DdlTipoActivo.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("", "TipoActivoFijo") DdlTipoActivo.DataBind() DdlTipoActivo.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) DdlSubProyecto.Items.Clear() DdlSubProyecto.DataSource = GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero) DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) End Sub #End Region #Region " CARGA DATOS " Protected Sub BtnFiltrar_Click1(sender As Object, e As EventArgs) CargaDatos() End Sub Public Sub CargaDatos() Dim ObjAF As New ClsAF() Dim Codigo As String = "-1" Dim Descripcion As String = "-1" Dim CveMarcaActivoFijo As Integer = -1 Dim NoSerie As String = "-1" Dim Año As Integer = -1 Dim CvePersonaResponsable As Integer = -1 If TxtAño.Text.Trim <> String.Empty Then Año = TxtAño.Text.Trim.ToEntero Dim strSQL1 As New StringBuilder Dim booPrimerCampo As Boolean = False Dim intContador As Integer = 0 For Each DR As GridViewRow In GvCaracteristicas.Rows Dim CveCaracteristicaOpcion As Integer = -1 Dim CveValor As Integer = DR.FCHiddenField("HdnCveValor").Value.ToEntero Dim Valor As String = DR.FCTextBox("TxtValor").Text.Trim Dim CveCaracteristica As Integer = DR.FCHiddenField("HdnCveCaracteristica").Value.ToEntero Select Case DR.FCHiddenField("HdnEsOpcion").Value Case "0", "4" If booPrimerCampo = True And Valor.Length <> 0 Then strSQL1.Append(" or ") If Valor.Length <> 0 Then If booPrimerCampo = False Then strSQL1.Append("Select CveActivoFijo from AF_ActivosFijosValores where ") strSQL1.AppendFormat(" (CveCaracteristica = {0} and Valor like '%{1}%') ", CveCaracteristica, Valor) If booPrimerCampo = False Then booPrimerCampo = True intContador += 1 End If Case "1" 'Listado o DropDownList CveCaracteristicaOpcion = DR.FCDropDownList("DdlRespuesta").SelectedValue.ToEntero If booPrimerCampo = True And CveCaracteristicaOpcion <> 0 Then strSQL1 = strSQL1.Append(" or ") If CveCaracteristicaOpcion <> 0 Then If booPrimerCampo = False Then strSQL1 = strSQL1.Append("Select CveActivoFijo from AF_ActivosFijosValores where ") strSQL1.AppendFormat(" (CveCaracteristica = {0} and CveOpcion = {1} ) ", CveCaracteristica, CveCaracteristicaOpcion) If booPrimerCampo = False Then booPrimerCampo = True intContador += 1 End If Case "2" 'Radio o RadioButtonList CveCaracteristicaOpcion = DR.FCRadioButtonList("RbRespuesta").SelectedValue.ToEntero If booPrimerCampo = True And CveCaracteristicaOpcion <> 0 Then strSQL1 = strSQL1.Append(" or ") If CveCaracteristicaOpcion <> 0 Then If booPrimerCampo = False Then strSQL1 = strSQL1.Append("Select CveActivoFijo from AF_ActivosFijosValores where ") strSQL1.AppendFormat(" (CveCaracteristica = {0} and CveOpcion = {1} ) ", CveCaracteristica, CveCaracteristicaOpcion) If booPrimerCampo = False Then booPrimerCampo = True intContador += 1 End If Case "3" If booPrimerCampo = True And Valor.Length <> 0 Then strSQL1.Append(" or ") If Valor.Length <> 0 Then If booPrimerCampo = False Then strSQL1.Append("Select CveActivoFijo from AF_ActivosFijosValores where ") strSQL1.AppendFormat(" (CveCaracteristica = {0} and Valor = '{1}') ", CveCaracteristica, Valor) If booPrimerCampo = False Then booPrimerCampo = True intContador += 1 End If Case "5" Valor = DR.FCCheckBox("ChbValor").Checked.ToString If booPrimerCampo = True And Valor.Length <> 0 Then strSQL1.Append(" or ") If Valor.Length <> 0 Then If booPrimerCampo = False Then strSQL1.Append("Select CveActivoFijo from AF_ActivosFijosValores where ") strSQL1.AppendFormat(" (CveCaracteristica = {0} and Valor = '{1}') ", CveCaracteristica, Valor) If booPrimerCampo = False Then booPrimerCampo = True intContador += 1 End If Case "6" Valor = DR.FCTextBox("TxtValorNum").Text.Trim If booPrimerCampo = True And Valor.Length <> 0 Then strSQL1.Append(" or ") If Valor.Length <> 0 Then If booPrimerCampo = False Then strSQL1.Append("Select CveActivoFijo from AF_ActivosFijosValores where ") strSQL1.AppendFormat(" (CveCaracteristica = {0} and Valor like '{1}') ", CveCaracteristica, Valor) If booPrimerCampo = False Then booPrimerCampo = True intContador += 1 End If End Select Next If intContador > 0 Then strSQL1.AppendFormat(" group by CveActivoFijo having count(*)={0}", intContador) If ObjAF.GetRepActivosFijos(-1, UsuarioActual.CveEmpresa, Codigo, Descripcion, DdlTipoActivo.SelectedValue.ToEntero, DdlSubTipoActivo.SelectedValue.ToEntero, NoSerie, Año, DdlResponsable.SelectedValue.ToEntero, DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, strSQL1.ToString, -1, DdlAgrupador.SelectedValue.ToEntero) Then If ObjAF.DtResultados.Rows.Count > 0 Then DtActivosFijos = ObjAF.DtResultados 'If DdlAgrupador.SelectedValue = "6" Then ' CargaDdlResponsable() 'End If Else DtActivosFijos = Nothing Alert("No se encontraron registros con los parámetros solicitados.", Extensiones.TipoMensaje.MsgAdvertencia) End If End If ObjAF.Dispose() CargaGV() End Sub Private Sub CargaGV() GvDatos.DataSource = DtActivosFijos GvDatos.DataBind() UpGV.Update() If (GvDatos.Rows.Count > 0) Then GvDatos.UseAccessibleHeader = True GvDatos.HeaderRow.TableSection = TableRowSection.TableHeader RegistraScript("OrdenarGV();") End If End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then e.Row.FCHyperLink("Hpl").NavigateUrl = $"/AF/CatAF.aspx?GPO={DdlAgrupador.SelectedValue}&CveTipoActivoFijo={e.Row.DBCampo("CveTipoActivoFijo")}&CveSubTipoActivoFijo={e.Row.DBCampo("CveSubTipoActivoFijo")}&CvePersonaResponsable={e.Row.DBCampo("CvePersonaResponsable")}&CveSubProyecto={e.Row.DBCampo("CveSubProyecto")}&CveEstadoActivoFijo={e.Row.DBCampo("CveEstadoActivoFijo")}&Anio={e.Row.DBCampo("Anio")}" End If End Sub #End Region #Region " CARACTERISTICAS " Protected Sub DdlTipoActivo_SelectedIndexChanged(sender As Object, e As EventArgs) DdlSubTipoActivo.Items.Clear() DdlSubTipoActivo.DataSource = GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveTipoActivoFijo = {0}", DdlTipoActivo.SelectedValue), "SubTipoActivoFijo") DdlSubTipoActivo.DataBind() DdlSubTipoActivo.Items.Insert(0, New ListItem("Todos", "-1")) CargaCaracteristicas() End Sub Protected Sub DdlSubTipoActivo_SelectedIndexChanged(sender As Object, e As EventArgs) CargaCaracteristicas() End Sub Private Sub CargaCaracteristicas() Dim ObjAFCaracteristicas As New ClsAF If ObjAFCaracteristicas.GetActivosFijosValores(-1, UsuarioActual.CveEmpresa) Then If DdlSubTipoActivo.SelectedIndex <> 0 Then GvCaracteristicas.DataSource = ObjAFCaracteristicas.DtResultados.FiltraParametros("CveSubTipoActivoFijo = '" + DdlSubTipoActivo.SelectedValue + "'") Else GvCaracteristicas.DataSource = Nothing End If If ObjAFCaracteristicas.GetCaracteristicasOpcionesSubTipo(-1, DdlSubTipoActivo.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then DTAFCaracteristicas = ObjAFCaracteristicas.DtResultados '.FiltraParametros("SubtipoActivoFijo = '" + DdlSubTipoActivoFijo.SelectedValue + "'") 'FiltraParametros("EstatusOpcion = 'True'") End If End If ObjAFCaracteristicas.Dispose() GvCaracteristicas.DataBind() UpFiltro.Update() End Sub Protected Sub GvCaracteristicas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvCaracteristicas.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim TipoCampo As Integer = e.Row.DBCampo("TipoCampo").ToEntero Dim CveCaracteristica As Integer = e.Row.DBCampo("CveCaracteristica").ToEntero Select Case TipoCampo Case 0, 4 'Texto, Multiline With e.Row.FCTextBox("TxtValor") .Visible = True If TipoCampo = 4 Then .Rows = 3 .TextMode = TextBoxMode.MultiLine End If .Text = e.Row.DBCampo("Valor") If e.Row.DBCampo("Requerida") = "True" Then e.Row.FCRequiredFieldValidator("RFVRbRespuesta").Enabled = True e.Row.FCRequiredFieldValidator("RFVRbRespuesta").ControlToValidate = "TxtValor" End If End With Case 1, 2 'DropDownList, Radios Dim dt As DataTable = DTAFCaracteristicas.FiltraParametros(String.Format("CveCaracteristica = {0} AND EstatusOpcion ='True' AND CveCaracteristicaOpcion > 0 ", CveCaracteristica)) If TipoCampo = 1 Then With e.Row.FCDropDownList("DdlRespuesta") .Visible = True .DataTextField = "CaracteristicaOpcion" .DataValueField = "CveCaracteristicaOpcion" .DataSource = dt .DataBind() .Items.Insert(0, New ListItem("Seleccione", "")) .SelectedValue = e.Row.DBCampo("CveOpcion") If e.Row.DBCampo("Requerida") = "True" Then e.Row.FCRequiredFieldValidator("RFVRbRespuesta").Enabled = True e.Row.FCRequiredFieldValidator("RFVRbRespuesta").ControlToValidate = "DdlRespuesta" End If End With ElseIf TipoCampo = 2 Then With e.Row.FCRadioButtonList("RbRespuesta") .Visible = True .DataSource = dt .DataBind() End With e.Row.FCRequiredFieldValidator("RFVRbRespuesta").ErrorMessage = String.Format("ERROR: Falta contestar la pregunta: {0}", e.Row.DBCampo("Caracteristica")) End If Case 3 'Fecha With e.Row.FCTextBox("TxtValor") .Visible = True .Width = New Unit(80) End With e.Row.FCImageButton("ImgTxtValor").Visible = True e.Row.FCMaskedEditExtender("MEETxtValor").Enabled = True e.Row.FCCalendarExtender("CETxtValor").Enabled = True e.Row.FCCompareValidator("CVTxtValor").Enabled = True e.Row.FCCompareValidator("CVTxtValor").Type = ValidationDataType.Date Case 5 'Checkbox With e.Row.FCCheckBox("ChbValor") .Visible = True .Text = e.Row.DBCampo("Caracteristica") .Checked = CBool(e.Row.DBCampo("Valor").ToEntero) End With Case 6 ' Numerico With e.Row.FCTextBox("TxtValorNum") .Visible = True .Text = e.Row.DBCampo("Valor") e.Row.FCCompareValidator("CVTxtValor").Enabled = True e.Row.FCCompareValidator("CVTxtValor").Type = ValidationDataType.Integer If e.Row.DBCampo("Requerida") = "True" Then e.Row.FCRequiredFieldValidator("RFVRbRespuesta").Enabled = True e.Row.FCRequiredFieldValidator("RFVRbRespuesta").ControlToValidate = "TxtValorNum" End If End With End Select End If 'End If End Sub #End Region #Region "I M P R I M I R P D F/Excel" Private Sub LinkPDF_Click(sender As Object, e As EventArgs) Handles LinkPDF.Click GenerarPDF() End Sub Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click GenerarPDF("EXCEL") End Sub Private Sub GenerarPDF(Optional Formato As String = "PDF") If DtActivosFijos.Rows.Count > 0 Then Dim params As New List(Of ReportParameter) Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString)) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF(String.Format("{0}Formatos\RepAF.rdlc", UsuarioActual.Empresa.Ruta), DtActivosFijos, params, "ReporteActivosFijos", Formato:=Formato) Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If End Sub #End Region End Class