- IntegerERRLINE
- IntegerLAST_CRIT_ERR
- IntegerEXT_CRIT_ERR
- IntegerCONSTRAIN_TESTS_COUNT
- IntegerCONSTRAIN_FOUND_COUNT
- IntegerFIELDINDEX
- IntegerWINDOWINDEX
- IntegerLASTERR
- IntegerTERMCHAR
- IntegerFLEXKEY
- IntegerSCREENEND
- IntegerMEMAVAIL
- IntegerLASTENTRY
- IntegerFLX_REVISION
- IntegerENTER$DISPLAY
- IntegerNOKEYCHECK
- IntegerCHAIN_DEPTH
- IntegerCURSOR_SET
- IntegerCURSOR_RETURN
- IntegerMINIMUM_MEMORY
- IntegerINDEX_NUMBER
- IntegerSCREEN_WIDTH
- IntegerNUMPAGE
- IntegerNUMWINDOW
- IntegerNEXT_MENU
- IntegerCURRENT_IMAGE
- IntegerCURRENT_WINDOW
- IntegerLAST_GOSUB
- IntegerSTRMARK
- IntegerSTRLEN
- IntegerLINECOUNT
ENTER & REPORT DEF'S
- IntegerPAGECOUNT
- IntegerPAGEEND
- IntegerPAGEFEED
- IntegerFILENUMBER
- IntegerFIELDNUMBER
- IntegerTOTAL_RESOURCES
- cObject
Define object class types.
- OnPreCreate_Dialog()
needed by the cCJGridColumnEdit control in grids. Very Private.
all other objects do nothing with this.
- Exit_Application()
We want this to delegate right up to Desktop object. So create for cObject that
simply delegates and a for cDesktop, that does that actual work
- cUIObject
- integerPrivate.Key(integer iKy)
replace key procedure to properly check numeric keyboard values
- IntegeriRet
- IntegeriCh
- IntegeriType
- IntegeriSep
- integerAnsiKey()
Take the last key processed by the Key message and return
its ANSI value. Returns 0, if a non-printable character (e.g. F1).
This should normally only get called within a Key message handler
- IntegervkCode
- IntegeriShift
- IntegeriCapsLock
- IntegeriCh
- integerOemKey()
Take the last key processed by the Key message and return
its OEM value. Returns 0, if a non-printable character (e.g. F1).
This should normally only get called within a Key message handler. This is what
you want if you are comparing this with other data in your proggrams
- integerDFKey(integer iKey)
Take the last key processed by the Key message and return
its DF value. If a printable character it returns OEM value. If
a special key (f1, Key_save, etc.) returns the DF name of this key.
- IntegeriCh
- default_date(integer item#)
Set date to current window if the window is blank
this is very, very obsolete. Avoid!
- Stringdte
- integerExtended_DEO_State()
************************************************************************//
This message will be send as a notification message from an //
Extended_Data_Set whenever a fieldvalue has been changed. //
It has been defined FOR cUIObject or Desktop here so that attached //
DEO which do not know anything about Extended_Data_Sets don't get //
frustrated. //
All focusable objects and DEOs must understand this. This should be //
changed at some point in the future. //
************************************************************************//
- IntegerConfirm(String item_name)
General purpose confirm function. Added to all classes
- Integerrval
- integerSave_Confirmation()
- integerDelete_Confirmation()
- IntegerLine_Save_Confirmation()
- IntegerLine_Delete_Confirmation()
- integerData_Loss_Confirmation()
- integerExit_Loss_Confirmation()
- Integertmp
- integerNo_Confirmation()
- integerShould_Save()
- integerShould_Save_Recursive()
- IntegerrVal
- Set(integer fg)
Added: 05/22/95 JJT
During a clear (or a save/delete which sends clear) object-validation is
properly shut off. However, the false assumption had been made that the
DEO request_clear/clear_all messages originated with the object that had
the focus. This was never true and is now even less likely to be true
with the request_??? delegation method. The proper solution is to shut
off object-validation in the focus object. The problem here is that
the focus object may not understand this message (text_windows, buttons,
etc). The work-around for now is to make sure that all objects understand
these message. We can not directly add an Object_Validation message to the
desktop (Object class). Because this message is internal this didn't work.
By default this does nothing. Objects using val_mx actually pass this on
object_validation.
- integerObject_Item_Validation()
- cm_MENU
removed in 8.3 --- might have #replaces defined in dfbase.pkg
#REPLACE U_DESKTOP |CI1 // a desktop class object - obsolete
#REPLACE U_BaseClass |CI1 // a desktop class object - obsolete
#REPLACE U_MESSAGE |CI2 // a message class object -obsolete
- cm_EDIT
- SCROLLB
- cm_LIST
- cm_BUTTON
- cm_CHECKBOX
- cm_CHECKLIST
- cm_FORM
- cm_FORMLIST
- CLIENT
- cm_TITLE
- cm_ACTION_BAR
- cm_WARNING_MSG
- cm_CRIT_MSG
- cm_ERROR
- cm_HELP
- ARRAY
- TRACE
- cm_ENTRY
- cm_ENTRYLIST
- cm_DIALOG
- cm_RADIO
- cm_RADIOLIST
- cm_VCONSOLE
- CLIPBOARD
- DFBaseObject
- DFBaseWindow
- DFBaseUIWindow
- DFBaseContainer
- DFBaseDialog
- DFBasePanel
- cDesktop
- IntegerMain_Panel_Id()
- IntegerDesktop_Verify_Exit_Application()
Redefine Exit-application beahviors so that:
1. Exit_Application is always delegated to the desktop
2. From desktop it gets exit_system_confirmation
3. Exit_system_confirmation Broadcasts verify_exit_application and
if successful broadcasts Notify_Exit_application (these will be
(received by main_panels to do with what they want).
- IntegerFail
- Desktop_Notify_Exit_Application()
- IntegerExit_System_Confirmation()
- IntegerFail
- Exit_Application()
- integermake_set()
global function to create set instances at random
- Integerretval
- SetTemplate : Set
- integermake_broadcaster()
Description
This function returns the id of a newly-created Broadcaster object.
Assumptions/Preconditions
None.
Exceptions
None.
Notes
None.
- Integerobj#
- broadcasterTemplate : broadcaster
- StringNetwork_User_Name()
****************************************************************************
$Module type: FUNCTION
$Module name: Network_User_Name
$Author : AK/VOO/KCR
Created : 09-24-96 @ 19:17
Description
This function reads the current username Of windows and returns that
name or an text unknown user
$Rev History
07/25/2003 Replaced obsolete code
09/24/1996 Module header created
****************************************************************************
- StringsName
- IntegeriRetval
- IntegeriLength
- DFBaseControl
- DFBaseMenu
- DFBaseButton
- DFBasePushButton
- DFBaseCheckBox
#REPLACE U_DFComboButton |CI39 // no longer exists
- DFBaseRadioButton
- DFBaseTriState
- DFBaseForm
- DFBaseEntry
- integerKey(integer iKy)
- DFBaseList
#REPLACE U_DFComboForm |CI45 // no longer exists
- DFBaseFormList
- integerKey(integer iKy)
- DFBaseCheckList
- DFBaseRadioList
- DFBaseEntryList
- integerKey(integer iKy)
- DFBaseComboBox
- DFBaseTriStateList
- DFBasePushButtonList
- DFBaseActionBar
- DFBasePullDown
- DFBaseSysMenu
- DFBaseGroup
- DFBaseScrollBar
- DFBaseHorzScrollBar
- DFRubberBand
- DFBaseTextBox
- DFBaseEdit
- DFBaseSession
- DFBaseDllSession
- DFBaseSerial
- DFBaseLineForm
- DFBaseToolPanel
#REPLACE U_DFVconsole |CI67 // no longer exists
- DFBaseMapiSession
- DFBaseImageList
- DFBaseTabDialog
- DFBaseToolBar
- DFBaseComboBoxEntry
- integerKey(integer iKy)
Very Private:
This duplicates the C code for these two classes. We must expose these here because we replaced
these C level messages in BaseEntryList and BaseFormList. Once we do that, we need to crate flex
level messages for their C based sub-classes.
If entry_state is false, we just want to let windows windows handle all key behavior.
This one should not be needed, C code should do it. It does not forward to above augmentations
procedure key for dfBaseComboBox integer iKy returns integer
If ( (entry_state(self,0)=0) Or ;
iKy=KUPARROW or iKy=KDOWNARROW or iKy=KSCROLL_BACK or iKy=KSCROLL_FORWARD) ;
set windows_override_state to false
else ;
forward send key iKy
end_procedure
- DFBaseMdiClient
- DFBaseListBox
- DFBaseEditPulldown
- DFBaseLineControl
- INETTRANSFER
inet classes
- CFTPTRANSFER
- CBASEHTTPTRANSFER
- BaseXMLDOMNODE
XML Classes
- BaseXMLDOMNODELIST
- BaseXMLDOMNAMEDNODEMAP
- BaseXMLDOMPARSEERROR
- BaseXMLDOMIMPLEMENTATION
- BaseXMLDOMDOCUMENTFRAGMENT
- BaseXMLDOMDOCUMENT
- BaseXMLDOMCHARACTERDATA
- BaseXMLDOMTEXTNODE
- BaseXMLDOMCDATASECTION
- BaseXMLDOMCOMMENT
- BaseXMLDOMATTRIBUTE
- BaseXMLDOMELEMENT
- BaseXMLDOMPROCESSINGINSTRUCTION
- BaseXMLDOMDOCUMENTTYPE
- BaseXMLDOMNOTATION
- BaseXMLDOMENTITY
- BaseXMLDOMENTITYREFERENCE
- CBASEWEBSERVICE
- DFCOMAUTOMATIONOBJECT
flexcom2 runtime classes
- DFCOMDOCUMENTOBJECT
- DFCOMACTIVEXCONTROL
- DFCOMDESIGNCONTROL
- DFCOMIDISPATCHDRIVER
- DFBaseRichEdit
- DFBaseTextEdit
- cIdleHandler
- IntegerKEY_ALT
Define physical key names
- IntegerKEY_SHIFT
- IntegerKEY_CTRL
- IntegerKEY_ENTER
- IntegerKEY_TAB
- IntegerKEY_BACK_SPACE
- IntegerKEY_ESCAPE
- IntegerKEY_UP_ARROW
- IntegerKEY_DOWN_ARROW
- IntegerKEY_LEFT_ARROW
- IntegerKEY_RIGHT_ARROW
- IntegerKEY_HOME
- IntegerKEY_END
- IntegerKEY_PGUP
- IntegerKEY_PGDN
- IntegerKEY_INSERT
- IntegerKEY_DELETE
- IntegerKEY_F1
- IntegerKEY_F2
- IntegerKEY_F3
- IntegerKEY_F4
- IntegerKEY_F5
- IntegerKEY_F6
- IntegerKEY_F7
- IntegerKEY_F8
- IntegerKEY_F9
- IntegerKEY_F10
- IntegerKEY_F11
- IntegerKEY_F12
- IntegerKEY_A
- IntegerKEY_B
- IntegerKEY_C
- IntegerKEY_D
- IntegerKEY_E
- IntegerKEY_F
- IntegerKEY_G
- IntegerKEY_H
- IntegerKEY_I
- IntegerKEY_J
- IntegerKEY_K
- IntegerKEY_L
- IntegerKEY_M
- IntegerKEY_N
- IntegerKEY_O
- IntegerKEY_P
- IntegerKEY_Q
- IntegerKEY_R
- IntegerKEY_S
- IntegerKEY_T
- IntegerKEY_U
- IntegerKEY_V
- IntegerKEY_W
- IntegerKEY_X
- IntegerKEY_Y
- IntegerKEY_Z
- IntegerKEY_SPACE
- IntegerKSPACE
- IntegerKEY_0
- IntegerKEY_1
- IntegerKEY_2
- IntegerKEY_3
- IntegerKEY_4
- IntegerKEY_5
- IntegerKEY_6
- IntegerKEY_7
- IntegerKEY_8
- IntegerKEY_9
- IntegerKEY_PLUS
- IntegerKEY_MINUS
- IntegerKEY_EQUAL
- IntegerKEY_BACK_SLASH
- IntegerKEY_SLASH
- IntegerCURRENT_OBJECT
System integers
- IntegerSELF
- IntegerFORWARD$MESSAGE
- IntegerCURRENT_MESSAGE
- IntegerTOTAL_OBJECTS
- IntegerERROR_OBJECT_ID
- IntegerERROR_TYPE
- ABORT
- ACCEPT
- APPEND
- ASCII
- AUTO2$
- AUTO3$
- AUTO4$
- AUTOPAGE
- BACKFIELD
- BEGIN
- BLANKFORM
- BREAK$
does breakpoint for all
- BREAK$DOWN
does gosub to break
- BREAK$PRT
prints all SUBHEADERs
- BREAK$T3
- BREAK$UP
does GOSUB to break
- BREAKINIT
set up breakpoints for REPORT
- BREAKPOINT
test breakpoint and set indicators
- CALCULATE
- CHAIN
- CHAIN$HELP
- CHARACTER
- CLEAR_OPTION
Clears window options which
- CLEARFORM
- CLEARSCREEN
- CLEARWARNING
- CLEARXY
- CLOSE_INPUT
- CLOSE_OUTPUT
- CMDLINE
- CMSG
With the name mangling code, we need a way to define external C messages.
The CMSG command does just that. It uses the #FGEN command to parse over a special syntax
that defines a prototype in this form:
Example: CMSG I GET_AUX_VALUE |CI$31 I
This generates in !? a name GET_AUX_VALUE@I if we mangle on the parameter list types
This generates in !? a name GET_AUX_VALUE@I@I if we mangle on the parameter list and return type
This generates in !? a name GET_AUX_VALUE@1 if we mangle on the number of the parameters
CMSG V GET_FOO |CI$099 V
Returns GET_FOO_# and receives a variable argument list.
#IFDEF MANGLE_NAMES
- COPYFILE
#ENDIF
- CONSTRAINT_SAVE_INIT
- CONSTRAINT_SET
- CONSTRAINT_VALIDATE
- CONSTRAINT_INIT
mode file by index
- CONSTRAINED_CLEAR
- CONSTRAINED_FIND
MODE FILE by INDEX
- DEBUG
JJT-5.1
#COMMAND DATE TR
#NUM V$
#REPLACE !1 |VD!v
#IF (!0>1)
DATE !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
- DECREMENT
- DESPOOL
O/S dependent function
- DIRECTORY
- DIRECT_INPUT
- DIRECT_OUTPUT
- APPEND_OUTPUT
- DISKFREE
- DISPLAY
- ELSE
- END
- ENDGROUP
- ENT$KEY
- ENTAGAIN
- ENTDISPLAY
only works with recnum tables. Command not used in VDF
Display all entries for a file
- ENTER
This command has Not been changed to support file_number instead of recnum. This is not a VDF command and I
cannot imagine how it could be used. However, if someone is using this, they can only use recnum tables. Updating this
command would somehow imply that this command is supported in vdf -- it's not.
- ENTEREND
end of ENTER
- ENTERGROUP
independent entry section
- ENTERMODE
- ENTFIND
- ENTRY
- ENTSFIND
- ENTUPDATE
only works with recnum tables. Command not used in VDF
- ERASEFILE
- ERROR
- ERROR_REPORT
- FIELD_DEF
- FILELIST
- FILELIST$PUT
- FILE$MODE$HELP
- FILE_MODE
- FILE_SIZE
see Old_open command for notes on this removal
#COMMAND FILE$MODE RT #LGSU .
#CHECK !1.RECNUM _RULG
!A [] $0CB !1.RECNUM !2
#ENDCOMMAND
- FIND
- FIND$PAGE
- FLEX$INIT
- FOR
- FORMAT
FORMAT window {}
FORMAT window THRU window {}
- FORMAT$RANGE
- FORMFEED
just like PAGECHECK 500
- GET_ARGUMENT_SIZE
- GET_CHANNEL_SIZE
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
GET_CHANNEL_SIZE channelNumber TO integerVariable
Descrtiption:
A command to retrieve the "size" of a sequential device (opened with
direct_input). Warning, devices that do not support the concept of
"size" (such as LST:) report an error.
Parmeters:
channelNumber
Number of a valid (open) channel.
integerVariable
Variable to return the channel size to. If the channel is not
open, 0 is returned.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- GET_RESOURCE_TYPE
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
GET_RESOURCE_TYPE resourceName|resourceId TO integerVariable
Descrtiption:
A command to retrieve the type of a resource at runtime. (Note: the
resource type is set a compile-time.) For the first parameter, you may
pass either the resource name (not in quotes) or the integer value of
the resource id.
Parmeters:
resourceName
Name of a resource.
resourceId
Integer value of a resource id. (The resource name is just a
symbolic replacement (with a .RSC suffix) of a constant integer
equal to the resource id.)
integerVariable
Variable to return the resource type to.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- GET_CURRENT_COLORS
- GET_CURRENT_DIRECTORY
- GET_CURRENT_INPUT_CHANNEL
- GET_CURRENT_LOCKCOUNT
- GET_CURRENT_OUTPUT_CHANNEL
- GET_CURRENT_USER_COUNT
- GET_DATE_FORMAT
- GET_ENVIRONMENT
- GET_LICENSED_MAX_USERS
- GET_NUMBER_FORMAT
- GETXY
- GOSUB
- GOTO
- GOTOXY
- HELP
- IF
- IFNOT
- IF_
note that IF_ and IFNOT_ are private and old. They do not work in all
cases. For example, "If_ Indicator" will not work. Use IF
THIS IF_ WILL NOT WORK WITH ELSE!
- IFNOT_
THIS IFNOT_ WILL NOT WORK WITH ELSE!
- IF$HELP
- IFCHANGE
- INCLUDE_RESOURCE
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
INCLUDE_RESOURCE fileName AS resourceName {TYPE resourceType}
Descrtiption:
A command to include (embed) a file as a resource.
Parmeters:
fileName
Name of a file (NOT in quotes) to include. May include a path.
resourceName
Name of the resource (NOT in quotes).
resourceType
A constant integer (or a symbolic replacement for a constant
integer) that is recorded in the .flx to indicate the type of
resource. If omitted, DF_RESOURCE_TYPE_LINE is assumed. You
uase any positive value for user-defined types. Do NOT use
0. 0 means the resource is uninitialized (registered, but not
included.) DAC reserves the negative values.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- INCREMENT
- INDCT$$0
- INDCT$$1
- INDCT$AS
&RX "AS" LU "$0""$1""$2""$3""$4""$5""MATCH""IN""" #LUG .
- INDCT$GROUP
- INDCT$STATUS
- INDEX_DEF
- INDICATE
- INDICATOR
- INHERIT_SCREEN
- INKEY
- INKEY$
- INPUT
- INSERT
- IS_FILE_INCLUDED
JJT-5.1
#COMMAND INTEGER TR
// ALLOW FOR MORE INTS
#REPLACE !1 |VI!D
#IF (!0>1)
INTEGER !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
- KEYCHECK
- KEYPROC
- LEFT
- LENGTH
- LOCK
- LOOP
- MAKEDEF$
make a list of symbols defined
- MAKE_FILE
- MEMORY
- MID
- MOVEDATE
JJT-5.1
#COMMAND MOVE #LU "TO" #GLEURC .
#IFCLASS !1 "G" // MOVE INDICATOR
#CHECK !1 _VWFC
!A [] $4020 !1 |GB[0] !3 IN$GLALL |3
#ELSE
// Type independent move as of 2.3
!A [] $086 !1 !3
#ENDIF
#ENDCOMMAND
- MOVEINT
- MOVENUM
- MOVEREAL
- MOVESTR
- MULTI$
repeat a command for each argument (internal)
- MULTIBACK$
same as above, except that arguments
- NAME
- ON
JJT-5.1
#COMMAND NUMBER TR
#NUM V$
#REPLACE !1 |VN!v
#IF (!0>1)
NUMBER !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
- OS$CALL
- OUTCLOSE
- OUTFILE
- OUTPUT
- OUTPUT_WRAP
- PAD
- PAGE
- PAGECHECK
- POS
- PRINT
- PRINT_WRAP
- READ
- READLN
- READ_BLOCK
- READ_DFINI
- REGISTER_RESOURCE
#COMMAND REAL TR
#REAL V$
#REPLACE !1 |VR!v
#IF (!0>1)
REAL !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
REGISTER_RESOURCE resourceName
Descrtiption:
A command to register a resource for use prior to its inclusion.
Parmeters:
resourceName
Name of the resource (NOT in quotes).
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- REGISTRATION
- RENAMEFILE
- REPEAT
- REPLACE
- REPORT
not updated for File_number vs recnum support. This should not be used with VDF. See Enter command for notes
- REPORTEND
end of REPORT
- RIGHT
JJT-5.1
#COMMAND RETURN VFWNDE#G
#IF !0=0
!A [] $043 |CL0
#ELSE
#IFSAME !1 RETURN
#SET Q$ (!a+2)
!A [] $043 |CL!q // RETURN RETURN
RETURN !2 !3 !4 !5 !6 !7 !8 !9
#ELSE
#IFDEF !1
#CHECK !1 _S
#CHECK !2 .
!A [] $043 !1
#ELSE
!A [] $043 |CL0
#FREF !1 !a
#ENDIF
#ENDIF
#ENDIF
#ENDCOMMAND
- RUNPROGRAM_PIPE
- RUNPROGRAM
- Runprogram$Shell
- SCREENMODE
- SECTION
- SET_ARGUMENT_SIZE
- SET_DFPATH
- SET_CHANNEL_POSITION
- SET_OPTION
Sets window options
- SET_RELATE
- SET_TERMLIST
- SETCHANGE
- SHOW
- SHOWLN
- SLEEP
- STOP
removed along with the other Old_Xxxxx commands. Note that there is no current status command.
#COMMAND STATUS$ &CVW#LG "TO" #LUGRE
#IFDEF !1
!A [] $304 !1 !3
#ELSE
#CHECK !1.RECNUM _CVWLR#GU
!A [] $304 !1.RECNUM !3
#ENDIF
#ENDCOMMAND
- STOP_HERE
- SUBTOTAL
JJT-5.1
#COMMAND STRING TR E#L%
#IF (!0>1)
#IFDEF !2
#CHECK !2 _VSWDF
#STR V$ !2
#REPLACE !1 |VS!v
#IF (!0>2)
STRING !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ELSE
#STR V$ 80
#REPLACE !1 |VS!v
STRING !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ELSE
#STR V$ 80
#REPLACE !1 |VS!v
#ENDIF
#ENDCOMMAND
- SYSDATE$HELP
- SYSDATE
SYSDATE DATE HR MIN SECOND
- SYSDATE4
SYSDATE DATE HR MIN SECOND
- SYSTEM
- TRIM
remove pre- and trailing spaces
- UNLOCK
- UNTIL
- UPPERCASE
- WHILE
- WRITE$STR
- WRITE
- WRITELN
- GET_CHANNEL_POSITION
- INITIALIZE_INTERFACE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
INITIALIZE_INTERFACE
Parameters:
None.
Description:
INITIALIZE_INTERFACE initializes the object resource information.
It should be executed before any other object related operations
are performed.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- Define$BuiltIn$DF$Messages
define all messages used by object system. This is new to VDF7. All messages
are now defined here.
define all runtime messages common to VDF and CM DF
Note: make sure number of lines in command is less than 1024
- Define$BuiltIn$VDF$Messages
define all runtime messages used just by VDF
Note: make sure number of lines in command is less than 1024
- Define$BuiltIn$XML$Messages
- Define$BuiltIn$FlexCom2$Messages
- Define$BuiltIn$Transfer$Messages
- Define$BuiltIn$WAS$Messages
- GET$OBJ$IMAGE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
Object ObjectName IS [A|AN] ObjectClass {ImageName} {SubImageNames...}
Parameters:
ObjectName is a string.
ObjectClass is an integer.
ImageName is a string.
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
JJT-5.1
#COMMAND OBJECT R "IS" "A""AN" RVD#I
#IF (!0<5) // if no image try to aquire one
OBJECT !1 !2 !3 !4 !1
#ELSE
#DATA // start up the data stream
#PUSH !Zj // save the unique object label
#PUSH !b // save current definition state
#IF (!b = 4) // if in procedure and not class
#SET ZJ$ 0 // do not inc z
#ELSE
#SET ZJ$ !ZB // assign the next object id
#ENDIF
#PUSH !Zb // save this level on stack
#IFDEF !4.AGG // was this a class with sub objects?
#SET ZB$ !4.AGG // sub objects will begin at the
#ELSE // next object after superclass
#SET ZB$ 0 // base classes start at 0
#ENDIF
#SET ZI$ !ZI // count this object at the current level
#PUSH !Zi // and push the level
#IF (!b > 0) // if (in_object | in_class)
#IF (!b & 2) // obj_flag == in_class?
#IF (!b & 1) // obj_flag == in_Object?
#ELSE // No Name for Subobject in constructor
#REPLACE !$.!1.OBJ |CI-!Zj // object_name = -current_object
#ENDIF
#ENDIF
// (LS) removed setting of ZJ; it is NOT being used.
// (Removed when max lines increased > 32k)
// #SET ZJ$ (32766-!a) // a very unique label for this object
#DPUSH |CS".!1" // make name from parent and child
#ELSE // global object name
#DPUSH |CS"!1" // assign an absolute name to object
#ENDIF
#CHECK U_!4 _U // does class exist?
#DPUSH U_!4 // define then class the class id
GET$OBJ$IMAGE !5 // define the objects image
#IF ((!b & 3) = 2) // if in_class & !in_object
#DPUSH !$.!1.OBJ // pick the assigned dependant number
#ELSE //
#IF (!b = 0) // A global object must assign #
#IFDEF !1.OBJ // Is the symbol defined, name_object?
#DPUSH |CI0 // pick the next dependant number
#ELSE
#DPUSH |CI!Zj // force the dependant number
// #SET ZJ$ ($1000+!Zj) // mark as global object
#SET ZJ$ ($10000000+!Zj) // using 32-bit ids now
#REPLACE !1.OBJ |CI!Zj // Assign an ID to this object
#ENDIF
#ELSE
#DPUSH |CI0 // pick the next dependant number
#ENDIF
#ENDIF
REGISTER_OBJECT !1
#DPUSH GET_!1
#SET B$ (!b | 1) // we are in a object definition
!A [] OBJ$CREATE |VL // create the object now
#IFDEF !1.OBJ
#IFCLASS !1.OBJ V$ // does this object have a global?
MOVE CURRENT_OBJECT TO !1.OBJ // Move the object id to its global
#ENDIF
#ENDIF
#SPUSH //save the old class name
#SET $$ !4
#IFSUB '!$$SC' // if flex-defined class
#IFSUB '!$$SM' // if begin-instance macro exists
!$$SM !$ !5 !6 !7 !8 !9
#ELSE
FORWARD_BEGIN_CONSTRUCT !$ !5 !6 !7 !8 !9
#ENDIF
#ELSE
ADD$IMAGE$ARGS MSG_CONSTRUCT_OBJECT !5 !6 !7 !8 !9 //else use default
#ENDIF
#ENDIF
#ENDCOMMAND
identify the image type
- ADD$IMAGE$ARGS
pass sub image args to constructor
- REPEAT_ITEM
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
Register_Object Object_Name
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
JJT-5.1
#COMMAND REGISTER_OBJECT R
#IFDEF UI.EXISTS
#ELSE
USE UI
#ENDIF
#IFDEF GET_!1
#ELSE
#REPLACE GET_!1 |CI!ZH
#FREG GET_!1 RETURNS INTEGER
#ENDIF
#ENDCOMMAND
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
ITEM_LIST
Parameters:
None.
Description:
This is the startment that markes the beginning of a list of
items to be attached to the current object. A list class object
can not have a item list.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
JJT-5.1
#COMMAND ITEM_LIST .
#PUSH !Zg
#PUSH !Zj
#SET ZJ$ !a
#PUSH !Zj
#SET ZG$ 0 // Set the item counter to zero. This is used to
// count and assign ID's to the items.
!A [] OBJ$ILIST |CI0 // Create the command to save the item count,
#FREF OBJ$!Zj$INUM !a // and tell flex to update it later.
#ENDCOMMAND
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
ON_Item {Value} {[SEND Message {TO Object} | BEGIN_PULL_DOWN Pull_Down_Name {Pull_Down_Image}]}
Parameters:
Value is a string.
Message is a integer.
Object is a integer.
Description:
The ITEM command adds the next item to the current object list.
The Message is the value which will be passed to the handler
if this item is selected.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#COMMAND ON_ITEM NDI """SEND""BEGIN_PULL_DOWN"
#IF (!0<2)
#IF (!0<1)
ON_ITEM '' SEND MSG_NONE
#ELSE
ON_ITEM !1 SEND MSG_NONE
#ENDIF
#ELSE
#IFSAME !1 SEND
ON_ITEM '' !1 !2 !3 !4 !5 !6 !7 !8 !9
#ELSE
#IFSAME !2 SEND
#SET ZG$ !ZG // Increment the item counter
#IFSAME !4 TO
#CHECK !6 .
#DATA
#IFDEF !3
#DPUSH !3 // Push the (variable) message
#ELSE
#IFDEF MSG_!3
#DPUSH MSG_!3 // Push the constant message
#ELSE
#DPUSH |CI0
#FREF MSG_!3 !a,0 // Forward fef the message
#ENDIF
#ENDIF
#IFDEF !5
#DPUSH !5 // Push the (expression, var) dest object
#ELSE
#IFDEF !5.OBJ
#DPUSH !5.OBJ // Push the global object
#ELSE
#DPUSH |CI0
#FREF !5.OBJ !a,1 // Forward ref the object
#ENDIF
#ENDIF
!A [] OBJ$ITEM_EXEC !1 |VL
#ELSE
#IF (!0 > 3)
#CHECK !4 "TO"
#ENDIF
#IFDEF MSG_!3
!A [] OBJ$ITEM MSG_!3 !1 // Create the item passing name and value.
#ELSE
#IFDEF !3
!A [] OBJ$ITEM !3 !1 // Create the item passing name and value.
#ELSE
!A [] OBJ$ITEM |CI0 !1 // Create the item passing name and value.
#FREF MSG_!3 !a // fix value later with procedure address
#ENDIF
#ENDIF
#ENDIF
#ELSE
#IFSAME !2 BEGIN_PULL_DOWN
#CHECK !3 _R
REGISTER_OBJECT !3
ON_ITEM !1 SEND ACTIVATE_PULL_DOWN TO (!3(CURRENT_OBJECT))
#IFSUB 'END_MENU'
CREATE_MENU !3 SUB_LOCATION !4 !5 !6 !7 !8 !9
#ELSE
#ERROR DFERR_COMP_INVALID_ARGUMENT "BEGIN_PULL_DOWN" REQUIRES MENU_SYSTEM PACKAGE
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ENDCOMMAND
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
Repeat_Item Count# TIMES {Item_Syntax}
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- END_PULL_DOWN
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
Entry_Item File.Field {Entry_Options}
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
JJT-5.1
#COMMAND ENTRY_ITEM R
#SET ZG$ !ZG
#DATA
#IFCLASS !1 "EC"
#ENTOPT {$C0A0=!1,$C002,$C003,!2}
#ELSE
#ENTOPT {$C0A0=!1,!2}
#ENDIF
!A [] OBJ$ENTRY$ITEM |CI0 |VL
#ENDCOMMAND
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
END_ITEM_LIST
Parameters:
None.
Description:
The END_ITEM_LIST command marks the end of a list of items.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
JJT-5.1
#COMMAND END_ITEM_LIST .
#POP ZJ$
#REPLACE OBJ$!Zj$INUM |CI!Zg // Update the count in the ITEM_LIST cmd.
!A [] OBJ$ENDILIST OBJ$!Zj$INUM // Tell runtime this is the end of list.
#POP ZJ$
#POP ZG$
#ENDCOMMAND
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
END_PULL_DOWN
Parameters:
None.
Description:
Ends the structure of an ON_ITEM ... BEGIN_PULL_DOWN ... as used by
Menu_System package.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- DEFAULT_END_OBJECT
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
On_Key KeyName SEND Message {TO Object} {PRIVATE}
Parameters:
KeyName is a valid hot key name.
Message is valid message name.
Object is the a valid object name.
Description:
The ON_KEY command tells the menu manager to pass the
specified Message code to the specified Object when the
KeyNAme is pressed. If no Object name is passed, the current
object is used. Passing MSG_NONE for Message causes the key to do
nothing, passing MSG_DEFAULT_KEY will restore the default key definition.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#COMMAND ON_KEY RULGBO#SDN "SEND" RLGBO#SDN """TO""PRIVATE" _DNOB """PRIVATE" .
#IFSAME !4 PRIVATE
ON_KEY !1 !2 !3 TO |CI-1 PRIVATE
#ELSE
#DATA
#DPUSH !1
#IFSAME !4 TO
#IFDEF !5
#DPUSH !5
#ELSE
#IFDEF !5.OBJ
#DPUSH !5.OBJ
#ELSE
#DPUSH |CI0
#FREF !5.OBJ !a,1
#ENDIF
#ENDIF
#ELSE
#DPUSH |CI-1
#ENDIF
#IFSAME !6 PRIVATE
#DPUSH |CI1
#ENDIF
#IFDEF !3
!A [] OBJ$ONKEY !3 |VL
#ELSE
#IFDEF MSG_!3
!A [] OBJ$ONKEY MSG_!3 |VL
#ELSE // else the command is defined in flex code
!A [] OBJ$ONKEY |CI0 |VL // get flex to fix the fwd ref
#FREF MSG_!3 !a
#ENDIF
#ENDIF
#ENDIF
#ENDCOMMAND
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
END_OBJECT
Parameters:
None required
Description:
END_OBJECT tells the manager we are done defining an object.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
JJT-5.1
#COMMAND END_OBJECT
//
// The following section was added 01-08-90 by SAL to support inheritable
// end-instance macros for classes
//
#IFSUB '!$$SC' //if flex-defined class
#IFSUB '!$$EM' //if end-instance macro defined for class,
!$$EM !$ !1 !2 !3 !4 !5 !6 !7 !8 !9
#ELSE
FORWARD_END_CONSTRUCT !$ !1 !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ELSE
DEFAULT_END_OBJECT //else use default
#ENDIF
#SPOP //restore old class name
//
// end of addition 01-08-90 by SAL
//
#ENDCOMMAND
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
DEFAULT_END_OBJECT
Parameters:
NONE
Description:
This command terminates an object declaration
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- START_UI
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
Start_Ui {Object}
Parameters:
NONE
Description:
This command will dispatch io to the current focus. it will
remain in this routine until a non-zero return code is received.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- UI_ACCEPT
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
UI_ACCEPT Object {GROUP | OBJECT} TO ReturnValue
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET Property {OF Object} {ITEM #} TO Value {...}
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- GET
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
GET Property {OF Object} {ITEM #} TO Value {...}
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- FORWARD
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
FORWARD {GET | SET | SEND} Property {...}
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- DELEGATE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
DELEGATE {GET | SET | SEND} Property {...}
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- BROADCAST
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
BROADCAST {RECURSIVE | RECURSIVE_UP} {IGNORE_RETURN} {GET | SET | SEND} Property {...}
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- BROADCAST_FOCUS
- PROCEDURE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
Procedure {Set} Message {FOR Class} {{Type Argument} ...}
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- MESSAGE$ADDRESS
- REGISTER_PROCEDURE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
Register_Procedure Message {FOR Class} {{Type Argument} ...}
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- CHECK$ARGUMENT$LIST$ERROR1
Argument list validation rules:
The expected format is
type1 id1 type2 id2 ... typen idn
Functions have "Returns TypeReturn" at the end of the line.
The keyword OVERLOADED cannot be placed between the ids or types.
The keyword Global can proceed the list of parameters
Here are a list of the possible parsing errors.
- CHECK$ARGUMENT$LIST$ERROR2
- CHECK$ARGUMENT$LIST$ERROR3
- CHECK$ARGUMENT$LIST$ERROR4
- CHECK$ARGUMENT$LIST$ERROR5
- CHECK$ARGUMENT$LIST$ERROR6
- CHECK$ARGUMENT$LIST$ERROR7
- CHECK$ARGUMENT$LIST$ERROR8
- CHECK$ARGUMENT$LIST$ERROR9
- CHECK$ARGUMENT$LIST$ERROR10
- CHECK$METHOD$ARGUMENT$LIST$FOR$ID
Validation code is like this:
CHECK$METHOD$ARGUMENT$LIST is called in register_function, register_procedure, and external$function
This is called after a type is read.
- CHECK$METHOD$ARGUMENT$LIST$FOR$ID2
This is called after a type is read.
- CHECK$FOR$BOGUS$TRAILING$STUFF
- CHECK$FOR$RETURN$TYPE
Return type must follow Returns Keyword
- CHECK$METHOD$ARGUMENT$LIST
Check list of arguments.
Expected line could start with OVERLOADED or RETURNS.
Otherwise it will start with a list of type, identifier ordered pairs.
- CALL
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
CALL RoutineName {Parameters ...}
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SUB_PAGE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SUB_PAGE NewPage FROM FromPage ;
{ (WindowNumber) | ;
({VERTICAL|HORIZONTAL} FromWindow ForWindows) | ;
(RECTANGULAR FromWindow NumColumns NumRows) } {...}
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SUB$IMAGE$DEFINE
- MOVE_SUB_PAGE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- USE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
USE PackageName | UI
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- VFIND
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SCREEN_OPTIMIZE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
Parameters:
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- FORWARD_BEGIN_CONSTRUCT
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
FORWARD_BEGIN_CONSTRUCT ClassName { <argument> ... }
Parameters:
ClassName is the name of the class which owns the macro that is
forwarding.
<argument> is any argument required
Description:
This command allows the instance-creation macros defined for classes
to 'inherit' the instance-creation macro(s) defined by their
superclass(es).
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
<currentClassName> { <arg> ... }
- FORWARD_END_CONSTRUCT
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
FORWARD_END_CONSTRUCT ClassName { <argument> ... }
Parameters:
ClassName is the name of the class which owns the macro that is
forwarding.
<argument> is any argument required
Description:
This command allows the instance-ending macros defined for classes
to 'inherit' the instance-ending macro(s) defined by their
superclass(es).
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
<currentClassName> { <arg> ... }
- SET_DEFERRED
- NAME_ITEM
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
NAME_ITEM <object_name> item names...
Description:
Gives names to items of objects in the form: object.item
Assumes item number has already been set.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- NAME_COLUMN
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
NAME_COLUMN <object_name> item names...
Description:
Gives names to items of objects in the form: object.item
Just like name_item except item numbers are relative to
base_item.
Assumes item number has already been set.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- NAME_PROPERTY
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
NAME_PROPERTY <object_name> property names...
Description:
Gives names to property of objects in the form: object.item
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- NAME_OBJECT
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
NAME_OBJECT <object_name> ACCESS item names...
ACCESS = CHILD, GLOBAL, COLUMN, PROPERTY, ITEM or ACCESS METHOD.
Description:
Gives names to objects in the form: object.obj
and allows items, properties and COLUMNs to be defined.
Inits item number to zero and assumes item names follow.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- ITEM_GROUP
- END_ITEM_GROUP
- DEPENDENT_ITEM
- IMPORT_CLASS_PROTOCOL
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
IMPORT_CLASS_PROTOCOL Source Dest {Msg | ALL} {Flag}
Description:
This command will copy the message definitions of the Source
class to the Dest class. The program may choose to copy ALL
of the messages or only one of the messages from the Source.
The program has the option to stop any message that would overwrite
and to stop the copying of messages not directly defined in the
Source class.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- LOGOUT
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
LOGOUT {Driver Name {Server Name}}
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET_TRANSACTION_RETRY
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_TRANSACTION_RETRY
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- GET_TRANSACTION_RETRY
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
GET_TRANSACTION_RETRY
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- COPY_DB
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
COPY_DB
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- COPY$DB$CALLBACK
- COPY$DB$COMPRESSION
- DECLARE_DATAFILE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
DECLARE_DATAFILE logicalFileName*n
Description:
Include the .FD for the named file and define any related symbols,
e.g., FILE.FILE_NUMBER
Parameter
logicalFileName
Base name of the .FD file, e.g., for PERSON.FD, it would be
PERSON.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#COMMAND DECLARE_DATAFILE L#GT
#IF (!0>0)
#IFDEF !1.RECNUM
#IFDEF !1.FILE_NUMBER
#ELSE
#SET Q$ !1.RECNUM
#REPLACE !1.FILE_NUMBER |CI!q
#ENDIF
#ELSE
#INCLUDE !1.FD
#SET Q$ !1.RECNUM
#REPLACE !1.FILE_NUMBER |CI!q
#ENDIF
DECLARE_DATAFILE !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
Newer files may include the file_number symbol within the fd file. The rules should be:
1. If file has a recnum, it must define recnum in the file and it must NOT define file_number
(we don't define file_number so these fd files will be compatible with older DFs). In this case, file_number
will be defined in this command.
2. If file is new and does not support recnum, we define File_number but not recnum. Recnum will not
be defined at all.
Therefore, by the end of this command, file_number is always defined and recnum is defined only if it exists
- SET_FILE_FIELD
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_FILE_FIELD fileNum fieldNum
SET_FILE_INDEX fileNum indexNum
Description:
Used by API commands requiring more than 2 parameters. Assigns
the fileNum and field or index number. Two commands were provided
to allow improve readability of code.
Parameters:
fileNum:
The number of the file.
fieldNum:
indexNum:
The number of the field or index ( depending on the command.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET_FILE_INDEX
- SET_SEGMENT_MISC
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_SEGMENT_MISC segmentNum miscNum
Description:
Used by API commands requiring more than 2 parameters. Assigns
the segmentNum and miscNum.
Parameters:
segmentNum:
The number of the segment of an index
miscNum:
A command dependent numeric value.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET_LENGTH_OFFSET
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_LENGTH_OFFSET length offset
Description:
Used by API commands requiring additional length and offset
parameters.
Parameters:
length:
Typically in bytes.
offset:
Typically in bytes.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- GET_ATTRIBUTE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
GET_ATTRIBUTE attribute;
{OF fileNum {fieldNum|(indexNum {segmentNum})} "TO" VARIABLE
Description:
Get a global, file, field, or index attribute.
Parameters
attribute
Attribute id (as defined by API) to be set
fileNum
Optional handle for either a file or a structure
fieldNum
Optional field to be interrogated
indexNum
Optional index to be interrogated
segmentNum
Num of segment in index to be interrogated
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET_ATTRIBUTE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_ATTRIBUTE attribute;
{OF fileNum {fieldNum|(indexNum {segmentNum})} "TO" VARIABLE
Description:
Get a global, file, field, or index attribute.
Parameters
attribute
Attribute id (as defined by API) to be set
fileNum
Optional handle for either a file or a structure
fieldNum
Optional field to be modified
indexNum
Optional index to be modified
segmentNum
Num of segment in index to be modified
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- STRUCTURE_START
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
STRUCTURE_START fileNum driverName
Description:
This function begins creation of a new file or modification of
an existing file.
Parameters:
fileNum:
The number for an existing file. It must be 0 if starting a
new file or the number of a file being modified. In either
case, a handle to the structure is written back into fileNum
so that attributes of the new structure can be queried.
driverName:
Name of the driver to use when creating a new file.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- STRUCTURE_ABORT
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
STRUCTURE_ABORT structureHandle
Description:
Terminates a file structure operation without completing it.
Parameters:
structureHandle
Handle from the structure_start.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- STRUCTURE_END
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
STRUCTURE_END fileNum {restructureOptions {tempDir {callBackObject}}}
Description:
This function commits a structure operation, performing restructure
on the file if necessary.
Parameters:
fileNum:
The number of the file ( or handle returned by STRUCTURE_START
for a new file ) which a STRUCTURE_START has been done on.
restructureOptions:
The IAND'ing of the following API attributes:
DF_STRUCTEND_OPT_NONE
DF_STRUCTEND_OPT_FORCE
DF_STRUCTEND_OPT_RECOMPRESS
DF_STRUCTEND_OPT_INPLACE
tempDir:
A temporary directory to be used in not restructuring in place.
callBackObject:
An object id which will receive MSG_CALLBACK during the restructure
operation. This the first parameter of this message is a string
containing progress information.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- STRUCTURE_COPY
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
STRUCTURE_COPY fromFileNumber TO toFileNumber
Descriptiion:
Copies structure of one file to another
Parameters:
fromFileNumber:
File Number of the file from where the structure is to be copied
toFileNumber:
Number of the file to which the structure is to be copied
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- FILL_FIELD
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
FILL_FIELD FileNumber fieldNumber { "WITH" <Fill_Type> }
Description:
Fill a field with the highest or lowest value ot the type.
Fill_type:
DF_HIGH or DF_LOW. For example for a numeric field, DF_HIGH is
all 9's and lowest being all 0's
Parameters:
FileNumber:
Number of the file
Field Number:
Number of the field which is to be filled
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- CREATE_FIELD
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
CREATE_FIELD fileNum {"AT" fieldNum}
Description:
Creates a new field. If fieldNum is ommitted or 0,
field is appended to record. Actual fieldNum assigned
to new field is returned in fieldNum. fileNum must
be the number of a file currently being restructured or
created.
Parameter:
fileNum
Handle for either a file or a structure
fieldNum
Field to be modified
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- DELETE_FIELD
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
DELETE_FIELD fileNum fieldNum
Description:
Delete the field described by fieldNum and fileNum. NOTE:
the fileNum handle must be for a file that has had a STRUCTURE_START
done on it.
Parameter:
fileNum
Handle for either a file or a structure
fieldNum
Field to be modified
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- CREATE_INDEX
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
CREATE_INDEX fileNum {"AT" indexNum}
Description:
Creates a new index for file fileNum. STRUCTURE_START must have
been called for fileNum. IndexNum will contain the number of
the index created; any value in it prior to the call is ignored.
Parameter:
indexNum
Handle for either a file or a structure
fieldNum
Field to be modified
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- DELETE_INDEX
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
DELETE_INDEX fileNum indexNum
Description:
Delete the index described by indexNum and fileNum. NOTE:
the fileNum handle must be for a file that has had a
STRUCTURE_START done on it.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- VARIABLE_FILE_COMMAND
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
VARIABLE_FILE_COMMAND command [fileSymbol|fileNum]
Description:
This command allows the execution of any other command,
handling both file numbers ( 102 ) and file symbols
( PERSON )
Parameters:
command:
The DataFlex command number
fileSymbol:
The symbol used to load the .FD file; the logical name of the file.
fileNum:
The number of the file ( obviously ).
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- API_OPEN
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
OPEN {fileName AS} [logicalName|fileNum|] {MODE fileMode} index
Description:
Open a DataFile using the specified filename of filenumber.
Parameters:
fileName:
A string containing the physical name of the file
logicalName:
The symbolic name used to find the .FD file.
fileNum:
A number which will be used to open the file. If using the "AS"
form, fileNum may be a variable containing a 0. In that case,
filelist will be searched for an entry with a logical name
matching fileName; the number of the first entry matching will
be used as the number to open the file and will be written
back to the variable used for fileNum.
fileMode:
The mode to open the file in ( e.g., DF_EXCLUSIVE ).
index:
Index to buffer, may be either a number or an index symbol (INDEX.1)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- OPEN
Removed for 11.0 - only works with recnum tables. This was never documented and never designed to be used.
The Old_xxx commands were created when the API was added and probably left here for testing.
Anyone using the direct old command value (e.g. $c4 for relate) will only work with recnum tables. It is
very unikely anyone is using the actual command codes (a very bad practice that this not at all supported).
#COMMAND OLD_OPEN
#IFSAME !2 AS
DECLARE_DATAFILE !3
#CHECK !3 _TR
#CHECK !1 _#LG
#CHECK !5 .
#CHECK !3.RECNUM _URW#LG
#IF (!0>3)
#CHECK !4 _DGLOBU#
MOVEINT !4 TO FIELDNUMBER
!A [] $182 !3.RECNUM !1
#ELSE
MOVEINT |CI0 TO FIELDNUMBER
!A [] $182 !3.RECNUM !1
#ENDIF
#ELSE
#CHECK !3 .
DECLARE_DATAFILE !1
#CHECK !1.RECNUM _URW#LG
#IF (!0>1)
#CHECK !2 _FWSNDELG#U
!A [] $180 !1.RECNUM !2
#ELSE
!A [] $180 !1.RECNUM |CI0
#ENDIF
#ENDIF
#ENDCOMMAND
- API_CLEAR
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
CLEAR {logicalName|fileNum}*n
Description:
Clear the current record in the file.
Parameters:
logicalName:
The name used to identify the file in a DataFlex program.
fileNum:
The number used to open the file.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- CLEAR
see Old_open command for notes on this removal
#COMMAND OLD_CLEAR CVWR#LGE
#IFDEF !1
!A [] $C1 !1
#ELSE
#CHECK !1.RECNUM _CVWLR#GU
!A [] $C1 !1.RECNUM
#ENDIF
#IF !0>1
OLD_CLEAR !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
- NEWRECORD
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
NewRecord {logicalName|fileNum}*n
Description:
Sets the record buffer to inactive while retaining all existing data (w/ exception of recnum which is 0ed)
Parameters:
logicalName:
The name used to identify the file in a DataFlex program.
fileNum:
The number used to open the file.
added as of 12.0 - This is the recommended way to "inactivate" a record so it can be saved as a new record.
if recnum is used, this always moves 0 to recnum.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- API_CLOSE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
CLOSE {logicalName|fileNum}*n
Description:
Closes the file.
Parameters:
logicalName:
The name used to identify the file in a DataFlex program.
fileNum:
The number used to open the file.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- CLOSE
see Old_open command for notes on this removal
#COMMAND OLD_CLOSE RTE
#CHECK !1.RECNUM _CVWLR#GU
!A [] $181 !1.RECNUM
#IF (!0>1)
OLD_CLOSE !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
- GET$FIELD$VALUE$HELP
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
GET_FIELD_VALUE fileNum fieldNum "TO" destVariable;
{"LENGTH" iLength {"OFFSET" iOffset}}
Description:
Gets the value of a field into the destVariable doing any
type conversion necessary.
Parameters:
fileNum:
The number used to open the file.
fieldNum:
The number of the field.
destVariable:
Where the fields value will be put.
iLength:
The length of the data to be used. By default, all
data (or as much as can be) is written into the field.
A length of 0 causes all data to be written.
iOffset:
The first byte in the field where data will be written, from 0.
Default is that data will be written into the field starting at
byte 0.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- GET_FIELD_VALUE
- SET$FIELD$VALUE$HELP$2
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_FIELD_VALUE fileNum fieldNum "TO" newValue;
{"LENGTH" iLength {"OFFSET" iOffset {noTruncateFlag}}}
Description:
Sets the value of a field to newValue doing any type conversion
necessary.
Parameters:
fileNum:
The number used to open the file.
fieldNum:
The number of the field.
newValue:
The value to be put into the field.
iLength:
The length of the data to be used. By default, all
data (or as much as can be) is written into the field.
A length of 0 causes all data to be written.
iOffset:
The first byte in the field where data will be written, from 0.
Default is that data will be written into the field starting at
byte 0.
noTruncateFlag:
Flag which signifies whether existing data in the field
following data that is edited will be truncated or not. By
default, all old data following new data written is truncated.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET$FIELD$VALUE$HELP
- SET_FIELD_VALUE
- API_SAVERECORD
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SAVERECORD {logicalName|fileNum}*n
Description:
Saves the current record in the specified files.
Parameters:
logicalName:
The name used to identify the file in a DataFlex program.
fileNum:
The number used to open the file.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SAVERECORD
see Old_open command for notes on this removal
#COMMAND OLD_SAVERECORD CVWR#LGE
#IFDEF !1
!A [] $C2 !1
#ELSE
#CHECK !1.RECNUM _CVWLR#GU
!A [] $C2 !1.RECNUM
#ENDIF
#IF !0>1
OLD_SAVERECORD !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
- API_ATTACH
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
ATTACH {logicalName|fileNum}*n
Description:
Updates all fields in the current record which relate to another file
with the values of those fields in the parent ( or related-to) files.
Parameters:
logicalName:
The name used to identify the file in a DataFlex program.
fileNum:
The number used to open the file.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- ATTACH
see Old_open command for notes on this removal
#COMMAND OLD_ATTACH CVWR#LGE
#IFDEF !1
!A [] $C5 !1
#ELSE
#CHECK !1.RECNUM _CVWLR#GU
!A [] $C5 !1.RECNUM
#ENDIF
#IF !0>1
OLD_ATTACH !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
- API_SAVE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SAVE {logicalName|fileNum}*n
Description:
Save the contents of the currently active record, updating the
records with any data in parent files from related fields (as per
attach).
Parameters:
logicalName:
The name used to identify the file in a DataFlex program.
fileNum:
The number used to open the file.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SAVE
see Old_open command for notes on this removal
#COMMAND OLD_SAVE CVWR#LGE
#IFDEF !1
!A [] $C5 !1
!A [] $C2 !1
#ELSE
#CHECK !1.RECNUM _CLVWLR#GU
!A [] $C5 !1.RECNUM
!A [] $C2 !1.RECNUM
#ENDIF
#IF !0>1
OLD_SAVE !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
- API_DELETE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
DELETE {fileNum|logicalName}*n
Description:
Delete the currently active record from the datafile
Parameters:
logicalName:
The name used to identify the file in a DataFlex program.
fileNum:
The number used to open the file.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
see Old_open command for notes on this removal
#COMMAND OLD_DELETE CVWR#LGE
#IFDEF !1
!A [] $C3 !1
#ELSE
#CHECK !1.RECNUM _CVWLR#GU
!A [] $C3 !1.RECNUM
#ENDIF
#IF !0>1
OLD_DELETE !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
- DELETE
- API_RELATE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
RELATE {fileNum|logicalName}*n
Description:
Moves all related fields into the parent files and then performs a
find in the parents using the main index of the first (or primary)
related field for each parent.
Parameters:
logicalName:
The name used to identify the file in a DataFlex program.
fileNum:
The number used to open the file.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
see Old_open command for notes on this removal
#COMMAND OLD_RELATE CVWR#LGR
$c4 is not public anywhere now. It only works with recnum (e.g. |fnXxxx,00). If anyone one is actually using
$c4 in their code (highly unlikely) this will only work with recnum tables
#IFDEF !1
!A [] $C4 !1
#ELSE
#CHECK !1.RECNUM _CVWLR#GU
!A [] $C4 !1.RECNUM
#ENDIF
#IF !0>1
OLD_RELATE !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
- RELATE
- VARIABLE_ROWKEY_REFRESH_COMMAND
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
REREAD {fileNum|logicalName}*n
Description:
Locks all files and then re-finds the current record in each file
specified as an argument to the command. If no files are specified,
then all files are reread.
Parameters:
logicalName:
The name used to identify the file in a DataFlex program.
fileNum:
The number used to open the file.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
see Old_open command for notes on this removal
#COMMAND OLD_REFRESH T // Re-find all files listed by record identity
#CHECK !1.RECNUM _RUWG
!A [] $C0 !1.RECNUM |CI2 // FIND command
!A [FINDERR] $047 |CI25 |CS"!1" // ERROR command
#IF !0>1
OLD_REFRESH !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
see Old_open command for notes on this removal
#COMMAND OLD_REREAD
#IF !0=0
!A [] $0C9 // REREAD command
#ELSE
!A [] $0C7 // LOCK command
[MULTIUSER] OLD_REFRESH !1 !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
private. Does a reread for passed file using GetRowId function
- API_REFRESH
- API_REREAD
#COMMAND API_REFRESH
#IF (!0>0)
#CHECK !1 _LG#
MOVE 0 to INDEX_NUMBER
VARIABLE_FILE_COMMAND $CC !1 |CI2
#IFCLASS !1 SNDIECWV
[FINDERR] ERROR 25 !1
#ELSE
[FINDERR] ERROR 25 |CS"!1"
#ENDIF
API_REFRESH !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
- REREAD
- API_ZEROFILE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
ZEROFILE {fileNum|logicalName}
Description:
Erases all data within the file.
Parameters:
logicalName:
The name used to identify the file in a DataFlex program.
fileNum:
The number used to open the file.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
see Old_open command for notes on this removal
#COMMAND OLD_ZEROFILE $RT .
#IFDEF !1.RECNUM
#SET Q$ !1.RECNUM
!A [] $308 |CI!q
#ELSE
#CHECK !1 _SG#L
!A [] $308 !1
#ENDIF
#ENDCOMMAND
- ZEROFILE
- CONSTRAIN
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
VCONSTRAIN fileNum RELATES fileNum2
VCONSTRAIN fileNum AS boolExpression
VCONSTRAIN fileNum fieldNum mode expression
VCONSTRAIN fileNum fieldNum mode fileNum2 fieldNum2
Description:
This command allows a variable constraint to be created.
Parameters:
fileNum
Num of the file to be constrained
fieldNum
Num of the field to be constrained
boolExpression
An expression which is treated as FALSE if it evaluates to zero,
TRUE if non-zero
expression
Any DataFlex expression
fileNum2
Num of the file to be constrained to
fieldNum2
Num of the field to be constrained to
mode
Either the symbols LT, LE, EQ, NE, GT, GE, CONTAINS, and MATCHES,
or an expression that corresponds to their symbolic value.
MATCHES = 6, CONTAINS = 7.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- VCONSTRAIN_COMPARE
Handles comparing file.field to expression|file.field.
- VCONSTRAIN_AS
- VCONSTRAIN_RELATE
- VCONSTRAIN
- SORT
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SORT fileNum {indexNumbers {options {callBackObject}}}
Description:
Parameters:
logicalName:
The name used to identify the file in a DataFlex program.
fileNum:
The number used to open the file.
indexNumbers:
Optional string listing all index numbers to sort.
callBackObject:
An object id which will receive MSG_CALLBACK during the restructure
operation. This the first parameter of this message is a string
containing progress information.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- OUTPUT_AUX_FILE_HELP
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
OUTPUT_AUX_FILE fileType FOR fileNum {NUMBER logicalNum} {TO optPath}
Description:
Output a database related file.
Parameters:
fileNum:
The number used to open the file.
logicalNum:
The logical number to be used to create the file. Only used if the
file to be created is a new file (thus has no set file number).
fileType:
The type of file to be created, e.g., DF_AUX_FILE_FD or
DF_AUX_FILE_DEF.
optPath:
Optional filename/sequential device where output will be written.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- OUTPUT_AUX_FILE
- OUTPUT_DEF_FILE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
OUTPUT_DEF_FILE fileNum {NUMBER logicalNum} {TO optPath}
Description:
Output a .DEF file.
Parameters:
fileNum:
The number used to open the file.
logicalNum:
The logical number to be used to create the file. Only used if the
file to be created is a new file (thus has no set file number).
optPath:
Optional filename/sequential device where output will be written.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- OUTPUT_FD_FILE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
OUTPUT_FD_FILE fileNum {NUMBER logicalNum} {TO optPath}
Description:
Output an FD file.
Parameters:
fileNum:
The number used to open the file.
logicalNum:
The logical number to be used to create the file. Only used if the
file to be created is a new file (thus has no set file number).
optPath:
Optional filename/sequential device where output will be written.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- DELETE_DB
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
DELETE_DB fileNumber | logicalNameString {IGNORE_ERRORS}
Description:
Deletes a dGatafile. If IGNORE_ERRORS is passed, all errors
are suppressed. This should be used when deleting a file that
may or may not exist.
Parameters:
fileNumber:
Number of file to delete. File can be open but does not have
to be
logicalNameString:
String containing the logical name of the file to delete.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- COPY$RECORD$HELP
-=-=-=-==-==--=-=-=-=-=--=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
COPY_RECORDS FileNumber1 TO fileNumber2 {NoOfRecords};
{USING indexNum} {CALLBACK callback_id}
Description:
Copies NoOfRecords from fileNumber1 to fileNumber2. If USING is not
specified, recnum is used otherwise records are copied using the
specified indexNum. If CALLBACK is specified, the callback function
in the object callback_id is called. FileNumber1 AND FileNumber2
should have identical fields.
Parameters:
FileNumber1:
Number of file FROM where records are to be copied.
FileNumber2:
Number of fiel TO which recordsare to be copied.
NoOfRecords:
Number of records to be copied.
indexNum:
Index Number. If not specified, files are copied in the order of recnum.
callback_id:
Object id of the object containing the callback function.
-=-=-=-==-==--=-=-=-=-=--=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- COPY_RECORDS
- FIELD_MAP
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
FIELD_MAP FileNumber <field_name> "TO" FieldNumber
Description:
converts <field_name> into field number and puts it in FieldNumber
Parameters:
FileNumber:
No of the file containing the fields.
field_name:
name of the field to be converted into number.
FieldNumber:
Value returned by FIELD_MAP
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=---=-=-=-=-=-=--=-=-=-=-
- LOAD_DRIVER
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
LOAD_DRIVER driver_name
Description:
Loads a database driver
Parameter:
driver_name:
Name of the database driver.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- UNLOAD_DRIVER
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
UNLOAD_DRIVER driver_name
Description:
Loads a database driver
Parameter:
driver_name:
Name of the database driver.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- READ_HEX
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
READ_HEX {CHANNEL channelNum} varName {numHexBytes}
Description:
Read a stream of hex bytes from the sequential channel chosen. The
stream must be in the form of a string containing two byte printable
hex numbers, e.g., "616263" would correspond the the string "abc".
The value is converted into ASCII before it is store in varName.
Parameters:
channelNum:
The number of the sequential device channel to be read from. If
not specified, the currently active input channel is read from.
varName:
The variable to read the bytes into.
numHexBytes:
The number of two digit hex codes to read in, e.g., "616263" is
3 hex codes (even though it is actually 6 bytes). If ommitted or
zero, READ_HEX will read until it encounters the end of the line.
If data is read which cannot be converted from hex to ascii,
READ_HEX stops at that point.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- WRITE$HEX$HELP
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
WRITE_HEX {CHANNEL channelNum} {value}*n
Description:
Writes any set of values (expressions, variables, etc.) to the chosen
sequential channel in the form of a stream of two digit hex codes,
e.g., the string "abc" would be written as "616263".
Parameters:
channelNum:
The number of the sequential device channel to be read from. If
not specified, the currently active input channel is read from.
value:
Any variable, expression, etc. to be written out. The value is
evaluated and converted to a string before being written, e.g.,
a value of (1 + 1) would be converted to the string "2" and
then written out as "50" which is the hex code corresponding to
the character '2'.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- WRITE_HEX
- GET_CURSOR_VISIBLE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
GET_CURSOR_VISIBLE
Description:
Returns 0 if the cursor is hidden, non-zero if it is visible. NOTE:
this only reflects whether the cursor will be shown during the next
user input action, not whether it is currently shown.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET_CURSOR_VISIBLE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_CURSOR_VISIBLE visibleFlag
Description:
Sets the cursor hidden or displayable. NOTE: this only affects
whether the cursor will be shown during the next user input action,
not whether it is currently shown.
Parameters:
visibleFlag
If this value is non-zero, the cursor will be displayed. If zero,
the cursor will be hidden.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- COMPUTE$CRC$HELP
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
COMPUTE_SCREEN_CRC {startX startY endX endY "TO"} crcVariable
Description:
Returns a CRC for a region of the screen. This can be used by
automated testing programs to verify that the screen has the
expected display.
Parameters:
startX, startY, endX, endY
Starting and ending coordinates of the region to be CRC'd. If
not given, the whole screen is checked.
crcVariable
A variable which will contain the CRC.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- COMPUTE_SCREEN_CRC
- CALL$DRIVER$1
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
CALL_DRIVER fileNumber driverName;
FUNCTION driverFunction CALLBACK objectID;
PASSING aString aString2 aLong RESULT returnValue
Descrtiption:
A function call used directly access driver specific functions.
Parmeters:
fileNumber
Number of the file
driverName
Name of the driver
driverFunction
Numeric value corresponding to a driver specific function
returnValue
Value returned by CALL_DRIVER
aString
A string
aString2
Another string
aLoing
A long
objectID
Object id for an object that will be sent the GET_CALLBACK
message
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- CALL$DRIVER$2
- CALL_DRIVER
- LOAD_DEF
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
LOAD_DEF defName ONTO structureHandle
Descrtiption:
Will load the file definition from defName on top of the structure
defined by structureHandle. While the structure may be for an
existing file, no structure operations (other than STRUCTURE_START)
should be performed on structureHandle prior to calling LOAD_DEF.
Parmeters:
structureHandle
Handle to an new or modified structure.
defName
Name of the sequential device which contains the .DEF
specification.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET_FILELIST
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_FILELIST newName
Descrtiption:
Sets the filelist.cfg file to the name specified. If the specified
file cannot be opened, the current filelist file remains unchanged.
Parmeters:
newName
The name of the file to use as filelist.cfg
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- GET_FILELIST
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
GET_FILELIST Name
Descrtiption:
Gets the name of the current filelist file.
Parmeters:
Name
The name of the file being used as filelist.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- LOGIN
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
LOGIN ServerName UserName Password {DriverName}
Description:
Login to the specified server using the passed user and password.
Parameters
ServerName
Name of the server (driver specific) to be logged into
UserName
Name of the user to be used for the login
Password
Password to use for the login
DriverName
Optional database driver to use for the login. API defaults
to attempting a login with all drivers.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- ENUMERATION_LIST
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Commands:
ENUM_LIST, DEFINE, and END_ENUM_LIST
Descrtiption:
Altogether, these commands can be used to enumerate symbol
replacements for lists of symbols.
DEFINE outside of an ENUM/ENUM_LIST block can be used to define
individual symbolic replacements, and to define "flags". (However,
there is no UNDEFINE. Sorry.)
Parmeters:
ENUM_LIST and END_ENUM_LIST take no parameters.
DEFINE supports several syntaxes:
DEFINE symbol
If outside an enum list, defines a symbolic replacement named
symbol as |CI1 (to be used with #IFDEF compiler directive).
DEFINE symbol1 symbol2 ...
If within an enum list, defines a symbolic replacement named
symbol1 as a constant integer one greater than the previous
symbolic replacement in the enum list (and symbol2 and each
additional parameter are defined one greater than the symbol
before it).
DEFINE symbol FOR originalSymbol
If outside an enum list, defines a symbolic replacement named
symbol for originalSymbol. In this instance, originalSymbol may
be any valid symbol name or constant value.
DEFINE symbol FOR constInt
If within an enum list, defines a symbolic replacement named
symbol for the constant integer constInt. Only constant integers
can be used for constInt with the AS syntax option within enum
lists.
Examples:
enumeration_list
define ddd // starts at 0 by default
define eee // 1
define fff ggg hhh // 2 3 4
end_enumeration_list
enum_list
define rrr for 5 // start at 5
define sss // 6
define ttt for 21 // jump to 21
define uuu // 22
end_enum_list
define aaa for ttt // generic symbolic replacements
define aaa for "Hello"
define zzz // defines zzz as |CI1 (to be used with #IFDEF)
Note: Defining multiple "flags" (define sss ttt) is not allowed in order
to allow proper type-checking. (The compiler's preprocessor substitutes
the symbols too early; therefore, it becomes impossible to differentiate
the allowable syntaxes if multiple arguments are allowed.)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- DEFINE
Define with better protections against alias datatype naming
- END_ENUMERATION_LIST
- ENTRY_NAME_ITEM
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
ENTRY_NAME_ITEM itemName file.field ...
Description:
Just like Entry_Item except the first parameter is a (global) Item
Name.
Parameters:
itemName
The (global) name of the item being defined/created.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- ON_NAME_ITEM
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
ON_NAME_ITEM itemName itemValue ...
Description:
Just like On_Item except the first parameter is a (global) Item
Name.
Parameters:
itemName
The (global) name of the item being defined/created.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- BEGIN_TRANSACTION
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
BEGIN_TRANSACTION
Description:
Starts a transaction on any open files.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- END_TRANSACTION
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
END_TRANSACTION
Description:
Attempts to commit all operations in the current transaction.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- ABORT_TRANSACTION
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
ABORT_TRANSACTION
Description:
Aborts any currently active transactions, unlocking the files.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET_RESOURCE_LIBRARY
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_RESOURCE_LIBRARY newName
Description:
Tells the program to look in the specified file when opening
resources (with the DIRECT_INPUT command). Specifying "" (the empty
string) as the newName resets the resource library to look in the
currently executing program for resources. The new library must be a
properly compiled DataFlex program; all commands and non-resource
data in the program/library are ignored. The filename MUST include
the extension, but is not required to be .FLX. If the specified
file cannot be opened, an error occurs and the current resource
library continues to be used.
Note: Any resources that are currently open when the resource
library is changed remain open; i.e. you may continue to read from
them. The setting of the resource library only affects the
DIRECT_INPUT command when opening resources.
Parameters:
newName
The name of the file to use as the library of resources.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- GET_RESOURCE_NAME
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
GET_RESOURCE_NAME resourceName|resourceId TO stringVariable
Description:
A command to retrieve the name of a resource at runtime. For the first
parameter, you may pass either the resource name (not in quotes) (I
know that sounds strange, and you'd probably never do it, but it WILL
work) or the integer value of the resource id.
Parameters:
resourceId
Integer value of a resource id.
stringVariable
Variable to return the resource name to.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- ADD
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
ADD value TO variable
Description:
Adds the specified value to the target variable.
Parameters:
value:
Any expression
variable
Any window, variable, etc. that can receive a value
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SUBTRACT
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SUBTRACT value FROM variable
Description:
Subtracts the specified value to the target variable.
Parameters:
value:
Any expression
variable
Any window, variable, etc. that can receive a value
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- BREAK
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
BREAK [BEGIN|END]
Description:
Exit or jump to start of a control loop (WHILE, REPEAT, FOR). Default
action is to exit if no argument supplied.
Parameters:
BEGIN:
Jump to start of loop.
END:
Jump to end of loop and exit.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- HARD$EXIT
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
HARD$EXIT <integer>
THIS COMMAND IS INTENDED FOR INTERNAL DAC TESTING USE ONLY
USE WITHIN AN APPLICATION WILL PROBABLY CAUSE SYSTEM INTEGRITY
PROBLEMS!
This command causes the runtime to do an exit(#) without
any internal cleanup. It is intended for testing server
transaction support.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- NETWARE_GET_TTS_FLAG
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
netware_get_tts_flag <path name> to <integer boolean>
THIS COMMAND IS INTENDED FOR INTERNAL DAC TESTING USE ONLY!
This command returns the state of the TTS flag of a file (by path name),
returns false (0) if not a tts volume.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- NETWARE_SET_TTS_FLAG
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
netware_set_tts_flag <path name> to <integer boolean>
THIS COMMAND IS INTENDED FOR INTERNAL DAC TESTING USE ONLY!
This command sets the state of the TTS flag of a file (by path name),
returns [FOUND] if status could be set.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- NETWARE_GET_AVAILABLE
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
netware_get_available <integer boolean>
THIS COMMAND IS INTENDED FOR INTERNAL DAC TESTING USE ONLY!
This command returns non-zero if netware is loaded.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- VALID_DRIVE
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
VALID_DRIVE driveLetter retVal
Description:
This command returns non-zero if the drive is a valid drive letter
This command is only useful under dos/os2/windows
Parameters:
driveLetter
Drive letter to check if valid. Must be a letter.
retVal
Integer results of command
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET_DIRECTORY
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_DIRECTORY directory
Description:
Sets the current directory. The directory argument may contain a drive
letter to set the current directory on a particular drive.
Parameters:
directory
The new current directory to be set. The directory argument may
contain a drive letter to set the current directory on a particular
drive.
NOTE: This command will be removed for final VDF 4.0 release. A new message
will be added to provide replacement functionality. KCR
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- FILE_EXIST
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
FILE_EXIST fileName result
Description:
Returns non-zero if the specified file exists.
Parameters:
fileName
The name of the file to check the existance of.
result
Non-zero if the file exists or zero if does not exist.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- GET_DIRECTORY
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
GET_DIRECTORY {drive} currentDirectory
Description:
Returns the current directory.
Parameters:
{drive}
The drive letter to get the current directory for. If drive is
not specifed then the current drive is assumed.
currentDirectory
The current directory for the appropriate drive.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- MAKE_DIRECTORY
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
MAKE_DIRECTORY directory {permissions}
Description:
Makes a directory on the current drive. Uses the optional permissions
value for the directory if it is specified.
Parameters:
directory
The name of the new directory to be made.
{permissions}
The access permissions of the new directory. If this is not
specified then the default is DF_FLEX_ALL_RIGHTS.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- REMOVE_DIRECTORY
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
REMOVE_DIRECTORY directory
Description:
Removes the specified directory.
Parameters:
directory
The name of the directory to be removed.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- MAKE_TEMP_FILE
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
MAKE_TEMP_FILE tempExtension tempFile
Description:
Makes a temporary file with a unique name with the specified extension
and returns the unique name that was generated.
Parameters:
tempExtension
The extension to use when making the temporary file.
tempFile
The name of the temporary file that is returned.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- GET_FILE_MOD_TIME
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
GET_FILE_MOD_TIME fileName "TO" date {hour} {minute} {second}
Description:
Returns the file modified date/time stamp for the specified file.
Parameters:
fileName
The file to get the date/time stamp for.
date
The date the file was last modifed.
{hour}
The hour of the day that the file was last modified.
{minute}
The minute that the file was last modified.
{second}
The second that the file was last modified.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET_FILE_MOD_TIME
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_FILE_MOD_TIME fileName "TO" date {hour} {minute} {second}
Description:
Sets the file modified date/time stamp for the specified file.
Parameters:
fileName
The file to set the date/time stamp for.
date
The new date that the file was modified.
{hour}
The new hour that the file was modified.
{minute}
The new minute that the file was modified.
{second}
The new second that the file was modified.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET_VIDEO_MODE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_VIDEO_MODE
GET_VIDEO_MODE
Description:
Video Modes for DOS
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- GET_VIDEO_MODE
- DEFINE_SYMBOL
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
DEFINE_SYMBOL
Description:
Like #REPLACE except it checks if the symbol exists first.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- GET_DATE_ATTRIBUTE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
GET_DATE_ATTRIBUTE
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- SET_DATE_ATTRIBUTE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Command:
SET_DATE_ATTRIBUTE
Description:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- COMPILER_DESKTOP_METHOD_WARNINGS
JJT-5.1
Changed commands
- COMPILER_WARNINGS
- END_PROCEDURE
changes: 1. declare an error if not within a procedure or function
2. Check for mismatched Begin/End blocks.
3. Check for child objects within end_object
- END_CLASS
changes: 1. declare an error if not within a class
2. declare an error if within a procedure/function
3. declare an error in object (implies missing end_object)
Note: it is possible that under advanced usage you might be
creating a class in a method. If this is the case you should
use base_end_class
- BASE_END_CLASS
this is lower level end_class. It doesn't check that the
command apppears in the "right" spot.
- END_OBJECT
changes: declare an error if not within an object
if within a class, this should be inside of a method
- FUNCTION_RETURN
changes: declare an error if not within a procedure or function
- RETURN
change: return can be used in methods or in sub-routines
perhaps next revision
#COMMAND RETURN
#IF (!b & 4) // are we within a Procedure/function
#IF (!Zl & 2)
#REM #ERROR DFERR_COMP_OBSOLETE_UNSUPPORTED_FEATURE Old Style Usage: Possible gosub return inside of method
#ENDIF
Procedure_Return !1 // we are returning from a method
#ELSE
// tells us what we need to fix.
#IF (!Zl & 2)
#REM #ERROR DFERR_COMP_OBSOLETE_UNSUPPORTED_FEATURE Old Style Usage: Gosub style/Return s/b Gosub_return
#ENDIF
#IF (!Zl & 1) // if relaxed...
Gosub_Return !1 !2 // we are doing an old style sub-routine return
#ELSE
Procedure_Return !1 // we are returning from a method.. will gen an error
#ENDIF
#ENDIF
#ENDCOMMAND
change: if within a method declare an error. Force use of
gosub_return. This catches errors where developer types
return instead of procedure_return.
- Gosub_Return
- INTEGER
if not defined as local make it local if needed
- STRING
- DATE
- NUMBER
- REAL
- ADDRESS
- BIGINT
- TIME
#COMMAND LOGICAL R
DEFINE$VARIABLE$HELP LOGICAL !1 !2 !3 !4 !5 !6 !7 !8 !9
#ENDCOMMAND
- DATETIME
- FLOAT
- CHAR
- UCHAR
- SHORT
- USHORT
- UINTEGER
- BOOLEAN
- UBIGINT
- CURRENCY
- TIMESPAN
- DECIMAL
- VARIANT
- ROWID
- DEFINE$VARIABLE$HELP
- CLASS
Change: Check that U_!1 is not yet defined
Error if within class
Error if within a method
_UGBO#L _UGBO#L _GBO#L .
- BASE_CREATE_CLASS
Change: Clear In object Flag. If a class is created within an object
it is not relevant.
- OBJECT
changes: 1. Allow New syntax: Property type Name {dflt} public|private is optional
2. Check placement as follows:
2.1. Must be in class or object
2.2. Cannot be in a child object defined by a class
2.3. If in class, must be in procedure (constructor)
2.4. If in object, must not be in procedure.
3. Check for Property Name conflicts (Get_name conflict)
3.1. If defined as object access - error
3.2. If defined as global method - error
3.3. If defined with different param list - error (already does this)
Changes: 1. No_image is optional if windows (always provided by compiler)
2. If within class, s/b within a class (in df$object)
- DF$OBJECT
- GET$SET
Changes: 1. Methods not allowed in class child-objects
2. If on desktop and not Global/for..is for cDesktop (changed in 8.3, was Desktop)
- GET$SET$HELP
- OBJECT$PROPERTIES
- OBJECT$DEFINE
- DPUSH$EXP
this forces the param passed to be subsituted for an expression
you can directly dpush an expression
- PROPERTY$HELP
- SEND
//old
#COMMAND PROPERTY$HELP
#IF (!0>0)
#IFSAME !1 OF // "of" should have already been processed. This is an error
#ERROR DFERR_COMP_INVALID_MESSAGE_SYNTAX INVALID USE OF 'OF'
#SET ZH$ 4 // 4 means error occurred
#ELSE
// Check that TO is used properly.
#IFSAME !1 TO
#IF (!Zl & 1)
#ELSE
#IF (!Zh=3) // TO already encountered. TOO many Tos
#ERROR DFERR_COMP_INVALID_MESSAGE_SYNTAX TOO MANY 'TO'
#SET ZH$ 4 // 4 means error occurred
#ELSE
#IF (!0=1) // missing param after to
#ERROR DFERR_COMP_INVALID_MESSAGE_SYNTAX NO VALUE FOLLOWING 'TO'
#SET ZH$ 4 // 4 means error occurred
#ELSE
#IF (!Zh=1) // A GET or ITEM SET without a TO yet
#IF (!0>2) // too many params after the to
#ERROR DFERR_COMP_INVALID_MESSAGE_SYNTAX TOO MANY PARAMS AFTER 'TO'
#SET ZH$ 4 // 4 means error occurred
#ELSE
#SET ZH$ 3 // Mark as found a to
#ENDIF
#ELSE // If here a non-item SET
#SET ZH$ 3 // Mark as found a to
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ELSE
#IFSAME !1 ITEM
#ELSE
#SET ZG$ !ZG
#IFDEF !1
#DPUSH !1
#ELSE
#IFCLASS !1 0123456789ABCDEF
#DPUSH !1
#ELSE
//#IFDEF MSG_!1
// #DPUSH MSG_!1
//#ELSE
// #DPUSH |CI0
// #FREF MSG_!1 !a,!Zg
//#ENDIF
#IFDEF GET_!1 // if defined as a function
// This would support passing of object names as parameters. Not supported
// for now.
#IF (GET_!1>$40000000) // and an object access method..we will help out
// replace simple name with expression syntax
DPUSH$EXP (!1(current_object))
#ELSE // if defined as a function but not an access method. This is an error
#DPUSH !1 // will generate an Error
#ENDIF
#ELSE // If undefined
// this could be msg_!1 but we will call than an error
//#DPUSH !1 // will generate an Error
#IFDEF MSG_!1
#DPUSH MSG_!1
#ELSE
#DPUSH |CI0
#FREF MSG_!1 !a,!Zg
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#IF (!Zh<4) // 4 indicates an error occurred
PROPERTY$HELP !2 !3 !4 !5 !6 !7 !8 !9 // as long as there is still no error
#ENDIF
#ELSE
#IF (!Zh<3) // If 1 or 2, TO was never found
#ERROR DFERR_COMP_INVALID_MESSAGE_SYNTAX MISSING 'TO' KEYWORD
#ENDIF
#ENDIF
#ENDCOMMAND
Changes: 1. support "OF" as well as "TO". OF is preferred
2. Check location of "OF" keyword
3. Check for improper message type (expression)
4. If sent directly within class (not method)...error
- SEND$CMD
- OBJECT$SEND$DEFINE
- SEND$HELP
- MOVE
Create Move command that will move object access methods
to a var with simple name
- MOVEVAR
#COMMAND MOVEVAR #L "TO" #GLEURC .
#IFCLASS !1 "G" // MOVE INDICATOR // 12.0 note: this logic, which has been in fmac forever
#CHECK !1 _VWFC // would never work.
!A [] $4020 !1 |GB[0] !3 IN$GLALL |3
#ELSE
// Type independent move as of 2.3
!A [] $086 !1 !3
#ENDIF
#ENDCOMMAND
changed for 12.0 to support moving indicators
- MOVEOBJ
- REGISTER_OBJECT
changes: Check that object name is not already a global/class function
Add alternate access syntax @Name
check that the name is not an internal function
MG: 7/2/99 No mangling here for object access method, because no parameters.
If we decide to mangle on return type (not likely) we can change this and
use MARG.
- REGISTER_FUNCTION
Changes: Check for Global error (used to check !1)
Check for Object access name error
Check that the name is not a global name
- FUNCTION
Changes: Check for Object access name error
- HANDLE$MESSAGE$HELP
called by Set/Get
Changes: 1. If in object and msg_consruct_object..error
2. Cannot nest methods (already was there)
3. Methods not allowed in class child-objects
4. If on desktop and not Global/for..is for cDesktop
#IFDEF MANGLE_NAMES
- HANDLE$MESSAGE
#ENDIF
- HANDLE$MESSAGE$2
- ITEM_LIST
- END_ITEM_LIST
- ENTRY_ITEM
- ENTRY$ITEM
- REPLACE_CLASS_NAME
- ON_KEY
- ON_ITEM
- GET_FIELDNUMBER
****************************************************************************//
//
Returns the field number of a fieldnumber passed. //
//
USAGE: //
GET_FIELDNUMBER FlexErrs.Note to MyVar //
//
****************************************************************************//
- GET_FILENUMBER
****************************************************************************//
//
Returns the file number of a fieldnumber passed. //
//
USAGE: //
GET_FILENUMBER FlexErrs.Note to MyVar //
//
****************************************************************************//
- START_WEBAPP
Private command to start event loop for web applications (added in vdf9.1)
- ConvertFromXML
Used by Web-services to properly convert data-types
for XML/web services
Convert from XML to VDF:
ConvertFromXml eType sData to sData
- ConvertToXML
Convert to XML from VDF:
ConvertToXml eType sData to sData
- ValueTreeSerializeParameter
Used in 11.0 to handle structs/arrays in client web-services. Reads and writes from a ValueTree to the variable.
The type of variable is determined by the variable type you use. Value tree is:
Struct tValueTree
String sValue // data value. Value only exists if there are no children
tValueTree[] children // child values. If a struct or array, we have children and no value
End_Struct
- ValueTreeDeserializeParameter
- ARRAY_DIM_COUNT_HELPER
sets !q to num of dimensions. !q must be initialized before this is called
- ARRAY_DIM_SIZE_HELPER
dpushes the size of each dimension
- ARRAY_LOCAL_VARIABLE_REPLACE_HELPER
- ARRAY_GLOBAL_VARIABLE_REPLACE_HELPER
- ARRAY_ARGUMENT_REPLACE_HELPER
- ARRAY_INIT_HELPER
- LOCAL$ARRAY
- GLOBAL$ARRAY
- DEFINE_SCALAR_ARGUMENT
- DEFINE_ARRAY_ARGUMENT
- DEFINE_ARGUMENTS
- DEFINE_NEXT_ARGUMENT
get next argument. Skip past all []s and the BYREF symbol
- SCALAR$PROPERTY
- ARRAY_PROPERTY_NAME_HELPER2
- ARRAY_PROPERTY_NAME_HELPER
- ARRAY$PROPERTY
- PROPERTY
- STRUCT
note that this command also creates a symbol _struct_XYZ where XYZ is the struct name. This can
be used with #ifdef to see if a struct is defined
- END_STRUCT
- STRUCT_SCALAR_MEMBER
- STRUCT_ARRAY_TYPE_HELPER
- STRUCT_ARRAY_MEMBER_HELPER
- STRUCT_ARRAY_MEMBER
- Local$Scalar
- LOCAL
T T
- GLOBAL_VARIABLE
#COMMAND GLOBAL$Scalar R R
#CHECK !2 _RT
#IFSAME !1 STRING
// strings are treated as special because they have a set of values.
#IF (!0>2)
#IFDEF !3
#CHECK !3 _VSWDF
#STR V$ !3
#REPLACE !2 |VS!v
#IF (!0>3)
Global$Scalar !1 !4 !5 !6 !7 !8 !9
#ENDIF
#ELSE
#STR V$ 80
#REPLACE !2 |VS!v
Global$Scalar !1 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ELSE
#STR V$ 80
#REPLACE !2 |VS!v
#ENDIF
#ELSE
#PUSH !q
#DTYPE Q$ !1 // get the property type in q
#IF (!q=19)
//It's a struct
#PUSH !h
#STRG H$ !1
#STRV V$ !h
#REPLACE !2 |VK!vV!h
#POP H$
#ELSE
#SPUSH
// #SET $$ TYPE$SYMBOL$!1
// #REM arg is !$
// Scalar$Variable$Help !2 TYPE$SYMBOL$G$!1 // V
// Scalar$Variable$Help !2 !$ V
#DTSYM !1
#REPLACE !2 |V!$!v // ZG
#REM !2 ------------------------------------
#SPOP
#ENDIF
#POP Q$
#IF (!0>2)
GLOBAL$Scalar !1 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDCOMMAND
- Global$Scalar
- SET_DEFAULT_CALLTYPE
External function command declairs the external entry point to
The DF system. The compiler creates a reference to the function
complete with return type and parameter information. The macro
also generates code that retains the name of the function and the
name of the library in a runtime array. This array is used when
the DLL is "loaded".
- EXTERNAL_FUNCTION
External_Function FunctionName "FunctionName" DLLName {Parameters ...} Returns DataType
- EXTERNAL_PROCEDURE
- EXTERNAL_FUNCTION16
- EXTERNAL_PROCEDURE16
- EXTERNAL_FUNCTION32
- EXTERNAL_PROCEDURE32
- EXTERNAL$FUNCTION
External$Function Command Flag GET_|MSG_ FunctionName {"FunctionName"} DLLName {Parameters ...} Returns DataType
- GET$RETURN$TYPE
- Include_ActiveX_Resource
Commands used for active-x stuff. Moved from flexcom20_base.pkg. The Embed_activeX_resource stuff results in very
strange long errors if this command i snot always available.
- EMBED_ACTIVEX_RESOURCE
- END_EMBED_ACTIVEX_RESOURCE
- ErrorDisplay
for internal use only for generating the errordisplay stack dump dialog
ErrorDisplay iErrorLine sMessage sCaption sOkText sCopyText
- CALLSTACKDUMP
Low level command that can be used within error handlers (e.g. error_report) to get a string of the current call stack.
- USE_LEGACY_XML_LIB
This forces the entire application to use the old MSXML3 parser.
This must be used before you create any XML object. Only provided
for backwards compatibility. Added 15.1