Problema con Datawindow tipo Grupo

Tengo mi base de Datos en Oracle 8.1.7 y trabajo con PB 8
genero una DW de Tipo Group(grupo)
¿Cuándo la recupero (retrieve) me devuelve correctamente los datos en mi dw. Pero cuándo hago un sort me desordena todo y solo me respeta el orden que le pido pero me desordena y me cambia lo que ya tenuia agrupado
hazta me muestra datos de un cliente que no corresponden a dicho cliente
que puedo hacer? ¿O estoy creando mal la dw?

1 Respuesta

Respuesta
1
Power builder algunas veces no puede hacer una ordenación de datos y reestructuración de totales y agrupaciones al mismo tiempo, para este fin, power builder utiliza una función en su datawindow llamada GROUPCALC(), esta función tiene la finalidad de recalcular los totales por grupo e igualmente reagrupar los datos según el concepto de agrupación.
Igualmente cuando solicitas la ejecución de la función SORT() podrías utilizar la función SETREDRAW(), esta función activa o desactiva al control de refresh del video, la idea es que cuando detienes el refresco del video, el sistema tiende a ejecutar la instrucción más rapido, pues ya no tiene que cargar y pintar en pantalla, sino que ahora solo carga y cuando termina de cargar o reformar tus datos, vuelves a poner el refresco de video en on.
Un ejemplo.
dw_emp.SetRedraw(false)
dw_emp.SetSort("1A")
dw_emp.Sort()
dw_emp.GroupCalc()
dw_emp.SetRedraw(true)
Como te darás cuenta en el script anterior, esta indicada la función SetRedraw(), al principio y al final de dicho script, esto implica que lo primero que hace es detener el refresco de video, luego determina el concepto de ordenación por medio de la función SetSort(), esta función no sera necesaria en caso que tu ordenación siempre sea la misma, una vez definido el concepto de agrupación es ejecutada la función SORT(), la cual efectúa la ordenación de los datos en el datawindow, y para finalizar la invocación de la función GROUPCALC(), la cual reorganiza los grupos, cálculos y totales por agrupación.
Finalmente restaura el refresco de video con SETREDRAW(TRUE)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas