Option Explicit On Option Strict On Imports Extensiones Imports Microsoft.Reporting.WebForms Imports System.Data Partial Class Compras_RepComprasDetalle Inherits ClsPaginas #Region " PROPIEDADES " Private Property DtDatos As DataTable Get DtDatos = DirectCast(ViewState("DtDatos"), DataTable) End Get Set(ByVal value As DataTable) ViewState("DtDatos") = value End Set End Property Private Property NumeroRemesa As String Get NumeroRemesa = ViewState("NumeroRemesa").ToString End Get Set(value As String) ViewState("NumeroRemesa") = value End Set End Property Private Property TCEspecifico As Double Get If ViewState("TCEspecifico") Is Nothing Then Return -1 Else Return DirectCast(ViewState("TCEspecifico"), Double) End If End Get Set(value As Double) ViewState("TCEspecifico") = value End Set End Property Private Property DtColor As DataTable Get Return DirectCast(ViewState("DtColor"), DataTable) End Get Set(value As DataTable) ViewState("DtColor") = value End Set End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString End Get Set(value As String) ViewState("Agrupador") = value End Set End Property Private Property CveMoneda As Integer Get CveMoneda = ViewState("CveMoneda").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMoneda") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then CargaCombos() CargaParametrosInicio() CargaDatos() End If End Sub #Region "CARGAS" Private Sub CargaParametrosInicio() Dim SubProyecto, Proveedor, Usuario, UsuarioCaptura, UsuarioRemesa, CveProyecto, Grupo As String Dim Anio, Mes, AnioMes, Fecha, FechaI, FechaF, FechaCaptura, FechaICaptura, FechaFCaptura, TipoDocto, TipoGasto, CveTipoProveedor As String Grupo = If(Request("GPO") IsNot Nothing AndAlso Request("GPO").ToEntero() > 0, Request("GPO").ToEntero(), -1).ToString 'PARAMETROS DE LISTBOXS SubProyecto = If(Request("CveSubProyecto") IsNot Nothing AndAlso Request("CveSubProyecto") <> "", Request("CveSubProyecto"), "-1").ToString TipoGasto = If(Request("CveTipoGasto") IsNot Nothing AndAlso Request("CveTipoGasto") <> "", Request("CveTipoGasto"), "-1").ToString Proveedor = If(Request("CveProveedor") IsNot Nothing AndAlso Request("CveProveedor").ToEntero() > 0, Request("CveProveedor").ToEntero(), -1).ToString Usuario = If(Request("CveUsuario") IsNot Nothing AndAlso Request("CveUsuario").ToEntero() > 0, Request("CveUsuario").ToEntero(), -1).ToString UsuarioCaptura = If(Request("CveUsuarioCaptura") IsNot Nothing AndAlso Request("CveUsuarioCaptura").ToEntero() > 0, Request("CveUsuarioCaptura").ToEntero(), -1).ToString NumeroRemesa = If(Request("NumeroRemesa") IsNot Nothing AndAlso Request("NumeroRemesa").ToEntero() > 0, Request("NumeroRemesa").ToEntero(), -1).ToString UsuarioRemesa = If(Request("CveUsuarioRemesa") IsNot Nothing AndAlso Request("CveUsuarioRemesa").ToEntero() > 0, Request("CveUsuarioRemesa").ToEntero(), -1).ToString CveTipoProveedor = If(Request("CveTipoProveedor") IsNot Nothing AndAlso Request("CveTipoProveedor").ToEntero() > 0, Request("CveTipoProveedor").ToEntero(), -1).ToString CveProyecto = If(Request("CveProyecto") IsNot Nothing AndAlso Request("CveProyecto").ToEntero() > 0, Request("CveProyecto").ToEntero(), -1).ToString CveMoneda = If(Request("CveMoneda") IsNot Nothing AndAlso Request("CveMoneda").ToEntero() > 0, Request("CveMoneda").ToEntero(), -1).ToEntero TipoDocto = If(Request("TipoDocto") IsNot Nothing AndAlso Request("TipoDocto") <> "", Request("TipoDocto").ToString, "-1") Anio = If(Request("Anio") IsNot Nothing, Request("Anio").ToString, "-1").ToString Mes = If(Request("Mes") IsNot Nothing, Request("Mes").ToString, "-1").ToString AnioMes = If(Request("AnioMes") IsNot Nothing, Request("AnioMes").ToString, "-1").ToString Fecha = If(Request("Fecha") IsNot Nothing, Request("Fecha").ToString, "-1").ToString FechaI = If(Request("FechaI") IsNot Nothing, Request("FechaI").ToString, "-1").ToString FechaF = If(Request("FechaF") IsNot Nothing, Request("FechaF").ToString, "-1").ToString FechaCaptura = If(Request("FechaCaptura") IsNot Nothing, Request("FechaCaptura").ToString, "-1").ToString FechaICaptura = If(Request("FechaICaptura") IsNot Nothing, Request("FechaICaptura").ToString, "-1").ToString FechaFCaptura = If(Request("FechaFCaptura") IsNot Nothing, Request("FechaFCaptura").ToString, "-1").ToString If IfNull(Request("TipoCambio"), "1").ToString <> "1" Then RblTipoCambio.SelectedValue = IfNull(Request("TipoCambio"), "1").ToString End If 'txtFechaI.Text = If(Anio <> "-1", String.Format("01/01/{0}", Anio), txtFechaI.Text) 'txtFechaI.Text = If(Mes <> "-1", String.Format("01/{0}/0001", Mes), txtFechaI.Text) 'txtFechaI.Text = If(AnioMes <> "-1", String.Format("01/{0}/{1}", AnioMes.Substring(5, 2).PadLeft(2, "0"c), AnioMes.Substring(0, 4)), txtFechaI.Text) If Fecha <> "-1" Then txtFechaI.Text = Fecha txtFechaF.Text = Fecha Else If FechaI <> "-1" Then txtFechaI.Text = FechaI If FechaF <> "-1" Then txtFechaF.Text = FechaF End If If FechaCaptura <> "-1" Then TxtFechaICaptura.Text = FechaCaptura TxtFechaFCaptura.Text = FechaCaptura Else If FechaICaptura <> "-1" Then TxtFechaICaptura.Text = FechaICaptura End If If FechaFCaptura <> "-1" Then TxtFechaFCaptura.Text = FechaFCaptura End If End If DdlProyecto.SelectedValueExist(CveProyecto) If DivProyecto.Visible Then CargaSubProyecto() 'CARGA LISTBOXs DdlSubProyecto.SelectedValuesIfExistM(SubProyecto) DdlTipoGasto.SelectedValuesIfExistM(TipoGasto) DdlUsuario.SelectedValueExist(Usuario) DDlUsuarioCaptura.SelectedValueExist(UsuarioCaptura) DdlGrupo.SelectedValueExist(Grupo) DdlProveedores.SelectedValue = Proveedor If DdlProveedores.SelectedValue.ToEntero > 0 Then DdlProveedores.SelectedText = GlobalDTCompProveedores(UsuarioActual.CveEmpresa, CveProveedor:=DdlProveedores.SelectedValue.ToEntero).FiltroPrimeroValor("RazonSocial", "").ToString Else DdlProveedores.SelectedText = "Todos" End If DdlTipoProveedor.SelectedValueExist(CveTipoProveedor) DdlTipoDocto.SelectedValueExist(TipoDocto) ChkIVA.Checked = True ChkIEPS.Checked = True ChkDesc.Checked = True ChkTotal.Checked = True ChkAbre.Checked = True ChkRazon.Checked = True ChkFolio.Checked = True ChkFecha.Checked = True ChkObs.Checked = True End Sub Private Sub CargaGrupo() DdlGrupo.Items.Insert(0, New ListItem("Año", "1")) DdlGrupo.Items.Insert(1, New ListItem("Mes", "2")) DdlGrupo.Items.Insert(2, New ListItem("Año/Mes", "3")) DdlGrupo.Items.Insert(3, New ListItem("Fecha", "4")) DdlGrupo.Items.Insert(4, New ListItem("Fecha Captura", "9")) DdlGrupo.Items.Insert(5, New ListItem("Proveedor", "5")) DdlGrupo.Items.Insert(6, New ListItem("Tipo Documento", "6")) DdlGrupo.Items.Insert(7, New ListItem("Clasificación Prov.", "7")) DdlGrupo.Items.Insert(8, New ListItem("Responsable", "8")) DdlGrupo.Items.Insert(9, New ListItem("Remesa", "10")) DdlGrupo.DataBind() DdlGrupo.SelectedValueExist("3") End Sub Private Sub CargaTipoCentroCosto() If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then DdlSubProyecto.Items.Clear() DivProyecto.Visible = False DivLblProyecto.Visible = False LblSubProyecto.Text = "Sucursal:" DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) DdlSubProyecto.DataBind() DdlGrupo.Items.Insert(10, New ListItem("Remesa-Sucursal", "11")) DdlGrupo.Items.Insert(11, New ListItem("Sucursal", "12")) DdlGrupo.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then DdlSubProyecto.Items.Clear() DivProyecto.Visible = False DivLblProyecto.Visible = False LblSubProyecto.Text = "Proyecto:" DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) DdlSubProyecto.DataBind() DdlGrupo.Items.Insert(10, New ListItem("Remesa-Proyecto", "11")) DdlGrupo.Items.Insert(11, New ListItem("Proyecto", "12")) DdlGrupo.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 3 Then DdlGrupo.Items.Insert(10, New ListItem("Remesa-SubProyecto", "11")) DdlGrupo.Items.Insert(11, New ListItem("SubProyecto", "12")) DdlGrupo.Items.Insert(12, New ListItem("Proyecto", "13")) DdlGrupo.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then LblProyecto.Text = "Sucursal:" LblSubProyecto.Text = "Proyecto:" DdlGrupo.Items.Insert(10, New ListItem("Remesa-Proyecto", "11")) DdlGrupo.Items.Insert(11, New ListItem("Proyecto", "12")) DdlGrupo.Items.Insert(12, New ListItem("Sucursal", "13")) DdlGrupo.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then LblProyecto.Text = "Proyecto:" LblSubProyecto.Text = "Sucursal:" DdlGrupo.Items.Insert(10, New ListItem("Remesa-Sucursal", "11")) DdlGrupo.Items.Insert(11, New ListItem("Sucursal", "12")) DdlGrupo.Items.Insert(12, New ListItem("Proyecto", "13")) DdlGrupo.DataBind() End If DdlGrupo.Items.Add(New ListItem("Tipo Proveedor", "14")) DdlGrupo.Items.Add(New ListItem("Tipo Gasto", "15")) End Sub Private Sub CargaCombos() 'Carga Tipo de Gasto DdlTipoGasto.DataSource = GlobalDTTiposGastos(UsuarioActual.CveEmpresa) DdlTipoGasto.DataBind() DdlTipoGasto.Items.Insert(0, New ListItem("Sin Tipo Gasto", "-2")) 'Carga Proveedores DdlProveedores.setEsWebService(True) DdlProveedores.Attributes.Add("data-metodo", "getproveedores") DdlProveedores.SelectedText = "Todos" DdlProveedores.SelectedValue = "-1" 'CargaUsuarios DdlUsuario.DataSource = GlobalDTUsuarioResponsable.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) DdlUsuario.DataBind() 'Carga Usuario Capturo DDlUsuarioCaptura.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa) DDlUsuarioCaptura.DataBind() 'CargaProyecto DdlProyecto.DataSource = GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1) DdlProyecto.DataBind() 'Carga Grupos CargaGrupo() 'Carga Tipo Centro de Costo CargaTipoCentroCosto() CreaDataTableColor() End Sub Private Sub CargaSubProyecto() DdlSubProyecto.Items.Clear() DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1, 1) DdlSubProyecto.DataBind() End Sub Private Sub CargaDatos() Dim ObjCompras As New ClsCompras() Dim FechaI, FechaF As String FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1") FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") Dim FechaICaptura, FechaFCaptura As String FechaICaptura = If(IsDate(TxtFechaICaptura.Text.Trim()), TxtFechaICaptura.Text.Trim(), "-1") FechaFCaptura = If(IsDate(TxtFechaFCaptura.Text.Trim()), TxtFechaFCaptura.Text.Trim(), "-1") Dim AnioMes As String = If(FechaF <> "-1", "-1", IfNull(Request("AnioMes"), "-1").ToString()) If RblTipoCambio.SelectedValue.ToEntero = 3 And TxtEspecifico.Text <> "" Then TCEspecifico = TxtEspecifico.Text.ToDouble Else TCEspecifico = -1 End If Dim SubProyectos As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString Dim TipoGasto As String = IIf(DdlTipoGasto.GetSelectedValuesM = "", "-1", DdlTipoGasto.GetSelectedValuesM).ToString If ObjCompras.GetRepComprasDetalle(DdlGrupo.SelectedValue.ToEntero, IfNull(Request("Anio"), Now.Year).ToString.ToEntero, IfNull(Request("Mes"), "-1").ToString.ToEntero, AnioMes, IfNull(Request("Fecha"), "-1").ToString(), DdlProveedores.SelectedValue.ToEntero, CveMoneda, DdlUsuario.SelectedValue.ToEntero, FechaI, FechaF, DDlUsuarioCaptura.SelectedValue.ToEntero, IfNull(Request("NumeroRemesa"), "-1").ToString.ToEntero, IfNull(Request("CveUsuarioRemesa"), "-1").ToString.ToEntero, FechaICaptura, FechaFCaptura, IfNull(Request("FechaCaptura"), "-1").ToString, SubProyectos, DdlTipoDocto.SelectedValue, UsuarioActual.CveEmpresa, RblTipoCambio.SelectedValue.ToEntero, TCEspecifico, TipoGasto, CveUsuarioConsulta:=UsuarioActual.CveUsuario, CveProyecto:=DdlProyecto.SelectedValue.ToEntero, CveTipoProveedor:=DdlTipoProveedor.SelectedValue.ToEntero) Then GvDatos.DataSource = ObjCompras.DtResultados DtDatos = ObjCompras.DtResultados Else GvDatos.DataSource = Nothing End If ObjCompras.Dispose() GvDatos.DataBind() If Request("NumeroRemesa").ToEntero > 0 AndAlso UsuarioActual.CveEmpresa = 66 Then '66 = GLUYAS LiImprimir.Visible = True NumeroRemesa = Request("NumeroRemesa") End If Agrupador = DdlGrupo.SelectedItem.Text End Sub #End Region #Region "SELECTED INDEX CHANGE" Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged CargaSubProyecto() End Sub Private Sub RblTipoCambio_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipoCambio.SelectedIndexChanged If RblTipoCambio.SelectedValue.ToEntero = 3 Then Dim TipoCambio As Double LiEspecifico.Visible = True TipoCambio = GlobalTipoCambio(Now) TxtEspecifico.Text = TipoCambio.ToString Else LiEspecifico.Visible = False End If UpBodyTipoCambio.Update() End Sub #End Region #Region "CONSULTAR" Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click CargaDatos() UPDatos.Update() End Sub #End Region #Region "GRIDVIEW" 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 Not e.Row.DBCampo("CveCompra").ToEntero > 0 Then e.Row.CssClass = "Totales" e.Row.FCLiteral("LtlFecha").Text = e.Row.DBCampo("GPO") e.Row.FCHyperLink("HplSerieFolio").Text = "" End If e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(9).HorizontalAlign = HorizontalAlign.Right End If End Sub #End Region #Region " IMPRIMIR " Protected Sub Lnkimprimir_Click(sender As Object, e As EventArgs) Handles Lnkimprimir.Click Dim Elaboro As String = "" If Request("CveUsuarioRemesa").ToString <> "-1" AndAlso NumeroRemesa.ToEntero > 0 Then Dim dtElaboro = GlobalDTUsuarios(Request("CveUsuarioRemesa").ToString.ToEntero, UsuarioActual.CveEmpresa) If dtElaboro.Rows.Count > 0 Then Elaboro = dtElaboro(0)("Nombre").ToString End If Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("Numero", NumeroRemesa)) params.Add(New ReportParameter("Anio", DtDatos.FiltraParametros("CveCompra > 0").MAX("Fecha").ToDate.Year.ToString)) params.Add(New ReportParameter("Nombre", DtDatos.MAX("SubProyecto"))) params.Add(New ReportParameter("Fecha", Now.Date.ToString)) params.Add(New ReportParameter("Elaboro", Elaboro)) params.Add(New ReportParameter("Autorizo", "")) params.Add(New ReportParameter("ElaboroPuesto", "")) params.Add(New ReportParameter("AutorizoPuesto", "")) ImprimirPDF(String.Format("{0}Formatos\Remesa.rdlc", UsuarioActual.Empresa.Ruta), DtDatos.FiltraParametros("CveCompra > 0"), params, "Remesa", RDSName:="DsCompras") End Sub Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click 'GvDatos.ExportToExcel("ReporteComprasDetalles" & Now.ToShortDateString) GenerarPDF("EXCEL") End Sub Protected Sub LnkPdf_Click(sender As Object, e As EventArgs) GenerarPDF("PDF") End Sub Private Sub GenerarPDF(Opcion As String) Dim FechaI = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", "-1", txtFechaI.Text) Dim FechaF = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", "-1", txtFechaF.Text) Dim Proveedor = If(DdlProveedores.SelectedValue = "-1", "", $" Proveedor: {DdlProveedores.SelectedText}") Dim Capturo = If(DDlUsuarioCaptura.SelectedValue = "-1", "", $" Capturó: {DDlUsuarioCaptura.SelectedItem.Text}") Dim Grupo = DdlGrupo.SelectedItem.Text Dim FechaIn As String = $" Fecha Inicio: {txtFechaI.Text}" Dim FechaFn As String = $" Fecha Fin: {txtFechaF.Text}" If txtFechaI.Text = "" Then FechaIn = "" If txtFechaF.Text = "" Then FechaFn = "" Dim Proyecto = If(DdlProyecto.SelectedValue = "-1", "", $" Proyecto: {DdlProyecto.SelectedItem.Text}") Dim SubProyecto = If(DdlSubProyecto.GetSelectedText = "", "", $" SubProyecto: {DdlSubProyecto.GetSelectedText}") Dim TipoGasto = If(DdlTipoGasto.GetSelectedText = "", "", $" Tipo Gasto: {DdlTipoGasto.GetSelectedText}") Dim TipoProveedor = If(DdlTipoProveedor.SelectedValue = "-1", "", $" Tipo de Proveedor: {DdlTipoProveedor.SelectedItem.Text}") Dim TipoDocto = If(DdlTipoDocto.SelectedValue = "-1", "", $" Tipo de Documento: {DdlTipoDocto.SelectedItem.Text}") Dim FechaIF, FechaFF As String FechaIF = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1") FechaFF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") Dim FechaICapturaF, FechaFCapturaF As String FechaICapturaF = If(IsDate(TxtFechaICaptura.Text.Trim()), TxtFechaICaptura.Text.Trim(), "-1") FechaFCapturaF = If(IsDate(TxtFechaFCaptura.Text.Trim()), TxtFechaFCaptura.Text.Trim(), "-1") Dim FechaCIn As String = $" Fecha Inicio Captura: {TxtFechaICaptura.Text.Trim()}" Dim FechaCFn As String = $" Fecha Fin Captura: {TxtFechaFCaptura.Text.Trim()}" If Not IsDate(TxtFechaICaptura.Text.Trim()) Then FechaCIn = "" If Not IsDate(TxtFechaFCaptura.Text.Trim()) Then FechaCFn = "" If DtDatos IsNot Nothing AndAlso DtDatos.Rows.Count > 0 Then For Each Dr As DataRow In DtDatos.Rows Dr("Fecha") = Dr("Fecha").ToString.ToDate.ToShortDateString Next Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("FechaInicio", FechaI)) params.Add(New ReportParameter("FechaFin", FechaF)) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToString)) params.Add(New ReportParameter("AgrupadoPor", $"Agrupado Por: {Grupo}{Proveedor}{Capturo}{FechaIn}{FechaFn}{FechaCIn}{FechaCFn}{Proyecto}{SubProyecto}{TipoGasto}{TipoProveedor}{TipoDocto}")) If Imagen.Exists Then params.Add(New ReportParameter("LogoPath", $"file://{Imagen.FullName}")) Else params.Add(New ReportParameter("LogoPath", "")) End If ImprimirPDF("Empresas/Grales/Formatos/RepComprasDetalle.rdlc", DtDatos, params, "ReporteComprasDetalles", Opcion) Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If End Sub #End Region #Region "GRAFICA" Protected Sub LnkVerGrafica_Click(sender As Object, e As EventArgs) If Not DtDatos IsNot Nothing AndAlso DtDatos.Rows.Count > 0 Then Alert("No hay datos disponibles", TipoMensaje.MsgAdvertencia) Exit Sub End If LblTituloGrafica.Text = $"Agrupado por: {Agrupador}" RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub Private Sub CreaDataTableColor() DtColor = New DataTable DtColor.Columns.Add("Color") Dim RowColor As DataRow = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#FF0F00" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#FF6600" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#FF9E01" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#FCD202" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#F8FF01" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#B0DE09" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#04D215" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#0D8ECF" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#0D52D1" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#2A0CD0" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#8A0CCF" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#CD0D74" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#754DEB" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#DDDDDD" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#999999" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#333333" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#000000" DtColor.Rows.Add(RowColor) End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() Dt.Columns.Add("Texto") Dt.Columns.Add("Valor") Dt.Columns.Add("Color") Dt.Columns.Add("Moneda") Dim RowColorIndex As Integer = 0 For Each Dr As DataRow In DtDatos.Rows If Not Dr("CveCompra").ToString.ToEntero > 0 Then Dim Row As DataRow = Nothing Row = Dt.NewRow() Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {CveMoneda}").Rows(0)("Abreviatura").ToString}" Select Case DdlVer.SelectedValue.ToEntero Case 1 Row("Valor") = Dr("Total").ToString.FormatoNumero Case 2 Row("Valor") = Dr("SubTotal").ToString.FormatoNumero Case 3 Row("Valor") = Dr("IVA").ToString.FormatoNumero End Select Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString Row("Moneda") = GlobalDTMonedas().FiltraParametros($"CveMoneda = {CveMoneda}").Rows(0)("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 If RowColorIndex = 17 Then RowColorIndex = 0 End If End If Next Dim query = From s In Dt.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()} Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(query) Select Case DdlGrafica.SelectedValue.ToEntero Case 1 RegistraScript($"CargaGraficaBarras({json})", "22") Case 2 RegistraScript($"CargaGraficaPastel({json})", "22") End Select UPModalProd.Update() End Sub Protected Sub DdlGrafica_SelectedIndexChanged(sender As Object, e As EventArgs) CambioGrafica() End Sub Protected Sub DdlVer_SelectedIndexChanged(sender As Object, e As EventArgs) CambioGrafica() End Sub #End Region Protected Sub BtnPersonalizar_Click(sender As Object, e As System.EventArgs) Handles BtnPersonalizar.Click GvDatos.Columns(4).Visible = ChkIVA.Checked GvDatos.Columns(5).Visible = ChkIEPS.Checked GvDatos.Columns(6).Visible = ChkDesc.Checked GvDatos.Columns(7).Visible = Chkretiva.Checked GvDatos.Columns(8).Visible = Chkretisr.Checked GvDatos.Columns(9).Visible = ChkTotal.Checked GvDatos.Columns(10).Visible = ChkAbre.Checked GvDatos.Columns(11).Visible = ChkRazon.Checked GvDatos.Columns(12).Visible = ChkFolio.Checked GvDatos.Columns(13).Visible = ChkFecha.Checked GvDatos.Columns(14).Visible = ChkObs.Checked GvDatos.Columns(15).Visible = ChkDescripcion.Checked UPDatos.Update() End Sub End Class