Objeto Word

Hace rato que estoy preguntando y no encuentro respuesta el tema es que yo quiero abrir un documento word solo lectura instanciando una clase word y me abre alguno solo lectura y otros no, los que son los que tienen grillas o picture incrustados, etc..., los que tiene texto me abren solo lectura, este es el código que pongo:
SELECT mkwGrupoAutBiz
loWord = CREATEOBJECT("Word.Application")
*****************************************
select mkwcursor
lcFile = allt(ubicacion) + allt(nombredocumento )+ ".doc"
loWord.Documents.Open(lcFile) loWord.ActiveDocument.ReadOnlyRecommended= .T.
loWord.Application.Visible = .T.

3 Respuestas

Respuesta
1
¿Lo qué quieres hacer es abrir siempre todos los documentos como solo lectura?
Si es eso lo que quieres hacer con el FSO es ponerle al achivo el atributo de solo lectura o preguntar si es o no solo lectura y hacer algo al respecto con eso espero que te ayude
Si quiero abrir todos los archivos en solo lectura, sin preguntar nada, solo abrirlos en solo lectura, ¿sabes qué podría hacer?, si me dijiste algo no entendí disculpame, muchas gracias
Esto estaba en la página de Microsoft
el FSO Es FileSystem Object
Podes referenciarlo en Visual Basic en Proyecto -> Referencias Microsoft Scriptyng Runtime y así vez los métodos que tiene sino de esta manera
Const READ_ONLY = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("C:\Scripts\Computers.txt")
If objFile.Attributes AND READ_ONLY Then
objFile.Attributes = objFile.Attributes XOR READ_ONLY
End If
http://www.microsoft.com/technet/scriptcenter/resources/qanda/oct04/hey1019.mspx
http://www.microsoft.com/technet/scriptcenter/guide/sas_scr_tspz.mspx?mfr=true
Private Sub Form_Load()
Dim fso As New Scripting.FileSystemObject
Dim f
Set f = fso.GetFile("c:\a.txt")
MsgBox f.Attributes
End Sub
Si le pones solo lectura te daría 33
32 archivo 1 solo lectura sino me equivoco es así no tengo mucho tiempo
http://www.4guysfromrolla.com/webtech/112600-1.shtml
Respuesta
1
No será mejor:
loWord.ActiveDocument.ReadOnly= True
Si lo hice ya pero me da este error
ole dispach exepxion code cero microsoft word
Gracias
Ok, creo que me falto:
loWord.ActiveDocument.ReadOnly:= True
Ya que una macro generada queda como sigue:
Sub Macro2()
'
' Macro2 Macro
' Macro grabada el 09/10/2006 por C.N.B.V.
'
ChangeFileOpenDirectory "D:\Mis documentos\CURSO DE AGOSTO\"
Documents.Open FileName:="""REPORTE ANUAL 2006.doc""", ConfirmConversions _
:=False, ReadOnly:=True, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
End Sub
Respuesta
1
Pasa lo siguiente el objeto Tword que usa delphi, muchas veces no es el mismo de sistema (obejeto OLE); sino uno con más restricciones en cuanto al manejo; Recomendación consigue el componente
TAwScript es para usar JSCript y VBScript junto con delphi;
Creas el objeto Word
Con el siguiente código:
var
Oword = TOleVariant;
.....
Oword := TAwscript.ActiveScript.Eval("word.Application");
// este objeto es un un objeto word propio ...
De allí en adelante te refieres a el igual que como en viasual basic para la modificación de parámetros.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas