G'day,

Two corrupted reports in two days, time for an R:BASE remedy!

Here is a block (2 to be accurate) of code I have in my programmer app file
that exports one or many forms from one database to text files then allows
you to import them into another database.   I am frequently doing this.

***************************************************************************************
I cut some sections out of it prior to posting and have not the time to test it
so please do so on a sample database before using it on your production
database.   You may also have to insert an owner name and password if
your database is thusly protected.
***************************************************************************************

I must get around to purchasing Dennis McGrath's archiving utility.

$COMMAND
FrmExp
-- Exports forms

-- Created by Tom Grimshaw 07-03-1998
-- Modification history
-- 15-06-1998   Added check for from database same as to database
-- 03-07-1999   Added call to ConectDT to reset date/time settings
-- 20-10-1999   Added check for database names and passwords
-- 16-01-2000   Changed null setting before and after UNLOAD and RUN
--

SET MESSAGES OFF
SET ERROR MESSAGES ON
DISCONNECT
DIALOG 'YES for BizMan, NO for TomsData:' vPick2 vEndKey YES
IF vPick2 = 'YES' THEN
   CONNECT BizMan
   SET VAR vDBTo TEXT = 'BizMan'
ELSE
   CONNECT TomsData
   SET VAR vDBTo TEXT = 'TomsData'
ENDIF
RUN ConectDT IN GlobBlok.apx
CLEAR VAR vChoice,vCount,vLines
SELECT COUNT(sys_Form_name) INTO +
   vLines INDICATOR vi1 +
   FROM SYS_Forms2
IF vLines = 0 THEN
   PAUSE 1 USING 'No Forms in database.' AT CENTER CENTER
   RETURN
ENDIF
CHOOSE vChoice +
   FROM #VALUES +
   FOR sys_Form_name +
   FROM SYS_Forms2 +
   ORDER BY sys_Form_name +
   AT 7,45 +
   CHKBOX +
   TITLE 'Click the Forms to export then click [OK]' +
   CAPTION 'Construction Module' +
   LINES .vLines
IF vChoice = '[Esc]' THEN
   PAUSE 1 USING 'No items checked.' AT CENTER CENTER
   RETURN
