Con respecto a la pregunta de como hacer el reporteador, te explico el detalle, lo que se requiere es que se presente una ventana en la cual se presente columnas, que el cliente pueda seleccionar para que se presente un reporte con lo seleccionado y ademas se le pueda pasar con argumentos que capturara el cliente, ejemplo Tengo una tabla con varias columnas, rfc, dependencia, nombre
Sueldo Etc. Si selecciona por el ejemplo el rfc dependencia y sueldo y en la columna de dependencia solamente quiere la numero 4, en el reporte solamente presente las columnas seleccionados con la dependencia 4, no se si esta un poco más explicito...
1 respuesta
Respuesta de Antonio Garcia
1
1
Antonio Garcia, clipper todas sus versiones (manejo total) power builder todas...
Por lo que veo en tu segundo planteamiento, la propuesta que te hice en la respuesta anterior creo que va bien enfocada, a mi parecer resuelve el 50% del problema, solo queda entonces añadir un grupo más de columnas que contengan los datos que funcionarían como una especia de filtro. Entonces no solo quedarían visibles las columnas que se encuentren marcadas en la ventana de filtro. Sino que igual depende el reporte de los datos incluidos dentro de la columna adicional, por ejemplo. Imagina que tengo una tabla que contiene los datos de un cliente. Código, nombre, dirección, tipo Esta tabla se encuentra relacionada con un datawindow, el cual presenta un reporte en pantalla de todos los clientes existentes. Por otro lado tengo un datawindow adicional en la misma pantalla. En la cual aparecen Código de cliente, nombre, dirección, tipo, cada uno de estos con un check box, y cada uno de estos relacionado con un edit que permite integrar un dato. El valor que sea integrado en dicho edit, ejercerá un efecto inmediato en la presentación de los datos del datawindow donde están los clietes, al igual que la selección del check box, correspondiente. Por un lado el check box, coloca en visible o invisible la columna en cuestión. Y por el otro lado el edit relacionado con el, recibe un valor el cual afecta directamente en la selección de los datos. Para que el reporte en cuestión obtenga el efecto necesario, colocas un botón adicional que ejecuta una recarga de datos en función de los escrito en los edit. Se me ocurre por ejemplo que un valor vacío en un edit, puede significar que no forma parte de la condición para descriminar las tuplas de la tabla. De lo contrario filtra o limita dichas tuplas. El datawindow contiene una función que devuelve el valor del script query que contiene la ventana. dw_1. Describe('DataWindow. Table. Select') Por otro lado existe una función que modifica dicho select dw_1.sqlvar = 'SELECT ... WHERE ...' string sqlvar sqlvar = 'select .... where ....' dw_1.Modify("DataWindow.Table.Select='" + sqlvar + "'") Como podrás ver en el ejemplo, la variable sqlvar, contendrá un nuevo select el vual deberá respectar las columnas originales seleccionadas, pero la instrucción where variará según los datos integrados en la ventana que podríamos llamar filtro. Cada vez que presionas el botón para refrescar los datos. Es reconfigurado el select interno del datawindow del reporte y ejecutada la función retrieve(). El resto lo hace el datawindow. Y para imprimir simplemente dw_1. Print().
Ok, solamente tengo una pregunta el colocar en visible o invisible se hace por código o automáticamente al seleccionar la columna... ¿Y disculpa la ignorancia que es tupla? Gracias...
Perdón... Bien el colocar visible o invisible la propiedad es por medio de código. Mi recomendación es que busques información en la ayuda en linea de power builder, con referencia a las funciones DESCRIBE() y MODIFY(), Con estas funciones modificas valores, datos, propiedades, etc. del datawindow object. Por ejemplo colocar visible o invisible la columna código es una cosa así. dw_1.Modify("codigo.Visible=0") //--> esta instruccion coloca en falso la propiedad visible y apaga la columna Y por ultimo la palabra tupla Refiere a una estructura de datos conocida como registro de una tabla agdsys