The following program shows how to export a report into PDF, RTF or HTML output. The OIPI does not export into Text files- too much formatting would be lost.

By varying the INIT message of Set_Printer(), the export file type can be changed.

Subroutine OIPI_Export_Example(Parent)
/*
--------------------------------------------------------------------------
This program is proprietary and is not to be used by or disclosed to
others, nor is it to be copied without written permission from Revelation Technologies, Inc.
VERSION : OI 3.7.5
PURPOSE : An example program to show how to use OIPI to export reports into
common file formats
AUTHOR : Mike Ruane
CREATED : October, 2001
PROCEDURES : This module may be called either as a stored procedure or as an internal
subroutine.
WARNINGS :
THEORY OF OPERATION :
This program lets a developer run reports written in Basic+ using the OIPI to
generate reports into HTML or RTF file formats.
REVISION HISTORY (Most CURRENT first) :
DATE IMPLEMENTOR FUNCTION
-------- ----------- --------
MM-DD-YY initials Modification
---------------------------------------------------------------------------*/
DECLARE FUNCTION Set_Printer, Msg
$INSERT OIPRINT_EQUATES
$Insert Colors
*---
* print to a PDF File
*---
Filename = 'Text Test Print':@FM: '' :@FM: 6 :@FM: 'C:\temp\pdf_file.pdf'
x = Set_Printer("INIT",FILENAME,'','','',5:@VM:@VM:1)
text = 'Export to PDF Example'
x = Set_Printer("TEXT",TEXT)
For I = 1 To 10
  TEXT = 'Line ':I
  x = Set_Printer("TEXT", TEXT)
Next I
*---
* print a table
*---
table = "1,2,3,4":@fm
table := "5,6,7,8/"
table := "9,10,11,12/"
table := "Row Number 4 - Column Number 1,Row Number 4 - Column Number 2,"
table := "Row Number 4 - Column Number 3,Row Number 4 - Column Number 4"
convert "," to @vm in table
convert "/" to @fm in table
head = "Column 1":@VM: "Column 2":@VM: "Column 3":@VM: "Column 4"
Column_Defs = "+<2160":@VM: "_^2160":@VM: "~>2160":@VM: "=2160"
x = Set_Printer("TEXT", @FM: "Here's a Table":@FM)
x = Set_Printer("ADDTABLE", Column_Defs, head, table, Red$, Cyan$, 0, TB_ALL)
x = Set_Printer("TERM")
*
---
* print to an RTF File
*---
Filename = 'RTF Test Print':@FM: '':@FM: 1 :@FM: 'C:\temp\rtf_file.rtf'
x = Set_Printer("INIT",FILENAME,'','','',5:@VM:@VM:1)
text = "Export to RTF Example"
x = Set_Printer("TEXT",TEXT)
For I =1 TO 10
  TEXT = 'Line ':I
  x = Set_Printer("TEXT", TEXT)
Next I
*
---
* print a table
*---
table = "1,2,3,4":@fm
table := "5,6,7,8/"
table := "9,10,11,12/"
table := "Row Number 4 - Column Number 1,Row Number 4 - Column Number 2,"
table := "Row Number 4 - Column Number 3,Row Number 4 - Column Number 4"
convert "," to @vm in table
convert "/" to @fm in table
head = "Column 1":@VM: "Column 2":@VM: "Column 3":@VM: "Column 4"
Column_Defs = "+<2160":@VM: "_^2160":@VM: "~>2160":@VM: "=2160"
x = Set_Printer("TEXT", @FM: "Here's a Table":@FM)
x = Set_Printer("ADDTABLE", Column_Defs, head, table, Red$, Cyan$, 0, TB_ALL)
STAT = Set_Printer("TERM")
*
---
* Print to an HTML File
*---
Filename ='HTML Test Print':@FM: '':@FM: 4 :@FM: 'C:\temp\HTMLfile.HTML'
x = Set_Printer("INIT",FILENAME,'','','',5:@VM:@VM:1)
text = "Export to HTML Example"
x = Set_Printer("TEXT", TEXT)
*
---
* Print 10 Lines
*---
For I = 1 TO 10
  TEXT = 'Line ':I
  STAT = Set_Printer("TEXT", TEXT)
Next I
 
*
---
* print a table
*---
table = "1,2,3,4":@fm
table := "5,6,7,8/"
table := "9,10,11,12/"
table := "Row Number 4 - Column Number 1,Row Number 4 - Column Number 2,"
table := "Row Number 4 - Column Number 3,Row Number 4 - Column Number 4"
convert "," to @vm in table
convert "/" to @fm in table
head = "Column 1":@VM: "Column 2":@VM: "Column 3":@VM: "Column 4"
Column_Defs = "+<2160":@VM: "_^2160":@VM: "~>2160":@VM: "=2160"
x = Set_Printer("TEXT", @FM: "Here's a Table":@FM)
x = Set_Printer("ADDTABLE", Column_Defs, head, table, Red$, Yellow$, 0, TB_ALL)
x = Set_Printer("TERM")
x = msg('','Process has completed')
return 0
  • No labels