Power Builder - Reporte en PB

 
Vista:

Reporte en PB

Publicado por Pepe (13 intervenciones) el 27/08/2003 18:27:11
Necesito hacer un reporte resumido al mes actual.
Ejemplo
Como estamos en agosto necesito que me muestre una columna por cada mes (De Enero hasta Agosto) pero si estuvieramos en mayo me deberia mostrar las columnas nada mas de Enero a Mayo.
Alguien con alguna idea de como realizar este tipo de reporte????

Gracias
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

RE:Reporte en PB

Publicado por VICKY RAQUEL (42 intervenciones) el 27/08/2003 19:00:36
Holass has probado haciendolo con datawindows crosstab
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

RE:Reporte en PB

Publicado por Ricardo (1957 intervenciones) el 27/08/2003 19:12:05
Hola:

Talvez te sirva utilizar dos computes para indicar en uno el mes de la primera fecha y en el segundo el mes de la ultima fecha, claro estos deberan ser enviados como argumentos al DW.

asi bien:

Argumentos:
fecha_ini
fecha_fin

Computes
1.- month(fecha_ini)
2.- month(fecha_fin)

// Puedes crear una funcion para que de una vez te devuelva el nombre del mes.

Suerte!
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

RE:Reporte en PB

Publicado por Oscar (1178 intervenciones) el 28/08/2003 01:03:48
1. Creas un DW, tipo Grid o Tabular, cada columna representa al mes.
2. Si quieres obtener la suma de cada columna, en tu objeto DW, en la banda Summary insertá un Computed Field debajo de cada columna. Si son 8 meses, insertá 8. La expresión de cada computed field es:
sum(enero)

Del otro es:
sum(febrero)
etc.
3. En la misma banda Summary (debajo de los computed field), insertá otro computed field (preferiblemente a la izquierda y debajo de la primera columna). Este computed, mostrará la suma HASTA el mes actual. En expresión escribes:

if(month(today())=1,sum(enero),
if(month(today())=2,sum(enero+febrero),
if(month(today())=3,sum(enero+febrero+marzo),
if(month(today())=4,sum(enero+febrero+marzo+abril),
if(month(today())=5,sum(enero+febrero+marzo+abril+mayo),
if(month(today())=6,sum(enero+febrero+marzo+abril+mayo+junio),
if(month(today())=7,sum(enero+febrero+marzo+abril+mayo+junio+julio),
sum(enero+febrero+marzo+abril+mayo+junio+julio+agosto))))))))

Nota: Para no confundirte (es fácil hacerlo), te aconsejo que escribas esta expresión en el Bloc de notas. Luego total lo copias. De esa manera tienes una visión amplia de lo que estás haciendo. Además, observá que en el último mes (agosto), ya no se usa If, porque llega a ser el ELSE de la expresión. Cierras la expresión con tantos paréntesis como IF hayas utilizado.
(continua...)
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

RE:Reporte en PB (continuación..)

Publicado por Oscar (1178 intervenciones) el 28/08/2003 01:06:15
(continuación...)
4. Ahora para mostrar sólo las columnas de los meses antes e igual al actual. En el evento open de la ventana, escribes:

Integer li_Mes
li_Mes=Month(Today())

Choose Case li_Mes

Case 1 //Visible sólo enero
dw_1.Modify('enero.visible=1')
dw_1.Modify('febrero.visible=0')
dw_1.Modify('marzo.visible=0')
dw_1.Modify('abril.visible=0')
dw_1.Modify('mayo.visible=0')
dw_1.Modify('junio.visible=0')
dw_1.Modify('julio.visible=0')
dw_1.Modify('agosto.visible=0')

Case 2 //Visible enero y febrero
dw_1.Modify('enero.visible=1')
dw_1.Modify('febrero.visible=1')
dw_1.Modify('marzo.visible=0')
dw_1.Modify('abril.visible=0')
dw_1.Modify('mayo.visible=0')
dw_1.Modify('junio.visible=0')
dw_1.Modify('julio.visible=0')
dw_1.Modify('agosto.visible=0')

Case 3//Y así sucesiavemente
.....
End Choose

Nota: Yo sé éste código es feo y largo; pero funciona y tienes una visión global para realizar un mantenimiento futuro... (valga el eufemismo, a manera de disculpa :-)
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