ENDIF
SET VAR vCount INTEGER = 1
SET VAR vFrmFile TEXT = NULL
SET VAR vCmd1 TEXT = NULL
SET VAR vCmd2 TEXT = NULL
SET NULL -0-
WHILE #PI > 0.00 THEN
   SET VAR vFrmFile TEXT = ('Frm' + (CTXT(.vCount)) + '.Frm')
   SET VAR vCmd1 TEXT = ('OUTPUT' & .vFrmFile)
   SET VAR vTemp TEXT = (SSUB(.vChoice,.vCount))
   IF vTemp IS NULL THEN
     BREAK
   ENDIF
   SET VAR vFrmName TEXT = (SSUB(.vTemp,-1))
   SET VAR vCmd2 TEXT = ('UNLOAD DATA for sys_Forms2 where sys_Form_name+
  EQ ''' + .vFrmName + '''')
   &vCmd1
   &vCmd2
   OUTPUT SCREEN
   SET VAR vCmd1 = NULL
   SET VAR vCmd2 = NULL
   SET VAR vCount = (.vCount + 1)
ENDWHILE
RUN SetNull IN GlobBlok.apx
DISCONNECT
DIALOG 'YES to export only, NO to export and import:' vExportOnly vEndKey NO
IF vEndKey = '[Esc]' OR vExportOnly = 'YES' THEN
   RETURN
ENDIF
IF vExportOnly = 'NO' THEN
   DISCONNECT
   DIALOG 'YES for BizMan, NO for TomsData:' vPick2 vEndKey YES
   IF vPick2 = 'YES' THEN
     CONNECT BizMan
     SET VAR vDBTo TEXT = 'BizMan'
   ELSE
     CONNECT TomsData
     SET VAR vDBTo TEXT = 'TomsData'
   ENDIF
ENDIF
IF vDBFrom = .vDBTo THEN
   PAUSE 1 USING 'Cannot copy from and to same database.' AT CENTER CENTER
   RETURN
ENDIF
RUN ConectDT IN GlobBlok.apx
SET VAR vCount2 INTEGER = (.vCount + 1)
SET VAR vCount INTEGER = 1
SET VAR vCount3 INTEGER = 1
SET NULL -0-
WHILE vCount3 < .vCount2 THEN
   SET VAR vTemp TEXT = (SSUB(.vChoice,.vCount))
   IF vTemp IS NULL THEN
     BREAK
   ENDIF
   SET VAR vFrmName TEXT = (SSUB(.vTemp,-1))
   SET VAR vCmd3 TEXT = ('DROP Form ''' + .vFrmName + '''')
   SET VAR vFrmFile1 TEXT = ('Frm' + (CTXT(.vCount)) + '.Frm')
   SET VAR vFrmFile2 TEXT = ('Frm' + (CTXT(.vCount)) + '.LOB')
   SET VAR vCmd4 TEXT = ('RUN' & .vFrmFile1)
   SET VAR vCmd5 TEXT = ('ERASE' & .vFrmFile1)
   SET VAR vCmd6 TEXT = ('ERASE' & .vFrmFile2)
   &vCmd3
   &vCmd4
   &vCmd5
   &vCmd6
   CLEAR VAR vCmd3,vCmd4,vCmd5,vCmd6
   SET VAR vCount = (.vCount + 1)
ENDWHILE
RUN SetNull IN GlobBlok.apx
CLEAR VAR vCount,vTranID,vTemp,vChoice,vFrmFile1,vFrmFile2
RETURN


$COMMAND
RptExp
-- Exports reports

-- Created by Tom Grimshaw 07-03-1998
-- Modification history
-- 07-03-1998
-- 03-07-1999   Added call to ConectDT to reset date/time settings
-- 16-01-2000   Changed null setting before and after UNLOAD and RUN
--

SET MESSAGES OFF
SET ERROR MESSAGES ON
DISCONNECT
DIALOG 'YES for BizMan, NO for TomsData:' vPick2 vEndKey YES
IF vPick2 = 'YES' THEN
   CONNECT BizMan
   SET VAR vDBTo TEXT = 'BizMan'
ELSE
   CONNECT TomsData
   SET VAR vDBTo TEXT = 'TomsData'
ENDIF
RUN ConectDT IN GlobBlok.apx
CLEAR VAR vChoice,vCount
SELECT (COUNT(*)) INTO +
   vCount INDICATOR vi1 +
   FROM SYS_Reports2
IF vCount = 0 THEN
   PAUSE 1 USING 'No reports in database.' AT CENTER CENTER
   RETURN
ENDIF
CHOOSE vChoice +
   FROM #VALUES +
   FOR SYS_REPORT_NAME +
   FROM SYS_Reports2 +
   ORDER BY SYS_REPORT_NAME +
   AT 7,45 +
   CHKBOX +
   TITLE 'Click the reports to export then click [OK]' +
   CAPTION 'Construction Module' +
   LINES 20
IF vChoice = '[Esc]' THEN
   PAUSE 1 USING 'No items checked.' AT CENTER CENTER
   RETURN
ENDIF
SET VAR vCount INTEGER = 1
SET NULL -0-
WHILE #PI > 0.00 THEN
   SET VAR vRptFile TEXT = ('Rpt' + (CTXT(.vCount)) + '.Rpt')
   SET VAR vCmd1 TEXT = ('OUTPUT' & .vRptFile)
   SET VAR vTemp TEXT = (SSUB(.vChoice,.vCount))
   IF vTemp IS NULL THEN
     BREAK
   ENDIF
   SET VAR vRptName TEXT = (SSUB(.vTemp,-1))
   SET VAR vCmd2 TEXT = ('UNLOAD DATA for sys_reports2 WHERE+
  sys_report_name EQ ''' + .vRptName + '''')
   &vCmd1
   &vCmd2
   OUTPUT SCREEN
   CLEAR VAR vCmd1,vCmd2
   SET VAR vCount = (.vCount + 1)
ENDWHILE
RUN SetNull IN GlobBlok.apx
DIALOG 'YES to export only, NO to export and import:' vExportOnly vEndKey NO
IF vEndKey = '[Esc]' OR vExportOnly = 'YES' THEN
   RETURN
ENDIF
IF vExportOnly = 'NO' THEN
   DISCONNECT
   DIALOG 'YES for BizMan, NO for TomsData:' vPick2 vEndKey YES
   IF vPick2 = 'YES' THEN
     CONNECT BizMan
     SET VAR vDBTo TEXT = 'BizMan'
   ELSE
     CONNECT TomsData
     SET VAR vDBTo TEXT = 'TomsData'
   ENDIF
ENDIF
IF vDBFrom = .vDBTo THEN
   PAUSE 1 USING 'Cannot copy from and to same database.' AT CENTER CENTER
   RETURN
ENDIF
RUN ConectDT IN GlobBlok.apx
SET VAR vCount2 INTEGER = (.vCount + 1)
SET VAR vCount INTEGER = 1
SET VAR vCount3 INTEGER = 1
SET NULL -0-
WHILE vCount3 < .vCount2 THEN
   SET VAR vTemp TEXT = (SSUB(.vChoice,.vCount))
   IF vTemp IS NULL THEN
     BREAK
   ENDIF
   SET VAR vRptName TEXT = (SSUB(.vTemp,-1))
   SET VAR vCmd3 TEXT = ('DROP REPORT ''' + .vRptName + '''')
   SET VAR vRptFile1 TEXT = ('Rpt' + (CTXT(.vCount)) + '.Rpt')
   SET VAR vRptFile2 TEXT = ('Rpt' + (CTXT(.vCount)) + '.LOB')
   SET VAR vCmd4 TEXT = ('RUN' & .vRptFile1)
   SET VAR vCmd5 TEXT = ('ERASE' & .vRptFile1)
   SET VAR vCmd6 TEXT = ('ERASE' & .vRptFile2)
   &vCmd3
   &vCmd4
   &vCmd5
   &vCmd6
   CLEAR VAR vCmd3,vCmd4,vCmd5,vCmd6
   SET VAR vCount = (.vCount + 1)
ENDWHILE
RUN SetNull IN GlobBlok.apx
CLEAR VAR vCount,vTranID,vTemp,vChoice,vRptFile1,vRptFile2
RETURN


Warmest regards,


Tom Grimshaw
coy:    Just For You Software
tel:    612 9552 3311
fax:    612 9566 2164
mobile: 0414 675 903

post:   PO Box 470  Glebe  NSW  2037  Australia
street: 3/66 Wentworth Park Rd  Glebe  NSW  2037

email:  [EMAIL PROTECTED]
web: www.just4usoftware.com.au

This email and any files transmitted with it are confidential to the 
intended recipient and may be privileged. If you have received this email 
inadvertently or you are not the intended recipient, you may not 
disseminate, distribute, copy or in any way rely on it. Further, you should 
notify the sender immediately and delete the email from your computer. 
Whilst we have taken precautions to alert us to the presence of computer 
viruses, we cannot guarantee that this email and any files transmitted with 
it are free from such viruses.

Reply via email to