589 lines
24 KiB
VB.net
589 lines
24 KiB
VB.net
Option Explicit On
|
|
Option Strict On
|
|
|
|
Imports System.Data
|
|
Imports System.Drawing
|
|
Imports System.IO
|
|
Imports CrystalDecisions.CrystalReports.Engine
|
|
Imports Extensiones
|
|
Imports GemBox.Spreadsheet
|
|
Imports Microsoft.Reporting.WebForms
|
|
Imports Stimulsoft.Report.Export
|
|
|
|
Partial Class Nomina_RepPersonalDIM
|
|
Inherits ClsPaginas
|
|
|
|
|
|
ReadOnly Property color_green_dark As Drawing.Color
|
|
Get
|
|
Return System.Drawing.Color.FromArgb(77, 179, 162)
|
|
End Get
|
|
End Property
|
|
|
|
ReadOnly Property color_purple_intense As Drawing.Color
|
|
Get
|
|
Return System.Drawing.Color.FromArgb(135, 117, 167)
|
|
End Get
|
|
End Property
|
|
|
|
ReadOnly Property color_blue As Drawing.Color
|
|
Get
|
|
Return System.Drawing.Color.FromArgb(53, 152, 220)
|
|
End Get
|
|
End Property
|
|
|
|
ReadOnly Property color_blue_madison As Drawing.Color
|
|
Get
|
|
Return System.Drawing.Color.FromArgb(87, 142, 190)
|
|
End Get
|
|
End Property
|
|
|
|
ReadOnly Property color_yellow As Drawing.Color
|
|
Get
|
|
Return System.Drawing.Color.FromArgb(196, 159, 71)
|
|
End Get
|
|
End Property
|
|
|
|
|
|
Public Property Dt_Datos As DataTable
|
|
Get
|
|
If ViewState("Dt_Datos") Is Nothing Then
|
|
ViewState("Dt_Datos") = New DataTable
|
|
End If
|
|
Return DirectCast(ViewState("Dt_Datos"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("Dt_Datos") = value
|
|
End Set
|
|
|
|
End Property
|
|
|
|
Protected Sub Nomina_RepPersonalDIM(sender As Object, e As EventArgs) Handles Me.Load
|
|
If Not Page.IsPostBack Then
|
|
|
|
CargaEjercicios()
|
|
DdlEjercicio.SelectedValueExist(UsuarioActual.Empresa.EjercicioActual)
|
|
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub CargaEjercicios()
|
|
'Dim ClsConta As New ClsContPAQi(UsuarioActual.Empresa)
|
|
Dim ClsConta As New ClsContabilidad
|
|
If ClsConta.GetEjercicios(UsuarioActual.CveEmpresa) Then
|
|
DdlEjercicio.DataSource = ClsConta.DtResultados
|
|
Else
|
|
DdlEjercicio.DataSource = Nothing
|
|
End If
|
|
ClsConta.Dispose()
|
|
DdlEjercicio.DataBind()
|
|
|
|
DdlEjercicio.SelectedValueExist(UsuarioActual.Empresa.EjercicioActual.ToString)
|
|
|
|
If DdlEjercicio.Items.Count = 0 Then
|
|
DdlEjercicio.Items.Add(New ListItem(NowADS().Year.ToString, NowADS().Year.ToString))
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
|
|
CargaDatos()
|
|
End Sub
|
|
|
|
|
|
Private Sub CargaDatos()
|
|
|
|
Dt_Datos = New DataTable
|
|
LnkDescargaArchivo.Visible = False
|
|
LnkExportar.Visible = False
|
|
|
|
Dim ObjNom As New ClsNominas
|
|
|
|
|
|
If ObjNom.GetRepPersonalDIM(Ejercicio:=DdlEjercicio.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa) Then
|
|
GvDatos.DataSource = ObjNom.DtResultados
|
|
Dt_Datos = ObjNom.DtResultados
|
|
|
|
If Dt_Datos.Rows.Count > 0 Then
|
|
LnkDescargaArchivo.Visible = True
|
|
LnkExportar.Visible = True
|
|
End If
|
|
|
|
|
|
Else
|
|
GvDatos.DataSource = Nothing
|
|
End If
|
|
|
|
ObjNom.Dispose()
|
|
|
|
GvDatos.DataBind()
|
|
|
|
UpAcciones.Update()
|
|
UpGvCargaDatos.Update()
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
#Region "DESCARGA EXCEL"
|
|
|
|
Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
|
|
Imprimir("Excel")
|
|
End Sub
|
|
|
|
Private Sub ColoresCabeceraGrid()
|
|
|
|
|
|
|
|
|
|
Dim countColumnas As Integer = 0
|
|
For Each gvColumn As DataControlField In GvDatos.Columns
|
|
|
|
If countColumnas <= 27 Then
|
|
GvDatos.Columns(countColumnas).HeaderStyle.BackColor = color_green_dark
|
|
End If
|
|
|
|
If countColumnas > 27 And countColumnas <= 45 Then
|
|
GvDatos.Columns(countColumnas).HeaderStyle.BackColor = color_purple_intense
|
|
End If
|
|
|
|
If countColumnas > 45 And countColumnas <= 47 Then
|
|
GvDatos.Columns(countColumnas).HeaderStyle.BackColor = color_blue
|
|
End If
|
|
|
|
If countColumnas > 47 And countColumnas <= 105 Then
|
|
GvDatos.Columns(countColumnas).HeaderStyle.BackColor = color_blue_madison
|
|
End If
|
|
|
|
If countColumnas > 105 And countColumnas <= 124 Then
|
|
GvDatos.Columns(countColumnas).HeaderStyle.BackColor = color_yellow
|
|
End If
|
|
countColumnas = countColumnas + 1
|
|
Next
|
|
|
|
End Sub
|
|
|
|
Private Sub Imprimir(Optional reporte As String = "PDF")
|
|
ColoresCabeceraGrid()
|
|
|
|
Dim row As New GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal)
|
|
Dim cell As New TableHeaderCell()
|
|
cell.Text = "ANEXO 1 INFORMACION DEL EMPLEADO ->"
|
|
cell.ColumnSpan = 28
|
|
cell.HorizontalAlign = HorizontalAlign.Left
|
|
'cell.BackColor = Drawing.Color.FromArgb(77, 179, 162)
|
|
cell.BackColor = color_green_dark
|
|
row.Controls.Add(cell)
|
|
|
|
|
|
|
|
cell = New TableHeaderCell()
|
|
cell.ColumnSpan = 18
|
|
cell.Text = "ANEXO 1 PAGOS POR SEPARACION ->"
|
|
cell.HorizontalAlign = HorizontalAlign.Left
|
|
cell.BackColor = color_purple_intense
|
|
row.Controls.Add(cell)
|
|
|
|
|
|
cell = New TableHeaderCell()
|
|
cell.ColumnSpan = 2
|
|
cell.Text = " ANEXO 1 ASIM SAL-> "
|
|
cell.HorizontalAlign = HorizontalAlign.Left
|
|
cell.BackColor = color_blue
|
|
row.Controls.Add(cell)
|
|
|
|
|
|
cell = New TableHeaderCell()
|
|
cell.ColumnSpan = 58
|
|
cell.Text = "ANEXO 1 PAGOS DEL PATRÓN EFECTUADOS A SUS TRABAJADORES ->"
|
|
cell.HorizontalAlign = HorizontalAlign.Left
|
|
cell.BackColor = color_blue_madison
|
|
row.Controls.Add(cell)
|
|
|
|
cell = New TableHeaderCell()
|
|
cell.ColumnSpan = 19
|
|
cell.Text = "ANEXO 1 IMPUESTO SOBRE LA RENTA (RESUMEN) ->"
|
|
cell.HorizontalAlign = HorizontalAlign.Left
|
|
cell.BackColor = color_yellow
|
|
row.Controls.Add(cell)
|
|
|
|
'row.BackColor = ColorTranslator.FromHtml("#3AC0F2")
|
|
GvDatos.HeaderRow.Parent.Controls.AddAt(0, row)
|
|
|
|
|
|
|
|
ExportToExcelGembox(GvDatos, "RepPersonalDIM", UsuarioActual, "Reporte Personal DIM", "", DatosFiltros:=$"Ejercicio {DdlEjercicio.SelectedItem.Text}")
|
|
End Sub
|
|
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
|
|
End Sub
|
|
|
|
Protected Sub LnkDescargaArchivo_Click(ByVal sender As Object, ByVal e As EventArgs) Handles LnkDescargaArchivo.Click
|
|
|
|
|
|
Dim contenidoBytes As Byte() = Encoding.UTF8.GetBytes(ConvertirGVATexto())
|
|
|
|
Using memoryStream As New MemoryStream(contenidoBytes)
|
|
Response.Clear()
|
|
Response.ContentType = "text/plain"
|
|
Response.AddHeader("Content-Disposition", $"attachment; filename=RepPersonalDIM{DdlEjercicio.SelectedItem.Text}.txt")
|
|
memoryStream.WriteTo(Response.OutputStream)
|
|
End Using
|
|
|
|
Response.End()
|
|
|
|
End Sub
|
|
|
|
Public Function ConvertirGVATexto() As String
|
|
|
|
Dim sb As New StringBuilder
|
|
|
|
Dim countRows As Integer = 1
|
|
For Each GvRow As GridViewRow In GvDatos.Rows
|
|
|
|
If Not countRows = 1 Then
|
|
For Each cell As TableCell In GvRow.Cells
|
|
For Each control As Control In cell.Controls
|
|
If TypeOf control Is Label Then
|
|
Dim label As Label = DirectCast(control, Label)
|
|
sb.Append($"{label.Text.Trim.Replace("True", "1").Replace("False", "0")}|")
|
|
End If
|
|
Next
|
|
Next
|
|
sb.AppendLine()
|
|
End If
|
|
countRows = countRows + 1
|
|
Next
|
|
Return sb.ToString
|
|
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
Protected Sub GvDatos_DataBound(sender As Object, e As EventArgs)
|
|
|
|
|
|
ColoresCabeceraGrid()
|
|
|
|
Dim row As New GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal)
|
|
Dim cell As New TableHeaderCell()
|
|
cell.Text = "ANEXO 1 INFORMACION DEL EMPLEADO ->"
|
|
cell.ColumnSpan = 28
|
|
cell.HorizontalAlign = HorizontalAlign.Left
|
|
'cell.BackColor = Drawing.Color.FromArgb(77, 179, 162)
|
|
cell.BackColor = color_green_dark
|
|
row.Controls.Add(cell)
|
|
|
|
|
|
|
|
cell = New TableHeaderCell()
|
|
cell.ColumnSpan = 18
|
|
cell.Text = "ANEXO 1 PAGOS POR SEPARACION ->"
|
|
cell.HorizontalAlign = HorizontalAlign.Left
|
|
cell.BackColor = color_purple_intense
|
|
row.Controls.Add(cell)
|
|
|
|
|
|
cell = New TableHeaderCell()
|
|
cell.ColumnSpan = 2
|
|
cell.Text = " ANEXO 1 ASIM SAL-> "
|
|
cell.HorizontalAlign = HorizontalAlign.Left
|
|
cell.BackColor = color_blue
|
|
row.Controls.Add(cell)
|
|
|
|
|
|
cell = New TableHeaderCell()
|
|
cell.ColumnSpan = 58
|
|
cell.Text = "ANEXO 1 PAGOS DEL PATRÓN EFECTUADOS A SUS TRABAJADORES ->"
|
|
cell.HorizontalAlign = HorizontalAlign.Left
|
|
cell.BackColor = color_blue_madison
|
|
row.Controls.Add(cell)
|
|
|
|
cell = New TableHeaderCell()
|
|
cell.ColumnSpan = 19
|
|
cell.Text = "ANEXO 1 IMPUESTO SOBRE LA RENTA (RESUMEN) ->"
|
|
cell.HorizontalAlign = HorizontalAlign.Left
|
|
cell.BackColor = color_yellow
|
|
row.Controls.Add(cell)
|
|
'row.BackColor = ColorTranslator.FromHtml("#3AC0F2")
|
|
GvDatos.HeaderRow.Parent.Controls.AddAt(0, row)
|
|
|
|
|
|
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
|
|
|
|
|
|
'worksheet.Rows(TotalRowHeader).Cells.GetSubrange("A8:AB9").Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(61, 74, 26), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
|
|
|
'worksheet.Rows(TotalRowHeader).Cells.GetSubrange("AC8:AT9").Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(216, 191, 216), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
|
|
|
'worksheet.Rows(TotalRowHeader).Cells.GetSubrange("AU8:AV9").Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(59, 131, 189), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
|
|
|
'worksheet.Rows(TotalRowHeader).Cells.GetSubrange("AW8:DB9").Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(216, 191, 216), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
|
|
|
'worksheet.Rows(TotalRowHeader).Cells.GetSubrange("DC8:DS9").Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 140, 64), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
|
|
|
|
|
worksheet.Cells.GetSubrange("A8:AB9").Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(77, 179, 162), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
|
|
|
worksheet.Cells.GetSubrange("AC8:AT9").Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(135, 117, 167), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
|
|
|
worksheet.Cells.GetSubrange("AU8:AV9").Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(53, 152, 220), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
|
|
|
worksheet.Cells.GetSubrange("AW8:DB9").Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(87, 142, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
|
|
|
worksheet.Cells.GetSubrange("DC8:DU9").Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(196, 159, 71), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
|
|
|
worksheet.Cells("DC8").Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 140, 64), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
|
|
|
|
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.Left
|
|
worksheet.Rows(TotalRowHeader).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Bottom
|
|
|
|
'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(0, 0, 0)
|
|
|
|
|
|
worksheet.Rows(TotalRowHeader + 1).Cells(i).Style.Font.Size = 12 * 20
|
|
worksheet.Rows(TotalRowHeader + 1).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
|
|
worksheet.Rows(TotalRowHeader + 1).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Bottom
|
|
|
|
' worksheet.Rows(TotalRowHeader + 1).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 + 1).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(0, 0, 0)
|
|
|
|
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 = NowADS().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
|
|
|
|
|
|
worksheet.Columns(0).Width = 4000
|
|
worksheet.Columns(1).Width = 4000
|
|
worksheet.Columns(2).Width = 5500
|
|
worksheet.Columns(3).Width = 10000
|
|
worksheet.Columns(4).Width = 5000
|
|
worksheet.Columns(5).Width = 5000
|
|
worksheet.Columns(6).Width = 10000
|
|
worksheet.Columns(7).Width = 5000
|
|
|
|
For I = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
|
|
If I > 7 Then
|
|
worksheet.Columns(I).Width = 4500
|
|
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
|
|
Dim indexRowGV As Integer = 0
|
|
Dim cssClassRow As String = ""
|
|
|
|
Dim CountRowFiltros As Integer = -1
|
|
If DatosFiltros.Trim.Length > 0 Then
|
|
CountRowFiltros = 0
|
|
End If
|
|
|
|
For indexRow = 8 To worksheet.Rows.Count - 4
|
|
|
|
Try
|
|
cssClassRow = GridView.Rows(indexRowGV).CssClass.Trim()
|
|
|
|
Select Case cssClassRow
|
|
|
|
Case "Totales"
|
|
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(System.Drawing.ColorTranslator.FromHtml("#67809f"))
|
|
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Weight = 1000
|
|
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Color = System.Drawing.ColorTranslator.FromHtml("#ddd")
|
|
Exit Select
|
|
Case "SubTotales2"
|
|
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(System.Drawing.ColorTranslator.FromHtml("#c0c0c0"))
|
|
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Weight = 1000
|
|
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Color = System.Drawing.ColorTranslator.FromHtml("#000077")
|
|
Exit Select
|
|
Case "SubTotales"
|
|
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(System.Drawing.ColorTranslator.FromHtml("#dddddd"))
|
|
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Weight = 1000
|
|
worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Color = System.Drawing.ColorTranslator.FromHtml("#67809F")
|
|
Exit Select
|
|
Case Else
|
|
Exit Select
|
|
End Select
|
|
|
|
Catch ex As Exception
|
|
End Try
|
|
|
|
indexRowGV += 1
|
|
Next
|
|
|
|
|
|
|
|
End If
|
|
|
|
excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx")
|
|
|
|
|
|
End Sub
|
|
End Class
|
|
|
|
Friend Class GridViewColumn
|
|
End Class
|