Hola amigos resulta que tengo una aplización desarrollada en Sybase para el
control de tiempos trabajados por algunos tipos de usuario administrativos.
Resulta que nos hemos dado cuenta que con mucha frecuencia los datos
ingresados por los usuarios tienen errores de ortografia y hemos
desarrollado un API que hace el llamado al corrector para que el usuario
tenga desde la apliación la posibilidad de corregir la ortografia.
Resulta que todo funciona bien pero cuando Word no esta abierto. Corrige
perfecto y hace los cambios bien. Cuando tengo algún documento abierto el
sistema me dice que no puede guardar los cambios en la Normal.dot despues de
que corrige la ortografia y me obliga a darle un nuevo nombre al archivo. Yo
pienso que tiene que ver con la modificación de esta plantillla pero no se
como arreglar el problema. Algo de simultaneidad con el archivo normal.dot.
Adjunto para ilustración el script que tenemos para el desarrollo de esta
API.
Gracias de antemano
string sDoc
String ls_clipboard
String ls_paste
String ls_copy
oleobject MyOleObject
If dw_1.GetItemString(dw_1.GetRow(),"concepto") = "" then Return
/*place the text in clipboard from current column*/
If Clipboard(dw_1.GetItemString(dw_1.GetRow(),"concepto")) = "" Then RETURN
//OleObject MyOleObject
MyOleObject = CREATE OLEObject
If MyOleObject.ConnectToNewObject("word.application") <> 0 Then Return
myoleobject.Application.Visible = False
myoleobject.Application.WindowState = 2
myoleobject.Application.Documents.Add.Content.Paste
// Selecciona idioma de corrector Ortofráfico
ls_codigo_idioma = dw_1.GetItemString(dw_1.GetRow(),"codigo_idioma")
CHOOSE CASE ls_codigo_idioma
CASE 'ING'
myoleobject.ActiveDocument.AttachedTemplate.LanguageID 1033
myoleobject.Selection.LanguageID = 1033
CASE 'ESP'
myoleobject.ActiveDocument.AttachedTemplate.LanguageID 9226
myoleobject.Selection.LanguageID = 9226
// myoleobject.ActiveDocument.AttachedTemplate.LanguageID 1034
// myoleobject.Selection.LanguageID = 1034
END CHOOSE
// Fin de Selección de Idioma
// Inicio de corrector Ortográfico
myoleobject.ActiveDocument.CheckSpelling
myoleobject.Application.ActiveDocument.Content.Copy
/*re-place the text in current column with text from clipboard */
ls_clipboard = clipboard()
if Clipboard() <> "" then
dw_1.AcceptText()
dw_1.SetItem(dw_1.GetRow(),"concepto",Clipboard())
TriggerEvent("ue_grabar")
end if
/*==*/
myoleobject.ActiveDocument.Close(0)
myoleobject.Application.Quit
MyOleObject.disconnectobject()
//Destroy Shared Variable OleObject
Destroy MyOleObject
//messagebox("Información", "El corrector Ortográfico terminó
satisfactoriamente")
Leer las respuestas