un cuadro de lista con los informes disponibles

Imagen biografía
Categoría: Access
Valora este manual:





 
Enviada por: Administrador

Manual de informática de un cuadro de lista con los informes disponibles

en algunas aplicaciones probablemente deseariaas ofrecer a los usuarios la opcion de imprimir cualquiera de los informes guardados, y seriaa muy facil poder seleccionarlo de una lista desplegable. aquia te mostramos como hacerlo: crea un formulario con: un cuadro de lista llamado lstreports, con una etiqueta reports. un boton de verificacion llamado chkpreview, con una etiqueta preview. un boton de comando llamado cmdopenreport, con un tiatulo (caption) open report. establece la propiedad onclick del boton de comando a [event procedure]. haz clic en el boton ... que se muestra junto a esta propiedad para abrir la ventana de codigo, e ingresa el siguiente: private sub cmdopenreport_click() purpose: opens the report selected in the list box. on error goto cmdopenreport_clickerr if not isnull(me.lstreports) then docmd.openreport me.lstreports, iif(me.chkpreview.value, acviewpreview, acviewnormal) end if exit sub cmdopenreport_clickerr: select case err.number case 2501 cancelled by user, or by nodata event. msgbox report cancelled, or no matching data., vbinformation, information case else msgbox error & err & : & error$, vbinformation, cmdopenreport_click() end select resume next end sub establece la propiedad rowsourcetype del cuadro de lista a enumreports
deja la propiedad rowsource en blanco. crea un nuevo modulo y copia la funcion: function enumreports(fld as control, id as variant, row as variant, col as variant, code as variant) as variant purpose: supplies the name of all saved reports to a list box. usage: set the list box s rowsourcetype property to: enumreports leaving its rowsource property blank. notes: all arguments are provided to the function automatically. author: allen browne abrowne@odyssey.apana.org.au feb. 97. dim db as database, dox as documents, i as integer static srptname(255) as string array to store report names. static irptcount as integer number of saved reports. respond to the supplied value of code. select case code case aclbinitialize called once when form opens. set db = currentdb() set dox = db.containers!reports.documents irptcount = dox.count remember number of reports. for i = 0 to irptcount - 1 srptname(i) = dox(i).name load report names into array. next enumreports = true case aclbopen enumreports = timer return a unique identifier. case aclbgetrowcount number of rows enumreports = irptcount case aclbgetcolumncount 1 column enumreports = 1 case aclbgetcolumnwidth 2 inches enumreports = 2 * 1440 case aclbgetvalue the report name from the array. enumreports = srptname(row) case aclbend erase srptname deallocate array. irptcount = 0 end select end function la propiedad rowsourcetype del cuadro de lista puede ser usada para llenar el cuadro de forma programatica. los cinco argumentos para la funcion son provistos automaticamente: access llama a la funcion repetidamente usando estos argumentos para indicar la informacion que espera. durante la fase de inicializacion, esta funcion utiliza dao (data access objects) para obtener y almacenar los nombres de todos los informes en una variable estatica (es necesario el uso de la coleccion containers!reportsdocuments). el boton de comando simplemente ejecuta una accion openreport
si el boton de opcion esta marcado, el reporte se abre en modo de vista previa, y en caso contrario es enviado directamente a la impresora.


Comparte este manual:


Comparte este manual por email con un amigo/a:

Tu nombre
Tu email
El nombre de tu amigo
El email de tu amigo