Hice un formato para imprimir una factura y lo que quiero es solo imprimir los "single line edit"(sle) que no me imprima lo demás, y como acomodarlo en el lugar que quiero que se imprima(posicionamiento) ya que yo solo meteré una hoja membretaday solo quiero que se impriman los campos que quiero...
1 Respuesta
Respuesta de Antonio Garcia
1
1
Antonio Garcia, clipper todas sus versiones (manejo total) power builder todas...
Quiero entender que lo que necesitas es imprimir solo determinados campos, datos, o cosas de un datawindow, condicionando quien se imprime y quien no. O incluso condicionando en la impresión la intentar de determinado dato. Bien: Primero la condición de imprimir o no. Todos los objetos que maneja el datawindow poseen también propiedades, estas existen de 2 tipos, generales e individuales. Dentro de las generales encontraras una llamada Visible Esta es una propiedad que puede ser configurada en tiempo de programación, o en tiempo de ejecución. Si es en tiempo de programación simplemente colocando o quitando el check en el cuadrito correspondiente se pinta o no. (o en el caso de la impresión, imprime o no). Sin embargo, esta misma propiedad posee una ventaja la cual es la auto-evaluación. Esta variante evalúa una condición, y dependiendo del resultado esta enciende o apaga. Los valores que este tipo de propiedad recibe puede variar entre 0 = encendido 1 = apagado "Y" = encendido "N" = apagado TRUE = encendido FALSE = apagado Si se trata de un valor numérico, 0 puede ser igualmente desbloqueado, y 1 bloqueado. Un ejemplo puede ser el siguiente. Coloquemos 3 campos o columnas en un datawindow, código, nombre, salario Y condicionemos la columna salario, la cual deberá encenderse (o aparecer), siempre y cuando el salario sea menor o igual a $1,000 Entonces en la casilla de visible, en la parte de edición colocare una condiciona más o menos así IF( (salario <= 1000), 1, 0) Esto significa que si es menor o igual a 1000 encienda sino apague En el momento de ejecutar el datawindow, este solo va a pintar en la columna salario todos aquellos que cumplan la condición especificada. Variante: Existe una variante la cual puede ser utilizada para controlar por medio de condiciones externas, estas propiedades, esta variante es una función. La condición principal es que estas funciones deben escritas como publicas. Y por supuesto, por lo menos recibir un argumento y devolver un valor según sea el caso. Por ejemplo. El anterior descrito, pero utilizando una función. FUNCTION fp_eval_salario( dec{2} adc_salario) integer li_return IF (li_return <= 1000) THEN li_return = 1 ELSE li_return = 0 END IF RETURN(li_return) en la propiedad fp_eval_salario(salario) Como ya habrás adivinado, esta es una forma de extender un poco la potencionalidad del datawindow, pues esto mueve el control de las columnas a una condición externa. Las posibilidades son tan extensas como las que se te ocurran, sin embargo, CUIDADO.! Por que puede que se te ocurra utilizar por ejemplo un script con un select, esto puede provocar lentitud, en la presentación del datawindow, pues cada vez que es pintada una linea del datawindow, o posicionado el cursos sobre esta, la o las funciones que se manejan en esta, se activa y evalúan todas, y si esto implica hacer una evaluación de tablas puede que degrade la versatilidad del sistema. Finalizando: Casi todas las propiedades de los objetos que maneja el datawindow, (columnas, etiquetas, lineas, etc. etc) Poseen la virtud de ser condicionadas externamente, estas pueden ser presentadas en 2 formas: En un botón O en un área de escritura directa. Así como la propiedad de visible se puede condicionar, así también puedes condicionar las propiedades como POR Y, ancho, alto, color, font, y muchas más. Siempre recuerda que dependiendo de la propiedad, así deberás retornar el valor. Espero que esto pueda servir para resolver tu problema saludos agdsys