tag:blogger.com,1999:blog-7941892531409037812.post5247057925133143892..comments2023-09-10T10:31:42.920+02:00Comments on Comunidad KMKey en Español: Usando OpenOffice para hacer listados (I)Santihttp://www.blogger.com/profile/03673928052357338802noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-7941892531409037812.post-86346638760719861602013-08-02T17:29:59.353+02:002013-08-02T17:29:59.353+02:00Un ejemplo muy sencillo y práctico, vamos a genera...Un ejemplo muy sencillo y práctico, vamos a generar un documento que recupera datos de consulta contra la ZODB. <br /><br /> En primer lugar generaremos una plantilla .sxc, en el contenido de la misma insertamos las sentencias descritas más abajo<br />, posteriormente analizaremos para qué sirve cada una de ellas:<br /><br /><br /> <image object="here.portal_skins.custom['logo.gif']" /> <br /> Listados de Descargas de Documentos <br /> <br /> <define rows here.listado_documentos(view,request)/><br /><br /> Fecha del informe: <content view.getFechaActualFormato()/> <br /> <br /> Título / Usuario / Versión / Fecha Descarga <br /> <repeat row rows> <br /> <content row['tit']/> <content row['member']/> <content row['version']/> <content row['dat'].strftime('%d/%m/%Y %H:%M:%S')/> <br /> </repeat> <br /> <br /><br />1) En la parte superior de nuestra plantilla incluimos el logo de nuestra aplicación, para ello: <br /> <image object="here.portal_skins.custom['logo.gif']" /> <br /><br /> La sentencia muestra en pantalla el gif asociado en nuestro portal_skins <br /><br />2) Esta sentencia es la más importante de la plantilla, ya que define la variable rows que contendrá el conjunto de registros<br /> consultados de la tabla contra la que estemos consultando los datos, mediante una consulta a nuestra ZODB.<br /><br /> <define rows here.listado_documentos(view,request)/><br /><br /> "<define rows" es la sentencia utilizada para declara la variable rows<br /> "here." hace referencia al objecto actual, en Page templates utilizamos esta instrucción para acceder a los métodos definidos en el objeto.<br /> "listado_documentos()" sería el método definido en nuestra View o clase, que básicamente se encargaría de extraer los datos que necesitemos de nuestra BBDD. Pasamos como parámetro a dicha función los view y request asociados.<br /><br /> Podría contener algo así, podríamos definir un Python Script en nuestro portal_skins o incluir la función en nuestra View<br /> <br /> def listado_documentos(xx,xx):<br /><br /> # Filtramos proyectos actuales<br /> brains=view.getBrainsProyectosFiltrados()<br /> # recuperamos sus identificadores<br /> ids = [x.getDocid for x in brains]<br /> # formateamos resultado<br /> ids = ','.join(["'%s'"%x for x in ids])<br /> # definimos la sentencia sql que extraería la información de nuestra tabla/s<br /> sql = """<br /> SELECT *<br /> FROM "kmkey_xxxx" kd <br /> WHERE internal_docid in(%s) and kd.docid='%s'""" % (ids)<br /><br /><br /> db = view.getDB()<br /> # Ejecutamos consulta en el servidor<br /> rows = view.executeSQL(sql=sql)<br /><br /> result = []<br /> # Construimos la lista con el resultado<br /> for row in rows:<br /> result.append(row)<br /><br /> return result<br /> <br /> 3) Fecha del informe: <content view.getFechaActualFormato()/> <br /> Utilizamos un método definido en nuestra View que formatea y printa la fecha actual <br /><br /> 4) Incluimos la sección de cabecera de nuestra tabla de resultados: <br /> <br /> Título / Versión / Fecha <br /><br /> 5) Y finalmente insertamos la sentencia para mostrar resultados (contenido de row), que es la selección de registros recuperada por nuestra sql.<br /><br /> <repeat row rows> <br /> <content row['titulo']/><content row['version']/> <content row['dat'].strftime('%d/%m/%Y %H:%M:%S')/> <br /> </repeat> <br /><br /> Con <repeat obligamos a recorrer el contenido de los registros de rows, <br /> Con <content row['titulo']/> estamos printando el campo Título del registro actual<br /><br /> Como veis es muy fácil crear un Informe que muestre resultados en KMKeyKMKey Teamhttps://www.blogger.com/profile/12303581716202192160noreply@blogger.comtag:blogger.com,1999:blog-7941892531409037812.post-70471195139577819682013-08-02T13:45:14.578+02:002013-08-02T13:45:14.578+02:00Este comentario ha sido eliminado por el autor.KMKey Teamhttps://www.blogger.com/profile/12303581716202192160noreply@blogger.comtag:blogger.com,1999:blog-7941892531409037812.post-27716176750143878142013-08-02T13:36:06.769+02:002013-08-02T13:36:06.769+02:00Explicamos como generar un Informe de este tipo, u...Explicamos como generar un Informe de este tipo, un ejemplo muy sencillo y práctico, vamos a generar un documento que recupera datos de consulta contra la ZODB. <br /><br /> En primer lugar generaremos una plantilla .sxc, en el contenido de la misma insertamos las sentencias descritas más abajo, posteriormente analizaremos para qué sirve cada una de ellas:<br /><br /><br /> <br /> Listados de Descargas de Documentos <br /> <br /><br /><br />Fecha del informe: <br /> <br />Título / Usuario / Versión / Fecha <br /> <br /> <br /> <br /> <br /><br />1) En la parte superior de nuestra plantilla incluimos el logo de nuestra aplicación, para ello: <br /> <br /><br /> La sentencia muestra en pantalla el gif asociado en nuestro portal_skins <br /><br />2) Esta sentencia es la más importante de la plantilla, ya que define la variable rows que contendrá el conjunto de registros consultados de la tabla contra la que estemos consultando los datos, mediante una consulta a nuestra ZODB.<br /><br /> <br /><br /> " <br /> Utilizamos un método definido en nuestra View que formatea y printa la fecha actual <br /><br /> 4) Incluimos la sección de cabecera de nuestra tabla de resultados: <br /> <br /> Título / Versión / Fecha <br /><br /> 5) Y finalmente insertamos la sentencia para mostrar resultados (contenido de row), que es la selección de registros recuperada por nuestra sql.<br /><br /> <br /> <br /> <br /><br /> Con estamos printando el campo Título del registro actual<br /><br /> Como veis es muy fácil crear un Informe que muestre resultados en KMKey<br /> <br /> KMKey Teamhttp://www.kmkey.comnoreply@blogger.comtag:blogger.com,1999:blog-7941892531409037812.post-30790407388991176282010-12-13T12:49:24.424+01:002010-12-13T12:49:24.424+01:00+1 Un ejemplo estaria magnifico+1 Un ejemplo estaria magnificoDavid Vázquez Rodaohttps://www.blogger.com/profile/14056806438902398333noreply@blogger.comtag:blogger.com,1999:blog-7941892531409037812.post-42096336089839852432010-08-30T14:27:19.715+02:002010-08-30T14:27:19.715+02:00Que bueno... estaría aún mejor si pudieras colgar ...Que bueno... estaría aún mejor si pudieras colgar algun ejemplo. Cuando puedas, cuelga uno como para verloAriel Loscerbohttp://www.aesargentina.com.arnoreply@blogger.com