Sitios que en el día a día me parecen interesantes, pero que no tengo tiempo de revisar en el momento, así que los registro en este blog de tal forma que pueda leerlos posteriormente.

viernes, mayo 04, 2007

El soporte para RTF en power podría ser mejor... (parte 7)

Un compañero me mostró en lo que ha estado trabajando al lidiar con controles RTF y la verdad es que me parece una muy buena alternativa. La técnica es como sigue:
  • Se crea un documento RTF (por alguna otra opción) que servirá de plantilla para el reporte que queramos generar posteriormente. Dicha plantilla contendrá el contenido constante (lo que no cambia en cada reporte) y ciertas marcas (o tag's como le suelen decir por ahí). Algo que sea algún identificador único.



  • Luego al momento de generar el reporte, en un control RTF en blanco se carga la plantilla RTF creada previamente (con copyRTF() y todo lo demás).



  • Luego se usan funciones find (rte_1.find()) para "seleccionar" las marcas creadas dentro del RTF y aquí la cosa se pone buena:



  • Se usa entonces un replace vacio para borrar la marca (rte_1.replacetext( "" )) y dejar el cursor posicionado en un sitio específico!.



  • Luego con el mismo replacetext (no estando ya nada seleccionado) se puede comenzar a "insertar texto en control", usando si es el caso funciones de formato de texto.
Ahí está la técnica. Se pueden usar varias marcas (tags), para ubicar el cursor y desde ese punto insertar algún contenido dinámico que se requiera.



Con el control RTF también es posible insertar campos que se puede compartir de un datawindow (o datastore supongo) y con esto se podrían poner campos de la base de datos sin mayor problema.



Eso lo bueno... ahora lo malo... (siempre hay algo malo no?).



Si lo que se va a escribir en el control RTF tiene un formato complejo, como la información de un datawindow por ejemplo entonces la cosa se complica... por la naturaleza dinámica de las cosas. Si lo que se va a generar es estático (no varía, sobre todo en posición), esta técnica serviría para combinar cualesquiera "textos RTF" en un informe determinado, porque se puede usar copyRTF() en un control RTF cuantas veces se requiera. La cuestión es posicionar el cursor dentro del control que ya vimos como.



Para varia el informe que necesito hacer es mucho más complicado que lo anterior... luego habría que inventarse alguna otra técnica, en el camino.



Sin embargo las cosas pintan bien con estos métodos...





J.



Powered by ScribeFire.