Some people have requested a list that indicates which features of FoxPro are supported in X#. The list below represents the status of build 2.17, updated on September 1, 2023.
Some of what FoxPro calls commands, are integrated directly into the compiler. We refer to these as statements.
Others are implemented as so-called User Defined Commands (UDCs). These are defined in an external header file. The compiler translates these UDCs into function calls within the runtime library. For example, the SEEK command is translated into a call to the DbSeek() function, and the SKIP command is translated into a call to the DbSkip() function.
This list will be updated with each new build that introduces additional VFP features.
Statements (built into the compiler)
Feature | Available |
& | supported |
? | ?? | supported |
??? | NOT supported |
\ | \\ | supported |
= | supported |
DECLARE | supported |
DEFINE CLASS | supported |
DIMENSION | supported |
DO CASE | supported |
DO | supported |
DO WHILE | supported |
EXIT | supported |
FOR .. ENDFOR | supported |
FOR EACH .. ENDFOR | supported |
IF .. ELSE .. ENDIF | supported |
LOCAL | supported. |
LOOP | supported |
LPARAMETERS | supported |
MEMVAR | supported |
PARAMETERS | supported |
PRIVATE | supported |
PUBLIC | supported |
RETURN | supported |
TEXT .. ENDTEXT | supported |
TRY .. CATCH .. FINALLY | supported |
WITH .. ENDWITH | supported |
Database and Workarea commands.
Some of these commands are specific to an interactive environment like VFP. Some of the unsupported commands should be relatively easy to implement using a UDC and already available functions in the X# runtime.
Feature | Available | Feature | Available |
APPEND FROM | supported | BEGIN TRANSACTION | NOT implemented |
APPEND FROM ARRAY | supported | BLANK | NOT implemented |
AVERAGE | supported | CALCULATE | NOT implemented |
CLOSE | supported | DELETE - SQL | NOT implemented |
CONTINUE | supported | DROP TABLE/VIEW | NOT implemented |
COPY FILE | supported | EXPORT | NOT implemented |
COPY STRUCTURE | supported | FLUSH | NOT implemented |
COPY STRUCTURE EXTENDED | supported | FREE TABLE | NOT implemented |
COPY TO | supported | IMPORT | NOT implemented |
COPY TO ARRAY | supported | INSERT - SQL | NOT implemented |
COUNT | supported | OPEN DATABASE | NOT implemented |
DELETE | supported | REPLACE FROM ARRAY | NOT implemented |
DELETE FILE | supported | SELECT - SQL | NOT implemented |
ERASE | supported | UPDATE - SQL | NOT implemented |
GATHER | supported | VALIDATE DATABASE | NOT implemented |
GO | GOTO | supported | ||
INDEX ON | supported | ||
LOCATE | supported | ||
PACK | supported | ||
RECALL | supported | ||
REINDEX | supported | ||
REPLACE | supported | ||
SCAN .. ENDSCAN | supported | ||
SCATTER | supported | ||
SEEK | supported | ||
SELECT | supported | ||
SET (variations) | partially supported | ||
SKIP | supported | ||
SORT | supported | ||
SUM | supported | ||
TOTAL | supported | ||
UNLOCK | supported | ||
USE | supported | ||
ZAP | supported |
Other commands
Most of these commands are related either to the VFP IDE or the VFP UI classes.
Feature | Available | Feature | Available | Feature | Available | ||
CLEAR | supported | BEGIN TRANSACTION | NOT impl | ACTIVATE (all variations) | n/a | ||
DEFINE (other variations) | supported | CD / CHDIR | NOT impl | APPEND (other variations) | n/a | ||
ERASE | supported | COPY (other variations) | NOT impl | BROWSE | n/a | ||
NODEFAULT | supported | EJECT | NOT impl | BUILD | n/a | ||
QUIT | supported | ERROR | NOT impl | CANCEL | n/a | ||
RELEASE memvars | supported | EXPORT | NOT impl | CHANGE | n/a | ||
RESTORE FROM | supported | FLUSH | NOT impl | CLOSE MEMO | n/a | ||
RUN | supported | HELP | NOT impl | COMPILE | n/a | ||
SAVE TO | supported | KEYBOARD | NOT impl | CREATE (all variations) | n/a | ||
SCROLL | supported | LABEL | NOT impl | DEACTIVATE (all variations) | n/a | ||
SET (global state) | partially supported | MD | MKDIR | NOT impl | DEBUG | n/a | ||
STORE | supported | ON (all variations) | NOT impl | DEBUGOUT | n/a | ||
WAIT | supported | PRINTJOB | NOT impl | DELETE (other variations) | n/a | ||
PUSH (all variations) | NOT impl | DISPLAY (all variations) | n/a | ||||
RD | RMDIR | NOT impl | DO FORM | n/a | ||||
RELEASE (other variations) | NOT impl | DOCK | n/a | ||||
REMOVE (all variations) | NOT impl | DOEVENTS | n/a | ||||
RENAME (all variations) | NOT impl | EXTERNAL | n/a | ||||
REPORT FORM | NOT impl | GETEXPR | n/a | ||||
RESTORE (other variations) | NOT impl | HIDE (all variations) | n/a | ||||
ROLLBACK | NOT impl | LIST (all variations) | n/a | ||||
TYPE | NOT impl | MENU | n/a | ||||
MODIFY (all variations) | n/a | ||||||
PLAY MACRO | n/a | ||||||
POP (all variations) | n/a | ||||||
READ EVENTS | n/a | ||||||
RESUME | n/a | ||||||
RETRY | n/a | ||||||
SAVE (other variations) | n/a | ||||||
SHOW (all variations) | n/a | ||||||
SIZE (all variations) | n/a | ||||||
SUSPEND | n/a | ||||||
ZOOM WINDOW | n/a |
Functions.
Table updated on Sept 4, 2023
Functions that are | Functions with different | Functions that are | Functions that |
fully supported | parameters (more or less) | not available (yet) | won't be supported |
ABS( ) | ACOPY( ) | ACLASS( ) | ADLLS( ) |
ACOS( ) | ADIR( ) | ADBOBJECTS( ) | ADOCKSTATE( ) |
ADATABASES( ) | AFIELDS( ) | AGETFILEVERSION( ) | AERROR( ) |
ADDBS( ) | ALEN( ) | ALINES( ) | AEVENTS( ) |
ADDPROPERTY( ) | ASC( ) | AMEMBERS( ) | AFONT( ) |
ADEL( ) | ASCAN( ) | ANETRESOURCES( ) | AGETCLASS( ) |
AELEMENT( ) | ASORT( ) | APRINTERS( ) | AINSTANCE( ) |
AINS( ) | CHRSAW( ) | ASESSIONS( ) | ALANGUAGE( ) |
ALIAS( ) | CHRTRAN( ) | ASTACKINFO( ) | AMOUSEOBJ( ) |
ALLTRIM( ) | CHRTRANC( ) | ATAGINFO( ) | APROCINFO( ) |
ASIN( ) | CLEARRESULTSET( ) | AUSED( ) | ASELOBJ( ) |
ASQLHANDLES( ) | CNTBAR( ) | BINTOC() | AVCXCLASSES( ) |
ASUBSCRIPT( ) | COL( ) | CANDIDATE( ) | BAR( ) |
AT( ) | DAY( ) | CEILING( ) | BARCOUNT( ) |
AT_C( ) | DIRECTORY( ) | CNTPAD( ) | BARPROMPT( ) |
ATAN( ) | DISKSPACE( ) | COMPILE() | BINDEVENT( ) |
ATC( ) | EVALUATE( ) | COMPOBJ( ) | COMARRAY( ) |
ATCC( ) | INT( ) | CPCONVERT( ) | COMCLASSINFO( ) |
ATCLINE( ) | MAX( ) | CPCURRENT() | COMPROP( ) |
ATLINE( ) | MCOL( ) | CREATEBINARY( ) | COMRETURNERROR( ) |
ATN2( ) | MDOWN( ) | CREATEOFFLINE( ) | CPCURRENT( ) |
BETWEEN( ) | MIN( ) | CTOBIN( ) | DDEAbortTrans( ) |
BINTOC( ) | OBJNUM( ) | CTOT( ) | DDEAdvise( ) |
BITAND( ) | OBJVAR( ) | CURSORGETPROP( ) | DDEEnabled( ) |
BITCLEAR( ) | OEMTOANSI( ) | CURSORSETPROP( ) | DDEExecute( ) |
BITLSHIFT( ) | SQRT( ) | CURSORTOXML( ) | DDEInitiate( ) |
BITNOT( ) | STRTRAN( ) | CURVAL( ) | DDELastError( ) |
BITOR( ) | TYPE( ) | DEFAULTEXT( ) | DDEPoke( ) |
BITRSHIFT( ) | DIFFERENCE( ) | DDERequest( ) | |
BITSET( ) | DisplayPath( ) | DDESetOption( ) | |
BITTEST( ) | DRIVETYPE( ) | DDESetService( ) | |
BITXOR( ) | DROPOFFLINE( ) | DDESetTopic( ) | |
BOF( ) | FLDLIST( ) | DDETerminate( ) | |
CAPSLOCK( ) | FONTMETRIC( ) | EDITSOURCE( ) | |
CAST( ) | FULLPATH( ) | ERROR( ) | |
CDOW( ) | GETAUTOINCVALUE( ) | EVENTHANDLER( ) | |
CDX( ) | GETCP( ) | FKLABEL( ) | |
CHR( ) | GETCURSORADAPTER( ) | FKMAX( ) | |
CMONTH( ) | GETDIR( ) | GETBAR( ) | |
COS( ) | GETFILE( ) | GETINTERFACE( ) | |
CPDBF( ) | GETFLDSTATE( ) | GETPAD( ) | |
CREATEOBJECT( ) | GETNEXTMODIFIED( ) | GETPEM( ) | |
CREATEOBJECTEx( ) | GETOBJECT( ) | HOME( ) | |
CTOD( ) | GETPICT( ) | INKEY( ) | |
CURDIR( ) | GETPRINTER( ) | ISLEADBYTE( ) | |
DATE( ) | GETRESULTSET( ) | LASTKEY( ) | |
DATETIME( ) | ID( ) | MEMORY( ) | |
DBALIAS( ) | IMESTATUS( ) | MENU( ) | |
DBC( ) | INDBC( ) | MESSAGE( ) | |
DBF( ) | INDEXSEEK( ) | MRKBAR( ) | |
DBGETPROP( ) | INPUTBOX( ) | MRKPAD( ) | |
DBSETPROP( ) | ISBLANK( ) | MROW( ) | |
DBUSED( ) | ISEXCLUSIVE( ) | MWINDOW( ) | |
DELETED( ) | ISMEMOFETCHED( ) | OBJTOCLIENT( ) | |
DESCENDING( ) | ISMOUSE( ) | ON( ) | |
DMY( ) | ISNULL( ) | PAD( ) | |
DODEFAULT( ) | ISPEN( ) | PADPROMPT( ) | |
DOW( ) | ISTRANSACTABLE( ) | PARAMETERS( ) | |
DTOC( ) | KEYMATCH( ) | POPUP( ) | |
DTOR( ) | LINENO( ) | PRINTSTATUS( ) | |
DTOS( ) | LOADPICTURE( ) | PRMBAR( ) | |
DTOT() | LOCFILE( ) | PRMPAD( ) | |
EMPTY( ) | LOOKUP( ) | PROMPT( ) | |
EOF( ) | MAKETRANSACTABLE( ) | RDLEVEL( ) | |
EVL( ) | NEWOBJECT( ) | READKEY( ) | |
EXECSCRIPT( ) | NORMALIZE( ) | SCOLS( ) | |
EXP( ) | OLDVAL( ) | SKPBAR( ) | |
FCHSIZE( ) | PCOL( ) | SKPPAD( ) | |
FCLOSE( ) | PEMSTATUS( ) | SROWS( ) | |
FCOUNT( ) | PRIMARY( ) | UNBINDEVENTS( ) | |
FCREATE( ) | PROW( ) | UPDATED( ) | |
FDATE( ) | PRTINFO( ) | VARREAD( ) | |
FEOF( ) | PUTFILE( ) | WBORDER( ) | |
FERROR( ) | RAISEEVENT( ) | WCHILD( ) | |
FFLUSH( ) | REFRESH( ) | WCOLS( ) | |
FGETS( ) | REQUERY( ) | WDOCKABLE( ) | |
FIELD( ) | RGBSCHEME( ) | WEXIST( ) | |
FILE( ) | SAVEPICTURE( ) | WFONT( ) | |
FILETOSTR( ) | SCHEME( ) | WLAST( ) | |
FILTER( ) | SEEK( ) | WLCOL( ) | |
FLDCOUNT( ) | SETFLDSTATE( ) | WLROW( ) | |
FLOCK( ) | SETRESULTSET( ) | WMAXIMUM( ) | |
FLOOR( ) | STRCONV( ) | WMINIMUM( ) | |
FOPEN( ) | STREXTRACT( ) | WONTOP( ) | |
FOR( ) | SYSMETRIC( ) | WOUTPUT( ) | |
FORCEEXT( ) | TABLEREVERT( ) | WPARENT( ) | |
FORCEPATH( ) | TABLEUPDATE( ) | WREAD( ) | |
FOUND( ) | TTOC( ) | WROWS( ) | |
FPUTS( ) | TXNLEVEL( ) | WTITLE( ) | |
FREAD( ) | TXTWIDTH( ) | WVISIBLE( ) | |
FSEEK( ) | XMLTOCURSOR( ) | ||
FSIZE( ) | XMLUPDATEGRAM( ) | ||
FTIME( ) | |||
FV( ) | |||
FWRITE( ) | |||
GETCOLOR( ) | |||
GETENV( ) | |||
GETFONT( ) | |||
GETWORDCOUNT( ) | |||
GETWORDNUM( ) | |||
GOMONTH( ) | |||
HEADER( ) | |||
HOUR( ) | |||
ICASE( ) | |||
IDXCOLLATE( ) | |||
IIF() | |||
INLIST( ) | |||
INSMODE( ) | |||
ISALPHA( ) | |||
ISCOLOR( ) | |||
ISDIGIT( ) | |||
ISFLOCKED( ) | |||
ISLOWER( ) | |||
ISREADONLY( ) | |||
ISRLOCKED( ) | |||
ISUPPER( ) | |||
JUSTDRIVE( ) | |||
JUSTEXT( ) | |||
JUSTFNAME( ) | |||
JUSTPATH( ) | |||
JUSTSTEM( ) | |||
KEY( ) | |||
LEFT( ) | |||
LEFTC( ) | |||
LEN( ) | |||
LENC( ) | |||
LIKE( ) | |||
LIKEC( ) | |||
LOCK( ) | |||
LOG( ) | |||
LOG10( ) | |||
LOWER( ) | |||
LTRIM( ) | |||
LUPDATE( ) | |||
MDX( ) | |||
MDY( ) | |||
MEMLINES( ) | |||
MESSAGEBOX( ) | |||
MINUTE( ) | |||
MLINE( ) | |||
MOD( ) | |||
MONTH( ) | |||
MTON( ) | |||
NDX( ) | |||
NDX( ) | |||
NTOM( ) | |||
NUMLOCK( ) | |||
NVL( ) | |||
OCCURS( ) | |||
ORDER( ) | |||
OS( ) | |||
PADC( ) | |||
PADL( ) | |||
PADR( ) | |||
PAYMENT( ) | |||
PCOUNT( ) | |||
PI( ) | |||
PROGRAM( ) | |||
PROPER( ) | |||
PV( ) | |||
QUARTER( ) | |||
RAND( ) | |||
RAT( ) | |||
RATC( ) | |||
RATLINE( ) | |||
RECCOUNT( ) | |||
RECNO( ) | |||
RECSIZE( ) | |||
RELATION( ) | |||
REMOVEPROPERTY( ) | |||
REPLICATE( ) | |||
RGB( ) | |||
RIGHT( ) | |||
RIGHTC( ) | |||
RLOCK( ) | |||
ROUND( ) | |||
ROW( ) | |||
RTOD( ) | |||
RTRIM( ) | |||
SEC( ) | |||
SECONDS( ) | |||
SELECT( ) | |||
SET( ) | |||
SIGN( ) | |||
SIN( ) | |||
SOUNDEX( ) | |||
SPACE( ) | |||
SQLCANCEL( ) | |||
SQLCOLUMNS( ) | |||
SQLCOMMIT( ) | |||
SQLCONNECT( ) | |||
SQLDISCONNECT( ) | |||
SQLEXEC( ) | |||
SQLGETPROP( ) | |||
SQLIDLEDISCONNECT( ) | |||
SQLMORERESULTS( ) | |||
SQLPREPARE( ) | |||
SQLROLLBACK( ) | |||
SQLSETPROP( ) | |||
SQLSTRINGCONNECT( ) | |||
SQLTABLES( ) | |||
STR( ) | |||
STRTOFILE( ) | |||
STUFF( ) | |||
STUFFC( ) | |||
SUBSTR( ) | |||
SUBSTRC( ) | |||
TAG( ) | |||
TAGCOUNT( ) | |||
TAGNO( ) | |||
TAN( ) | |||
TARGET( ) | |||
TEXTMERGE( ) | |||
TIME( ) | |||
TRANSFORM( ) | |||
TRIM( ) | |||
TTOD( ) | |||
UNIQUE( ) | |||
UPPER( ) | |||
USED( ) | |||
VAL( ) | |||
VARTYPE( ) | |||
VERSION( ) | |||
WEEK( ) | |||
YEAR( ) |