GeneXus - FORMULA PARA OPERAR EN WORK PANEL

 
Vista:
Imágen de perfil de FERNANDO

FORMULA PARA OPERAR EN WORK PANEL

Publicado por FERNANDO (39 intervenciones) el 13/06/2014 03:18:12
HOLA AMIGOS DE GENEXUS ....

LES CUENTO MI PROBLEMA:
DESARROLLO EN GENEXUS 9, SQL SERVER 2008, .NET, AMBIENTE WINDOWS Y OFFICE 2010.

TENGO UN WORK PANEL DE CONSULTA DONDE INGRESO UNA FECHA Y EN UNA GRILLA ME ARROJA LA INFORMACION DE LAS PERSONA QUE COMPRARON EN EL LOCAL CON SUS TOTALES DE COMPRA.

LO QUE NECESITO IMPLEMENTAR ES DEBAJO DEL GRID UNA VARIABLE QUE ME SUME TODOS LOS TOTALES DE LAS COMPRAS DE LOS CLIENTES EN DETERMINADA FECHA.

DEPUES DE HACER EL CALCULO NECESITO EXPORTAR TODA ESTA INFORMACION EXPUESTA EN EL WORK PANEL A EXCEL 2010.

OJALA PUEDAN COOPERAR CON MI PEQUEÑO SISTEMA.

AQUI LE ENVIO UN PANTALLAZO CON LO QUE QUIERO INPLEMENTAR.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Maycoll
Val: 101
Oro
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

FORMULA PARA OPERAR EN WORK PANEL

Publicado por Maycoll (80 intervenciones) el 13/06/2014 15:38:09
Hola Fernando, cómo estás?

Veo que el grid tiene atributos, por lo tanto el work panel tiene tabla base, para que la variable &TOTALCOMPRA te sum todos los improtes, en el evento Load, deberás incrementar la variable sumandole el total de cada registro
Agrega la siguiente línea en el load, despues de cargar la variable &TOTAL.

&TOTALCOMPRA += &TOTAL
Con esto debería de funcionar.


Seguramente en tu evento load del grid tengas algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Event Grid.Load
       .
       .
       .
        // -- Recordemos inicializar la variable &TOTALCOMPRA para cada registro encontrado
        &TOTALCOMPRA = 0
 
        For Each
                &CANTIDAD = &CANTIDAD + 1
                &TOTAL = ........
 
                &TOTALCOMPRA += &TOTAL
        EndFor
EndEvent


Y para crear un excel, deberás hacer algo así:
Declarar una variable de tipo EXCELDOCUMENT
1
2
3
&ExcelDocument.Open("nombre archivo.xls")
&ExcelDocument.Cells(Fila, columna). text = "Algo"
&ExcelDocument.Close()

Fila y Columna son coordenadas del mapa de celdas que te muestra un excel.
En Excel las columnas son letras, en el método CELLS es numérico siendo:
A = 1
B = 2
C = 3
etc
etc

El método CELLS lo puedes ejecutar todas las veces que quieras antes de cerrar el documento.
Muy importante ejecutar OPEN("File Name") y Close() para que se genere el archivo físico.
Puedes encontrar un poco mas de info en el siguiente link.
http://wiki.genexus.com/commwiki/servlet/hwiki?ExcelDocument+Data+Type,

Cualquier consulta me avisas.
Maycoll Bennett
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de FERNANDO

FORMULA PARA OPERAR EN WORK PANEL

Publicado por FERNANDO (39 intervenciones) el 13/06/2014 19:40:53
Maycoll muchas gracias por tus soluciones...

Te cuento que la primera solucion me funciona perfectamente.

Pero la exportacion a excel me tiene un poco confundido. Me podrias ejjemplificar mas detalladamente
la forma de poder exportar los datos del work panel...


Desde ya muchas gracias por tu ayuda. Estare pendiente a tus respuestas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Maycoll
Val: 101
Oro
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

FORMULA PARA OPERAR EN WORK PANEL

Publicado por Maycoll (80 intervenciones) el 13/06/2014 20:02:44
Fernando.

Para exportar los datos del grid deberás recorrer todas las lineas del grid con un for each line grabando cada valor en la celda deseada, te muestro un ejemplo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Event Grid.Load
   .
   .
   .
EndEvent
 
Event Enter
   &ExcelDocument.Open("FileName.xls")
   &Row = 1   // &Row es de tipo Numeric(5.0)
   For Each Line
      &ExcelDocument.Cells(&Row, 1).Text = Str(CODIGO)
      &ExcelDocument.Cells(&Row, 2).Text = NOMBRE
      &ExcelDocument.Cells(&Row, 3).Text = Str(&CANTIDAD)
      &ExcelDocument.Cells(&Row, 4).Text = Str(&TOTAL)
 
      &Row = &Row + 1
   EndFor
   &ExcelDocument.Close()
