Formulario de VB que envie a writer
Formulario de VB que envie a writer
Hola ante todo gracias si respondeis, soy nuevo programando , hice una app para el trabajo que consta de formularios que rellena en textbox y los enviaba a los marcadores seleccionados en el word, asi con varios forms, usaba checkbox, radiobutton,textboxes y label , con esas cosas me hice un programilla para el curro, el problema es que quitan word y se quedan con Libre Office writer, y pensaba que seria igual de facil con muchos tutoriales y demas , pero esta la cosa mas chunga, que no se por que hay tan poca informacion "o yo no encontre adecuadamente".
Bueno mis preguntas adjunto una imagen , para importar librerias o referencias en Libre office cuales hay q importar si hay q hacerlo
2- Los Dim a que app hay q poner exactamente
3-la fecha del sistema
4- las direcciones de los archivos van diferentes por lo q vi , intente hacerlo por lo que lei aqui , pero no me salio nada.
5- acceso a los bookmarks como seria para meterle los textbox
Si sabeis algun tutorial de crear un formulario del tipo que busco seria de gran ayuda , muchas gracias, seguire leyendo por si encuentro algo
https://gyazo.com/d9c1eb08213a4ff4c942bdf2311ecf1b
Bueno mis preguntas adjunto una imagen , para importar librerias o referencias en Libre office cuales hay q importar si hay q hacerlo
2- Los Dim a que app hay q poner exactamente
3-la fecha del sistema
4- las direcciones de los archivos van diferentes por lo q vi , intente hacerlo por lo que lei aqui , pero no me salio nada.
5- acceso a los bookmarks como seria para meterle los textbox
Si sabeis algun tutorial de crear un formulario del tipo que busco seria de gran ayuda , muchas gracias, seguire leyendo por si encuentro algo
https://gyazo.com/d9c1eb08213a4ff4c942bdf2311ecf1b
Libre Office Versi??n: 5.0.1.2 y Windows 7
Re: Formulario de VB que envie a writer
Hola...
Por favor, es indipensable que leas las normas del foro que has aceptado al registrarte. Una pregunta por tema una respuesta por tema.
Tengo entendido que VB hay varias... ¿cual estas usando?
Por otra parte, creo recordar que hemos respondido varias preguntas relacionadas en estos foros... ¿ya realizaste una búsqueda aquí?
Saludos
Por favor, es indipensable que leas las normas del foro que has aceptado al registrarte. Una pregunta por tema una respuesta por tema.
Tengo entendido que VB hay varias... ¿cual estas usando?
Por otra parte, creo recordar que hemos respondido varias preguntas relacionadas en estos foros... ¿ya realizaste una búsqueda aquí?
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: Formulario de VB que envie a writer
Gracias mauricio y perdona , es verdad lei lo de 1 pregunta por post, si busque y vi varios post tuyos hablando del tema en cuestion , pero no fui capaz de hacerlo funcionar , el lunes busco mas info y vere en que fallo, uso Visual Studio 2017community, gracias
Libre Office Versi??n: 5.0.1.2 y Windows 7
Re: Formulario de VB que envie a writer
Leyendo por aquí encontré el código de abajo, pero exactamente no se donde van los textbox y donde los bookmark, creo q esto me puede valer para abrir writer modificar campos y guardar copia
Código: Seleccionar todo
Public Sub utilizaopenoffice_Click()
Dim dbLocal As Database
Dim snpReplaceCodes As Recordset
Dim strCurrAppDir As String
Dim strFinalDoc As String
Dim varReplaceWith As Variant
'++++++++++++++
Dim mibusqueda As Object
Dim oservicio As Object
Dim Escritorio As Object
Dim document As Object
'++++++++++++++++
On Error GoTo Error_utilizaopenoffice_Click
Set dbLocal = CurrentDb()
strCurrAppDir = Left$(dbLocal.Name, InStrRev(dbLocal.Name, "\"))
strFinalDoc = strCurrAppDir & "plantilla1.dot"
'también puede ser plantilla1.ott
On Error GoTo Error_utilizaopenoffice_Click
strFinalDoc = Replace(strFinalDoc, "\", "/")
strFinalDoc = "file:///" + strFinalDoc
Dim args(1) As Object
Set oservicio = CreateObject("com.sun.star.ServiceManager")
Set Escritorio = oservicio.createInstance("com.sun.star.frame.Desktop")
Set args(0) = oservicio.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
args(0).Name = "Hidden"
args(0).Value = True
Set document = Escritorio.loadComponentFromURL(strFinalDoc, "_blank", 0, args())
Call document.getCurrentController.getFrame.getContainerWindow.setVisible(True)
Call document.getCurrentController.getFrame.getComponentWindow.setVisible(True)
Set mibusqueda = document.createReplaceDescriptor
'abro ahora la tabla de las sustituciones
Set snpReplaceCodes = dbLocal.OpenRecordset("ReemplazaCodigos", _
dbOpenSnapshot)
Do While Not snpReplaceCodes.EOF
varReplaceWith = Eval(snpReplaceCodes!ReplaceWithFieldName)
varReplaceWith = IIf(IsNull(varReplaceWith), " ", CStr(varReplaceWith))
mibusqueda.setsearchstring (snpReplaceCodes!CodeToReplace)
mibusqueda.setreplacestring (varReplaceWith)
Call document.replaceall(mibusqueda)
snpReplaceCodes.MoveNext
Loop
'
snpReplaceCodes.Close
Exit Sub
Error_utilizaopenoffice_Click:
Beep
' MsgBox "Ha ocurrido el error:" & vbCrLf & _
' Err.Description, vbCritical, "OLE Error!"
Exit Sub
End Sub
Libre Office Versi??n: 5.0.1.2 y Windows 7
Re: Formulario de VB que envie a writer
Mira, estando "adentro" de Writer un posible ejemplo sería más o menos así:sirde escribió:
pero exactamente no se donde van los textbox y donde los bookmark,
1) En el archivo anexo hay dos bookmarks (Nombre y Fecha)
2) Lanza la macro y después rellena los datos
Código: Seleccionar todo
Dim oDialogo
Dim oTextBox5
Dim oNombre
Sub LanzarDialogo()
DialogLibraries.LoadLibrary( "Standard" )
oDialogo = CreateUnoDialog( DialogLibraries.Standard.getByName("Dialog1") )
oTextBox5 = oDialogo.getControl("TextBox5")
oNombre = oDialogo.getControl("Nombre")
ThisComponent.Bookmarks.getByName("Nombre").Anchor.String = ""
ThisComponent.Bookmarks.getByName("Fecha").Anchor.String = ""
oDialogo.execute()
End Sub
sub controles
ThisComponent.Bookmarks.getByName("Nombre").Anchor.String = oNombre.Text
ThisComponent.Bookmarks.getByName("Fecha").Anchor.String = oTextBox5.Text
oDialogo.EndExecute()
end sub
Saludos, Federico.
- Adjuntos
-
- marcadores.odt
- Marcadores
- (13.82 KiB) Descargado 207 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Formulario de VB que envie a writer
Gracias fornalesa , acabo de ver tu respuesta , y acabe encontrando la solucion en el libro de mauricio , pero hay una cosa no me guarda como , en el lugar q me gustaria con el nombre q me gustaria, te enseño como hice lo de writer por si ayudo a otros , con eso abro en modo lectura con los datos q yo quiero , ahora voy a ver si consigo hacer lo mismo en CALC , necesito rellenar unos campos con textbox, mirando el tutorial de mauricio vi q hay 3 maneras pero no consigo hacerlo arrancar, por ahora me da alegria poderlo hacer , gracias chicos pueden darlo por cerrado.
Código: Seleccionar todo
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sPathUser As String
Dim oSM, oDesk, oDoc, oTxt As Object
Dim args(0) As Object
sPathUser = Environ$("USERPROFILE") & "\Desktop\"
oSM = CreateObject("com.sun.star.ServiceManager")
oDesk = oSM.createInstance("com.sun.star.frame.Desktop")
args(0) = oSM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
oDoc = oDesk.loadComponentFromURL("file:///" + sPathUser + "\NUEVAS\OFICIO.odt", "_blank", 0, args)
oTxt = oDoc.Text
oDoc.getBookmarks().getByName("NOMBRE").getAnchor.setString(TextBox1.Text)
oDoc.getBookmarks().getByName("APELLIDOS").getAnchor.setString(TextBox2.Text)
oDoc.getBookmarks().getByName("FECHAN").getAnchor.setString(TextBox3.Text)
oDoc.getBookmarks().getByName("LNACIMIENTO").getAnchor.setString(TextBox4.Text)
oDoc = Nothing
Libre Office Versi??n: 5.0.1.2 y Windows 7
Re: Formulario de VB que envie a writer
sirde, por favor marca el tema como resuelto, aquí nos dicen como hacerlo:
https://forum.openoffice.org/es/forum/v ... f=3&t=2668
Saludos, Federico.
https://forum.openoffice.org/es/forum/v ... f=3&t=2668
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!