Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Imports GemBox.Spreadsheet Imports System.IO Partial Class RepCxCDetalle Inherits ClsPaginas 'pRivate ReadOnly Property ColumnasVisibles As #Region "PROPIEDADES" Public Property Anio() As Integer Get Return ViewState("Anio").ToString.ToEntero End Get Set(value As Integer) ViewState("Anio") = value End Set End Property Public Property Mes() As Integer Get Return ViewState("Mes").ToString.ToEntero End Get Set(value As Integer) ViewState("Mes") = value End Set End Property Public Property AnioMes() As String Get Return ViewState("AnioMes").ToString End Get Set(value As String) ViewState("AnioMes") = value End Set End Property Public Property Fecha() As String Get Return ViewState("Fecha").ToString End Get Set(value As String) ViewState("Fecha") = value End Set End Property Public Property FechaVI() As String Get Return ViewState("FechaVInicio").ToString End Get Set(value As String) ViewState("FechaVInicio") = value End Set End Property Public Property FechaVF() As String Get Return ViewState("FechaVFin").ToString End Get Set(value As String) ViewState("FechaVFin") = value End Set End Property Public Property FechaI() As String Get Return ViewState("FechaInicio").ToString End Get Set(value As String) ViewState("FechaInicio") = value End Set End Property Public Property FechaF() As String Get Return ViewState("FechaFin").ToString End Get Set(value As String) ViewState("FechaFin") = value End Set End Property Public Property FechaCorte() As String Get Return ViewState("FechaCorte").ToString End Get Set(value As String) ViewState("FechaCorte") = value End Set End Property Public Property Iva() As String Get Return ViewState("IVA").ToString End Get Set(value As String) ViewState("IVA") = value End Set End Property Public Property Agrupador() As Integer Get Return ViewState("Agrupador").ToString.ToEntero End Get Set(value As Integer) ViewState("Agrupador") = value End Set End Property Public Property Opcion() As String Get Return ViewState("Opcion").ToString End Get Set(value As String) ViewState("Opcion") = value End Set End Property Public Property TipoDocto() As String Get Return ViewState("TipoDocto").ToString End Get Set(value As String) ViewState("TipoDocto") = value End Set End Property Public Property TipoCambio() As Integer Get Return ViewState("TipoCambio").ToString.ToEntero End Get Set(value As Integer) ViewState("TipoCambio") = value End Set End Property Public Property TCEspecifico() As Double Get Return ViewState("TCEspecifico").ToString.ToDouble End Get Set(value As Double) ViewState("TCEspecifico") = value End Set End Property Public Property SePersonalizo() As Integer Get Return ViewState("SePersonalizo").ToString.ToEntero End Get Set(value As Integer) ViewState("SePersonalizo") = value End Set End Property Private Property CveClienteSucursal As Integer Get If ViewState("CveClienteSucursal") Is Nothing Then Return -1 Else Return DirectCast(ViewState("CveClienteSucursal"), Integer) End If End Get Set(value As Integer) ViewState("CveClienteSucursal") = value End Set End Property Private Property CveCobranzaEstatus As Integer Get If ViewState("CveCobranzaEstatus") Is Nothing Then Return -1 Else Return DirectCast(ViewState("CveCobranzaEstatus"), Integer) End If End Get Set(value As Integer) ViewState("CveCobranzaEstatus") = value End Set End Property Private Property LimiteCredito As Decimal Get If ViewState("LimiteCredito") Is Nothing Then Return -1 Else Return DirectCast(ViewState("LimiteCredito"), Decimal) End If End Get Set(value As Decimal) ViewState("LimiteCredito") = value End Set End Property Private Property TipoCliente As Integer Get If ViewState("TipoCliente") Is Nothing Then Return -1 Else Return DirectCast(ViewState("TipoCliente"), Integer) End If End Get Set(value As Integer) ViewState("TipoCliente") = value End Set End Property Private Property CveMoneda As Integer Get If ViewState("CveMoneda") Is Nothing Then Return -1 Else Return DirectCast(ViewState("CveMoneda"), Integer) End If End Get Set(value As Integer) ViewState("CveMoneda") = value End Set End Property Private Property EstatusCliente As Integer Get If ViewState("EstatusCliente") Is Nothing Then Return -1 Else Return DirectCast(ViewState("EstatusCliente"), Integer) End If End Get Set(value As Integer) ViewState("EstatusCliente") = 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 ViewState("Opcion") = IfNull(Request("Op"), "-1") CargaCombos() If Request("Op") IsNot Nothing Then CargaDatos() End If If UsuarioActual.CveEmpresa = 7 Then ChkCuentaContableReferencia.Visible = True End If CargaAsignarCobranza() TxtFechaCobranza.Text = Now.ToShortDateString If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then DVCartera.Visible = True End If End If End Sub #Region "CARGAS" Private Sub CargaCombos() Dim CveCliente, CveVendedor, CveUsuario, CveSubProyecto, CveEstatus, CveResponsable, CveAgrupador, CveClienteClasificacion As Integer txtFechaF.Text = Now.LastDayOfMonth.ToShortDateString If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then DdlClientesWS.setEsWebService(True) Else DdlClientesWS.setEsWebService(False) CargaClientes() End If 'DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) 'DdlClientes.DataBind() 'CargaSubProyectos DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) DdlSubProyecto.DataBind() 'CargaUsuarios DdlUsuario.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa) DdlUsuario.DataBind() 'CargaResponsable DdlResponsable.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa) DdlResponsable.DataBind() 'Tipo Docto DdlTipoDocto.Items.Add(New ListItem("Ing X Comp", "IxC")) 'Carga Cobranza Estatus DdlCobranzaEstatusFiltro.DataSource = GlobalDTVtaCobranzaEstatus(UsuarioActual.CveEmpresa) DdlCobranzaEstatusFiltro.DataBind() DdlCobranzaEstatusFiltro.Items.Insert(0, New ListItem("Todos", "-1")) 'Carga Clasificacion Cliente DdlClienteClasificacion.DataSource = GlobalDTClienteClasificaciones(UsuarioActual.CveEmpresa) DdlClienteClasificacion.DataBind() DdlClienteClasificacion.Items.Insert(0, New ListItem("Todos", "-1")) 'Cargamos las fechas Anio = If(Request("Anio") IsNot Nothing, Request("Anio").ToString, "-1").ToString.ToEntero Mes = If(Request("Mes") IsNot Nothing, Request("Mes").ToString, "-1").ToString.ToEntero 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 FechaVI = If(Request("FechaVI") IsNot Nothing, Request("FechaVI").ToString, "-1").ToString FechaVF = If(Request("FechaVF") IsNot Nothing, Request("FechaVF").ToString, "-1").ToString FechaCorte = IfNull(Request("FechaCorte"), Now.ToDate.ToString).ToString CveCobranzaEstatus = If(Request("CveCobranzaEstatus") IsNot Nothing, Request("CveCobranzaEstatus").ToString, "-1").ToString.ToEntero CveClienteClasificacion = If(Request("CveClienteClasificacion") IsNot Nothing, Request("CveClienteClasificacion").ToString, "-1").ToString.ToEntero LimiteCredito = If(Request("LimiteCredito") IsNot Nothing, Request("LimiteCredito").ToString, "-1").ToString.ToDecimal TipoCliente = If(Request("TipoCliente") IsNot Nothing, Request("TipoCliente").ToString, "-1").ToString.ToEntero CveMoneda = If(Request("CveMoneda") IsNot Nothing, Request("CveMoneda").ToString, "-1").ToString.ToEntero EstatusCliente = If(Request("EstatusCliente") IsNot Nothing, Request("EstatusCliente").ToString, "-1").ToString.ToEntero DdlTipoCliente.SelectedValueExist(TipoCliente) DdlEstatusCliente.SelectedValueExist(EstatusCliente) If FechaF <> "-1" Then txtFechaF.Text = FechaF End If If FechaI <> "-1" Then txtFechaI.Text = FechaI End If If FechaVF <> "-1" Then txtFechaVF.Text = FechaVF End If If FechaVI <> "-1" Then txtFechaVI.Text = FechaVI End If If Fecha <> "-1" Then txtFechaI.Text = Fecha txtFechaF.Text = Fecha End If txtCorteA.Text = $"31/12/{Now.Year}" txtFechaI.Text = If(Anio <> -1, String.Format("01/01/{0}", Anio), txtFechaI.Text) txtFechaI.Text = If(Mes <> -1, txtFechaI.Text, 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 Request("FechaCorte") <> "-1" AndAlso IsDate(Request("FechaCorte")) Then txtCorteA.Text = Request("FechaCorte") If Anio <> -1 Then txtFechaF.Text = String.Format("31/12/{0}", Anio) ElseIf Mes <> -1 Then 'txtFechaF.Text = txtFechaI.Text.ToDate.LastDayOfMonth.ToShortDateString ElseIf AnioMes <> "-1" Then txtFechaF.Text = txtFechaI.Text.ToDate.LastDayOfMonth.ToShortDateString End If TipoCambio = IfNull(Request("TipoCambio"), -1).ToString.ToEntero TCEspecifico = IfNull(Request("TCEspecifico"), -1).ToString.ToDouble TipoDocto = IfNull(Request("TipoDocto"), "-1").ToString CveClienteSucursal = IfNull(Request("CveClienteSucursal"), "-1").ToString.ToEntero CveSubProyecto = IfNull(Request("CveSubProyecto"), "-1").ToString.ToEntero CveVendedor = IfNull(Request("Vendedor"), "-1").ToString.ToEntero CveCliente = IfNull(Request("CveCliente"), "-1").ToString.ToEntero CveUsuario = IfNull(Request("CveUsuario"), "-1").ToString.ToEntero CveEstatus = IfNull(Request("CveEstatusFactura"), "-1").ToString.ToEntero CveResponsable = IfNull(Request("CveUsuarioResponsable"), "-1").ToString.ToEntero CveAgrupador = IfNull(Request("GPO"), "-1").ToString.ToEntero Iva = IfNull(Request("IVA"), "-1").ToString DdlSubProyecto.SelectedValueExist(CveSubProyecto) If Request("AplicaAnticiposPagados") IsNot Nothing Then ChkAnticipos.Checked = If(Request("AplicaAnticiposPagados").ToEntero = 1, True, False) End If DdlClienteClasificacion.SelectedValueExist(CveClienteClasificacion) CargaClientes() If CveCliente > 0 Then DdlClientesWS.SelectedValue = CveCliente.ToString 'DdlClientesWS.SelectedText = GlobalDTCliente(UsuarioActual.CveEmpresa, -1).FiltroPrimeroValor("NombreComercial", $"CveCliente = {CveCliente}") End If 'DdlClientes.SelectedValueExist(CveCliente) DdlUsuario.SelectedValueExist(CveUsuario) DdlResponsable.SelectedValueExist(CveResponsable) DdlGrupo.SelectedValueExist(CveAgrupador) 'Carga Vendedor DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltraParametros("VendedorTipo in (1,4)") DdlVendedor.DataBind() DdlVendedor.SelectedValueExist(CveVendedor) If UsuarioActual.CveVendedor > 0 AndAlso Not UsuarioActual.TienePermisoProceso(263) Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString()) DdlVendedor.Attributes.Add("disabled", "disabled") DdlVendedor.Enabled = False End If 'Nuevos DdlTipoDocto.SelectedValuesIfExistM(TipoDocto) RblTipoCambio.SelectedValue = CType(TipoCambio, String) '13/04/2018 - Carga filtro estatus cobranza DdlCobranzaEstatusFiltro.SelectedValueExist(CveCobranzaEstatus.ToString) If RblTipoCambio.SelectedValue.ToEntero = 3 Then If TCEspecifico <> -1 Then LiEspecifico.Visible = True TxtEspecifico.Text = TCEspecifico.ToString Else Dim TipoCambio As Double LiEspecifico.Visible = True TipoCambio = GlobalTipoCambio(Now) TxtEspecifico.Text = TipoCambio.ToString End If End If If CveClienteSucursal > 0 Then DdlClientesWS.Attributes.Add("style", "!important width: 60%;") DdlClienteSucursal.Visible = True DivClientes.Attributes.Remove("class") DivClientes.Attributes.Add("class", "col-md-4") Dim ObjCliente As New ClsClientes If ObjCliente.GetSucursales(CveCliente) Then If ObjCliente.DtResultados.Rows.Count > 0 Then DdlClienteSucursal.DataSource = ObjCliente.DtResultados End If End If ObjCliente.Dispose() DdlClienteSucursal.DataBind() DdlClienteSucursal.Items.Insert(0, New ListItem("Todas", "-1")) DdlClienteSucursal.SelectedValueExist(CveClienteSucursal) Else DdlClientesWS.Attributes.Add("style", "!important width: 100%;") End If If UsuarioActual.CveEmpresa.Contiene(72, 80, 146, 119) Then ChkAnticipos.Visible = True DdlTieneLineaAdicional.SelectedValueExist(If(Request("TieneLineaAdicional") IsNot Nothing, Request("TieneLineaAdicional").ToString, "-1").ToString) If UsuarioActual.CveEmpresa = 119 Then divLineaAdicional1.Visible = True divLineaAdicional2.Visible = True End If If UsuarioActual.CveEmpresa = 13 Then CargaContratos() End If DdlContrato.SelectedValueExist(If(Request("CveContrato") IsNot Nothing, Request("CveContrato").ToString, "-1").ToString) End Sub Private Sub CargaContratos() Dim ObjContratos As New ClsContratos If ObjContratos.GetContratos(-1, UsuarioActual.CveEmpresa, CveCliente:=-1) Then DdlContrato.DataSource = ObjContratos.DtResultados End If divContrato.Visible = True divContrato1.Visible = True ObjContratos.Dispose() DdlContrato.DataBind() End Sub Private Function CargaDatos() As DataSet Dim DSRespuesta As New DataSet Dim DTaDAtos As New DataTable Dim DTCartera As New DataTable Dim ObjMovtos As New ClsMovimientos() Dim FechaI, FechaF, FechaVI, FechaVF As String If RblTipoCambio.SelectedValue.ToEntero = 3 And TxtEspecifico.Text <> "" Then TCEspecifico = TxtEspecifico.Text.ToDouble Else TCEspecifico = -1 End If FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1") FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") FechaVI = If(IsDate(txtFechaVI.Text.Trim()), txtFechaVI.Text.Trim(), "-1") FechaVF = If(IsDate(txtFechaVF.Text.Trim()), txtFechaVF.Text.Trim(), "-1") 'FechaI, FechaF, -1, UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero Dim CveCliente = If(DdlClientesWS.SelectedValue.ToEntero > 0, DdlClientesWS.SelectedValue.ToEntero, -1) If ObjMovtos.GetCxCDetalle(FechaI, FechaF, CveCliente, DdlSubProyecto.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, DdlUsuario.SelectedValue.ToEntero, Anio, Mes, AnioMes, Fecha, CveClienteSucursal, Opcion, -1, Iva.ToString, DdlGrupo.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlResponsable.SelectedValue.ToEntero, RblTipoCambio.SelectedValue.ToEntero, TCEspecifico, If(DdlTipoDocto.GetSelectedValuesM = "", "-1", DdlTipoDocto.GetSelectedValuesM), FechaVI, FechaVF, FechaCorte:=txtCorteA.Text.ToDate, CveUsuarioConsulta:=UsuarioActual.CveUsuario, CveCobranzaEstatus:=DdlCobranzaEstatusFiltro.SelectedValue.ToEntero, CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero, LimiteCredito:=LimiteCredito, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero, CveMoneda:=CveMoneda, EstatusCliente:=DdlEstatusCliente.SelectedValue.ToEntero, AplicaAnticiposPagados:=If(ChkAnticipos.Checked, 1, 0), TieneLineaAdicional:=DdlTieneLineaAdicional.SelectedValue.ToEntero()) Then GvDatos.DataSource = ObjMovtos.DSResultados.Tables(0) 'DTaDAtos = ObjMovtos.DSResultados.Tables(0) 'DTaDAtos.TableName = "DTaDAtos" DSRespuesta.Tables.Add(ObjMovtos.DSResultados.Tables(0).Copy) If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then GvCartera.DataSource = ObjMovtos.DSResultados.Tables(1) 'DTCartera = ObjMovtos.DSResultados.Tables(1) 'DTCartera.TableName = "DTCartera" DSRespuesta.Tables.Add(ObjMovtos.DSResultados.Tables(1).Copy) End If Else GvDatos.DataSource = Nothing End If ObjMovtos.Dispose() GvDatos.DataBind() If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then GvCartera.DataBind() End If UPDatos.Update() UpCartera.Update() Return DSRespuesta End Function Private Sub ConfiguraEmpresa() 'Dim ObjEmpresa As New ClsEmpresas() 'If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then If Not UsuarioActual.Empresa.MostrarRetIVA Then GvDatos.Columns(7).Visible = False If Not UsuarioActual.Empresa.MostrarRetISR Then GvDatos.Columns(8).Visible = False 'End If 'ObjEmpresa.Dispose() End Sub #End Region #Region "CONSULTAR" Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click CargaDatos() ConfiguraEmpresa() 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 e.Row.RowIndex = 0 Then e.Row.Cells(1).Width = Unit.Pixel(70) e.Row.Cells(2).Width = Unit.Pixel(75) End If e.Row.FCHyperLink("HlFolio").Text = e.Row.DBCampo("SerieFolio") If e.Row.DBCampo("CveVenta").ToEntero() > 0 Then If e.Row.DBCampo("TipoDocto") = "IxC" Then e.Row.FCHyperLink("HlFolio").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveVenta")) Else e.Row.FCHyperLink("HlFolio").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DBCampo("CveVenta")) End If End If If e.Row.DBCampo("SubProyecto") = "" And e.Row.DBCampo("CveMoneda") = "1" Then e.Row.Cells(11).Text = "Total Pesos" e.Row.CssClass = "Totales" e.Row.FCCheckBox("ChkCobranza").Visible = False e.Row.Cells(39).Text = "" e.Row.Cells(21).Text = "" e.Row.Cells(28).Text = "" ElseIf e.Row.DBCampo("SubProyecto") = "" And e.Row.DBCampo("CveMoneda") = "2" Then e.Row.Cells(12).Text = "Total Dólares" e.Row.CssClass = "Totales" e.Row.FCCheckBox("ChkCobranza").Visible = False e.Row.Cells(39).Text = "" e.Row.Cells(21).Text = "" e.Row.Cells(28).Text = "" ElseIf e.Row.DBCampo("CveVenta") = "" Then e.Row.CssClass = "SubTotales" e.Row.FCCheckBox("ChkCobranza").Visible = False e.Row.Cells(39).Text = "" e.Row.Cells(21).Text = "" e.Row.Cells(28).Text = "" End If End If End Sub #End Region #Region "PERSONALIZAR COLUMNAS" Protected Sub BtnPersonalizar_Click(sender As Object, e As EventArgs) Handles BtnPersonalizar.Click If ChkFecha.Checked Then GvDatos.Columns(1).Visible = True SePersonalizo = 1 Else GvDatos.Columns(1).Visible = False End If If ChkFolio.Checked Then GvDatos.Columns(2).Visible = True SePersonalizo = 1 Else GvDatos.Columns(2).Visible = False End If If ChkTotal.Checked Then GvDatos.Columns(9).Visible = True SePersonalizo = 1 Else GvDatos.Columns(9).Visible = False End If If ChkSubTotal.Checked Then GvDatos.Columns(3).Visible = True SePersonalizo = 1 Else GvDatos.Columns(3).Visible = False End If If ChkIVA.Checked Then GvDatos.Columns(6).Visible = True SePersonalizo = 1 Else GvDatos.Columns(6).Visible = False End If If ChkDescuento.Checked Then GvDatos.Columns(4).Visible = True SePersonalizo = 1 Else GvDatos.Columns(4).Visible = False End If If ChkAmortizacion.Checked Then GvDatos.Columns(5).Visible = True SePersonalizo = 1 Else GvDatos.Columns(5).Visible = False End If If ChkRetIVA.Checked Then GvDatos.Columns(7).Visible = True SePersonalizo = 1 Else GvDatos.Columns(7).Visible = False End If If ChkRetISR.Checked Then GvDatos.Columns(9).Visible = True SePersonalizo = 1 Else GvDatos.Columns(9).Visible = False End If If ChkMoneda.Checked Then GvDatos.Columns(10).Visible = True SePersonalizo = 1 Else GvDatos.Columns(10).Visible = False End If If ChkSucursal.Checked Then GvDatos.Columns(11).Visible = True SePersonalizo = 1 Else GvDatos.Columns(11).Visible = False End If If ChkCodigo.Checked Then GvDatos.Columns(15).Visible = True SePersonalizo = 1 Else GvDatos.Columns(15).Visible = False End If If ChkCliente.Checked Then GvDatos.Columns(16).Visible = True SePersonalizo = 1 Else GvDatos.Columns(16).Visible = False End If If ChkSucursalCliente.Checked Then GvDatos.Columns(17).Visible = True SePersonalizo = 1 Else GvDatos.Columns(17).Visible = False End If If ChkVendedor.Checked Then GvDatos.Columns(18).Visible = True SePersonalizo = 1 Else GvDatos.Columns(18).Visible = False End If If ChlMotivoDescuento.Checked Then GvDatos.Columns(19).Visible = True SePersonalizo = 1 Else GvDatos.Columns(19).Visible = False End If If ChkEstatusFactura.Checked Then GvDatos.Columns(20).Visible = True SePersonalizo = 1 Else GvDatos.Columns(20).Visible = False End If If ChkSeTimbro.Checked Then GvDatos.Columns(21).Visible = True SePersonalizo = 1 Else GvDatos.Columns(21).Visible = False End If If ChkCuentaContableReferencia.Checked Then GvDatos.Columns(22).Visible = True SePersonalizo = 1 Else GvDatos.Columns(22).Visible = False End If If ChkCuentaContable.Checked Then GvDatos.Columns(23).Visible = True SePersonalizo = 1 Else GvDatos.Columns(23).Visible = False End If If ChkUsuario.Checked Then GvDatos.Columns(24).Visible = True SePersonalizo = 1 Else GvDatos.Columns(24).Visible = False End If If ChkMotivoCancelacion.Checked Then GvDatos.Columns(25).Visible = True SePersonalizo = 1 Else GvDatos.Columns(25).Visible = False End If If ChkObservaciones.Checked Then GvDatos.Columns(26).Visible = True SePersonalizo = 1 Else GvDatos.Columns(26).Visible = False End If If ChkSucursalEjecucion.Checked Then GvDatos.Columns(27).Visible = True SePersonalizo = 1 Else GvDatos.Columns(27).Visible = False End If If ChkTelefono.Checked Then GvDatos.Columns(28).Visible = True SePersonalizo = 1 Else GvDatos.Columns(28).Visible = False End If If ChkMail.Checked Then GvDatos.Columns(29).Visible = True SePersonalizo = 1 Else GvDatos.Columns(29).Visible = False End If If ChkLimiteCredito.Checked Then GvDatos.Columns(30).Visible = True SePersonalizo = 1 Else GvDatos.Columns(30).Visible = False End If If ChkSucursalCobranza.Checked Then GvDatos.Columns(31).Visible = True SePersonalizo = 1 Else GvDatos.Columns(31).Visible = False End If If ChkEstatusCobranza.Checked Then GvDatos.Columns(33).Visible = True SePersonalizo = 1 Else GvDatos.Columns(33).Visible = False End If If ChkTurnoCobranza.Checked Then GvDatos.Columns(34).Visible = True SePersonalizo = 1 Else GvDatos.Columns(34).Visible = False End If If ChkObsCobranza.Checked Then GvDatos.Columns(35).Visible = True SePersonalizo = 1 Else GvDatos.Columns(35).Visible = False End If If ChkFechaCobranza.Checked Then GvDatos.Columns(36).Visible = True SePersonalizo = 1 Else GvDatos.Columns(36).Visible = False End If If ChkHorario.Checked Then GvDatos.Columns(37).Visible = True SePersonalizo = 1 Else GvDatos.Columns(37).Visible = False End If If ChkDiasPago.Checked Then GvDatos.Columns(38).Visible = True SePersonalizo = 1 Else GvDatos.Columns(38).Visible = False End If If ChkSeEnvioMail.Checked Then GvDatos.Columns(39).Visible = True SePersonalizo = 1 Else GvDatos.Columns(39).Visible = False End If If ChkEstatusCliente.Checked Then GvDatos.Columns(40).Visible = True SePersonalizo = 1 Else GvDatos.Columns(40).Visible = False End If If ChkIEPS.Checked Then GvDatos.Columns(41).Visible = True SePersonalizo = 1 Else GvDatos.Columns(41).Visible = False End If If ChkDiasTranscurridos.Checked Then GvDatos.Columns(42).Visible = True SePersonalizo = 1 Else GvDatos.Columns(42).Visible = False End If If ChkTC.Checked Then GvDatos.Columns(43).Visible = True SePersonalizo = 1 Else GvDatos.Columns(43).Visible = False End If If ChkFechaEjecucion.Checked Then GvDatos.Columns(44).Visible = True SePersonalizo = 1 Else GvDatos.Columns(44).Visible = False End If If ChkMostrarLineaAdicional.Checked Then GvDatos.Columns(45).Visible = True SePersonalizo = 1 Else GvDatos.Columns(45).Visible = False End If If ChkMostrarDescripcionVenta.Checked Then GvDatos.Columns(46).Visible = True SePersonalizo = 1 Else GvDatos.Columns(46).Visible = False End If If ChkContrato.Checked Then GvDatos.Columns(47).Visible = True SePersonalizo = 1 Else GvDatos.Columns(47).Visible = False End If If SePersonalizo = 1 Then ImgExcelPersonalizado.Visible = True Else ImgExcelPersonalizado.Visible = False End If CargaDatos() RegistraScript("$('#DivPersonalizar').modal('hide');") End Sub #End Region #Region "IMPRESIONES" Protected Sub ImgExcel_Click(sender As Object, e As System.EventArgs) Handles ImgExcel.Click GenerarImpresion("EXCEL") End Sub Private Sub ImgExcelPersonalizado_Click(sender As Object, e As EventArgs) Handles ImgExcelPersonalizado.Click Dim Cliente = If(DdlClientesWS.SelectedValue = "-1", "", $" Cliente: {DdlClientesWS.SelectedText}") Dim Sucursal = If(DdlSubProyecto.SelectedValue = "-1", "", $" Sucursal: {DdlSubProyecto.SelectedItem.Text}") Dim Grupo = $" Agrupado Por: {DdlGrupo.SelectedItem.Text}" 'If(DdlGrupo.SelectedValue = "3", "", $" Agrupado Por: {DdlGrupo.SelectedItem.Text}") Dim TipoDocto = If(DdlTipoDocto.GetSelectedText = "", "", $" Documentos: {DdlTipoDocto.GetSelectedText}") Dim Vendedor = If(DdlVendedor.SelectedValue = "-1", "", $" Vendedor: {DdlVendedor.SelectedItem.Text}") Dim FechaIn As String = If(txtFechaI.Text = "", "", $" Fecha Inicio Docto: {txtFechaI.Text}") Dim FechaFn As String = If(txtFechaF.Text = "", "", $" Fecha Fin Docto: {txtFechaF.Text}") Dim FVI As String = If(txtFechaVI.Text = "", "", $" Fecha Venc. Inic.: {txtFechaVI.Text}") Dim FVF As String = If(txtFechaVF.Text = "", "", $" Fecha Venc. Final: ;{txtFechaVF.Text}") Dim Registro = If(DdlUsuario.SelectedValue = "-1", "", $" Registró: ;{DdlUsuario.SelectedItem.Text}") Dim Responsable = If(DdlResponsable.SelectedValue = "-1", "", $" Responsable: ;{DdlResponsable.SelectedItem.Text}") Dim EstatusCob = If(DdlCobranzaEstatusFiltro.SelectedValue = "-1", "", $"status Cobranza: ;{DdlCobranzaEstatusFiltro.SelectedItem.Text}") Dim CorteA As String = If(txtCorteA.Text = "31/12/2019", "", $"Corte A {txtCorteA.Text}") Dim ClasificacionCli = If(DdlClienteClasificacion.SelectedValue = "-1", "", $" Clasificación Cliente: {DdlClienteClasificacion.SelectedItem.Text}") Dim Filtro As String = $"{Cliente}{Sucursal}{Grupo}{Vendedor}{FechaIn}{FechaFn}{Registro}{Responsable}{TipoDocto}{EstatusCob}{FVI}{FVF}{ClasificacionCli}{CorteA}" ExportToExcelGembox(GvDatos, "ReporteCxCDetalle", UsuarioActual, "REPORTE DE CUENTAS POR COBRAR DEL CLIENTE CON DETALLE", DatoTituloExtra:=$"", DatosFiltros:=Filtro) 'GvDatos.ExportToExcelG("ReporteCxCDetalle", "REPORTE DE CUENTAS POR COBRAR DEL CLIENTE CON DETALLE", UsuarioActual, Filtro) 'SpreadsheetInfo.SetLicense(SerialGemBoxSpreadsheet()) 'Dim ef As ExcelFile = New ExcelFile 'Dim ws As ExcelWorksheet = ef.Worksheets.Add("DataTable to Sheet") 'Dim dt As DataTable = New DataTable 'Dim response As HttpResponse = Me.Response ''Recorrer columnas 'For index = 0 To GvDatos.Columns.Count - 1 ' If GvDatos.Columns(index).Visible Then ' dt.Columns.Add(GvDatos.Columns(index).HeaderText) ' End If 'Next ''Recorrer filas 'For Each fila As GridViewRow In GvDatos.Rows ' Dim dr As DataRow = dt.NewRow() ' For index = 0 To GvDatos.Columns.Count - 1 ' If GvDatos.Columns(index).Visible Then ' If TypeOf GvDatos.Columns(index) Is TemplateField Then ' If GvDatos.Columns(index).HeaderText = "Folio" Then ' dr(GvDatos.Columns(index).HeaderText) = fila.FCHyperLink("HlFolio").Text.Replace(" ", "") ' End If ' ElseIf TypeOf GvDatos.Columns(index) Is HyperLinkField Then ' dr(GvDatos.Columns(index).HeaderText) = DirectCast(fila.Cells(index).Controls(0), HyperLink).Text.Replace(" ", "") ' Else ' dr(GvDatos.Columns(index).HeaderText) = fila.Cells(index).Text.Replace(" ", "") ' End If ' End If ' Next ' dt.Rows.Add(dr) 'Next '' Insert DataTable into an Excel worksheet. 'ws.InsertDataTable(dt, ' New InsertDataTableOptions() With ' { ' .ColumnHeaders = True, ' .StartRow = 1 ' }) 'ef.Save(response, "RepCxC.xlsx") End Sub Private Sub GenerarImpresion(Optional TipoImpresion As String = "PDF") 'Dim ObjMovtos As New ClsMovimientos() Dim FechaI As String = txtFechaI.Text Dim FechaF As String = txtFechaF.Text If txtFechaI.Text = "" Then FechaI = "-1" If txtFechaF.Text = "" Then FechaF = "-1" If RblTipoCambio.SelectedValue.ToEntero = 3 And TxtEspecifico.Text <> "" Then TCEspecifico = TxtEspecifico.Text.ToDouble Else TCEspecifico = -1 End If Dim Cliente = If(DdlClientesWS.SelectedValue = "-1", "", $" Cliente: {DdlClientesWS.SelectedText}") Dim Sucursal = If(DdlSubProyecto.SelectedValue = "-1", "", $" Sucursal: {DdlSubProyecto.SelectedItem.Text}") Dim Grupo = $" Agrupado Por: {DdlGrupo.SelectedItem.Text}" 'If(DdlGrupo.SelectedValue = "3", "", $" Agrupado Por: {DdlGrupo.SelectedItem.Text}") Dim TipoDocto = If(DdlTipoDocto.GetSelectedText = "", "", $" Documentos: {DdlTipoDocto.GetSelectedText}") Dim Vendedor = If(DdlVendedor.SelectedValue = "-1", "", $" Vendedor: {DdlVendedor.SelectedItem.Text}") Dim FechaIn As String = If(txtFechaI.Text = "", "", $" Fecha Inicio Docto: {txtFechaI.Text}") Dim FechaFn As String = If(txtFechaF.Text = "", "", $" Fecha Fin Docto: {txtFechaF.Text}") Dim FVI As String = If(txtFechaVI.Text = "", "", $" Fecha Venc. Inic.: {txtFechaVI.Text}") Dim FVF As String = If(txtFechaVF.Text = "", "", $" Fecha Venc. Final: {txtFechaVF.Text}") Dim Registro = If(DdlUsuario.SelectedValue = "-1", "", $" Registró: {DdlUsuario.SelectedItem.Text}") Dim Responsable = If(DdlResponsable.SelectedValue = "-1", "", $" Responsable: {DdlResponsable.SelectedItem.Text}") Dim EstatusCob = If(DdlCobranzaEstatusFiltro.SelectedValue = "-1", "", $" Estatus Cobranza: {DdlCobranzaEstatusFiltro.SelectedItem.Text}") Dim CorteA As String = If(txtCorteA.Text = "31/12/2019", "", $" Corte A: {txtCorteA.Text}") Dim ClasificacionCli = If(DdlClienteClasificacion.SelectedValue = "-1", "", $" Clasificación Cliente: {DdlClienteClasificacion.SelectedItem.Text}") Dim TituloReporte As String = "REPORTE DE CUENTAS POR COBRAR DEL CLIENTE CON DETALLE" 'If UsuarioActual.CveEmpresa = 72 Then ' TituloReporte = "Antigüedad de Saldos de Clientes" 'End If Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri As String = "" If Imagen.Exists Then logouri = String.Format("file://{0}", Imagen.FullName) End If 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("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) params.Add(New ReportParameter("AgrupadoPor", $"{Cliente}{Sucursal}{Grupo}{Vendedor}{FechaIn}{FechaFn}{Registro}{Responsable}{TipoDocto}{EstatusCob}{FVI}{FVF}{ClasificacionCli}{CorteA}")) params.Add(New ReportParameter("TituloReporte", TituloReporte)) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) Dim lrds As New List(Of ReportDataSource) Dim DSDatos As DataSet = CargaDatos() Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = DSDatos.Tables(0)} lrds.Add(rds) If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then Dim rdsCartera As New ReportDataSource With {.Name = "DSCartera", .Value = DSDatos.Tables(1)} lrds.Add(rdsCartera) Else Dim DTCartera As New DataTable DTCartera.Columns.Add("Rango") DTCartera.Columns.Add("Saldo", GetType(Decimal)) DTCartera.Columns.Add("Porcentaje", GetType(Decimal)) DTCartera.Columns.Add("Objetivo", GetType(Decimal)) Dim rdsCartera As New ReportDataSource With {.Name = "DSCartera", .Value = DTCartera} lrds.Add(rdsCartera) End If Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepCxCDetalle.rdlc", UsuarioActual.Empresa.Ruta)) If Archivo.Exists Then ImprimirPDF(String.Format("{0}Formatos/RepCxCDetalle.rdlc", UsuarioActual.Empresa.Ruta), lrds, params, "ReporteCxCDetalle", TipoImpresion) Else ImprimirPDF("Empresas/Grales/Formatos/RepCxCDetalle.rdlc", lrds, params, "ReporteCxCDetalle", TipoImpresion) End If End Sub Protected Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click GenerarImpresion("PDF") End Sub #End Region #Region "TIPO DE CAMBIO" 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 Private Sub BtnTipoCambio_Click(sender As Object, e As EventArgs) Handles BtnTipoCambio.Click CargaDatos() RegistraScript(String.Format("$('#{0}').modal('hide');", "DivTipoCambio")) End Sub #End Region #Region "C O B R A N Z A " Private Sub CargaAsignarCobranza() Dim ObjVentas As New ClsVentas DdlUsuarioCobranza.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa) DdlUsuarioCobranza.DataBind() DdlUsuarioCobranza.Items.Insert(0, New ListItem("Sin Cobrador", "-1")) DdlCobranzaEstatus.DataSource = GlobalDTVtaCobranzaEstatus(UsuarioActual.CveEmpresa) DdlCobranzaEstatus.DataBind() DdlCobranzaEstatus.Items.Insert(0, New ListItem("Sin Estatus", "-1")) If ObjVentas.GetCobranzaTurnoEstatus(-1, UsuarioActual.CveEmpresa) Then DdlTurnoCobranza.DataSource = ObjVentas.DtResultados DdlTurnoCobranza.DataBind() DdlTurnoCobranza.Items.Insert(0, New ListItem("Sin Turno", "-1")) End If ObjVentas.Dispose() End Sub Private Sub LkbHabilitarCobranza_Click(sender As Object, e As EventArgs) Handles LkbHabilitarCobranza.Click GvDatos.Columns(32).Visible = True ' chk aplica GvDatos.Columns(33).Visible = True : ChkEstatusCobranza.Checked = True GvDatos.Columns(35).Visible = True : ChkObsCobranza.Checked = True GvDatos.Columns(36).Visible = True : ChkFechaCobranza.Checked = True GvDatos.Columns(37).Visible = True : ChkHorario.Checked = True DivCobranza.Visible = True CargaDatos() UPPersonalizar.Update() UpCobranza.Update() End Sub Private Sub BtnAsignaCobranza_Click(sender As Object, e As EventArgs) Handles BtnAsignaCobranza.Click Dim time As DateTime Dim TieneError = False Dim ObjVentas As New ClsVentas ObjVentas.IniciaTransacSQL() Try For Each row As GridViewRow In GvDatos.Rows Dim TipoDocto As String = row.DataKey("TipoDocto") If row.FCCheckBox("ChkCobranza").Checked AndAlso TipoDocto <> "IxC" Then time = DateTime.Parse(String.Format("{0} {1}:{2} {3}", TxtFechaCobranza.Text, TimeSelector.Hour, TimeSelector.Minute, TimeSelector.AmPm)) If Not ObjVentas.UpdateAsignaVentaCobranza(row.DataKey("CveVenta").ToEntero, DdlCobranzaEstatus.SelectedValue.ToEntero, DdlUsuarioCobranza.SelectedValue.ToEntero, DdlTurnoCobranza.SelectedValue.ToEntero, TxtObservacionCobranza.Text.Trim, time) Then TieneError = True End If End If Next Catch ex As Exception OnError("Ocurrió un error al actualizar", ex) TieneError = True End Try If Not TieneError Then ObjVentas.Commit() Alert("Se asigno exitosamente datos de cobranza a la venta", TipoMensaje.MsgInformacion) Else ObjVentas.RollBack() Alert("Hubo un error al asignar datos de cobranza", TipoMensaje.MsgInformacion) End If ObjVentas.Dispose() CargaDatos() End Sub #End Region #Region "SELECTED INDEX CHANGE" Protected Sub DdlClienteClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) CargaClientes() End Sub Private Sub CargaClientes() If Not UsuarioActual.Empresa.Funcionalidad(105) = "1" Then DdlClientesWS.ddl.Items.Clear() DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1).FiltraParametros($"CveClienteClasificacion = {DdlClienteClasificacion.SelectedValue.ToEntero} OR {DdlClienteClasificacion.SelectedValue.ToEntero} = -1") DdlClientesWS.DataBind() DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1")) End If End Sub Private Sub GvCartera_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvCartera.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DataKey("Rango") = "Total" Then e.Row.Font.Bold = True End If End If End Sub #End Region Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) End Sub Public Sub ExportToExcelGembox(GridView As GridView, NombreArchivoXLSx As String, Usuario As Usuario, Titulo As String, Optional DatoTituloExtra As String = "", Optional DatosFiltros As String = "", Optional AnchoImagen As Integer = 100, Optional AlturaImagen As Integer = 100, Optional DTExtra As DataTable = Nothing) Dim sw1 As New StringWriter() Dim htw1 As New HtmlTextWriter(sw1) GridView.RenderControl(htw1) Dim options = GemBox.Spreadsheet.LoadOptions.HtmlDefault Dim htmlStream1 = New MemoryStream(options.Encoding.GetBytes(sw1.ToString())) htmlStream1.Position = 0 Dim sr1 As New StreamReader(htmlStream1) Dim myStr1 = sr1.ReadToEnd() sr1.Dispose() htmlStream1.Dispose() sw1.Dispose() Dim HtmlCompleto As String = myStr1 HtmlCompleto = Regex.Replace(HtmlCompleto, "\<[\/]*a[^\>]*\>", "") Dim htmlStream5 = New MemoryStream(options.Encoding.GetBytes(HtmlCompleto)) GemBox.Spreadsheet.SpreadsheetInfo.SetLicense(SerialGemBoxSpreadsheet) Dim excel As GemBox.Spreadsheet.ExcelFile excel = GemBox.Spreadsheet.ExcelFile.Load(htmlStream5, options) If Usuario IsNot Nothing Then Dim TotalRowHeader As Integer = 6 Dim TotalRowFooter As Integer = 2 Dim worksheet = excel.Worksheets(0) worksheet.Rows.InsertEmpty(0, TotalRowHeader) Dim celdasConTexto = worksheet.GetUsedCellRange(True) If celdasConTexto Is Nothing Then Exit Sub 'No se recuperaron datos, salir de sin guardar porque soltará error celdasConTexto.Style.Font.Name = "Calibri Light" Dim RangoNombreEmpresa = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex) RangoNombreEmpresa.Merged = True RangoNombreEmpresa.Value = Usuario.Empresa.Empresa RangoNombreEmpresa.Style.Font.Size = 18 * 20 RangoNombreEmpresa.Style.Font.Name = "Calibri Light" RangoNombreEmpresa.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center RangoNombreEmpresa.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center Dim RangoTitulo = worksheet.Cells.GetSubrangeAbsolute(3, celdasConTexto.FirstColumnIndex, 3, celdasConTexto.LastColumnIndex) RangoTitulo.Merged = True RangoTitulo.Value = Titulo RangoTitulo.Style.Font.Size = 20 * 20 RangoTitulo.Style.Font.Name = "Calibri Light" RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center If DatoTituloExtra.Length > 0 Then Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex) RangoDatoTituloExtra.Merged = True RangoDatoTituloExtra.Value = DatoTituloExtra RangoDatoTituloExtra.Style.Font.Size = 20 * 20 RangoDatoTituloExtra.Style.Font.Name = "Calibri Light" RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center End If If DatosFiltros.Length > 0 Then Dim Arreglo As String() = DatosFiltros.Split("|"c) worksheet.Rows.InsertEmpty(TotalRowHeader, Arreglo.Count) For Each TextoFiltro As String In Arreglo Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex) RangoDatoTituloExtra.Merged = True RangoDatoTituloExtra.Value = TextoFiltro RangoDatoTituloExtra.Style.Font.Size = 12 * 20 RangoDatoTituloExtra.Style.Font.Name = "Calibri Light" RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center TotalRowHeader += 1 Next End If ' TotalRowHeader += 2 For i = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Size = 12 * 20 worksheet.Rows(TotalRowHeader).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center worksheet.Rows(TotalRowHeader).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center worksheet.Rows(TotalRowHeader).Cells(i).Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(75, 119, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)) worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255) If i > 0 Then Try worksheet.Columns(i).AutoFit(1) Catch ex As Exception End Try End If Next Dim IndexEndTable As Integer = GridView.Rows.Count + TotalRowHeader + TotalRowFooter worksheet.Rows(IndexEndTable).Cells(1).Value = "Usuario Imprimió" worksheet.Rows(IndexEndTable + 1).Cells(1).Value = Usuario.Nombre worksheet.Rows(IndexEndTable).Cells(3).Value = "Fecha Impresión" worksheet.Rows(IndexEndTable + 1).Cells(3).Value = DateTime.Now.ToString("dd/MM/yyyy") Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)) If Imagen.Exists Then Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta) Using sr As New StreamReader(Ruta) Dim ms As New MemoryStream() sr.BaseStream.CopyTo(ms) worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel) End Using End If For I = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex - 2 If I > 0 Then If 1 = 1 Then worksheet.Columns(I + 1).Style.NumberFormat = "#,##0.00" Else worksheet.Columns(I + 1).Style.NumberFormat = "#,##" End If Try worksheet.Columns(I).AutoFit(1) Catch ex As Exception End Try End If Next If DTExtra IsNot Nothing Then Dim NombreTabla As String = "" If DTExtra.TableName IsNot Nothing Then NombreTabla = DTExtra.TableName End If If NombreTabla.Trim = "" Then NombreTabla = "hoja2" End If 'excel.Worksheets.Add(NombreTabla) Dim workbookDTExtra = New ExcelFile Dim worksheetDTExtra = workbookDTExtra.Worksheets.Add(NombreTabla) worksheetDTExtra.InsertDataTable(DTExtra, New InsertDataTableOptions() With { .ColumnHeaders = True, .StartRow = 0 }) Dim columnCount = worksheetDTExtra.CalculateMaxUsedColumns() For i As Integer = 0 To columnCount - 1 worksheetDTExtra.Columns(i).AutoFit(1, worksheetDTExtra.Rows(1), worksheetDTExtra.Rows(worksheetDTExtra.Rows.Count - 1)) worksheetDTExtra.Cells(0, i).Style.FillPattern.SetSolid(Drawing.ColorTranslator.FromHtml("#4b77be")) worksheetDTExtra.Cells(0, i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255) Next excel.Worksheets.AddCopy(NombreTabla, worksheetDTExtra) excel.Worksheets(0).Name = Titulo End If Dim indexRow As Integer = 8 For indexRow = 8 To worksheet.Rows.Count - 4 If worksheet.Cells(indexRow, 0).Value.ToString.Trim = "" Then worksheet.Cells.GetSubrangeRelative(indexRow, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(Drawing.ColorTranslator.FromHtml("#c0c0c0")) End If Next End If excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx") End Sub End Class