Está en la página 1de 4

OpenOffice+Visual Basic 6.

0
Desarrollado por: @ Programacin de Plantillas --> stalin_pedro@hotmail.com Primer Entrega

La ofimtica se impone, anteriormente tenamos que pagar costos elevados por utilizar la Suite de Microsoft el Famoso y Poderoso WORD. Pero las Reglas y el GNU, han cambiado el Software Libre se comienza a imponer y ahora surge OpenOffice como el poderoso enemigo a vencer. Para este nuevo curso necesitamos tener instalado OpenOffice 2.0 Visual Basic 6.0 ya tengo una versin para .NET pronto la liberare Mucha paciencia y ganas de Aprender Para poder comunicarse con Windows los programas usan algo llamado API que no es mas que una interfaz entre windows y el programa, nosotros utilizaremos la API de OpenOffice, Guia de Programacin de StarOffice 8 para BASIC La idea de este curso es: Conectarnos a una Base de Datos donde estar la informacin necesaria y con la cual rellenaremos los campos de un documento de Texto. Por ejemplo, dentro de las oficinas existen formatos que siempre se estn haciendo de la misma manera, pero solo se cambian algunos datos como un numero o un nombre, con este sistema tendremos plantillas que cuando el usuario ingrese podr solo colocar algunos campos y todo su documento sera generado, con datos como fecha y jefe de la oficina, tambin generaremos un listado de documento creados.

Paso numero 1
Abrir OpenOffice Writer Colocar un Texto donde diga Sr. [PERSONA1] por medio de la presente le envio esto el da [FECHA1] que usted [PERSONA2], etc . . . . . y ahora donde estn [PERSONA1] lo seleccionamos y nos vamos al men INSERTAR y despus nos vamos a MARCADOR, all teclearemos [PERSONA1] ahora para [FECHA1] hacemos lo mismo que en el paso anterior, INSERTAR - MARCADOR y le ponemos [FECHA1] repetir el paso para [PERSONA2], creando as los marcadores [PERSONA1][FECHA1][PERSONA2] ya hemos colocado los marcadores, ahora nos vamos al men ARCHIVO - GUARDAR COMO y le asignamos un nombre nosotros lo llamaremos "Mi Plantilla" en donde dice Tipo, le pondremos Plantilla de Texto en Formato OpenDocument .ott y sealamos la casilla donde dice Guardar con Contrasea, nos pide una clave a la cual pondremos "sapos" y volvemos a repetirla "sapos", FELICIDADES hasta este momento hemos creado una plantilla, con la cual si la abre con doble clic ( Abrir), podrs observar como se genera un nuevo documento sin nombre pero con la misma informacin de nuestra plantilla, ahora viene lo bueno :D

Paso 2
Abrimos Visual Basic 6.0 Generamos un Proyecto EXE Standar Insertamos un Botn al cual le pondremos en Caption "Generar Documento" y le colocaremos el siguiente cdigo:

Private Sub Command1_Click() 'Declaramos Variables tipo Objeto Dim oSM, oDesk, oDoc, oTxt, oBk, oRng As Object 'Creamos los Objetos Set oSM = CreateObject("com.sun.star.ServiceManager") 'Instanciamos los Objetos Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop") 'Ver que utilizamos "loadComponentFromURL", esto lo tome directamente de la API 'Observar los parmetros que se utilizan son Ruta de la Plantilla 'El siguiente parmetro es para abrir un documento en Blanco 'El parmetro mas importante aqu es el Arreglo, MAKEPropertyValue, este lo tome de un 'desarrollador francs al parecer donde creo esta funcin para poder pasar parmetros para 'abrir un documento Set oDoc = Desk.loadComponentFromURL("file:///C:/oo2/MiPlantilla.ott", "_blank", 0, Array(MakePropertyValue("Password", "sapos"))) Set oTxt = oDoc.Text 'instruccin necesaria pues podemos tener mas de una marcador con el mismo nombre On Error Resume Next 'Creo Instancia para leer Marcas, tomado de la API Set oBk = oDoc.createInstance("com.sun.star.text.Bookmark") Dim Fecha, Persona As String 'Datos que llegaran de la BD, ahorita los pondremos de esta forma 'para poder mostrar el ejercicio Dim vFecha, VPersona As String vFecha = Format(Now, "dd/mm/yyyy") vPersona = "Juan Perez Perez" 'determinar cuantas veces aparecer X marca For i = 1 To 2 'Variables donde ira cambiando por si existe mas de una vez la misma marca Persona = "[PERSONA" & i & "]" Fecha = "[FECHA" & i & "]" 'Objeto para buscar las Marcas en el Documento oDoc.getBookmarks().getByName(Persona).getAnchor.setString (vPersona) oDoc.getBookmarks().getByName(Fecha).getAnchor.setString (vFecha) Next

