PDF de programación - Curso de VB - Capítulo 16

Imágen de pdf Curso de VB - Capítulo 16

Curso de VB - Capítulo 16gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 13 de Febrero del 2018)
602 visualizaciones desde el 13 de Febrero del 2018
375,9 KB
26 paginas
Creado hace 11a (11/01/2013)
CURSO DE VB

CAPÍTULO 161

Índice de contenido
MANEJO, A TODAS HORAS, DIRECTORIOS, FICHEROS E IMPRESORAS... .........................2
INTRODUCCIÓN...........................................................................................................................2
PREPARANDO EL TERRENO......................................................................................................2
COMBO CON FILTRO POR NOMBRE DE INFORME..............................................................3
IMPRIMIR UNA PÁGINA EN CONCRETO / RANGO DE PÁGINAS.......................................4
LA COLECCIÓN IMPRESORAS..................................................................................................7
RECORRIENDO LA COLECCIÓN..........................................................................................7
LA IMPRESORA PREDETERMINADA... QUE NOSOTROS QUEREMOS.........................7
IMPRESIÓN A TRAVÉS DEL CUADRO DE DIÁLOGO DE IMPRESORAS.......................8
ALGUNAS IDEAS DE APLICACIÓN..........................................................................................9
SELECCIÓN MEDIANTE CUADRO DE LISTA................................................................9
SELECCIÓN MEDIANTE UN MARCO DE OPCIONES.................................................10
UTILIZANDO LA IMPRESORA VIRTUAL “PDFCREATOR”.................................................11
MANIPULACIÓN DE DIRECTORIOS Y FICHEROS....................................................................12
SACANDO INFORMACIÓN DE NUESTRA APLICACIÓN................................................12
TRABAJANDO CON DIRECTORIOS........................................................................................14
CREANDO DIRECTORIOS: MkDir.......................................................................................14
BORRANDO DIRECTORIOS: RmDir....................................................................................16
EXAMINANDO CARPETAS Y FICHEROS...............................................................................18
LA FUNCIÓN Dir()..................................................................................................................18
“MATANDO” ARCHIVOS: Kill...................................................................................................20
OTRAS “CURIOSIDADES” SOBRE GESTIÓN DE CARPETAS.............................................23
CURDIR().................................................................................................................................23
CHDIR()....................................................................................................................................24
CHDRIVE()..............................................................................................................................25
PARA FINALIZAR EL CAPÍTULO.................................................................................................26

1 La BD donde están los ejemplos de este capítulo os la podéis bajar aquí.

Visítame en http://siliconproject.com.ar/neckkito/

1

MANEJO, A TODAS HORAS,

DIRECTORIOS, FICHEROS E
IMPRESORAS...

INTRODUCCIÓN

Ahora ya hemos llegado a un punto donde si yo os hablo de
colecciones, al menos en teoría, deberíamos saber a qué
me estoy refiriendo, ¿verdad? (contestad que sí, please...).

Vamos a ver en este capítulo cómo podemos manipular la colección “impresoras”, es decir, las
impresoras que tenemos instaladas en nuestro ordenador. Aprovecharemos para explicar un
pequeño truco para crearnos una “colección” (esta vez la palabra “colección” sólo tiene el
sentido de “conjunto de” sin implicación a lo que VB considera colecciones) de informes, para
hacer más fácil la vida al usuario de nuestra aplicación.

Os proporcionaré también una reseña a un código que nos permitirá manejar la impresora
PDFCreator directamente desde VBA, sin utilizar el panel de control de la impresora.

Finalmente, empezaremos a ver cómo podemos operar con los directorios y ficheros de
nuestro sistema operativo, para poder realizar “cuatro cositas” con ellos.

Dicho lo anterior, procedamos.

PREPARANDO EL TERRENO
Vamos a crearnos una BD de ejemplo muy sencilla. Crearemos una tabla, que llamaremos
TDatos, con la siguiente estructura:

Introducimos algunos datos simplemente para tener “material” para que nuestro futuro
informe tenga algo que mostrar.

Para poder ver el efecto del “truco” que os comentaba en la introducción vamos a realizar un
informe sobre TDatos. Una vez hecho lo vamos a copiar-pegar para tener cuatro informes, de
tal manera que:



Al informe “original” lo llamaremos RDatos (para no perder las costumbres, claro).

Visítame en http://siliconproject.com.ar/neckkito/

2





A la primera copia la llamaremos, por ejemplo, Nck-R1
A la segunda copia la llamaremos, por ejemplo, Nck-R2
A la tercera copia la llamaremos, por ejemplo, Nck-R3

Para distinguirlos, a la hora de sacarlos en vista previa o
imprimirlos, podemos cambiar la etiqueta del encabezado
de informe.

¿Por qué hacemos esto? Imaginemos que en nuestra BD
tenemos unos informes que pueden seleccionar e imprimir
unos usuarios, y otros digamos que sólo pueden ser vistos
o impresos por usuarios con más nivel.

