Servicios Profesionales (consultoras que apoyan el proyecto Mundo Support GX)

Para informarse sobre las soluciones y servicios en:
 - Genexus Software Factory.
 - Búsqueda, Selección & Outsourcing de RRHH.
 - Gerenciamiento externo de Proyectos.
 - Asistencia técnica.
 - Software ERP.

Click Aquí o escriba a mundosupport@gmail.com.

         
             

Bienvenido a Mundo Support

Te damos la bienvenida a Mundo Support GX!!!!!

Como usuario visitante podrás consultar libremente los artículos y comentarios publicados; además de escribir comentarios que aporten y enriquezcan a los artículos.

Si deseas redactar artículos, entradas o consultas te invitamos a que nos escribas a mundosupport@gmail.com y recibirás un correo invitándote a ser redactor contribuyente.

Gracias y esperamos contribuir en tu camino por el mundo Genexus y la programación.



lunes, 6 de octubre de 2008

XLS.Varios - Ampliar funciones en creación de documentos excel

Se desea generar documentos excel con mayores detalles de look y funcionalidad desde Genexus.

Algunos de los requerimientos son: colorear celdas, definir bordes de las celdas, insertar filas, insertar fórmulas....

Dado que las funciones propias de Genexus no lo permiten, una alternativa para lograrlo, es incluir macros que realicen las funciones deseadas e invocarlas pasándo los parámetros necesarios, ej:

&ExcelDocument.RunMacro( 'InsertarFila',2 )
&ExcelDocument.RunMacro( 'ColoresCelda',2,5,2 )

Etc...


Este es el código fuente del modulo Visual Basic del archivo excel del cual se invocarán las macros.

Sub InsertarFila(Fila As Integer)
Row = Trim(Str(Fila)) + ":" + Trim(Str(Fila))
Rows(Row).Select
Selection.Insert Shift:=xlDown, copyOrigin:=xlFormatFromRightOrBelow
End Sub


Sub ColoresCelda(RangoCeldas As String, ColorFondo As Integer, ColorTexto As Integer)

' FormatoCelda Macro

'Selecciono Celda
Range(RangoCeldas).Select
'Color Fondo
With Selection.Interior
.ColorIndex = ColorFondo
.Pattern = xlSolid
End With

'Color Texto
Selection.Font.ColorIndex = ColorTexto
End Sub

Sub BordesCelda(RangoCeldas As String, TipoBorde As Integer)


If TipoBorde = 0 Then

'Bordes transparentes
Range(RangoCeldas).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

End If


If TipoBorde = 1 Then

'Bordes linea Fina
Range(RangoCeldas).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

End If

If TipoBorde = 2 Then

'Bordes linea gruesa
Range(RangoCeldas).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With

End If
End Sub

Sub BorrarFila(Fila As Integer)
Row = Trim(Str(Fila)) + ":" + Trim(Str(Fila))
Rows(Row).Select
Selection.Delete
End Sub

XLS.Varios - Insertar fórmula en una celda al generar archivo excel

Para insertar un fórmula en una celda de un archivo excel generado con Genexus utilizar la siguiente sentencia:

&ExcelDocument.Cells(1,5).Text = '=IF(C1>10,1,2)'

Criterio:
- Poner la instrucción en Inglés.
- Poner comas en lugar de punto y comas para separar.

Que opinás del material expuesto en el Blog?