Rep Personal DIM ajuestecolumnas
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -100,10 +100,8 @@ Partial Class Nomina_RepPersonalDIM
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub Imprimir(Optional reporte As String = "PDF")
|
Private Sub Imprimir(Optional reporte As String = "PDF")
|
||||||
GvDatos.ExportToExcelGembox("RepPersonalDIM", UsuarioActual, "Reporte Personal ", "", DatosFiltros:=$"Ejercicio {DdlEjercicio.SelectedItem.Text}")
|
ExportToExcelGembox(GvDatos, "RepPersonalDIM", UsuarioActual, "Reporte Personal DIM", "", DatosFiltros:=$"Ejercicio {DdlEjercicio.SelectedItem.Text}")
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
|
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -179,11 +177,11 @@ Partial Class Nomina_RepPersonalDIM
|
|||||||
row.Controls.Add(cell)
|
row.Controls.Add(cell)
|
||||||
|
|
||||||
|
|
||||||
'cell = New TableHeaderCell()
|
cell = New TableHeaderCell()
|
||||||
'cell.ColumnSpan = 2
|
cell.ColumnSpan = 2
|
||||||
'cell.Text = " ANEXO 1 ASIM SAL-> "
|
cell.Text = " ANEXO 1 ASIM SAL-> "
|
||||||
'cell.HorizontalAlign = HorizontalAlign.Left
|
cell.HorizontalAlign = HorizontalAlign.Left
|
||||||
'row.Controls.Add(cell)
|
row.Controls.Add(cell)
|
||||||
|
|
||||||
|
|
||||||
cell = New TableHeaderCell()
|
cell = New TableHeaderCell()
|
||||||
@@ -202,5 +200,246 @@ Partial Class Nomina_RepPersonalDIM
|
|||||||
GvDatos.HeaderRow.Parent.Controls.AddAt(0, row)
|
GvDatos.HeaderRow.Parent.Controls.AddAt(0, row)
|
||||||
|
|
||||||
End Sub
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
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
|
End Class
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user