
Power Builder - Combinacion por Correspondencia Excel a Word
Publicado por César Augusto (3 intervenciones) el 23/10/2015 18:19:41
Buenos días,
Necesito ayuda con la combinación de correspondencia, utilizo la version de Office 2010, mi problema surge cuando realizo una combinacion entre un archivo Excel y un Word.
Si lo abro desde fuera no tengo problemas ( el archivo de excel y el word se abren sin errores ) pero a la hora de realizarlo por la aplicación del Power Builder el Word muestra una serie de mensajes de error que no comprendo.
1.
2.
3.
4.
5.
Solo cuando doy cancelar en la imagen 3 me aparece la imagen 5 y realiza la combinación. Pero no se a que se deben los errores.
Intente solucionarlo agregando un objeto OLE que abra primero el archivo excel y luego el word, y ahora ya no salen mensajes de error pero me aparecen los siguientes.


El la imagen 6, se muestra cuando abro el excel, y ese mismo mensaje se muestra cuando se abre el word, luego se abre la imagen 7 indicandome si la primera fila son columnas.
Al final si logro combinar los archivos pero lo que necesito es que no me aparezcan estos mensajes ya que el usuario que realizará esta operación vera estos errores..
Hasta el momento no encuentro solución aqui les envio mi código para que me puedan orientar en que es lo que me falta :
Necesito ayuda con la combinación de correspondencia, utilizo la version de Office 2010, mi problema surge cuando realizo una combinacion entre un archivo Excel y un Word.
Si lo abro desde fuera no tengo problemas ( el archivo de excel y el word se abren sin errores ) pero a la hora de realizarlo por la aplicación del Power Builder el Word muestra una serie de mensajes de error que no comprendo.
1.

2.

3.

4.

5.

Solo cuando doy cancelar en la imagen 3 me aparece la imagen 5 y realiza la combinación. Pero no se a que se deben los errores.
Intente solucionarlo agregando un objeto OLE que abra primero el archivo excel y luego el word, y ahora ya no salen mensajes de error pero me aparecen los siguientes.


El la imagen 6, se muestra cuando abro el excel, y ese mismo mensaje se muestra cuando se abre el word, luego se abre la imagen 7 indicandome si la primera fila son columnas.
Al final si logro combinar los archivos pero lo que necesito es que no me aparezcan estos mensajes ya que el usuario que realizará esta operación vera estos errores..
Hasta el momento no encuentro solución aqui les envio mi código para que me puedan orientar en que es lo que me falta :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/* Este codigo lo utilizo para abrir el excel y no me muestren los errores mencionados*/
ExcelBasic = CREATE OLEOBJECT
ExcelBasic.ConnectToNewObject('Excel.Application')
ExcelBasic.workBooks.Open(StrArchivoe)
ExcelBasic.Application.Visible = FALSE
ExcelBasic.Application.DisplayAlerts = FALSE
Este codigo lo utilizo para abrir el excel y no me muestren los errores mencionados */
IF not FileExists(StrFileName) THEN
MessageBox('Aviso','El archivo '+StrFileName+' no existe.',Exclamation!)
ChangeDirectory(gs_dir)
RETURN
END IF
WordBasic = CREATE OLEOBJECT
WordBasic.ConnectToNewObject('Word.Application.8')
WordBasic.DisplayAlerts = FALSE
WordBasic.Application.Visible = TRUE
WordBasic.Documents.Open(StrFileName)
WordBasic.ActiveDocument.MailMerge.OpenDataSource(StrArchivoe,0,false,false,false,false,"","",false)
//Combinamos (MERGE) el Modelo con el Archivo Fuente
WordBasic.ActiveDocument.MailMerge.Execute
//Lo grabamos como Contratos.doc. Si ya existe, lo "chanco"
WordBasic.Application.Visible = FALSE
WordBasic.ActiveDocument.SaveAs(StrRutaModelo+'\'+'contratos.doc',0)
LngI = ole_1.InsertFile(StrRutaModelo+'\'+'contratos.doc')
CHOOSE CASE LngI
CASE -1
MessageBox('Aviso','El archivo '+StrRutaModelo+'\'+'contratos.doc, no se pudo Grabar.',Exclamation!)
wordbasic.ActiveDocument.Close()
wordbasic.Application.Quit()
WordBasic.Disconnectobject()
DESTROY wordbasic
ChangeDirectory(gs_dir)
RETURN
END CHOOSE
wordbasic.ActiveDocument.Close()
wordbasic.ActiveDocument.Close()
IF StrFileName = StrRutaModelo+'\'+'temp.doc' THEN
FileDelete(StrFileName)
END IF
StrDocFinal = StrRutaModelo+'\'+'contratos.doc'
WordBasic.Documents.Open(StrDocFinal)
WordBasic.ActiveDocument.SaveAs(StrRutaModelo+'\'+'contratos.docx',12)
WordBasic.ActiveDocument.Close()
FileDelete(StrDocFinal)
ExcelBasic.Application.ActiveWorkBook.Close()
ExcelBasic.Application.Quit()
ExcelBasic.DisconnectObject()
DESTROY ExcelBasic
wordbasic.Application.Quit()
wordbasic.DisconnectObject()
wordbasic.DisconnectObject()
wordbasic.DisconnectObject()
DESTROY wordbasic
MessageBox('Aviso','Se generó el contrato correctamente.',Information!)
Valora esta pregunta


0