Power Builder - este es mi ejemplo colega ayuda porfa

   
Vista:

este es mi ejemplo colega ayuda porfa

Publicado por francisco (97 intervenciones) el 07/08/2013 01:56:35
bueno gracias por ayudarme tengo dos pregunta que hacerles


1.- como genero la boleta de agua si tiene campo con valores en 0 y mayores que 0

me explico yo tengo una tabla_consumes tengo los sgtes campos

codigosiocio,n_boleta,valmes,subsidio,multas,otros, necesito al hacer el reporte, me salga los campos mayores que 0 en la boleta a imprimir, ej. si la multa es 0 no aparece en el report de la boleta del socio si, subsidio es mayor que cero de aparecer , bueno debo hacer una dw con esto para que salgan todos en el reporte, o ir llenando la dw con valores mayor que 0,

ejemplo
valor mes 6000 este campo es fijo
multa 1000 este campo no es fijo puede que aparesca si o no en el reporte
otros 500 este campo no es fijo pueder terner valor o no


2.-necesito que se impiman las boletas segun n_noleta_desde a n_boleta_hasta
no se como hacerlo lo hago pero al imprimir solo me imprime una, debo imprimirla con la opcion page, como pagina osea page desde el nº 1-20

como hago esto

espero que ayudes gracias

Francisco
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

este es mi ejemplo colega ayuda porfa

Publicado por Alex (1 intervención) el 08/08/2013 18:18:11
Hola, para que los campos multa no aparezca si está en cero, en el datawindow painter tienes que hacer click sobre la columna multa y luego en las propiedades (sección Properties) buscas el atributo "Visible", que por defecto viene habilitado con un tilde. Al lado de eso hay un botón muy pequeño con un signo igual tachado, haces click ahí, aparece el editor de expresiones y ahí tipeas la siguiente expresión:
IF(multa<=0, 0, 1)
Esta expresión retornará 1 si el campo es mayor que cero ó 0 en caso contrario, haciendo que el campo solo quede visible si el contenido es mayor que 0.

Sobre el segundo punto, bueno hay varias maneras de hacerlo, depende como haz construido la datawindow.
Una manera sería poner el rango en el select del datawindow, por ej:

1
2
3
SELECT codigosiocio, n_boleta, valmes, subsidio, multas, otros
FROM tabla_consumes
WHERE (n_boleta >=  :n_nboleta_desde) AND (n_boleta <= :n_boleta_hasta);


al momento de hacer el retrieve le pasas los valores desde y hasta, por ej:
dw_1.Retrieve(ll_desde, ll_hasta)

Otra manera sería hacer el select anterior pero sin el WHERE de modo que lea todas las boletas y luego creas un filtro luego de hacer el retrieve, en el código, por ej, suponiendo que el rango a imprimir está en las variables de tipo Long ll_Desde y ll_Hasta:

1
2
3
4
5
6
// Lee la tabla
dw_1.Retrieve()
// Arma el filtro
dw_1.SetFilter( "n_boleta >= " + String(ll_Desde) + " AND n_boleta <= " + String(ll_Hasta))
// Aplica el filtro
dw_1.Filter()
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 Mario Amaya

este es mi ejemplo colega ayuda porfa

Publicado por Mario Amaya mario.amaya.v@gmail.com (27 intervenciones) el 13/08/2013 06:38:09
Tal como menciona Alex al inicio de su comentario, puedes hacer visibles o no los campos, inclusos las descripciones con ese método, En cuanto al retrieve, hacerlo mandando los valores del filtro como parámetros, en mi caso yo haria en el where un filtro mas

AND valor_mes >= o // No valores negativos
AND multa >= o // No valores negativos
AND otros >= 0 /No valores negativos - a menos que otros pueda ser algun tipo de descuento
AND valor_mes + multa + otros > 0
// y por supuesto el filtro del rango
AND n_boleta >= :n_nboleta_desde
AND n_boleta <= :n_boleta_hasta

Con esto tendrias todas las boletas con algún valor valido y en el rango que tu deseas.

Cualquier duda, estoy a tu disposición.

Saludos desde El Salvador
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