Home » Developer & Programmer » Forms » webutil : Open Word.Application (10g)
webutil : Open Word.Application [message #305969] |
Wed, 12 March 2008 07:57 |
vikingo98
Messages: 5 Registered: March 2008 Location: mallorca
|
Junior Member |
|
|
Hello, I want to open a word from a field of a forms, that me get the field content, to be able to modify the text of the word and on having closed the word, put the content of the word in the field.
DECLARE
app CLIENT_OLE2.OBJ_TYPE;
docs CLIENT_OLE2.OBJ_TYPE;
doc CLIENT_OLE2.OBJ_TYPE;
selection CLIENT_OLE2.OBJ_TYPE;
args CLIENT_OLE2.LIST_TYPE;
sel_text varchar2(4000);
BEGIN
app := CLIENT_OLE2.CREATE_OBJ('Word.Application');
CLIENT_OLE2.SET_PROPERTY(app,'Visible',1);
docs := CLIENT_OLE2.GET_OBJ_PROPERTY(app, 'Documents');
doc := CLIENT_OLE2.INVOKE_OBJ(docs, 'add');
selection := CLIENT_OLE2.GET_OBJ_PROPERTY(app, 'Selection');
doc := CLIENT_OLE2.GET_OBJ_PROPERTY(doc, 'ActiveDocument');
CLIENT_OLE2.SET_PROPERTY(selection, 'Text', :CD_OTR.DESCDDIDI1);
--**************************
--*************************
args := CLIENT_OLE2.CREATE_ARGLIST;
CLIENT_OLE2.ADD_ARG(args, 'c:\example.doc');
CLIENT_OLE2.INVOKE(doc, 'SaveAs', args);
CLIENT_OLE2.DESTROY_ARGLIST(args);
-- close example.tmp
args := CLIENT_OLE2.CREATE_ARGLIST;
CLIENT_OLE2.ADD_ARG(args, 0);
CLIENT_OLE2.INVOKE(doc, 'Close', args);
CLIENT_OLE2.DESTROY_ARGLIST(args);
CLIENT_OLE2.RELEASE_OBJ(selection);
CLIENT_OLE2.RELEASE_OBJ(doc);
CLIENT_OLE2.RELEASE_OBJ(docs);
-- exit MSWord
CLIENT_OLE2.INVOKE(app,'Quit');
END;
This code, open a word from a field of a forms, that me get the field content, to be able to modify the word and on having closed the word, BUT not put the content of the word in the field.
Can you help-me???
Sorry for my English, I'm spanish.
|
|
|
|
|
Re: webutil : Open Word.Application [message #342113 is a reply to message #305969] |
Thu, 21 August 2008 06:47 |
vikingo98
Messages: 5 Registered: March 2008 Location: mallorca
|
Junior Member |
|
|
The application available to me, I generates a word from the data that you step and use of a template. What I realize now is that the word I want it generates is write-protected.
It's possible?
I test with this code, (line red) but its bad.
Thanks
PROCEDURE worddoc IS
BEGIN
DECLARE
app CLIENT_OLE2.OBJ_TYPE;
docs CLIENT_OLE2.OBJ_TYPE;
doc CLIENT_OLE2.OBJ_TYPE;
selection CLIENT_OLE2.OBJ_TYPE;
args CLIENT_OLE2.LIST_TYPE;
BEGIN
-- create a new document
app := CLIENT_OLE2.CREATE_OBJ('Word.Application');
CLIENT_OLE2.SET_PROPERTY(app,'Visible',0);
docs := CLIENT_OLE2.GET_OBJ_PROPERTY(app, 'Documents');
doc := CLIENT_OLE2.INVOKE_OBJ(docs, 'add');
selection := CLIENT_OLE2.GET_OBJ_PROPERTY(app, 'Selection');
-- insert data into new document from long item
CLIENT_OLE2.SET_PROPERTY(selection, 'Text', :txt_comment);
-- save document as example.doc
args := CLIENT_OLE2.CREATE_ARGLIST;
CLIENT_OLE2.ADD_ARG(args, :txt_path);
CLIENT_OLE2.INVOKE(doc, 'SaveAs', args);
CLIENT_OLE2.DESTROY_ARGLIST(args);
-- close example.doc
args := CLIENT_OLE2.CREATE_ARGLIST;
CLIENT_OLE2.ADD_ARG(args, 0);
Client_OLE2.INVOKE (doc,'ProtectedForForms',args);
CLIENT_OLE2.INVOKE(doc, 'Close', args);
CLIENT_OLE2.DESTROY_ARGLIST(args);
CLIENT_OLE2.RELEASE_OBJ(selection);
CLIENT_OLE2.RELEASE_OBJ(doc);
CLIENT_OLE2.RELEASE_OBJ(docs);
-- exit MSWord
CLIENT_OLE2.INVOKE(app,'Quit');
END;
END;
[Updated on: Thu, 21 August 2008 06:53] Report message to a moderator
|
|
|
|
|
Re: webutil : Open Word.Application [message #342859 is a reply to message #305969] |
Mon, 25 August 2008 06:28 |
vikingo98
Messages: 5 Registered: March 2008 Location: mallorca
|
Junior Member |
|
|
I have this macro:
ActiveDocument.Protect Password:="", NoReset:=False, Type:= _
wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False
End Sub
and this code:
DECLARE
app CLIENT_OLE2.OBJ_TYPE;
docs CLIENT_OLE2.OBJ_TYPE;
doc CLIENT_OLE2.OBJ_TYPE;
selection CLIENT_OLE2.OBJ_TYPE;
args CLIENT_OLE2.LIST_TYPE;
BEGIN
-- crear Nuevo documento
app := CLIENT_OLE2.CREATE_OBJ('Word.Application');
CLIENT_OLE2.SET_PROPERTY(app,'Visible',1);
docs := CLIENT_OLE2.GET_OBJ_PROPERTY(app, 'Documents');
doc := CLIENT_OLE2.INVOKE_OBJ(docs, 'add');
selection := CLIENT_OLE2.GET_OBJ_PROPERTY(app, 'Selection');
-- insertamos un texto dentro del Nuevo documento
CLIENT_OLE2.SET_PROPERTY(selection, 'Text', 'this is a test message');
-- guardamos el documento
args := CLIENT_OLE2.CREATE_ARGLIST;
CLIENT_OLE2.ADD_ARG(args, 'c:\example.doc');
CLIENT_OLE2.INVOKE(doc, 'SaveAs', args);
CLIENT_OLE2.DESTROY_ARGLIST(args);
-- close el documento
args := CLIENT_OLE2.CREATE_ARGLIST;
CLIENT_OLE2.ADD_ARG(args, 0);
CLIENT_OLE2.INVOKE(doc, 'Protect', args);
CLIENT_OLE2.ADD_ARG(args, 0);
CLIENT_OLE2.INVOKE(doc, 'Close', args);
CLIENT_OLE2.DESTROY_ARGLIST(args);
CLIENT_OLE2.RELEASE_OBJ(selection);
CLIENT_OLE2.RELEASE_OBJ(doc);
CLIENT_OLE2.RELEASE_OBJ(docs);
-- salimos de MSWord
CLIENT_OLE2.INVOKE(app,'Quit');
END;
|
|
|
Goto Forum:
Current Time: Sun Feb 09 07:23:44 CST 2025
|