EndEvent

Lo que hice en el evento enter fue:
- Abrir un archivo con formato excel (&ExcelDocument.Open())
- Definir una variable de tipo numerica, para ir incrementando la fila del excel donde voy a ir grabando los datos empezando desde la fila 1 (&Row = 1).
- Recorrer todas las filas que tiene el grid (For Each Line)
- Grabar cada dato en diferentes columnas pero siempre en la misma fila
- Antes de terminar la recorrida de cada línea del grid, incremento la fila del excel.
- Luego de que termino de recorrer todas los registros del grid cierro el documento.

Espero haber sido claro.
Toda la lógica la puse en el evento enter, podes ponerla en el evento de cualquier boton.

Contame como te fue.
Maycoll Bennett
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de FERNANDO

FORMULA PARA OPERAR EN WORK PANEL

Publicado por FERNANDO (39 intervenciones) el 13/06/2014 20:45:05
MUCHAS GRACIAS MAYCOLL.

OTRA CONSULTA:

EN ESTA LINEA: &ExcelDocument.Cells(&Row, 4).Text = Str(&TOTAL)....¿QUE SIGNIFICA EL Str?l

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Maycoll
Val: 101
Oro
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

FORMULA PARA OPERAR EN WORK PANEL

Publicado por Maycoll (80 intervenciones) el 13/06/2014 21:08:16
Fernando

La función Str() retorna un número pero con tipo de dato Character.

Maycoll Bennett
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de FERNANDO

FORMULA PARA OPERAR EN WORK PANEL

Publicado por FERNANDO (39 intervenciones) el 20/06/2014 00:38:27
GRACIAS MAYCOLL.

Pero me surgio un problema al copiar el sistema en windows 7 32bits al ejecutar el menu principal me visualiza todo bien. Pero al momento de querer ejecutar un work panel en donde exporto datos a excel me arroja unar error y no puedo ejecutar dicho work panel (le adjunto el error en la primera imagen llamada captura workpanel.png.

Otro problema que me surgio es que todas las transacciones y works panels se visualizan con el fondo negro esto solo ocurre en windows 7. Ya que en windows xp funciona todo perfectamente.

Ojala me pueda ayudar.


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Maycoll
Val: 101
Oro
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

FORMULA PARA OPERAR EN WORK PANEL

Publicado por Maycoll (80 intervenciones) el 21/06/2014 16:57:32
Fernando.

Verifica si en la máquina donde estás ejecutando el programa tiene instalado el mismo Framework con el cual se compilo la aplicación. La misma versión y el mismo service pack.

Espero comentarios.

Maycoll Bennett
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de FERNANDO

FORMULA PARA OPERAR EN WORK PANEL

Publicado por FERNANDO (39 intervenciones) el 21/06/2014 20:52:05
MAYCOLL:
MUCHAS GRACIAS POR TUS RESPUESTAS. CREO MI PROBLEMA PROVENIA DE LOS FRAMEWORKS PORQUE LOS DESINTALE Y VOLVI A INSTALAR DESDE LA VERSION MAS ANTIGUA A LA MAS ACTUAL Y SE SOLUCIONO .

AHORA ME GUSTARIA QUE ME AYUDARAS CON UNA LOGICA QUE NO PUEDO DESARROLLAR, TE EXPLICO;

TENGO UN SISTEMA DE PRESTAMO DE HERRAMIENTAS EN DONDE TENGO LA TRANSACCION PRESTAMO CON LOS SIGUIENTES CAMPOS:

CODPRESTAMO
FECHAPRESTAMO
HORAPRESTAMO
CODTRABAJADOR
TRABNOMBRE
CODHERRAMIENTA
HERRAMIENTA
STOCK
CANTIDADPRESTADA

EN DONDE APLICO LA REGLA SUBTRACT(CANTIDADPRESTADA, STOCK); PARA QUE REBAJE DEL INVENTARIO.

MI PROBLEMA ES COMO CREO LA TRANSACCION PARA PODER DEVOLVER LA HERRAMIENTA PRESTADA.
ESTOY CLARO QUE DEBERIA USAR LA SIGUIENTE REGLA: ADD(CANTIDADDEVUELTA, STOCK); Y CREAR UN TRANSACCION MUY SIMILAR A LA DE PRESTAMO.

PERO COMO PUEDO CONTROLAR EL CASO EN QUE PRESTE 3 SERRUCHOS POR EJEMPLO A UN TRABAJADOR Y EL ME DEVUELVA SOLO 2, COMO PODRIA VISUALIZAR QUE ME QUEDARIA DEBIENDO 1.

OJALA ME PUEDAS AYUDAR. SE ME HACE MUY COMPLICADA LA LOGICA.

DESDE YA MUCHAS GRACIAS AMIGO MAYCOLL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar