Bill,

Below your message I've listed a program that I wrote that I use to
import and export forms and reports between database.
I use it mainly for development database testing then apply to the
production database.  Both database have the same name and owner.  If
you are tranfering between a different database name and owner name you
have to edit the text file (not the lob) and change the line that has
CREATE SCHEMA AUTHOR Databasename Ownername then import into your
database.

Best regards,

Oma Cox

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill
Niehaus
Sent: Tuesday, September 14, 2004 6:20 AM
To: RBG7-L Mailing List
Subject: [RBG7-L] - Transferring a report - RBW7.1.77


I recall some information on how to unload a report from one database
and reload it into another database (same structure).  I don't recall
what the steps were for doing this.

Thanks for any assistance.

Bill Niehaus

-------------------------------------
CODE STARTS BELOW
-------------------------------------
-- tranFR3.rmd
-- use only with Rbase 6.5 or 7.1 windows
-- transfer out/in utility of reports/forms
-- Oma Cox 7/20/2004 Office & Computer Services Inc.
-- Rev 1 added dialog selection 8/1/2004
-- Rev 2 removed dialog selection replaced with choose 8/4/2004
-- Rev 3 added import option for Reports and Forms 8/12/2004

-- Use of this routine is for transfer between development database
-- and production database
-- that must have the same database name and owner
-- If database names are different then the .FOR or .REP file must be
modified
-- changing the database name and owner referenced in this file
-- CREATE SCHEMA AUTHOR Databasename Owner
-- This program stores the file in current folder of the database
connected to
-- This program will only store and retrieve data for the version
-- of Rbase that it is running in.  So to transfer a R:Base 2000 (6.5)
-- data to a R:Base 7.1 database you must open the R:Base 7.1 database
-- in R:Base 2000 (6.5)


-- vtable = sys_forms2 - Version 6.5
-- vtable = sys_reports2 - Version 6.5
-- vtable = sys_forms3 - Version 7.1
-- vtable = sys_reports3 - Version 7.1
-- vcolumn = sys_form_name
-- vcolumn = sys_report_name
-- vtable = sys_table_name
-- vcomment = sys_comment

LABEL mainmenu
SET MESSAGES OFF
SET ERROR MESSAGES OFF

CLEAR ALL VAR EXCEPT verror
SET ERROR VAR verror
SET VAR vchoice TEXT = NULL
SET VAR vversion TEXT = NULL
SET VAR vtable TEXT = NULL
SET VAR vitemname TEXT = NULL
SET VAR vtname TEXT = NULL
SET VAR vfileext TEXT = NULL
SET VAR vaction TEXT = NULL
SET VAR vfiletype TEXT = NULL
SET VAR vfilename TEXT = NULL
SET VAR vtextsize INTEGER = NULL
SET VAR varcfilename TEXT = NULL
SET VAR vdtstamp TEXT = NULL
SET VAR vrepname TEXT = NULL
SET VAR varcfileext TEXT = NULL
SET VAR vfilelist TEXT = NULL
SET VAR vclist TEXT = NULL
SET VAR vctitle TEXT = NULL
SET VAR vccaption TEXT = NULL
SET VAR vstname TEXT = NULL
SET VAR vtablever TEXT = NULL
SET VAR vsystable1 TEXT = NULL
SET VAR vsystable2 TEXT = NULL
SET VAR vtest1 TEXT = NULL

CLS
SET NULL -0-

SET VAR vtest1 = (CVAL('VERSION'))

SET VAR vtest1 = (SGET(.vtest1,12,1))

IF vtest1 = 'R:BASE v7.1' THEN

  CHOOSE vversion FROM #LIST '7.1,Exit' TITLE 'Version' +
  CAPTION 'Version Import/Export' LINES 3 FORMATTED

  IF (LASTKEY(0)) = '[ESC]' THEN
    GOTO done
  ENDIF

  IF vversion = '[ESC]' THEN
    GOTO done
  ENDIF

  IF vversion = 'Exit' THEN
    GOTO done
  ENDIF

  SET VAR vtablever = '3'

  GOTO mstart
ELSE

  IF vtest1 = 'R:BASE 2000' THEN

    CHOOSE vversion FROM #LIST '6.5,Exit' TITLE 'Version' +
    CAPTION 'Version Import/Export' LINES 3 FORMATTED

    IF (LASTKEY(0)) = '[ESC]' THEN
      GOTO done
    ENDIF

    IF vversion = '[ESC]' THEN
      GOTO done
    ENDIF

    IF vversion = 'Exit' THEN
      GOTO done
    ENDIF

    SET VAR vtablever = '2'
  ENDIF

  GOTO mstart

ENDIF

GOTO mainmenu

LABEL mstart

CHOOSE vaction FROM #LIST 'Export,Import' TITLE 'Options' +
CAPTION 'Export or Import Forms or Reports' LINES 5 FORMATTED

IF vaction = 'Export' THEN

  SET VAR vclist = 'Form,Report'
  SET VAR vctitle = 'Export'
  SET VAR vccaption = 'Exporting Form/Report'

  GOTO mexport
ENDIF

IF vaction = 'Import' THEN

  SET VAR vclist = 'Form,Report'
  SET VAR vctitle = 'Import'
  SET VAR vccaption = 'Importing Form/Report'

  GOTO mimport
ENDIF

IF (LASTKEY(0)) = '[ESC]' THEN
  GOTO done
ENDIF
IF vaction = '[ESC]' THEN
  GOTO done
ENDIF

GOTO mainmenu

LABEL mimport

CHOOSE vfiletype FROM #LIST .vclist TITLE .vctitle +
CAPTION .vccaption LINES 5 FORMATTED

IF vfiletype = 'Form' THEN

  SET VAR vfilelist = ('*.fo'+.vtablever)
  SET VAR vfileext = ('.fo'+.vtablever)
  SET VAR varcfileext = ('.fa'+.vtablever)
  SET VAR vccaption = 'Importing Form'
  SET VAR vstname = 'sys_form_name'
  SET VAR vtable = ('sys_forms'+.vtablever)

ENDIF

IF vfiletype = 'Report' THEN

  SET VAR vfilelist = ('*.re'+.vtablever)
  SET VAR vfileext = ('.re'+.vtablever)
  SET VAR varcfileext = ('.ra'+.vtablever)
  SET VAR vccaption = 'Importing Report'
  SET VAR vstname = 'sys_report_name'
  SET VAR vtable = ('sys_reports'+.vtablever)
ENDIF

IF (LASTKEY(0)) = '[ESC]' THEN
  GOTO done
ENDIF
IF vfiletype = '[ESC]' THEN
  GOTO done
ENDIF


CHOOSE vfilename FROM #LFILES IN .vfilelist TITLE .vctitle +
CAPTION .vccaption LINES 15 FORMATTED

IF (LASTKEY(0)) = '[ESC]' THEN
  GOTO done
ENDIF
IF vfilename = '[ESC]' THEN
  GOTO done
ENDIF


SET VAR vtextsize = ((SLEN(.vfilename))-4)
SET VAR vfrname = (SGET(.vfilename,.vtextsize,1))

-- check if form existings and unload the form being replace with date
time
-- stamp as part of file name
SELECT &vstname FROM &vtable WHERE &vstname = .vfrname