Podríamos gestionar lo anterior con temas de permisos de usuarios (v.gr., podéis analizar el
fabuloso ejemplo de la web... je, je...), pero también podríamos permitir que los usuarios
eligieran los informes que sí pueden imprimir de una lista. Y, para distinguir dichos informes,
les ponemos un prefijo a todos ellos (por ejemplo, Nck, que nosotros hemos utilizado en este
ejemplo, podría ser, perfectamente, una palabra como “Nivel1”, “Nivel2”), de manera que nos
permita hacer un filtro a través del nombre que le hayamos puesto al informe.

Como esto puede sonar un poco complicado, dado que os lo estaba explicando a nivel teórico,
vamos a verlo con un ejemplo.

COMBO CON FILTRO POR NOMBRE DE INFORME
Vamos a crearnos un formulario en blanco, al que pondremos de nombre FSelReport.
Añadimos un cuadro combinado, al que pondremos de nombre cboSelReport.

Insertamos también un botón de comando, que llamaremos cmdImprimeReport.

Más o menos una cosa así:

Vamos a crear el origen de la fila del combo. Para ello, vamos a generar el siguiente código en
el evento “Al recibir el enfoque del combo”:


Private Sub cboSelReport_GotFocus()
'Declaramos las variables
Dim miOrigen As String
Dim miReport As Object
'Inicializamos la variable miOrigen como una cadena vacía
miOrigen = ""
'1.- Recorremos la colección "Informes"
'2.- Si encontramos el prefijo "Nck" lo añadimos a la lista
For Each miReport In CurrentProject.AllReports

Visítame en http://siliconproject.com.ar/neckkito/

3

If miReport.Name Like "Nck*" Then
miOrigen = miOrigen & miReport.Name & ";"
End If
Next miReport

'Quitamos el último punto y coma final de la lista que nos
habrá creado
miOrigen = Left(miOrigen, Len(miOrigen) - 1)
'Vamos a manipular algunas propiedades del combo
With Me.cboSelReport
'Manipulamos la propiedad "Limitar a la lista"
.LimitToList = True
'Manipularmos la propiedad "Permitir ediciones de lista"
.AllowValueListEdits = False
'Manipulamos el tipo de origen de la fila del combo
.RowSourceType = "Lista de valores"

'Manipulamos el origen de la fila
.RowSource = miOrigen
End With
End Sub


Las partes más interesante del código, si os fijáis, son las siguientes:

Recorremos la colección Reports a través de un FOR EACH... NEXT
Sacamos el nombre a través del comparador LIKE, utilizando el carácter comodín “*”
Manipulamos varias propiedades del combo a través del bloque WITH... END WITH,
las propiedades y estableciendo sus valores




realizando
(.nomPropiedad=valorPropiedad).

llamadas a

Si ahora situamos nuestro formulario en vista formulario y desplegamos el combo veremos que
nos muestra sólo aquellos informes que comienzan por “Nck”, que son en definitiva aquellos a
los que nos interesaba que el usuario pudiera tener acceso.

Finalmente nos queda programar el botón de comando para que imprima el informe
seleccionado. Esto ya deberíamos saber realizarlo nosotros, pero para “esas dudas
existenciales que nos pueden asaltar” os indico a continuación cómo debería ser dicho código
del evento “Al hacer click” del botón (os pongo ya el código sin comentarios):


Private Sub cmdImprimeReport_Click()
Dim vSel As String
vSel = Nz(Me.cboSelReport.Value, "")
If vSel = "" Then Exit Sub
DoCmd.OpenReport vSel, acViewPreview
End Sub


Y listo 

IMPRIMIR UNA PÁGINA EN CONCRETO / RANGO DE PÁGINAS
Vamos a añadir bastantes registros a nuestra tabla TDatos. Yo he añadido datos hasta que me
salen 3 hojas de informe en vista previa.

En un formulario añadiremos un botón que nos permitirá imprimir o bien un rango concreto de
páginas o bien la totalidad del informe. A ese botón lo llamaremos cmdImprimeRango.

Visítame en http://siliconproject.com.ar/neckkito/

4

¿Cuál va a ser la operativa (es decir, qué vamos a aprender)?



“Sin que nadie nos vea” vamos a abrir el informe para saber
cuántas páginas devuelve ese informe.

• Un InputBox nos va a pedir la página inferior, o introducir

cero en números si queremos todo el informe.

◦ Introduciremos un control para detectar la pulsación
de cancelar y para detectar si se ha introducido un
número. Controlaremos también que el valor
introducido no supere el número de páginas del
informe.



Si no queremos todo el informe nos saldrá otro InputBox,
que nos pedirá el rango superior.

◦ Introduciremos un control para detectar la pulsación
de cancelar, para detectar si se ha introduc
  • Links de descarga
http://lwp-l.com/pdf8753

Comentarios de: Curso de VB - Capítulo 16 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad