163 lines
6.0 KiB
Rexx
163 lines
6.0 KiB
Rexx
|
/*----------------------------------------------------------------------------*/
|
||
|
/* */
|
||
|
/* Copyright (c) 1995, 2004 IBM Corporation. All rights reserved. */
|
||
|
/* Copyright (c) 2005-2021 Rexx Language Association. All rights reserved. */
|
||
|
/* */
|
||
|
/* This program and the accompanying materials are made available under */
|
||
|
/* the terms of the Common Public License v1.0 which accompanies this */
|
||
|
/* distribution. A copy is also available at the following address: */
|
||
|
/* https://www.oorexx.org/license.html */
|
||
|
/* */
|
||
|
/* Redistribution and use in source and binary forms, with or */
|
||
|
/* without modification, are permitted provided that the following */
|
||
|
/* conditions are met: */
|
||
|
/* */
|
||
|
/* Redistributions of source code must retain the above copyright */
|
||
|
/* notice, this list of conditions and the following disclaimer. */
|
||
|
/* Redistributions in binary form must reproduce the above copyright */
|
||
|
/* notice, this list of conditions and the following disclaimer in */
|
||
|
/* the documentation and/or other materials provided with the distribution. */
|
||
|
/* */
|
||
|
/* Neither the name of Rexx Language Association nor the names */
|
||
|
/* of its contributors may be used to endorse or promote products */
|
||
|
/* derived from this software without specific prior written permission. */
|
||
|
/* */
|
||
|
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
|
||
|
/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
|
||
|
/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
|
||
|
/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
|
||
|
/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
|
||
|
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
|
||
|
/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
|
||
|
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */
|
||
|
/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
|
||
|
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
|
||
|
/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||
|
/* */
|
||
|
/*----------------------------------------------------------------------------*/
|
||
|
/**********************************************************************/
|
||
|
/* */
|
||
|
/* SAMP08.REX: OLE Automation with Open Object REXX - Sample 8 */
|
||
|
/* */
|
||
|
/* Create a Word document, enter some text, save it. Load it again */
|
||
|
/* and modify it. */
|
||
|
/* */
|
||
|
/**********************************************************************/
|
||
|
|
||
|
/* get a Word application object */
|
||
|
Word = .OLEObject~New("Word.Application")
|
||
|
|
||
|
/* set Word visible to see what happens */
|
||
|
Word~Visible = .TRUE
|
||
|
|
||
|
/* new document */
|
||
|
Document = Word~Documents~Add
|
||
|
|
||
|
/* get the selection object */
|
||
|
Selection = Word~Selection
|
||
|
|
||
|
/* type two lines of text and new paragraph */
|
||
|
Selection~TypeText("This is a text sent to MS Word with the Open Object Rexx OLE interface")
|
||
|
Selection~TypeParagraph
|
||
|
Selection~TypeText("This is a text in a new line")
|
||
|
|
||
|
/* select all */
|
||
|
Selection~WholeStory
|
||
|
|
||
|
/* get the font object */
|
||
|
Font = Selection~Font
|
||
|
|
||
|
/* change the font size and behavior */
|
||
|
Font~Name="Arial"
|
||
|
Font~Size="12"
|
||
|
Font~Bold = .TRUE
|
||
|
Font~Italic = .TRUE
|
||
|
|
||
|
/* get the environment variable TEMP and create filename to save */
|
||
|
TempDir = VALUE( "TEMP",,ENVIRONMENT)
|
||
|
-- use ".doc" instead of ".docx" to allow older Word apps to work:
|
||
|
FileName = TempDir || "\" || "WordCreatedByRexx.doc"
|
||
|
|
||
|
/* "save as..." and close Word */
|
||
|
Document~SaveAs(FileName)
|
||
|
Word~Quit
|
||
|
|
||
|
say "Created" FileName". Press enter to continue"
|
||
|
pull
|
||
|
|
||
|
/* get a Word application object */
|
||
|
Word = .OLEObject~New("Word.Application")
|
||
|
|
||
|
/* set word visible to see what happens */
|
||
|
Word~Visible = .TRUE
|
||
|
|
||
|
/* get the documents object and open a file */
|
||
|
Documents = Word~Documents
|
||
|
Documents~Open(FileName)
|
||
|
|
||
|
/* get the selection object and go to end of document */
|
||
|
Selection = Word~Selection
|
||
|
Selection~EndKey("6")
|
||
|
|
||
|
/* add a paragraph */
|
||
|
Selection~TypeParagraph
|
||
|
|
||
|
/* get active document object */
|
||
|
ActiveDocument = Word~ActiveDocument
|
||
|
|
||
|
/* invoke print preview */
|
||
|
ActiveDocument~PrintPreview
|
||
|
|
||
|
/* get active window object */
|
||
|
ActiveWindow = Word~ActiveWindow
|
||
|
|
||
|
/* change zoom percentage */
|
||
|
ActiveWindow~ActivePane~View~Zoom~Percentage = "200"
|
||
|
|
||
|
/* wait a little bit */
|
||
|
say "Showing Print Preview with 200%. Press enter to continue."
|
||
|
pull
|
||
|
|
||
|
/* change zoom percentage */
|
||
|
ActiveWindow~ActivePane~View~Zoom~Percentage = "100"
|
||
|
|
||
|
/* wait a little bit */
|
||
|
call syssleep 2
|
||
|
|
||
|
/* close print preview */
|
||
|
ActiveDocument~ClosePrintPreview
|
||
|
|
||
|
/* add a paragraph */
|
||
|
Selection~TypeParagraph
|
||
|
|
||
|
/* add a table */
|
||
|
ActiveDocument~Tables~Add(Selection~Range,4,5)
|
||
|
|
||
|
/* autoformat table to color */
|
||
|
Selection~Tables(1)~AutoFormat(9)
|
||
|
|
||
|
/* fill table */
|
||
|
|
||
|
header = .array~of("Year", "January", "February", "March", "April")
|
||
|
do i over header
|
||
|
Selection~TypeText(i)
|
||
|
Selection~MoveRight
|
||
|
end
|
||
|
|
||
|
do i=2000 to 2002
|
||
|
Selection~MoveRight(12)
|
||
|
Selection~TypeText(i)
|
||
|
Selection~MoveRight
|
||
|
do 4
|
||
|
Selection~TypeText(random(31))
|
||
|
Selection~MoveRight
|
||
|
end
|
||
|
end
|
||
|
|
||
|
say "Done. Press enter to quit."
|
||
|
pull
|
||
|
|
||
|
Word~Quit(.false)
|
||
|
|
||
|
|