Option Explicit On Option Strict On Imports System.Data Imports System.IO Imports Extensiones Imports GemBox.Spreadsheet Imports Microsoft.Reporting.WebForms Partial Class Compras_CatProveedores Inherits ClsPaginas Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then ViewState("Orden") = "" 'CargaDatos() InicializaValores() ImgPersonalizar.Attributes.Add("onclick", "$('#DivPersonalizar').show(1000); PosicionaObjeto(this.id,'DivPersonalizar');") Me.Form.DefaultButton = BtnConsultar.UniqueID End If End Sub Private Sub InicializaValores() DdlResponsable.DataSource = GlobalDTUsuarioResponsable.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) DdlResponsable.DataBind() DdlResponsable.Items.Insert(0, New ListItem("Todos", "-1")) DdlClasificacionProveedor.DataSource = GlobalDTProveedorClasificacion(UsuarioActual.CveEmpresa) DdlClasificacionProveedor.DataBind() DdlClasificacionProveedor.Items.Insert(0, New ListItem("Todos", "-1")) DdlMoneda.DataSource = GlobalDTMonedas DdlMoneda.DataBind() DdlMoneda.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Public Sub CargaDatos() Dim ObjProveedores As New ClsCompProveedores If ObjProveedores.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then ViewState("DTProveedores") = ObjProveedores.DtResultados Else Me.GvDatos.DataSource = Nothing End If ObjProveedores.Dispose() GvDatos.DataSource = CType(ViewState("DTProveedores"), DataTable) GvDatos.DataBind() UpDatos.Update() End Sub Protected Sub BtnPersonalizar_Click(sender As Object, e As System.EventArgs) Handles BtnPersonalizar.Click If ChkCodigo.Checked Then GvDatos.Columns(0).Visible = True Else GvDatos.Columns(0).Visible = False End If If ChkRazonSocial.Checked Then GvDatos.Columns(1).Visible = True Else GvDatos.Columns(1).Visible = False End If If ChkNombreComercial.Checked Then GvDatos.Columns(2).Visible = True Else GvDatos.Columns(2).Visible = False End If If ChkRFC.Checked Then GvDatos.Columns(3).Visible = True Else GvDatos.Columns(3).Visible = False End If If ChkEstatus.Checked Then GvDatos.Columns(4).Visible = True Else GvDatos.Columns(4).Visible = False End If If ChkFechaIng.Checked Then GvDatos.Columns(5).Visible = True Else GvDatos.Columns(5).Visible = False End If If ChkUsuario.Checked Then GvDatos.Columns(6).Visible = True Else GvDatos.Columns(6).Visible = False End If If ChkNombreCorto.Checked Then GvDatos.Columns(7).Visible = True Else GvDatos.Columns(7).Visible = False End If If ChkDireccion.Checked Then GvDatos.Columns(8).Visible = True Else GvDatos.Columns(8).Visible = False End If If ChkContactoNombre.Checked Then GvDatos.Columns(9).Visible = True Else GvDatos.Columns(9).Visible = False End If If ChkTelefono.Checked Then GvDatos.Columns(10).Visible = True Else GvDatos.Columns(10).Visible = False End If If ChkContactoCelular.Checked Then GvDatos.Columns(11).Visible = True Else GvDatos.Columns(11).Visible = False End If If ChkContactoMail.Checked Then GvDatos.Columns(12).Visible = True Else GvDatos.Columns(12).Visible = False End If If ChkLimiteCredito.Checked Then GvDatos.Columns(13).Visible = True Else GvDatos.Columns(13).Visible = False End If If ChkPlazoPago.Checked Then GvDatos.Columns(14).Visible = True Else GvDatos.Columns(14).Visible = False End If If ChkObservaciones.Checked Then GvDatos.Columns(15).Visible = True Else GvDatos.Columns(15).Visible = False End If If ChkIVA.Checked Then GvDatos.Columns(16).Visible = True Else GvDatos.Columns(16).Visible = False End If If ChkRetIVA.Checked Then GvDatos.Columns(17).Visible = True Else GvDatos.Columns(17).Visible = False End If If ChkRetISR.Checked Then GvDatos.Columns(18).Visible = True Else GvDatos.Columns(18).Visible = False End If If ChkCtaContable.Checked Then GvDatos.Columns(19).Visible = True Else GvDatos.Columns(19).Visible = False End If UpDatos.Update() RegistraScript("$('#ModalPersonalizar').modal('hide');") 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(60) e.Row.Cells(1).Width = Unit.Pixel(250) e.Row.Cells(2).Width = Unit.Pixel(250) e.Row.Cells(3).Width = Unit.Pixel(100) e.Row.Cells(4).Width = Unit.Pixel(60) e.Row.Cells(5).Width = Unit.Pixel(70) e.Row.Cells(6).Width = Unit.Pixel(100) End If 'e.Row.Cells(0).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 'e.Row.Cells(7).HorizontalAlign = HorizontalAlign.Center e.Row.FCLiteral("LtlCodigo").Text = "" & e.Row.FCLiteral("LtlCodigo").Text & "" e.Row.FCLiteral("LtlRazonSocial").Text = "" & e.Row.FCLiteral("LtlRazonSocial").Text & "" e.Row.FCLiteral("LtlNombreComercial").Text = "" & e.Row.FCLiteral("LtlNombreComercial").Text & "" e.Row.FCLiteral("LtlRFC").Text = "" & e.Row.FCLiteral("LtlRFC").Text & "" e.Row.FCLiteral("LtlEstatus").Text = "" & e.Row.FCLiteral("LtlEstatus").Text & "" e.Row.FCLiteral("LtlFecha").Text = "" & e.Row.FCLiteral("LtlFecha").Text & "" e.Row.FCLiteral("LtlUsuario").Text = "" & e.Row.FCLiteral("LtlUsuario").Text & "" End If End Sub #End Region Private Sub ImgExcel2_Click(sender As Object, e As EventArgs) Handles ImgExcel2.Click GvDatos.ExportToExcel("RepProveedores_" & Now.ToShortDateString) End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Dim ObjProveedores As New ClsCompProveedores Dim Codigo, RazonSocial, RFC As String Codigo = "-1" RazonSocial = "-1" RFC = "-1" If TxtCodigo.Text.Trim <> String.Empty Then Codigo = TxtCodigo.Text.Trim If TxtRazonSocial.Text.Trim <> String.Empty Then RazonSocial = TxtRazonSocial.Text.Trim If TxtRFC.Text.Trim <> String.Empty Then RFC = TxtRFC.Text.Trim If ObjProveedores.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, -1, Codigo, RazonSocial, "-1", "-1", RFC, "-1", "-1", -1, UsuarioActual.CveEmpresa, CveTipoProveedor:=DdlTipoProveedor.SelectedValue.ToEntero, CveUsuarioResponsable:=DdlResponsable.SelectedValue.ToEntero, CveMonedaPreferente:=DdlMoneda.SelectedValue.ToEntero, CveProveedorClasificacion:=DdlClasificacionProveedor.SelectedValue.ToEntero) Then If ObjProveedores.DtResultados.Rows.Count > 0 Then ViewState("DTProveedores") = ObjProveedores.DtResultados Else ViewState("DTProveedores") = Nothing Alert("No se encontraron registros con los parametros solicitados.", Extensiones.TipoMensaje.MsgAdvertencia) End If End If ObjProveedores.Dispose() GvDatos.DataSource = CType(ViewState("DTProveedores"), DataTable) GvDatos.DataBind() UpDatos.Update() End Sub Protected Sub LnkCtasBanc_Click(sender As Object, e As EventArgs) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim DtDatos As DataTable = Nothing Dim ObjBancos As New ClsBancos If ObjBancos.GetCuentasBancarias(UsuarioActual.CveEmpresa) Then DtDatos = ObjBancos.DtResultados.Copy() End If ObjBancos.Dispose() If DtDatos IsNot Nothing AndAlso DtDatos.Rows.Count > 0 Then Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) If Imagen.Exists Then params.Add(New ReportParameter("LogoPath", logouri)) Else params.Add(New ReportParameter("LogoPath", "")) End If ImprimirPDF("Empresas/Grales/Formatos/RepCuentasBancarias.rdlc", DtDatos, params, "RepCuentasBancarias", "Excel") Else Alert("No se encontraron datos con los filtros especificados", TipoMensaje.MsgAdvertencia) End If End Sub Protected Sub LnkCtasBancSinProveedor_Click(sender As Object, e As EventArgs) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim DtDatos As DataTable = Nothing Dim ObjComp As New ClsCompProveedores If ObjComp.GetProveedoresSinCuentas(UsuarioActual.CveEmpresa) Then DtDatos = ObjComp.DtResultados.Copy() End If ObjComp.Dispose() If DtDatos IsNot Nothing Then DtDatos.TableName = "Proveedores" GenerarReporteProveedoresSinCuentaExcel("Proveedores sin Cuentas Bancarias", DtDatos) End If End Sub Private Sub GenerarReporteProveedoresSinCuentaExcel(Titulo As String, DtDatos As DataTable) Dim Retorno As New MemoryStream() SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet) Dim excel As ExcelFile = New ExcelFile Dim item = excel.Worksheets.Add(DtDatos.TableName) item.InsertDataTable(DtDatos, New InsertDataTableOptions() With { .ColumnHeaders = True, .StartRow = 0, .StartColumn = 0 }) item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255)) item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255) Dim columnCount = item.CalculateMaxUsedColumns() For i = 0 To columnCount item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1)) Next Dim TotalRowHeader As Integer = 8 Dim TotalRowFooter As Integer = 2 Dim worksheet = excel.Worksheets(0) worksheet.Rows.InsertEmpty(0, TotalRowHeader) Dim celdasConTexto = worksheet.GetUsedCellRange(True) celdasConTexto.Style.Font.Name = "Calibri Light" Dim RangoNombreEmpresa = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex) RangoNombreEmpresa.Merged = True RangoNombreEmpresa.Value = UsuarioActual.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 RangoFiltros = worksheet.Cells.GetSubrangeAbsolute(6, celdasConTexto.FirstColumnIndex, 6, celdasConTexto.LastColumnIndex) 'RangoFiltros.Merged = True 'RangoFiltros.Value = Filtros 'RangoFiltros.Style.Font.Size = 15 * 20 'RangoFiltros.Style.Font.Name = "Calibri Light" 'RangoFiltros.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left 'RangoFiltros.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 For i = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex worksheet.Rows(8).Cells(i).Style.Font.Size = 12 * 20 worksheet.Rows(8).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center worksheet.Rows(8).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center worksheet.Rows(8).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(8).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 = DtDatos.Rows.Count + TotalRowHeader + TotalRowFooter worksheet.Rows(IndexEndTable).Cells(2).Value = "Usuario Imprimió" worksheet.Rows(IndexEndTable + 1).Cells(2).Value = UsuarioActual.Nombre worksheet.Rows(IndexEndTable).Cells(6).Value = "Fecha Impresión" worksheet.Rows(IndexEndTable + 1).Cells(6).Value = DateTime.Now.ToString("dd/MM/yyyy") Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) If Imagen.Exists Then Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port, UsuarioActual.CveEmpresa) Using webClient As New Net.WebClient() Dim imageBytes = webClient.DownloadData(logouri) Dim stream As New MemoryStream(imageBytes) worksheet.Pictures.Add(stream, ExcelPictureFormat.Png, "A1", 100, 100, LengthUnit.Pixel) 'worksheet.Pictures.Add(stream, GemBox.Spreadsheet.ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, GemBox.Document.LengthUnit.Pixel) End Using End If excel.Save(Response, "Proveedores Sin Cuentas.xlsx", SaveOptions.XlsxDefault) End Sub End Class