Wednesday, October 26, 2011
Tip of the Day: Dynamically Defining Unique File Names
Products: R:BASE eXtreme 9.1 (32/64)
R:BASE eXtreme 9.5 (64)
Build...: 9.1.4.11012 or higher http://www.rupdates.com
Section.: Plugins & Built-in Functions using Globally Unique Identifier
Here are two examples to create a unique file name in a multi-user and
multi-session environments using R:BASE eXtreme 9.1 (32/64) and R:BASE
eXtreme 9.5 (64).
-- Example 01
-- Using R:BASE eXtreme 9.1 (32/64)
IF (CVAL('DATABASE')) <> 'RRBYW17' OR (CVAL('DATABASE')) IS NULL THEN
CONNECT RRBYW17 IDENTIFIED BY NONE
ENDIF
-- Verify the existence of PDF Sub-Directory
SET VAR vChkFile INTEGER = NULL
SET VAR vChkFile = (CHKFILE('PDF'))
IF vChkFile <> 1 THEN
MD PDF
ENDIF
CLS
-- Get Globally Unique ID
SET VAR vGUID TEXT = NULL
PLUGIN RGUID vGUID|SYMBOLS OFF
-- Create Unique PDF File Name
SET VAR vPDFFileName TEXT = NULL
SET VAR vPDFFileName = +
('PDF\'+(CVAL('NetUser'))+'_'+.vGUID+'_CustomerList_'+ +
(FORMAT(.#DATE,'MMDDYYYY'))+'.pdf')
PRINT CustomerList +
OPTION PDF +
|FILENAME .vPDFFileName +
|SHOW_CANCEL_DIALOG ON +
|TITLE Customer List +
|SUBJECT Customer List +
|AUTHOR R:BASE eXtreme 9.1 (64) +
|KEYWORDS Customer List +
|OPEN ON
CLEAR VARIABLES vChkFile,vGUID,vPDFFileName,RBTI_%
RETURN
-- Example 02
-- Using R:BASE eXtreme 9.5 (64)
IF (CVAL('DATABASE')) <> 'RRBYW18' OR (CVAL('DATABASE')) IS NULL THEN
CONNECT RRBYW18 IDENTIFIED BY NONE
ENDIF
-- Verify the existence of PDF Sub-Directory
SET VAR vChkFile INTEGER = NULL
SET VAR vChkFile = (CHKFILE('PDF'))
IF vChkFile <> 1 THEN
MD PDF
ENDIF
CLS
-- Create Unique PDF File Name
SET VAR vPDFFileName TEXT = NULL
SET VAR vPDFFileName = +
('PDF\'+(CVAL('NetUser'))+'_'+(CVAL('GUID'))+'_CustomerList_'+ +
(FORMAT(.#DATE,'MMDDYYYY'))+'.pdf')
PRINT CustomerList +
OPTION PDF +
|FILENAME .vPDFFileName +
|SHOW_CANCEL_DIALOG ON +
|TITLE Customer List +
|SUBJECT Customer List +
|AUTHOR R:BASE eXtreme 9.1 (64) +
|KEYWORDS Customer List +
|OPEN ON
CLEAR VARIABLES vChkFile,vPDFFileName,RBTI_%
RETURN
Have fun!
Very Best R:egards,
Razzak.