Power Builder - Reporte sintetizado DW

   
Vista:

Reporte sintetizado DW

Publicado por francisco (206 intervenciones) el 18/09/2012 17:37:19
Hola foristas, tengo una pregunta :

En una tabla estoy almacenando mensualmente un aproximado de 1450 registros, relacionados a los premisos, vacaciones, fechas desde cuando se iniciaron en el trabajo o descansos medicos que le dan y no trabajan (de 4 o 8 dias); todos ellos estan identificados por código del trabajador y por la fecha del mes en curso.

Cuento con 3900 empleados aproximadamente y no todos tienen descuentos, como se podran dar cuenta por la cantidad de personal que les indico y la cantidad de movimientos que ellos tienen.

Espero ser claro en esto:

Deseo crear un DW que me permita hacer lo siguiente pero bien.

En un DW, filtrarlos por la fecha del mes, sumarles todos sus movimientos pero del mes (no de todo) y que en un campo X me entregue todos estos descuentos del "MES" solicitado mas no de los otros o de todos.

Ya he creado un DW Group, he relacionado las 2 tablas ( "Personal" y Movimientos") por su código, luego los filtro grupo de fecha del mes que deseo (he aqui el error, filtra una tabla pero la otra no,
Si lo realizo por ta tabla movimientos me filtra todos sus movimientos y siempre omite registros o suma demas en este tipo de DW, es decir la información no me la da como deseo.

Como es que puedo hacerlo pero bien y eso para poderle hacerle los decuentos correspondientes ya que si no les descuento sus dias ellos se van en coche y a mi me lo van a descontar, me quedare misio y no me quedara ni pal te. jajajaja

Gracias compañeros espero ser cvlaro en esto.

Hay cositas que ignoro en este programa pero de que es bueno si es bueno, solo hay que conocer detalles que aveces uno ignora.

Gracias por su cpomprensión y ayuda mutua.

Espero respuesta

Atte. Juan F.
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

Reporte sintetizado DW

Publicado por Manu (6 intervenciones) el 19/09/2012 17:55:35
Hola Francisco,
creo que lo que necesitas es crear una columna nueva en la sentencia SQL, del campo fecha con formato "yyyymm", quitando el dia y luego hacer el group by por dicha columna.
No se muy bien si es eso, de todas formas muestranos la sentencia SQL que estas utilizando y la base de datos que utilizas.

Un saludo.
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

Reporte sintetizado DW

Publicado por francisco (206 intervenciones) el 20/09/2012 00:58:57
Hola si con mucho gusto.iendo este codigo:
Mira en el boton para consultar por fecha (cb_fecha) estoy poniendo este codigo:

dw_123.SetFilter("string(movimientos_fecha_actual,'dd/mm/yy') = '" + em_3.text + "'")
dw_123.Filter()
st_total.text=string(dw_123.RowCount())

//em_3, es el nombre del editmask donde pongo la fecha de la quincena a filtrar


y en este boton (cd_calcular) pongo este codigo:

double can, pre
double res
Long fila

dw_123.AcceptText()
For fila = 1 to dw_123.RowCount( )
can = dw_123.object.compute_14[ fila ]
If IsNull(can) Then can = 0 // Un porsiacaso verificar si es nulo
res = can
dw_123.Object.movimientos_cont_final[ fila ] = res
Next

Esto es para que le asigne al campo computado la sumatoria de cada uno de los trabajadores que va encontrando con descuentos.

El porceso de asignarle los valores lo hace bien, pero en el momento que busca los registros de la fecha que le solicito a algunois les pone bien y a otros les quita o les pone muchos dias, haciendolo al dw inexacto en la información que arroja.

Gracias por tu respuesta Manu.

Aclarame que es lo que puedo mejorar para que lo haga bien ya que mensualmente existen mas de 1000 movimientos que algunas personas realizan y otras que no.
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

Reporte sintetizado DW

Publicado por JeinnerH jhidalgo@excelteccr.com (638 intervenciones) el 20/09/2012 19:43:38
Hola Franciso. Creo que estás haciendo mal la consulta, Ya que no es tan eficiente traer todos los datos y filtrarlos, como filtrar los datos desde la consulta, es decir desde el SQL del DW.

Lo que debieras hacer es algo como esto en el SQL:
Select Sum(Monto),
Cod_Usuario
From Tabla
Where Fecha Between :adt_Fecha_Ini and :adt_Fecha_Fin
Group by Cod_Usuario

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

Reporte sintetizado DW

Publicado por francisco (206 intervenciones) el 21/09/2012 16:27:33
Ok Jheineer voy a probar de otra forma

Gracias por tu respuesta.
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