'A partir de aqu guardaremos el documento con un nombre y password Dim Url As String 'formateamos la fecha, asi pedimos k nos de, diamesao_horaminutosegundo Fecha = Format(Now, "ddmmyyyy_hhmmss") 'Ruta donde pondremos el Archivo Generado, la extensin 'ODT pertenece a los documentos como los DOC 'notar que mas adelante meteremos la variable URL a una base de datos 'para poder tener un control de los Documentos Generados Url = "file:///C:/oo2/OFICIO_" & Fecha & ".odt" 'Creo objeto guardar y salvo el archivo 'notar que le enviamos una Password que es "sopas" 'que es para que el documento generado tambien tenga password 'y asi no se pueda abrir mas que por sistema 'esta clave la tendremos que poner dentro de un campo en la BD 'pero no desesperarse eso sera mas adelante. Set guardar = oDoc.storeAsURL(Url, Array(MakePropertyValue("Password", "sopas"))) 'Cerrando Objeto Set oBk = Nothing Set oRng = Nothing Set oTxt = Nothing Set oDoc = Nothing Set oDesk = Nothing Set oSM = Nothing End Sub

- - - - - - - - Fin de Generar Documento - - - -

'esta funcin solo tendrs que copiar y pegar 'Funcin para validar parmetros tomada de la API Public Function MakePropertyValue(cName, uValue) As Object Dim oStruct, oServiceManager As Object Set oServiceManager = CreateObject("com.sun.star.ServiceManager") Set oStruct = oServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue") oStruct.Name = cName oStruct.Value = uValue Set MakePropertyValue = oStruct End Function - - - - - - Fin de Funcin MakePropertyValue - - - - -

Ahora veremos la parte para abrir el documento y mostrarlo a los usuarios, de manera de solo lectura. colocamos en el mismo proyecto de VB, un nuevo botn y le pondremos en su propiedad caption "Abrir Documento", damos doble clic a este y escribimos el siguiente cdigo: Private Sub Command2_Click() Dim oSM, oDesk, oDoc As Object 'parametros para abrir documento Dim Parametros(1) As Object 'Obejto para manejador de OO Set oSM = CreateObject("com.sun.star.ServiceManager") 'Instancia al objeto para manejar el Documetno Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop") 'Cargamos el archivo, notar que lleva la propiedad de SOLO LECTURA, MakePropertyValue 'el nombre lo tomaremos de una base de datos o segun se haya puesto el formato 'notar la contrasea se envia, recordar que se coloco enteriormente 'y abrimos el documento de solo lectura Set Parametros(0) = MakePropertyValue("Password", "sopas") Set Parametros(1) = MakePropertyValue("ReadOnly", True) Set oDoc = oDesk.loadComponentFromURL("file:///C:/oo2/OFICIO_12042006_183016.odt", "_blank", 0, Parametros()) - - - - Fin de Abrir documento de solo lectura En la siguiente entrega, veremos como colocar este sistema en una Base de Datos ( BD ), para posteriormente poder meterlo en una red, y generar documentos protegidos. Quedo de ustedes esperando comentarios Stalin P. C. A. pginas recomendadas, de algunos amigos www.pelimexic.com www.t-wix.com www.radioactivomorelense.com www.tesco.edu.mx

También podría gustarte