IF SQLCODE = 0 THEN
  -- File name format will be FormnameYYYYMMDDHHMMSS.FAR
  -- Set Date Time Stamp Value
  SET VAR vyear TEXT = (CTXT(IYR(.#DATE)))

  SET VAR vmonth TEXT = (CTXT(IMON(.#DATE)))
  IF (IMON(.#DATE)) < 10 THEN
    SET VAR vmonth TEXT = ('0'+.vmonth)
  ENDIF

  SET VAR vday TEXT = (CTXT(IDAY(.#DATE)))
  IF (IDAY(.#DATE)) < 10 THEN
    SET VAR vday TEXT = ('0'+.vday)
  ENDIF

  SET VAR vtssec TEXT = (CTXT(ISEC(.#TIME)))
  IF (ISEC(.#TIME)) < 10 THEN
    SET VAR vtssec TEXT = ('0'+.vtssec)
  ENDIF

  SET VAR vtsmin TEXT = (CTXT(IMIN(.#TIME)))
  IF (IMIN(.#TIME)) < 10 THEN
    SET VAR vtsmin TEXT = ('0'+.vtsmin)
  ENDIF

  SET VAR vtshr TEXT = (CTXT(IHR(.#TIME)))
  IF (IHR(.#TIME)) < 10 THEN
    SET VAR vtshr TEXT = ('0'+.vtshr)
  ENDIF

  SET VAR vts TEXT =(.vyear+.vmonth+.vday+.vtshr+.vtsmin+.vtssec)

  SET VAR vdtstamp = (.vfrname+.vts+.varcfileext)

  -- use date time value to add to form for archiving will have to
manually
  -- be deleted from file folder

  OUTPUT .vdtstamp
  UNLOAD ALL FOR &vtable WHERE &vstname = .vfrname
  OUTPUT SCREEN

  DROP &vfiletype &vfrname

  RUN &vfilename

  GOTO mainmenu

ELSE

  RUN &vfilename

  GOTO mainmenu
ENDIF

GOTO mainmenu
---------------------------------------------------------
LABEL mexport

CLS

CHOOSE vfiletype FROM #LIST .vclist TITLE .vctitle +
CAPTION .vccaption LINES 5 FORMATTED

IF (LASTKEY(0)) = '[ESC]' THEN
  GOTO done
ENDIF
IF vfiletype = '[ESC]' THEN
  GOTO done
ENDIF

IF vfiletype = 'Form' THEN

  SET VAR vfileext = ('.fo'+.vtablever)
  SET VAR vctitle = 'Hit ESC to Cancel'
  SET VAR vccaption = 'Pick Form to Unload ...'
  SET VAR vstname = 'sys_form_name'
  SET VAR vtable = ('sys_forms'+.vtablever)
  SET VAR

ENDIF
IF vfiletype = 'Report' THEN

  SET VAR vfileext = ('.re'+.vtablever)
  SET VAR vctitle = 'Hit ESC to Cancel'
  SET VAR vccaption = 'Pick Report to Unload ...'
  SET VAR vstname = 'sys_report_name'
  SET VAR vtable = ('sys_reports'+.vtablever)
ENDIF


CHOOSE vfrname FROM #VALUES FOR +
((LJS(&vstname,20))&(LJS(sys_table_name,20))&(LJS(sys_comment,20))), +
&vstname FROM &vtable ORDER BY &vstname +
TITLE .vctitle CAPTION .vccaption LINES 15 FORMATTED

IF (LASTKEY(0)) = '[ESC]' THEN
  GOTO mainmenu
ENDIF

IF vfrname = '[ESC]' THEN
  GOTO mainmenu
ENDIF

IF verror = 942 THEN

  SET VAR verrmsg = ('No '+.vfiletype+' to select!'+(CHAR(013))+'Check
selected version!'+(CHAR(013))+'Version selected is '+.vversion)
  PAUSE 2 USING .verrmsg icon ERROR
  GOTO mainmenu

ENDIF


-- Using FOR extension for Forms
SET VAR vfilename TEXT = (.vfrname+.vfileext)

OUTPUT .vfilename
UNLOAD ALL FOR &vtable WHERE &vstname = .vfrname
OUTPUT SCREEN

GOTO mainmenu

LABEL done

DIALOG 'Exit Unloading Routine?' vchoice = 10 vkey YES +
CAPTION 'Exiting.....' AT CENTER CENTER

IF (LASTKEY(0)) = '[ESC]' THEN
  GOTO mainmenu
ENDIF

IF vchoice = 'Yes' THEN
  RETURN
ENDIF

IF vchoice = 'No' THEN
  GOTO mainmenu
ENDIF


RETURN

Reply via email to