Methods
765 current Foundation methods. Internal methods are implementation details. Hooks and generated host methods are excluded.
Fnd_Art_AboutShared
Project Method: Fnd_Art_About Displays the About Box dialog in a new process. Access: Shared Parameters: None Returns: Nothing
Fnd_Art_CancelShared
Project Method: Fnd_Art_Cancel Signals the Startup dialog to close. Sets Form.CloseRequested, then cancels only once the dialog's minimum display time has elapsed — so a startup screen cannot be dismissed before it has been on screen long enough to read. A request arriving earlier sets the flag and leaves the dialog to close itself. Access: Shared Parameters: None Returns: Nothing
Fnd_Art_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Art_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Art_InitInternal
Project Method: Fnd_Art_Init Initialises the process and interprocess variables the Fnd_Art routines use. Access: Private Parameters: None Returns: Nothing
Fnd_Art_SetAboutFormShared
#DECLARE($inFormName_t : Text)->$aboutFormName_t : Text
Project Method: Fnd_Art_SetAboutForm {(form name)} -> form name
Allows the developer to specify the form to display when About is selected.
Access: Shared
Parameters:
$inFormName_t : Text : The name of the form (optional)
Returns:
$aboutFormName_t : Text : The name of the formFnd_Art_SetBestFontSizeShared
#DECLARE($objectName_t : Text; $startingFontSize_i : Integer)
Project Method: Fnd_Art_SetBestFontSize (object name; starting font size) Modifies the object so the text fits within the current object size. Goes down from the starting font size. Access: Shared Parameters: $objectName_t : Text : The form object name $startingFontSize_i : Longint : The largest possible size Returns: Nothing
Fnd_Art_SetStartupDialogFormShared
#DECLARE($inFormName_t : Text)->$startupFormName_t : Text
Project Method: Fnd_Art_SetStartupDialogForm (form name) -> form name Allows the developer to specify the form to display during startup. Access: Shared Parameters: $inFormName_t : Text : The name of the form Returns: Nothing
Fnd_Art_StartupDialogShared
Project Method: Fnd_Art_StartupDialog Displays the startup window in a new process. Access: Shared Parameters: None Returns: Nothing
Fnd_Art_StartupDialogCloseShared
Project Method: Fnd_Art_StartupDialogClose Closes the startup message. Safe to call even if no startup message was displayed. Access: Shared Parameters: None Returns: Nothing
Fnd_Art_StartupDialogFormMethodShared
Project Method: Fnd_Art_StartupDialogFormMethod Must be called from the startup dialog's form method, even if a custom form is used. Access: Shared Parameters: None Returns: Nothing
Fnd_Bttn_AlternativePicturePathShared
#DECLARE($inPath_t : Text)->$bttnAlternativePicturePath_t : Text
Project Method: Fnd_Bttn_AlternativePicturePath {(Path)} --> Text
Foundation normally creates buttons based on icons in the
Fnd_Bttn_Pictures folder within the component resource folder.
This allows the developer to specify an alternative location
for example in the host resource folder.
Foundation will first of all check this location first
and then the Fnd_Bttn_Pictures folder in component resoure folder
Access: Shared
Parameters:
$inPath_t : Text : The Path (optional)
Returns:
$bttnAlternativePicturePath_t : Text : The pathFnd_Bttn_CacheMaximumSizeShared
#DECLARE($inNewCacheSize_i : Integer)->$bttnCacheMaximumSize_i : Integer
Project Method: Fnd_Bttn_CacheMaximumSize {(New Cache size)} --> longint
Allows you to get and set the maximum cache size
The default (and minimum) is 2 MB (2048*1024)
Access: Shared
Parameters:
$inNewCacheSize_i : longint : The new cache size
Returns:
$bttnCacheMaximumSize_i : longint : The cache sizeFnd_Bttn_Cache_GarbageCollecInternal
Project Method: Fnd_Bttn_Cache_GarbageCollec If the cache goes over it's maximum size, this method deletes the oldest images until it's back within it's limit. This is called whenever an image is added to the cache. Access: Private Parameters: None Returns: Nothing
Fnd_Bttn_Cache_Image_AddShared
#DECLARE($compositeName_t : Text; $image_pic : Picture)
Project Method: Fnd_Bttn_Cache_Image_Add (composite name; image) Adds an image to the RAM cache of button images. Access: Private Parameters: $compositeName_t : Text : The name returned by the Fnd_Bttn_GetPictureName function $image_pic : Picture : The picture to add to the cache Returns: Nothing
Fnd_Bttn_Cache_Image_DeleteShared
#DECLARE($compositeName_t : Text)
Project Method: Fnd_Bttn_Cache_Image_Delete (composite image name) Deletes an image from the cache using its composite name as the key. Access: Private Parameters: $compositeName_t : Text : The image name returned by Fnd_Bttn_GetPictureName Returns: Nothing
Fnd_Bttn_Cache_Image_GetShared
#DECLARE($name_t : Text)->$image_pic : Picture
Project Method: Fnd_Bttn_Cache_Image_Get (composite name) --> Picture Returns an image from the cache using its composite name. Modified from Mark's original design. This routine no longer displays an alert if the image isn't found in the cache. It just returns a blank image, so the developer needs to check to see if an image was returned. Access: Private Parameters: $name_t : Text : The name returned by the Fnd_Bttn_GetPictureName function Returns: $image_pic : Picture : The image from the cache
Fnd_Bttn_Cache_StartupShared
Project Method: Fnd_Bttn_Cache_Startup These arrays keep track of those Rollovers we've created in the application. We will only be rollovers as well need them, then not creating the picture again. This allows us to easily switch languages and have all the text in the rollovers be easily converted without storing loads of pictures in different languages. Access: Private Parameters: None Returns: Nothing
Fnd_Bttn_ColorToStringShared
#DECLARE($color_i : Integer)->$color_t : Text
Project Method: Fnd_Bttn_ColorToString (rgb color) --> Text Converts a 4D RGB color value to a CSS2-compatible string in the format "#rrggbb". Access: Private Parameters: $color_i : Longint : The 4D RGB color Returns: $color_t : Text : The color string
Fnd_Bttn_CreateBackgroundsShared
Project Method: Fnd_Bttn_CreateBackgrounds Because of the time to do the picture maths for the middle bit of the button, we will pre-build different sized middle slices and store them in an array. Access: Private Parameters: None Returns: Nothing
Fnd_Bttn_CreateButtonShared
#DECLARE($button_ptr : Pointer; $picture_ptr : Pointer; $iconName_t : Text; $label_t : Text)
Project Method: Fnd_Bttn_CreateButton (->button object; ->picture variable; icon name; label) Helps the developer create and size a picture button created with the Foundation Buttons component. Creates the image needed from the icon name and label, assigns it to the picture variable, then assigns the picture variable to the button. Access: Shared Parameters: $button_ptr : Pointer : The form button object $picture_ptr : Pointer : A picture variable $iconName_t : Text : An icon name $label_t : Text : Any text Returns: Nothing
Fnd_Bttn_GetIconShared
#DECLARE($inIconName_t : Text; $inState_t : Text)->$theIcon_pic : Picture
Project Method: Fnd_Bttn_GetIcon (name{; state}) --> Picture
This method just wraps the GET PICTURE FROM LIBRARY command, but if
you wanted to store your pictures in resources or some other way, you
could modify this command for getting the pictures.
Access: Private
Parameters:
$inIconName_t : Text : The picture name
$inState_t : Text : The icon state: "selected" or "disabled" (optional)
Returns:
$theIcon_pic : Picture : The pictureFnd_Bttn_GetPictureShared
#DECLARE($inIconName_t : Text; $buttonLabel_t : Text; $inVariation_t : Text)->$rolloverImage_pic : Picture
Project Method: Fnd_Bttn_GetPicture (icon name; button label{; variation}) --> Picture
This routine returns a picture of a rollover based on the parameters
you pass for the icon, text, size and type. If the picture already
exists in the Cache, it is retreived from there instead of being
generated again.
Supports these variations:
"current" : The currently selected button (Mac OS X Prefs style)
Access: Shared
Parameters:
$inIconName_t : Text : The name of the icon to use from the 4D picture library
$buttonLabel_t : Text : The label for the button
$inVariation_t : Text : The variaton name (optional)
Returns:
$rolloverImage_pic : Picture : A picture to use for a 4D picture rollover buttonFnd_Bttn_GetPictureNameShared
#DECLARE($iconName_t : Text; $buttonLabel_t : Text; $inVariation_t : Text)->$rolloverPictureName_t : Text
Project Method: Fnd_Bttn_GetPictureName (icon name; label{; variation}) --> Text
Creates a composite name for the picture which will be used to
reference it quickly in the cache.
Access: Shared
Parameters:
$iconName_t : Text : The button icon name
$buttonLabel_t : Text : The button label name
$inVariation_t : Text : The variaton name (optional)
Returns:
$rolloverPictureName_t : Text : The cache picture nameFnd_Bttn_GetPictureWidthShared
#DECLARE($inIconName_t : Text; $buttonLabel_t : Text; $variation_t : Text)->$width_i : Integer
Project Method: Fnd_Bttn_GetPictureWidth (icon; text{; variation}) --> Number
Returns the width of the rollover picture that uses the specified icon and text.
Access: Shared
Parameters:
$inIconName_t : Text : The name of the icon
$buttonLabel_t : Text : The button label
$variation_t : Text : The button variation ("current" or "menu")
Returns:
$width_i : Longint : The width of the picture button.Fnd_Bttn_GetSizedIconNameShared
#DECLARE($inIconName_t : Text)->$iconName_t : Text
Project Method: Fnd_Bttn_GetSizedIconName (icon name) -> Text Returns the name of the icon with the size embeded. Access: Private Parameters: $inIconName_t : Text : The icon name without the size Returns: $iconName_t : Text : The icon name with the size
Fnd_Bttn_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Bttn_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Bttn_InitInternal
Project Method: Fnd_Bttn_Init Initializes the toolbar roll-over variables. Access: Private Parameters: None Returns: Nothing
Fnd_Bttn_LibraryToResourceShared
Project Method: Fnd_Bttn_LibraryToResource Takes all the pictures in the 4D Picture Library and writes them to a separate .png file for each picture in the library in the 4D Resources folder in a folder named Fnd_Bttn_Pictures. Used by Fnd_Bttn subcomponent to allow developer to easily edit or replace the icons used throughout Foundation. Special thanks to John Craig for this implementation. Access: Shared Parameters: Returns:
Fnd_Bttn_MakeBackgroundShared
#DECLARE($inWidth_i : Integer)->$background_pic : Picture
Project Method: Fnd_Bttn_MakeBackground (width) --> Picture Builds a button background to the specified width. Access: Private Parameters: $inWidth_i : Longint : The width needed Returns: $background_pic : Picture : The buton background image of the right width
Fnd_Bttn_MakeButtonShared
#DECLARE($iconName_t : Text; $buttonText_t : Text; $variation_t : Text)->$rollover_pic : Picture
Project Method: Fnd_Bttn_MakeButton (icon name; button label; variation) --> Picture Returns a picture of the button * 4 for use as a 4D picture button. Assumes the button style has been previously defined. This isn't called directly. Call Fnd_Bttn_GetPicture. It will check the cache first, then call this only if necessary. Supports these variations: "" : A standard button "current" : The currently selected button (Mac OS X Prefs style) "menu" : Adds a menu indicator triangle Access: Private Parameters: $iconName_t : Text : The name of the icon to use from the 4D picture library $buttonText_t : Text : The label for the button $variation_t : Text : The variation name Returns: $rollover_pic : Picture : A picture to use for a 4D picture rollover button
Fnd_Bttn_MakeCrntBackgroundShared
#DECLARE($inWidth_i : Integer)->$background_pic : Picture
Project Method: Fnd_Bttn_MakeCrntBackground (width) --> Picture Returns the background to use with the currently selected "Pref" style button. Similar to Fnd_Bttn_MakeBackground, but designed for the background of the currently selected button (Mac OS X Prefs style). This routine also isn't as optimized as Fnd_Bttn_MakeBackground. Access: Private Parameters: $inWidth_i : Longint : The required width of the background Returns: $background_pic : Picture : The background picture
Fnd_Bttn_MakeIconPictureShared
#DECLARE($iconName_t : Text)->$icons_pic : Picture
Project Method: Fnd_Bttn_MakeIconPicture (icon name) --> Picture Creates a picture containing the 4 icons arranged for the rollover button, spaced according to the button height. Access: Private Parameters: $iconName_t : Text : The name of the icon Returns: $icons_pic : Picture : A picture of the icon over the background
Fnd_Bttn_MakeMenuIndicatorPicShared
#DECLARE()->$indicator_pic : Picture
Project Method: Fnd_Bttn_MakeMenuIndicatorPic --> Picture Creates a picture of the specified label. Access: Private Parameters: None Returns: Nothing
Fnd_Bttn_MakeTextPictureShared
#DECLARE($buttonText_t : Text)->$combinedText_pic : Picture
Project Method: Fnd_Bttn_MakeTextPicture (button label) --> Picture Creates a picture of the specified label. Access: Private Parameters: $buttonText_t : Text : The label for the button Returns: $combinedText_pic : Picture : A picture of the label (x4)
Fnd_Bttn_PlatformShared
#DECLARE($requestedPlatform_t : Text)->$selectedPlatform_t : Text
Project Method: Fnd_Bttn_Platform ({platform name}) --> Text
Sets and gets the toolbar platform name.
Can be:
"Win"
"Mac"
"Auto"
Only "Mac" or "Win" will be returned.
Access: Shared
Parameters:
$requestedPlatform_t : Text : The platform to use (optional)
Returns:
$selectedPlatform_t : Text : The selected platformFnd_Bttn_SetBackgroundPictShared
#DECLARE($left_pic : Picture; $middle_pic : Picture; $right_pic : Picture; $selectedLeft_pic : Picture; $selectedMiddle_pic : Picture; $inSelectedRight_pic : Picture)
Project Method: Fnd_Bttn_SetBackgroundPict (left, middle, right{; pref left; pref middle; pref right})
Call this to specify the images to use for the button background.
Access: Shared
Parameters:
$left_pic : Picture : The left edge of the button
$middle_pic : Picture : The middle of the button (generally 1 pixel wide)
$right_pic : Picture : The right edge of the button
$selectedLeft_pic : Picture : The left edge of the currently selected button (optional)
$selectedMiddle_pic : Picture : The middle of the currently selected button (optional)
$inSelectedRight_pic : Picture : The right edge of the currently selected button (optional)
Returns: NothingFnd_Bttn_SetTextPropertiesShared
#DECLARE($fontName_t : Text; $fontSize_i : Integer; $fontStyle_i : Integer)
Project Method: Fnd_Bttn_SetTextProperties (font name; font size; font style) Sets the text properties for the button labels. Access: Shared Parameters: $fontName_t : Text : The font name $fontSize_i : Longint : The font size $fontStyle_i : Longint : The font style (use 4D constants) Returns: Nothing
Fnd_Bttn_SetVariablesShared
Project Method: Fnd_Bttn_SetVariables Updates the toolbar variables depending on the current platform, size, and style settings. Access: Private Parameters: None Returns: Nothing
Fnd_Bttn_StyleShared
#DECLARE($requestedStyle_t : Text)->$selectedStyle_t : Text
Project Method: Fnd_Bttn_Style ({Style name}) --> Text
Sets and gets the toolbar style name.
Can be:
"Large"
"Prefs"
"Small1"
"Small2"
Access: Shared
Parameters:
$requestedStyle_t : Text : The style to use (optional)
Returns:
$selectedStyle_t : Text : The selected styleFnd_Bttn_TextToPictShared
#DECLARE($text_t : Text; $fontName_t : Text; $fontSize_i : Integer; $fontStyle_i : Integer; $width_i : Integer; $height_i : Integer; $inFontColor_i : Integer)->$image_pic : Picture
Project Method: Fnd_Bttn_TextToPict (text;fontName;fontSize;fontFace;width;height{;color}) --> Picture
Converts a text string to a picture of the text.
Access: Private
Parameters:
$text_t : Text : Text to make into picture
Returns:
$image_pic : Picture : A picture of the textFnd_Cmpt_GetBooleanValueShared
#DECLARE($variableName_t : Text) : Boolean
Project Method: Fnd_Cmpt_GetBooleanValue (name of a Boolean variable) --> Boolean Returns the value of a Boolean variable (without actually using the variable in this component). Access: Shared Parameters: $variableName_t : Text : The name of a Boolean variable Returns: $0 : Boolean : True if the Boolean is True
Fnd_Cmpt_GetLongintValueShared
#DECLARE($variableName_t : Text)->$longintValue_i : Integer
Project Method: Fnd_Cmpt_GetLongintValue (name of an integer variable) --> Longint Returns the value of a long integer (without actually using the variable in this component). Access: Shared Parameters: $variableName_t : Text : The name of a Longint variable Returns: $longintValue_i : Longint : Returns the value of the longint
Fnd_Cmpt_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Cmpt_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Cmpt_InitInternal
Project Method: Fnd_Cmpt_Init Initializes both the process and interprocess variables used by the Foundation compatibility routines. Access: Private Parameters: None Returns: Nothing
Fnd_Cmpt_SetBooleanValueShared
#DECLARE($variableName_t : Text; $booleanValue_b : Boolean)
Project Method: Fnd_Cmpt_SetBooleanValue (variable name; Boolean value) Allows us to set a Boolean variable without actually using the variable name in this component. Access: Shared Parameters: $variableName_t : Text : The name of the variable $booleanValue_b : Boolean : The value to set it to Returns: Nothing
Fnd_Cmpt_SetLongintValueShared
#DECLARE($variableName_t : Text; $longintValue_i : Integer)
Project Method: Fnd_Cmpt_SetLongintValue (variable name; longint value) Allows us to set a Longint variable without actually using the variable name in this component. Access: Shared Parameters: $variableName_t : Text : The name of the variable $longintValue_i : Longint : The value to set it to Returns: Nothing
Fnd_Data_EmailAddressErrorShared
#DECLARE($inEmailAddress_t : Text; $inDescription_ptr : Pointer)->$errorNumber_i : Integer
Project Method: Fnd_Data_EmailAddressError (email address{; ->description}) --> Longint
Checks Email address and returns an error number if the email address doesn't have a valid format.
Pass a pointer to a text variable as the second parameter to receive a
description of the problem. It is empty when the address is valid.
```
$error_i:=Fnd_Data_EmailAddressError("john smith@here.com"; ->$why_t)
// 1, and $why_t is "There is a space in the address."
```
Access: Shared
Parameters:
$inEmailAddress_t : Text : The email address to check
$inDescription_ptr : Pointer : Gets a description of the problem (optional)
Returns:
$errorNumber_i : Longint : Error number (0=valid format, 1=invalid format)
Based on code posted to the 4D NUG by Owen Watson<owen.watson@paradise.net.nz>.Fnd_Data_FormatBypassShared
#DECLARE()->$bypass_b : Boolean
Project Method: Fnd_Data_FormatBypass --> Boolean Returns True if the data entry formatting routine should be bypassed. Usually this will be because the user is holding down the bypass key, but there may be other reasons. Sets Fnd.Data.formatError to -1 if True is returned. Access: Shared Parameters: None Returns: $bypass_b : Boolean : True if the routine should be bypassed
Fnd_Data_FormatBypassKeyShared
#DECLARE($inKey_i : Integer)->$userBypassKeyMask_i : Integer
Project Method: Fnd_Data_FormatBypassKey ({key}) --> Longint
Pass a key mask to set a new bypass key.
Pass 0 to disable the bypass option.
Pass 1 to always bypass the format routines (turn off formatting).
Returns the currently set bypass key.
Bypass key can be any of these 4D constants:
Option key mask (default)
Command key mask
Control key mask
Shift key mask
Caps lock key mask
The setting is shared, so it applies to every process in the host.
Access: Shared
Parameters:
$inKey_i : Longint : The new bypass key mask (optional)
Returns:
$userBypassKeyMask_i : Longint : The current bypass key maskFnd_Data_FormatErrorShared
#DECLARE()->$lastFormatError_i : Integer
Project Method: Fnd_Data_FormatError --> Longint Allows the developer to detect if any of the data formatting routines had a problem trying to format data. ``` 0 The last call formatted the value 1 The last call could not work out how to format the value -1 The last call was bypassed because the bypass key was down ``` The value is per process, and each formatting method resets it before it starts, so read it immediately after the call it belongs to. Access: Shared Parameters: None Returns: $lastFormatError_i : Longint : Last formatting error
Fnd_Data_FormatPhoneShared
#DECLARE($inPhoneNumber_t : Text; $inStyle_v : Variant)->$formattedPhone_t : Text
Project Method: Fnd_Data_FormatPhone (phone number{; style | options}) --> Text
Formats a phone number. With no second parameter the number is formatted the
US way, 000-000-0000 or 000-0000.
The number is not formatted if the user holds down the Option/Alt key (or
other key that's been specified by the developer).
If it can't work out how to format the number it returns it unchanged and
sets Fnd.Data.formatError to 1, which Fnd_Data_FormatError reports.
The second parameter has two forms:
1. A Longint. Accepted and ignored, giving US formatting.
2. An object, which is how a country or an explicit format is chosen.
```
Fnd_Data_FormatPhone("0412345678"; {country: "AU"}) --> (0412) 345 678
Fnd_Data_FormatPhone("0298765432"; {country: "AU"}) --> (02) 9876 5432
Fnd_Data_FormatPhone("5551234"; {format: "000.0000"}) --> 555.1234
```
Object properties, with the default applied when the property is absent:
```
country Text "US" or "AU". Defaults to "US"
format Text An explicit 4D number format, which overrides country
areaCode Text Prefixed to an 8 digit Australian number. Defaults to none
```
An Australian number of 9 digits is taken to have lost its leading zero, and
the zero is put back.
Access: Shared
Parameters:
$inPhoneNumber_t : Text : The phone number to format
$inStyle_v : Variant : A legacy style Longint, or an options object (optional)
Returns:
$formattedPhone_t : Text : The formatted phone numberFnd_Data_FormatPostalCodeShared
#DECLARE($inPostalCode_t : Text; $inStyle_v : Variant)->$formattedPostalCode_t : Text
Project Method: Fnd_Data_FormatPostalCode (postal code{; style | options}) --> Text
Formats a text value into a postal code. If it can't work out how to format
it then it returns the postal code unchanged and sets Fnd.Data.formatError
to 1, which Fnd_Data_FormatError reports.
Anything that is not a letter or a digit is removed first.
With no second parameter the country is deduced from the value: five or nine
digits is a US ZIP code, and a six character
letter-digit-letter-digit-letter-digit value is Canadian.
The second parameter has two forms:
1. A Longint. Accepted and ignored.
2. An object naming the country, which skips the deduction.
```
Fnd_Data_FormatPostalCode("k1a0b1"; {country: "CA"}) --> K1A 0B1
Fnd_Data_FormatPostalCode("3000"; {country: "AU"}) --> 3000
```
Object properties, with the default applied when the property is absent:
```
country Text "US", "CA" or "AU". Defaults to deducing it from the value
```
Access: Shared
Parameters:
$inPostalCode_t : Text : The postal code to format
$inStyle_v : Variant : A legacy style Longint, or an options object (optional)
Returns:
$formattedPostalCode_t : Text : The formatted postal codeFnd_Data_FormatTextShared
#DECLARE($inTheText_t : Text; $inOptions_v : Variant)->$theText_t : Text
Project Method: Fnd_Data_FormatText (text{; options}) --> Text
Strips any extra spaces before and after the text, removes double spaces
within the text, then capitalizes the first letter of each word, unless the
user holds down the Option/Alt key (or other bypass key that's been
specified by the developer).
The optional second parameter is an object, for the cases where title case is
the wrong answer — a surname entered in capitals, a product code, an email
address that must stay lowercase.
```
Fnd_Data_FormatText(" john smith ") --> John Smith
Fnd_Data_FormatText("MacDonald"; {case: "none"}) --> MacDonald
Fnd_Data_FormatText("Me@Here.COM"; {case: "lower"}) --> me@here.com
```
Object properties, with the default applied when the property is absent:
```
case Text "title", "upper", "lower" or "none". Defaults to "title"
stripSpaces Boolean Whether to strip the spaces first. Defaults to True
```
Access: Shared
Parameters:
$inTheText_t : Text : The text to capitalize
$inOptions_v : Variant : An options object (optional)
Returns:
$theText_t : Text : The capitalized textFnd_Data_FormatWebURLShared
#DECLARE($inURL_t : Text; $inOptions_v : Variant)->$formattedURL_t : Text
Project Method: Fnd_Data_FormatWebURL (url{; options}) --> Text
Formats the URL. A URL with no scheme gets https.
The URL is not formatted if the user holds down the Option/Alt
key (or other key that's been specified by the developer).
```
Fnd_Data_FormatWebURL("example.com") --> https://example.com/
Fnd_Data_FormatWebURL("example.com"; {scheme: "http"}) --> http://example.com/
```
Object properties, with the default applied when the property is absent:
```
scheme Text The scheme for a URL that has none. Defaults to "https"
```
Access: Shared
Parameters:
$inURL_t : Text : The URL to format.
$inOptions_v : Variant : An options object (optional)
Returns:
$formattedURL_t : Text : The formatted URL.Fnd_Data_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Data_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo method
for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Data_InitInternal
Project Method: Fnd_Data_Init Initializes the state used by the data entry routines. Every Fnd_Data method calls it, so it runs often and is safe to repeat. Access: Private Parameters: None Returns: Nothing
Fnd_Data_ParseNameShared
#DECLARE($inFullName_t : Text; $firstName_ptr : Pointer; $lastName_ptr : Pointer; $middleInitial_ptr : Pointer)->$name_o : Object
Project Method: Fnd_Data_ParseName (name{; ->first name{; ->last name{; ->middle initial}}}) --> Object
Attempts to split a person's full name into separate parts.
Drops titles such as Mr. Mrs. Jr., Sr., M.D., etc.
The parts are returned as an object, and also written through any pointers
that are passed. Every pointer is optional.
```
$name_o:=Fnd_Data_ParseName("Dr. John Q. Smith")
// {first: "John"; last: "Smith"; middleInitial: "Q"}
Fnd_Data_ParseName("Dr. John Q. Smith"; ->$first_t; ->$last_t; ->$initial_t)
```
Access: Shared
Parameters:
$inFullName_t : Text : The name to parse
$firstName_ptr : Pointer : Gets the first name (optional)
$lastName_ptr : Pointer : Gets the last name (optional)
$middleInitial_ptr : Pointer : Gets the middle initial (optional)
Returns:
$name_o : Object : The parts, as first, last and middleInitialFnd_Date_CalendarShared
#DECLARE($dateFieldVariable_ptr : Pointer)->$dateWasChosen_b : Boolean
Project Method: Fnd_Date_Calendar (->date field or variable) -> bOK Displays a small calendar window and allows the user to select a date. Modifies the passed parameter. returns the bOK variable to 1 if a date is selected. Access: Shared Parameters: $dateFieldVariable_ptr : Pointer : A date field or variable Returns: $dateWasChosen_b : Boolean : True = (OK=1)
Fnd_Date_CalendarSetDateShared
#DECLARE($function_t : Text; $operator_t : Text)
Project Method: Fnd_Date_CalendarSetDate (function; operator)
Sets the date as per the string parameters function and operator, and redraws
the calendar grid to match. Reads and writes the running form's Form object,
so it is of no use outside Fnd_Date_CalendarPopup.
Functions:
"date"
"var" - Sets the date to the date already on Form.date
"today" - Sets the date to today
Date String - Sets the date to the date passed as a string
"calendar"
Pass the day number as a string to set the date
"year", "month" & "day"
Pass "+n" or "-n" to add or subtract n number of years, months or days
Access: Shared
Parameters:
$function_t : Text : The function to perform
$operator_t : Text : Additional information
Returns: NothingFnd_Date_DateAndTimeToISOShared
#DECLARE($date_d : Date; $inTime_h : Time)->$isoTimestamp_t : Text
Project Method: Fnd_Date_DateAndTimeToISO (date{; time}) --> Text
Returns an ISO 8601 formatted date or date-time value.
If only a date is supplied, a calendar date is returned: YYYY-MM-DD
If both date and time are supplied, a date-time value is returned: YYYY-MM-DDThh:mm:ss
If both are passed but the date is !00/00/00! then only the time is returned: hh:mm:ss
For more information:
<http://www.iso.org/iso/en/prods-services/popstds/datesandtime.html>
Access: Shared
Parameters:
$date_d : Date : A date
$inTime_h : Time : A time (optional)
Returns:
$isoTimestamp_t : Text : The date-time stampFnd_Date_DateToStringShared
#DECLARE($input_date : Date; $inRelativeTo_date : Date; $inDateFormat_t : Text)->$outputDate_t : Text
Project Method: Fnd_Date_DateToString (date{; relative to date{; format}}) --> Text
Returns a blank string if the date = !00/00/00!
Returns "Today", "Tomorrow", or "Yesterday" if appropriate. This is localized
if the Localization component is available.
Otherwise returns a short date string.
Access: Shared
Parameters:
$input_date : Date : The date to convert to a string
$inRelativeTo_date : Date : The relative date (optional)
$inDateFormat_t : Text : The date format (eg. "M/D/Y") (optional)
Returns:
$outputDate_t : Text : The date as a stringFnd_Date_EndOfMonthShared
#DECLARE($inThe_date : Date)->$the_date : Date
Project Method: Fnd_Date_EndOfMonth (date) --> Date Returns the last day of the month passed. Access: Shared Parameters: $inThe_date : Date : Any date Returns: $the_date : Date : The last day of the month for the date
Fnd_Date_EntryFilterShared
#DECLARE($dateField_ptr : Pointer)
Project Method: Fnd_Date_EntryFilter (->date field or variable)
Interprets what has been entered as a date
And checks to see if a "function" key is hit and acts accordingly
Place in the object method of a date field or variable:
Fnd_Date_EntryFilter(Self)
Required: Enable the field's On Before Keystroke and On Data Change events.
Access: Shared
Parameters:
$dateField_ptr : Pointer : The date entry field
Returns: NothingFnd_Date_ISOtoDateShared
#DECLARE($isoDate_t : Text)->$date_d : Date
Project Method: Fnd_Date_ISOtoDate (date string) --> Date
Retrieves the date value from an ISO 8601 formatted date. The input
can be in either of these formats:
YYYY-MM-DD
YYYY-MM-DDThh:mm:ss
Access: Shared
Parameters:
$isoDate_t : Text : An ISO format date
Returns:
$date_d : Date : The dateFnd_Date_ISOtoTimeShared
#DECLARE($inIsoDateTime_t : Text)->$time_time : Time
Project Method: Fnd_Date_ISOtoTime (date-time string) --> Time Retrieves the time value from an ISO 8601 formatted date-time string. The input must be in the YYYY-MM-DDThh:mm:ss or hh:mm:ss format. Access: Shared Parameters: $inIsoDateTime_t : Text : An ISO format date-time or time string Returns: $time_time : Date : The time
Fnd_Date_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Date_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Method Type: Protected
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Date_InitInternal
Project Method: Fnd_Date_Init Initializes the state used by the Date routines. Every Fnd_Date method that needs it calls it, so it runs often and is safe to repeat. Access: Private Parameters: None Returns: Nothing
Fnd_Date_LocalTimestampShared
#DECLARE()->$localTimestamp_t : Text
Project Method: Fnd_Date_LocalTimestamp --> Text Returns the current local date and time as an ISO 8601 style stamp with milliseconds: YYYY-MM-DDThh:mm:ss.mmm 4D's Timestamp command returns the same instant in UTC, with a trailing Z. This returns local wall-clock time instead, which is what a developer reading a log or a result file expects to see. Note there is deliberately no offset suffix, so the result is not a complete ISO 8601 instant. Stamps produced by this method are comparable with each other, not with a UTC stamp. Do not mix the two in one payload. Access: Shared Parameters: None Returns: $localTimestamp_t : Text : Local timestamp, YYYY-MM-DDThh:mm:ss.mmm
Fnd_Date_MonthNameShared
#DECLARE($monthNum_i : Integer)->$monthName_t : Text
Project Method: Fnd_Date_MonthName (month number) --> Text Returns the name of the month with the specified number. This routine will use Foundation's Localization routine, if it's available, to return the localized month name. If the Fnd_Loc component is not available, the name will be localized using 4D's language. Access: Shared Parameters: $monthNum_i : Longint : 1 thorugh 12 Returns: $monthName_t : Text : The name of the month
Fnd_Date_RoundTimeShared
#DECLARE($inTime_h : Time; $inOption_h : Time)->$roundedTime_h : Time
Project Method: Fnd_Date_RoundTime (time{; option}) --> Time
Rounds the time.
The option parameter determines the rounding style:
1 : Round up or down to the nearest quarter hour
2 : Round down to the nearest quarter hour
Access: Shared
Parameters:
$inTime_h : Time : The time to round
$inOption_h : Time : The rounding style (optional)
Returns:
$roundedTime_h : Time : The rounded timeFnd_Date_RoundTimeDownShared
#DECLARE($inTime : Time)->$time : Time
Project Method: Fnd_Date_RoundTimeDown (time) --> Time Rounds the time down to the nearest quarter hour. Access: Shared Parameters: $inTime : Time : The time to round Returns: $time : Time : The rounded time
Fnd_Date_RoundTimeNearShared
#DECLARE($inTime_time : Time)->$time_time : Time
Project Method: Fnd_Date_RoundTimeNear (time) --> Time Rounds to the quarter hour. If the time passed in is up to ten minutes after the quarter hour, the time is rounded down. Otherwise it's rounded up. Won't round up past 23:59. Access: Shared Parameters: $inTime_time : Time : The time to round Returns: $time_time : Time : The rounded time
Fnd_Date_StringToDateShared
#DECLARE($inInput_t : Text; $inDateFormat_t : Text)->$suggested_date : Date
Project Method: Fnd_Date_StringToDate (date as text{; date format}) --> Date
Returns the date equivalent of the string passed.
This works for M/D/Y, D/M/Y, Y/M/D and Y/D/M style dates. It will not
work for any date with the Y in the middle (does anyone do that?).
Two digit years are resolved as per the SET DEFAULT CENTURY command.
Dates can be enter with any character as a delimiter.
If no year is entered, the current year is assumed.
If only a one or two digit number is entered, the current month is assumed.
If no delimiter is used, the following formats are supported (M/D/Y format):
070476 Returns a date of 07/04/76
07041976 Returns a date of 07/04/1976
0704 Returns 07/04/00 (If this is in fact the year 2000)
04 or 4 Returns the 4th day of the current month
74, 704 and 074 are not supported.
"Today" returns the $today_date.
"Yesterday" returns the $today_date -1.
"Tomorrow" returns the $today_date +1.
Access: Shared
Parameters:
$inInput_t : Text : A text representation of a date
$inDateFormat_t : Text : The assumed date format, such as "M/D/Y" (optional)
Returns:
$suggested_date : Date : The dateFnd_Date_SystemDateFormatShared
#DECLARE()->$dateFormat_t : Text
Project Method: Fnd_Date_SystemDateFormat --> Text
Returns a string that can be used in If and Case statements to test the
current system's date format. It will return Y, M, and D based in a format
like this:
"M/D/Y" = Month/Day/Year
"D/M/Y" = Day/Month/Year
Access: Shared
Parameters: None
Returns:
$dateFormat_t : Text : The date formatFnd_Date_YearMonthDayToDateShared
#DECLARE($inYear_i : Integer; $month_i : Integer; $day_i : Integer)->$result_date : Date
Project Method: Fnd_Date_YearMonthDayToDate (year; month; day) --> Date Converts the year, month, and day into a 4D date. Works with either a two or four digit year. Works regardless of the system's date format or the default century setting. Out of range parts roll over rather than being refused, which is deliberate: month 13 gives January of the next year, day 0 gives the last day of the previous month, and 31 February gives 3 March. Programmatic callers rely on this — Fnd_Date_EndOfMonth is day 0 of the following month. Pass through Fnd_Date_StringToDate instead when the input came from a person, since that one refuses a month above 12 or a day above 31. Access: Shared Parameters: $inYear_i : Longint : Year (2 or 4 digits) $month_i : Longint : Month $day_i : Longint : Day Returns: $result_date : Date : The date
Fnd_Dict_DataTypeShared
#DECLARE($dictionary_i : Integer; $key_t : Text)->$type_i : Integer
Project Method: Fnd_Dict_DataType (dict ID; key name) --> Number Returns the data type of a key. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name Returns: $type_i : Longint : Data type
Fnd_Dict_GetArrayShared
#DECLARE($dictionary_i : Integer; $key_t : Text; $value_ptr : Pointer)
Project Method: Fnd_Dict_GetArray (dict ID; key name; ->values) Returns an array of values from a dictionary given a key. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name $value_ptr : Pointer : Text array to receive values Returns: Nothing
Fnd_Dict_GetBooleanShared
#DECLARE($dictionary_i : Integer; $key_t : Text)->$value_b : Boolean
Project Method: Fnd_Dict_GetBoolean (dict ID; key) --> Boolean Returns a Boolean value from a dictionary given a key. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name Returns: $value_b : Boolean : The key's value
Fnd_Dict_GetDateShared
#DECLARE($dictionary_i : Integer; $key_t : Text)->$value_d : Date
Project Method: Fnd_Dict_GetDate (dict ID; key) --> Date Returns a date value from a dictionary given a key. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name Returns: $value_d : Date : The key's value
Fnd_Dict_GetLongintShared
#DECLARE($dictionary_i : Integer; $key_t : Text)->$value_i : Integer
Project Method: Fnd_Dict_GetLongint (dict ID; key) --> Longint Returns a longint value from a dictionary given a key. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name Returns: $value_i : Longint : The key's value
Fnd_Dict_GetPointerShared
#DECLARE($dictionary_i : Integer; $key_t : Text)->$value_ptr : Pointer
Project Method: Fnd_Dict_GetPointer (dict ID; key) --> Pointer Returns a pointer value from a dictionary given a key. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name Returns: $value_ptr : Pointer : The key's value
Fnd_Dict_GetRealShared
#DECLARE($dictionary_i : Integer; $key_t : Text)->$value_r : Real
Project Method: Fnd_Dict_GetReal (dict ID; key) --> Real Returns a real value from a dictionary given a key Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name Returns: $value_r : Real : The key's value
Fnd_Dict_GetTextShared
#DECLARE($dictionary_i : Integer; $key_t : Text)->$value_t : Text
Project Method: Fnd_Dict_GetText (dict ID; key) --> Text Returns a text value from a dictionary given a key. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name Returns: $value_t : Text : The key's value
Fnd_Dict_GetTimeShared
#DECLARE($dictionary_i : Integer; $key_t : Text)->$value_time : Time
Project Method: Fnd_Dict_GetTime (dict ID; key) --> Time Returns a time value from a dictionary given a key. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name Returns: $value_time : Time : The key's value
Fnd_Dict_GetValueShared
#DECLARE($dictionary_i : Integer; $key_t : Text)->$value_t : Text
Project Method: Fnd_Dict_GetValue (dict ID; key) --> Text Returns a value from a dictionary given a key Access: Private Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name Returns: $value_t : Text : The key's value as text
Fnd_Dict_HasKeyShared
#DECLARE($dictionary_i : Integer; $key_t : Text)->$hasKey_b : Boolean
Project Method: Fnd_Dict_HasKey (dict ID; key) --> Boolean Checks whether a dictionary contains a given key. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name Returns: $hasKey_b : Boolean : True if the key exists
Fnd_Dict_IDShared
#DECLARE($name_t : Text)->$dictionary_i : Integer
Project Method: Fnd_Dict_ID (name) --> Number Returns the reference number of the dictionary with the specified name. Returns 0 if the dictionary does not exist. Access: Shared Parameters: $name_t : Text : A dictionary name Returns: $dictionary_i : Longint : The dictionary's reference number
Fnd_Dict_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Dict_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Dict_InitInternal
Project Method: Fnd_Dict_Init Initialises the dictionary module. Access: Private Parameters: None Returns: Nothing
Fnd_Dict_IsValidShared
#DECLARE($dictionary_i : Integer)->$isValid_b : Boolean
Project Method: Fnd_Dict_IsValid (dict ID) --> Boolean Checks whether a dictionary reference is valid. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID Returns: $isValid_b : Boolean : True if the dictionary reference is valid
Fnd_Dict_ItemCountShared
#DECLARE($dictionary_i : Integer)->$count_i : Integer
Project Method: Fnd_Dict_ItemCount (dict ID) --> Number Returns the number of items in a dictionary. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID Returns: $count_i : Longint : Item count
Fnd_Dict_KeyShared
#DECLARE($dictionary_i : Integer; $index_i : Integer)->$key_t : Text
Project Method: Fnd_Dict_Key (dict ID; key number) --> Text Returns the nth key from a dictionary. Access: Private Parameters: $dictionary_i : Longint : Dictionary ID $index_i : Longint : Key number Returns: $key_t : Text : The key's value as text
Fnd_Dict_KeysShared
#DECLARE($dictionary_i : Integer; $array_ptr : Pointer)
Project Method: Fnd_Dict_Keys (dict ID; ->keys array) Fills an array with the keys in a dictionary. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $array_ptr : Pointer : Text array Returns: Nothing
Fnd_Dict_LoadShared
#DECLARE($source_ptr : Pointer)->$dictionary_i : Integer
Project Method: Fnd_Dict_Load (->blob or path) Loads a dictionary from either a blob or a file Access: Private Parameters: $source_ptr : Pointer : Dictionary or path Returns: $dictionary_i : Longint : Dictionary ID
Fnd_Dict_LoadFromBlobShared
#DECLARE($source_ptr : Pointer)->$dictionary_i : Integer
Project Method: Fnd_Dict_LoadFromBlob (->blob) --> Longint Loads a dictionary from a BLOB. Access: Shared Parameters: $source_ptr : Pointer : Dictionary as blob Returns: $dictionary_i : Longint : Dictionary ID
Fnd_Dict_LoadFromFileShared
#DECLARE($filename_t : Text)->$dictionary_i : Integer
Project Method: Fnd_Dict_LoadFromFile (path) --> Longint Loads a dictionary from a file. Access: Shared Parameters: $filename_t : Text : File path Returns: $dictionary_i : Longint : Dictionary ID
Fnd_Dict_LockInternalStateShared
#DECLARE($lock_b : Boolean)
Project Method: Fnd_Dict_LockInternalState (lock?) Locks the internal state for the dictionary module. Access: Private Parameters: $lock_b : Boolean : True to Lock, False to Unlock Returns: Nothing
Fnd_Dict_NameShared
#DECLARE($dictionary_i : Integer)->$name_t : Text
Project Method: Fnd_Dict_Name (dict ID) --> Text Returns the name of the dictionary. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID Returns: $name_t : Text : Dictionary Name
Fnd_Dict_NewShared
#DECLARE($inName_t : Text)->$dictionary_i : Integer
Project Method: Fnd_Dict_New ({name}) --> Longint
Creates a new dictionary and returns a refernece to it.
Access: Shared
Parameters:
$inName_t : Text : Name (optional)
Returns:
$dictionary_i : Longint : Dictionary IDFnd_Dict_ReleaseShared
#DECLARE($dictionary_i : Integer)
Project Method: Fnd_Dict_Release (dict ID) Decrements the retain count of a dictionary and deletes it when the retain count reaches 0. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID Returns: Nothing
Fnd_Dict_RemoveShared
#DECLARE($dictionary_i : Integer; $key_t : Text)
Project Method: Fnd_Dict_Remove (dict ID; key) Removes a key from a dictionary. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name Returns: Nothing
Fnd_Dict_RetainShared
#DECLARE($dictionary_i : Integer)
Project Method: Fnd_Dict_Retain (dict ID) Increments the retain count for a dictionary. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID Returns: Nothing
Fnd_Dict_RetainCountShared
#DECLARE($dictionary_i : Integer)->$retainCount_i : Integer
Project Method: Fnd_Dict_RetainCount (dict ID) --> Longint Returns the retain count for a dictionary Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID Returns: $retainCount_i : Longint : Retain count
Fnd_Dict_SaveShared
#DECLARE($dictionary_i : Integer; $blobPath_ptr : Pointer)
Project Method: Fnd_Dict_Save (dict ID; ->blob or path) Saves a dictionary as either a blob or a file. Access: Private Parameters: $dictionary_i : Longint : Dictionary ID $blobPath_ptr : Pointer : Blob or path Returns: Nothing
Fnd_Dict_SaveToBlobShared
#DECLARE($dictionary_i : Integer; $destination_ptr : Pointer)
Project Method: Fnd_Dict_SaveToBlob (dict ID; ->blob) Saves a dictionary as a blob. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $destination_ptr : Pointer : Blob to store dictionary Returns: Nothing
Fnd_Dict_SaveToFileShared
#DECLARE($dictionary_i : Integer; $filename_t : Text)
Project Method: Fnd_Dict_SaveToFile (dict ID; path) Saves a dictionary as a file. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $filename_t : Text : Path to the file to create (or update) Returns: Nothing
Fnd_Dict_SetArrayShared
#DECLARE($dictionary_i : Integer; $key_t : Text; $value_ptr : Pointer)
Project Method: Fnd_Dict_SetArray (dict ID; key; ->array) Stores an array of values inside a dictionary. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key $value_ptr : Pointer : Array Returns: Nothing
Fnd_Dict_SetBooleanShared
#DECLARE($dictionary_i : Integer; $key_t : Text; $value_i : Boolean)
Project Method: Fnd_Dict_SetBoolean (dict ID; key; Boolean value) Assigns a Boolean value to a dictionary given a key. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name $value_i : Boolean : Value to store Returns: Nothing
Fnd_Dict_SetDateShared
#DECLARE($dictionary_i : Integer; $key_t : Text; $value_d : Date)
Project Method: Fnd_Dict_SetDate (dict ID; key; date value) Assigns a date value to a dictionary given a key. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name $value_d : Date : Value to store Returns: Nothing
Fnd_Dict_SetLongintShared
#DECLARE($dictionary_i : Integer; $key_t : Text; $value_i : Integer)
Project Method: Fnd_Dict_SetLongint (dict ID; key; longint value) Assigns a longint value to a dictionary given a key. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name $value_i : Longint : Value to store Returns: Nothing
Fnd_Dict_SetPointerShared
#DECLARE($dictionary_i : Integer; $key_t : Text; $value_ptr : Pointer)
Project Method: Fnd_Dict_SetPointer (dict ID; key; pointer) Assigns a pointer value to a dictionary given a key Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name $value_ptr : Pointer : Pointer to store Returns: Nothing
Fnd_Dict_SetRealShared
#DECLARE($dictionary_i : Integer; $key_t : Text; $value_r : Real)
Project Method: Fnd_Dict_SetReal (dict ID; key; real value) Assigns a real value to a dictionary given a key Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name $value_r : Real : Value to store Returns: Nothing
Fnd_Dict_SetTextShared
#DECLARE($dictionary_i : Integer; $key_t : Text; $value_t : Text)
Project Method: Fnd_Dict_SetText (dict ID; key; text value) Assigns a text value to a dictionary given a key Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name $value_t : Text : Value to store Returns: Nothing
Fnd_Dict_SetTimeShared
#DECLARE($dictionary_i : Integer; $key_t : Text; $value_time : Time)
Project Method: Fnd_Dict_SetTime (dict ID; key; time value) Assigns a time value to a dictionary given a key Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name $value_time : Time : Value to store Returns: Nothing
Fnd_Dict_SetValueShared
#DECLARE($dictionary_i : Integer; $key_t : Text; $value_t : Text; $type_i : Integer)
Project Method: Fnd_Dict_SetValue (dict ID; key; value as text; data type) Assigns a value to a dictionary given a key Access: Private Parameters: $dictionary_i : Longint : Dictionary ID $key_t : Text : Key name $value_t : Text : Value to store $type_i : Longint : Data type Returns: Nothing
Fnd_Dict_ValuesShared
#DECLARE($dictionary_i : Integer; $array_ptr : Pointer)
Project Method: Fnd_Dict_Values (dict ID; ->array) Fills an array with the values in a dictionary. Access: Shared Parameters: $dictionary_i : Longint : Dictionary ID $array_ptr : Pointer : Array to receive values Returns: Nothing
Fnd_Dlg_AlertShared
#DECLARE($message_t : Text; $inOkButtonTitle_t : Text)->$buttonClicked_i : Integer
Project Method: Fnd_Dlg_Alert (message{; OK button title}) --> Longint
Replaces 4D's ALERT command.
Access: Shared
Parameters:
$message_t : Text : The message to display
$inOkButtonTitle_t : Text : The OK button text (optional)
Returns:
$buttonClicked_i : Longint : 1 (always)Fnd_Dlg_ConfirmShared
#DECLARE($inMessage_t : Text; $inOkBttn_t : Text; $inCancelBttn_t : Text)->$buttonClicked_i : Integer
Project Method: Fnd_Dlg_Confirm (message{; OK bttn{; Cancel bttn}}) --> Longint
A replacement for 4D's CONFIRM command.
Access: Shared
Parameters:
$inMessage_t : Text : The message to display
$inOkBttn_t : Text : The OK button text (optional)
$inCancelBttn_t : Text : The Cancel button text (optional)
Returns:
$buttonClicked_i : Longint : 1 if OK is clicked, 0 if Cancel is clickedFnd_Dlg_CustomIconShared
#DECLARE($inPictureLibraryName_t : Text)->$customIconName_t : Text
Project Method: Fnd_Dlg_CustomIcon (picture library name) --> Text Allows the developer to set and get the custom icon name. See also Fnd_Dlg_SetIcon. Access: Shared Parameters: $inPictureLibraryName_t : Text : The picture library name Returns: $inPictureLibraryName_t : Text : The current picture name
Fnd_Dlg_DisplayShared
#DECLARE()->$buttonClicked_i : Integer
Project Method: Fnd_Dlg_Display --> Longint Displays the built dialog. Sets the OK variable. Access: Shared Parameters: None Returns: $buttonClicked_i : Longint : 1 if OK is clicked, 0 if Cancel is clicked, 2 if the optional button is clicked
Fnd_Dlg_FixButtonTextsShared
Project Method: Fnd_Dlg_FixButtonTexts Convert "*" in the button texts to local strings. Do this just before displaying the dialog, since they get cleared after that. Access: Private Parameters: None Returns: Nothing
Fnd_Dlg_FormAlertShared
Project Method: Fnd_Dlg_FormAlert Displays an alert using a 4D form. Called from Fnd_Dlg_Display Access: Private Parameters: None Returns: Nothing
Fnd_Dlg_GetRequestShared
#DECLARE()->$enteredValue_t : Text
Project Method: Fnd_Dlg_GetRequest --> Text Returns the value entered by the user after displaying a Request dialog. Access: Shared Parameters: None Returns: $enteredValue_t : Text : The value entered by the user
Fnd_Dlg_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Dlg_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Dlg_InitInternal
Project Method: Fnd_Dlg_Init Initializes both the process and interprocess variables used by the Fnd_Dlg routines. Access: Private Parameters: None Returns: Nothing
Fnd_Dlg_LocalizeShared
Project Method: Fnd_Dlg_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_Dlg_MessageShared
#DECLARE($message_t : Text)
Project Method: Fnd_Dlg_Message (message text) Displays a message window. Stays open until it's called again with a blank string. Designed to be a replacement for 4D's MESSAGE command. Access: Shared Parameters: $message_t : Text : The message to display Returns: Nothing
Fnd_Dlg_MessageCanceledShared
#DECLARE()->$wasCanceled_b : Boolean
Project Method: Fnd_Dlg_MessageCanceled Returns True if the user clicked the Cancel button. Access: Shared Parameters: None Returns: $wasCanceled_b : Boolean : True if the user clicked Cancel
Fnd_Dlg_MessageCloseShared
Project Method: Fnd_Dlg_MessageClose Closes the progress indicator window. Access: Shared Parameters: None Returns: Nothing
Fnd_Dlg_MessageOpenShared
Project Method: Fnd_Dlg_MessageOpen Opens the message window. Access: Shared Parameters: None Returns: Nothing
Fnd_Dlg_MessageOpen2Shared
#DECLARE($windowTitle_t : Text)
Project Method: Fnd_Dlg_MessageOpen2 (window title) Called as a new process from Fnd_Dlg_MessageOpen to display the progress indicator window. Access: Private Parameters: $windowTitle_t : Text : The window title Returns: Nothing
Fnd_Dlg_MessageUpdateShared
#DECLARE($current_i : Integer)
Project Method: Fnd_Dlg_MessageUpdate (number) Updates the message dialog's progress indicator. Access: Shared Parameters: $current_i : Longint : The next number in the sequence. Returns: Nothing
Fnd_Dlg_PasswordEntryShared
#DECLARE($formObject_ptr : Pointer; $currentValue_ptr : Pointer)->$valueChanged_b : Boolean
Project Method: Fnd_Dlg_PasswordEntry (->srcArea; ->curValue) --> Boolean Replaces typed characters with bullet characters for password entry. Returns True if the value has changed. Based on the Keystroke function example in the 4D documentation. Access: Private Parameters: $formObject_ptr : Pointer : A pointer to the form object $currentValue_ptr : Pointer : A pointer to a text variable that holds the contents Returns: $valueChanged_b : Boolean : True if the current value has changed
Fnd_Dlg_RequestShared
#DECLARE($msg_t : Text; $inDefault_t : Text; $inOkButton_t : Text; $inCancelButton_t : Text)->$enteredText_t : Text
Project Method: Fnd_Dlg_Request (msg{; default{; OK button{; Cancel button}}}) --> Text
Displays a Request dialog. Returns the user's response and sets the OK variable.
Use Fnd_Dlg_GetRequest to find out what the user typed.
Access: Shared
Parameters:
$msg_t : Text : The message to display
$inDefault_t : Text : The default response text (optional)
$inOkButton_t : Text : The OK button text (optional)
$inCancelButton_t : Text : The Cancel button text (optional)
Returns:
$enteredText_t : Text : Text user entered in Request dialogFnd_Dlg_SetButtonsShared
#DECLARE($inButton1_t : Text; $inButton2_t : Text; $inButton3_t : Text)
Project Method: Fnd_Dlg_SetButtons ({button 1{; button 2{; button 3}}})
Sets the button texts for the upcoming alerts.
Access: Shared
Parameters:
$inButton1_t : Text : The OK button text or "" or "*" for localized "OK" (optional)
$inButton2_t : Text : The Cancel button text or "*" for localized "Cancel" (optional)
$inButton3_t : Text : The third button text (optional)
Returns: NothingFnd_Dlg_SetCancelableShared
#DECLARE($cancelable_b : Boolean)
Project Method: Fnd_Dlg_SetCancelable (cancelable?) Specify whether or not the upcoming dialog can be canceled. Access: Shared Parameters: $cancelable_b : Boolean : True if the message button should be enabled. Returns: Nothing
Fnd_Dlg_SetIconShared
#DECLARE($inIconNumber_i : Integer)
Project Method: Fnd_Dlg_SetIcon ({icon number})
Sets the icon for the upcoming alert.
0 = Default icon (Note)
1 = Note Icon
2 = Warn Icon
3 = Stop Icon
These Foundation constants are available:
Fnd_Dlg_NoteIcon = Note Icon
Fnd_Dlg_WarnIcon = Warn Icon
Fnd_Dlg_StopIcon = Stop Icon
See also Fnd_Dlg_CustomIcon.
Access: Shared
Parameters:
$inIconNumber_i : Longint : Icon number (optional)
Returns: NothingFnd_Dlg_SetProgressShared
#DECLARE($inFrom_i : Integer; $inEndingNumber_i : Integer)
Project Method: Fnd_Dlg_SetProgress (to or from{; to})
The developer calls this to set the From and To numbers.
If only one number is passed, the From is assumed to be 1.
Access: Shared
Parameters:
$inFrom_i : Longint : The ending number if no second parameter or the starting number
$inEndingNumber_i : Longint : The ending number (optional)
Returns: NothingFnd_Dlg_SetRequestShared
#DECLARE($inDefault_t : Text)
Project Method: Fnd_Dlg_SetRequest ({default})
Sets up the next dialog to allow the user to enter a value. Optionally sets
the default value of the value. Pass "*" as the default value to cause
the entry area to display bullets rather than text.
Access: Shared
Parameters:
$inDefault_t : Text : The default value (optional)
Returns: NothingFnd_Dlg_SetTextShared
#DECLARE($text1_t : Text; $inText2_t : Text)
Project Method: Fnd_Dlg_SetText (text 1{; text 2})
Sets the message texts for the upcoming alert.
Access: Shared
Parameters:
$text1_t : Text : The primary alert text
$inText2_t : Text : The smaller alert text (optional)
Returns: NothingFnd_Ext_TextLinesShared
#DECLARE($theText_t : Text; $widthOfObject_i : Integer; $Fnd_Bttn_FontName_t : Text; $Fnd_Bttn_FontSize_i : Integer; $Fnd_Bttn_FontStyle_i : Integer)->$linesOfText_i : Integer
Project Method: Fnd_Ext_TextLines $lines_i:=Fnd_Ext_TextLines (Fnd_Dlg_Text1_t;372;◊Fnd_Dlg_FontName_t;◊Fnd_Dlg_FontSize_i;◊Fnd_Dlg_FontStyle_i) Replaces functionality of plugin Extras Access: Public Parameters: $widthOfObject_i;◊Fnd_Dlg_FontName_t;◊Fnd_Dlg_FontSize_i;◊Fnd_Dlg_FontStyle_i Returns: $linesOfText_i : Long Integer : number of lines of text
Fnd_Ext_TextWidthShared
#DECLARE($buttonText_t : Text; $Fnd_Bttn_FontName_t : Text; $Fnd_Bttn_FontSize_i : Integer; $Fnd_Bttn_FontStyle_i : Integer)->$lengthOfText_i : Integer
Project Method: Fnd_Ext_TextWidth $elementWidth_i:=Fnd_Ext_TextWidth ($text_t;$fontName_t;$fontSize_i;$fontStyle_i) $width_i:=Fnd_Ext_TextWidth ($buttonText_t;Fnd_Bttn_FontName_t;Fnd_Bttn_FontSize_i;Fnd_Bttn_FontStyle_i) Replaces functionality of plugin Extras Access: Public Parameters: $buttonText_t;Fnd_Bttn_FontName_t;Fnd_Bttn_FontSize_i;Fnd_Bttn_FontStyle_i Returns: $lengthOfText_i : Long Integer : Length of Text in pixels
Fnd_FCS_BuildComponentInternal
#DECLARE($inVersionNumber_t : Text)
Project Method: Fnd_FCS_BuildComponent Builds the Foundation component Access: Private Parameters: $inVersionNumber_t : Text : Version Number
Fnd_FCS_CommandTableUpdateInternal
#DECLARE->$report_o : Object
Project Method: Fnd_FCS_CommandTableUpdate --> Object
Makes sure <Resources>/commands.json knows the running 4D, adding it if not.
Called at startup from Fnd_FCS_DeveloperTools; safe to call by hand.
Does nothing when the version already has a table, or is already recorded as
an alias of one. Otherwise it reads the running 4D's command names and
compares them with every table already held:
identical to one an alias is recorded in "_aliases", costing 30 bytes
rather than another 30,000 - 21 R3 is 21 LTS exactly
different the full table is added under the version key
So a new R release costs nothing until 4D actually changes a name, and when
it does the change is captured the first time that version opens the project.
"_aliases" sits beside the version keys and is skipped by anything reading
the file for tables; the leading underscore marks it as not a version.
Access: Private
Parameters: None
Returns:
$report_o : Object : { key ; outcome ; aliasOf ; commandCount ; written }
outcome is "known", "alias recorded", "table added" or "no file"Fnd_FCS_CompilationPathInternal
#DECLARE()->$compilationPath_t : Text
Project Method: Fnd_FCS_CompilationPath --> Text Returns the compilation_path setting, or "" if it cannot be read. It decides whether Compiler_ typing methods are honoured — "4" is direct typing, which ignores them and requires #DECLARE on every method — so a compile result is not comparable to another without it. The setting is not in git, and only exists in projects converted from before 4D 20 R7. Access: Private Parameters: None Returns: $compilationPath_t : Text : The compilation_path value, or "" if absent
Fnd_FCS_CompilerCheckInternal
#DECLARE($inline_b : Boolean; $requestedAt_t : Text; $requestBody_t : Text)
Project Method: Fnd_FCS_CompilerCheck ({$inline_b : Boolean {; $requestedAt_t : Text}})
Runs a syntax check (Compile project with no targets) and reports the result.
Called from outside its own process it spawns itself into the unique process
$DesiredProcessName_t and returns; running inside that process it does the
work. RELOAD PROJECT runs first so that .4dm files edited outside the IDE
are picked up — which is also why this must never run preemptively.
With $inline_b the summary is written to <Resources>/schedulerResult.json for
the file-based protocol driven by Fnd_FCS_SchedStart; otherwise it goes to
the pasteboard and an alert. Holding Option (Alt on Windows) while an
interactive check finishes puts the concise rather than the indented JSON
on the pasteboard.
A result file is written on every path, including failure, so a polling
client always gets an answer.
Access: Private
Parameters:
$inline_b : Boolean : True to write the result file instead of alerting (optional)
$requestedAt_t : Text : Timestamp of the originating request, echoed back (optional)
Returns: NothingFnd_FCS_CompilerCheckOnErrInternal
Project Method: Fnd_FCS_CompilerCheckOnErr Error handler installed by Fnd_FCS_CompilerCheck around RELOAD PROJECT and Compile project. It writes an immediate failure result so a client polling for compilerResults.json is never left waiting on a compile that died. Fnd_FCS_CompilerCheck overwrites that file with the real summary if it goes on to complete normally, so a recoverable error costs nothing. Access: Private Parameters: None Returns: Nothing
Fnd_FCS_ConfirmListExistsInternal
#DECLARE($ListName_t : Text)->$listExists_b : Boolean
Project Method: Fnd_FCS_ConfirmListExists (List Name) --> Boolean Returns True if the list exists in the toolbox Access: Shared Parameters: $ListName_t : Text : The list name in the Toolbox Returns: $listExists_b : Boolean : True - the list exists
Fnd_FCS_ConstantsInternal
#DECLARE($autoRestart_b : Boolean)
Project Method: Fnd_FCS_Constants ({autoRestart})
Creates the constants file for Foundation.
Rebuilds only when $lastConstantUpdate_t below differs from the stamp in the
file, then offers a restart. Pass True to restart without asking.
Access: Private
Parameters:
$autoRestart_b : Boolean : Restart at once rather than prompting (optional)
Returns: NothingFnd_FCS_DeleteSyntaxFileInternal
Project Method: Fnd_FCS_DeleteSyntaxFile Deletes Resources/en.lproj/syntaxEN.json. 4D writes it during a full compilation and reads it when the project opens. A file written by one 4D version misdescribes the parameters to another — one written by 20 makes 21 R reject nearly every call. It is only useful in a built component, and the build compiles, so it is recreated there. Access: Private Parameters: None Returns: Nothing
Fnd_FCS_DeveloperToolsInternal
#DECLARE($mode_t : Text)
Project Method: Fnd_FCS_DeveloperTools Initialises any Access: Private
Fnd_FCS_GetCommandNamesInternal
#DECLARE($writeFile_b : Boolean)->$commands_o : Object
Project Method: Fnd_FCS_GetCommandNames ({$writeFile_b : Boolean}) --> Object
Reads every command name out of the running 4D, as { number : name }.
Pass True to also write <Resources>/<version key>.txt in the listing format
the tables were originally captured in: the version key on the first line,
then one name per line, blank where a number is unused.
Access: Private
Parameters:
$writeFile_b : Boolean : True to also write the .txt listing (optional)
Returns:
$commands_o : Object : { commandNumber : name } for every number in useFnd_FCS_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_FCS_Info (label) --> Text
Returns requested information from the Fnd_FCS module.
Access: Shared
Parameters:
$1 : Text : Info desired ("version", "devSync", "name", "dependencies", or "manifest")
Returns:
$0 : Text : ResponseFnd_FCS_ListToTextFileInternal
#DECLARE($inListName_t : Text)
Project Method: Fnd_FCS_ListToTextFile ({$inListName_t : Text})
Dumps the contents of a 4D list to a text file in the Resources folder.
Development only. It is part of the Construction Set, so it is not present in
a deployed component and nothing outside Fnd_FCS may call it.
Access: Private
Parameters:
$inListName_t : Text : The list to dump (optional)
Returns: NothingFnd_FCS_ManifestInternal
#DECLARE($repair_b : Boolean)->$reply_t : Text
Project Method: Fnd_FCS_Manifest ({$repair_b : Boolean}) --> Text
Returns the Fnd_FCS module's installation report as JSON: the manifest
declared below, verified by DevSync_ManifestCheck where that exists.
Without DevSync, or compiled, the declaration comes back marked
verified:false, which is the normal answer inside Foundation itself.
The list is the Fnd_FCS folder, which is the unit devSync pairs by name.
Fnd_FCS_Local is deliberately absent: it holds what does not travel.
Access: Private
Parameters:
$repair_b : Boolean : Register declared strays under the module folder (optional)
Returns:
$reply_t : Text : JSON report - see DevSync_ManifestCheckFnd_FCS_ParseParameterLineInternal
#DECLARE($parameterline_t : Text)->$result_o : Object
Project Method: Fnd_FCS_ParseParameterLine (parameter line) -> Object
Parses a single parameter comment line into name/type/description.
Access: Private
Parameters:
$parameterline_t : Text : Raw comment line (for example "// $parameterline_t : Text : Name")
Returns:
$result_o : Object : {valid; isDeclareStyle; name; type; description}Fnd_FCS_RequestEchoInternal
#DECLARE($requestBody_t : Text; $requestedAt_t : Text)->$echo_o : Object
Project Method: Fnd_FCS_RequestEcho ($requestBody_t : Text; $requestedAt_t : Text) --> Object
Builds the object every scheduler result starts from: what was asked, when,
and by a client believing what. Use it in place of New object when composing
a result payload.
The request may state the 4D version the client believes is running, and when
the client wrote the request:
{ "expectedVersion": "2007", "requestedAt": "2026-08-10T09:15:00" }
Both are answered rather than trusted. versionMatch says whether the client
was right, and requestAgeSeconds how long the request sat before the watcher
took it - a large age means the watcher was not running when it was written,
which otherwise reads as a slow compile.
Access: Private
Parameters:
$requestBody_t : Text : The request JSON, as read by the watcher
$requestedAt_t : Text : Timestamp stamped by the watcher when it took the request
Returns:
$echo_o : Object : { v4D ; requestedAt ; and, when the client supplied them,
expectedVersion ; versionMatch ; clientRequestedAt ; requestAgeSeconds }Fnd_FCS_ResizeDesignWindowsInternal
Project Method: Method: Fnd_FCS_ResizeDesignWindows Resizes any open Method or Form windows. Used to resize the windows in the FCS. This routine is not included in any of the components. To use this method, just open the windows you want resized and then switch to the User environment and select this method from the Execute dialog. Access Type: n/a Parameters: None Returns: Nothing
Fnd_FCS_SchedRelaunchInternal
Project Method: Fnd_FCS_SchedRelaunch Waits for the compile-check watcher to stop, then starts it again. Spawned by Fnd_FCS_SchedStart when <Resources>/schedRestart.json appears; not called directly. This is how an edit to the watcher itself takes effect. RELOAD PROJECT refreshes the compiler child but not the running loop, so the process has to go and come back, and something outside it has to do that. Access: Private Parameters: None Returns: Nothing
Fnd_FCS_SchedStartInternal
Project Method: Fnd_FCS_SchedStart Starts, and then is, the compile-check watcher process $Fnd_FCS_SchedStart. Called with no watcher running it spawns itself into that unique process and returns; running inside it, it polls <Resources>/schedulerRequest.json every 5 seconds and dispatches on the request's action: nothing, or "compile" Fnd_FCS_CompilerCheck "test" Fnd_FCS_TestRunner "relaunch" Fnd_FCS_SchedRelaunch, which restarts this watcher Results always land in <Resources>/schedulerResult.json. A developer tool, driven by the developer and by AI working alongside them. Interpreted mode only. In compiled mode this is a no-op, and the child calls RELOAD PROJECT, which must never run preemptively. Stopped by Fnd_FCS_SchedStop. Access: Private Parameters: None Returns: Nothing
Fnd_FCS_SchedStopInternal
Project Method: Fnd_FCS_SchedStop Asks the compile-check watcher started by Fnd_FCS_SchedStart to stop. Sets Storage.sched.quitNow; the watcher notices on its next tick, so it can take up to 5 seconds to exit. The watcher removes Storage.sched on its way out, so calling this with no watcher running does nothing. Access: Private Parameters: None Returns: Nothing
Fnd_FCS_SuggestRestartInternal
Project Method: Fnd_FCS_SuggestRestart Offers a restart after the constants file has been rebuilt. Call through CALL WORKER, so a startup rebuild is not held up by the dialog. Access: Private Parameters: None Returns: Nothing
Fnd_FCS_TestAssertInternal
#DECLARE($ok_b : Boolean; $message_t : Text)
Project Method: Fnd_FCS_TestAssert ($ok_b : Boolean; $message_t : Text) Records one assertion against the same Storage.test contract Fnd_FCS_TestRunner reads, and writes it to the Logging component's log when that component is installed. The portable half of the harness. Fnd_Test_Assert is Foundation's own and stays in Fnd_Test; it does the same bookkeeping and then writes through Fnd_Log_UseLog, Fnd_Log_Enable and Fnd_Log_AddEntry. This copy reaches the Logging component instead, and only if it is there, so the Fnd_FCS folder can travel as a complete unit: devSync pairs folders by name, and a folder whose harness lives in another folder is not one. The log is named Fnd_FCS_Test, not Fnd_Test, and the difference is not cosmetic. Foundation's Fnd_Log already owns Data/Logs/Fnd_Test.txt, and when the Logging component is asked for a log of a name another writer holds it drops the entry silently - no error, no file, nothing. Measured here on 21.1: an entry named zProbeLog wrote, one named Fnd_Test did not. With no Logging component nothing is written, and nothing is lost: the tally and the failure messages are in Storage.test, which is what Fnd_FCS_TestRunner reports in schedulerResult.json. Access: Private Parameters: $ok_b : Boolean : The condition being asserted $message_t : Text : What was expected, and what was found Returns: Nothing
Fnd_FCS_TestEndInternal
Project Method: Fnd_FCS_TestEnd Closes the run opened by Fnd_FCS_TestAssert and writes the tally to the Logging component's log when that component is installed. The portable half of the harness. Fnd_Test_End is Foundation's own and stays in Fnd_Test; see Fnd_FCS_TestAssert for why both exist. Access: Private Parameters: None Returns: Nothing
Fnd_FCS_TestRunnerInternal
#DECLARE($requestedAt_t : Text; $requestBody_t : Text)
Project Method: Fnd_FCS_TestRunner ($requestedAt_t : Text; $requestBody_t : Text)
Runs test methods on request and writes the results. Spawned by
Fnd_FCS_SchedStart on a request whose action is "test"; not called directly.
The request body is handed in rather than read from disk, because the watcher
has already consumed it.
The request names what to run, in any of three ways:
{ "method": "Test_Fnd_Data" }
{ "methods": ["Test_Fnd_Data"; "Fnd_Test_StripSpaces"] }
{ "filter": "Test_Fnd_@" }
with an optional "parameters" collection passed to each method, up to five.
An empty or unreadable request runs every test method.
Tests are named Test_Fnd_<module>, one or two per module rather than one per
function, so they sort together rather than scattering through the Fnd_ names.
The older Fnd_Test_<subject> names are still picked up while any remain.
Anything callable can be driven through here, not only tests. The documentation
rebuild is the standing example, and it takes a single options object rather
than five positional parameters:
{ "action": "test"; "method": "Fnd_FCS_WriteDocumentation";
"parameters": [{"silent": true; "inline": true}] }
Results land in <Resources>/schedulerResult.json, always, including on failure.
requestedAt is echoed so a client can tell a fresh result from a stale one.
Interpreted mode only, and never preemptive: it executes arbitrary methods.
Access: Private
Parameters:
$requestedAt_t : Text : Timestamp stamped by the watcher when it took the request
$requestBody_t : Text : The request JSON, as read by the watcher
Returns: NothingFnd_FCS_TestRunnerOnErrInternal
Project Method: Fnd_FCS_TestRunnerOnErr Error handler installed by Fnd_FCS_TestRunner around each test method, so a test that raises an error is recorded rather than stopping the run or opening the debugger in the watcher process. Access: Private Parameters: None Returns: Nothing
Fnd_FCS_ToggleDeclarationBlocksInternal
#DECLARE($ellipsis_b : Boolean; $suppressAlert_b : Boolean)->$report_o : Object
Project Method: Fnd_FCS_ToggleDeclarationBlocks ({$ellipsis_b {; $suppressAlert_b}}) --> Object
Switches variadic methods between their two declaration forms.
Access: Private
Parameters:
$ellipsis_b : Boolean : True for the modern form
$suppressAlert_b : Boolean : True to skip the summary alert (optional)
Returns:
$report_o : Object : { target ; changed : Collection ; alreadyCorrect ; unmarked : Collection }Fnd_FCS_ToggleTypingBlockInternal
#DECLARE($commentOut_b : Boolean; $suppressAlert_b : Boolean)->$report_o : Object
Project Method: Fnd_FCS_ToggleTypingBlock ({$commentOut_b : Boolean {; $suppressAlert_b : Boolean}}) --> Object
Comments or uncomments the parameter typing block in
Compiler_Fnd_MethodParameters.
Direct typing rejects C_XX(MethodName; $1) entries outright — 788 errors
measured on 2026-08-08 — while the lower compilation paths require them.
The same source therefore has to carry the block in one state or the
other, so it is wrapped in /* */ rather than deleted, and this method
moves it between the two.
The block is found by its delimiters, not by line number:
// ==== BEGIN COMPILER TYPING BLOCK …
// ==== END COMPILER TYPING BLOCK ====
The wrapper lines live inside them. Both states are idempotent, and the
method is written only when the text actually changed.
With no parameter the target state comes from the running 4D: a version
with Direct typing (20 R4 and later) wants the block commented out.
Modelled on OTr_z_Comment_Uncomment_OT_Code from the ObjectTools project.
Access: Private
Parameters:
$commentOut_b : Boolean : True to comment the block out, False to restore it (optional)
$suppressAlert_b : Boolean : True to skip the summary alert (optional)
Returns:
$report_o : Object : { changed ; state ; reason }Fnd_FCS_TrnsListToJSONInternal
#DECLARE($inListName_t : Text)
Project Method: Fnd_FCS_TrnsListToJSON Another quick and dirty routine that MUST NOT BE USED when deployed Access: Shared Parameters: $inListName_t : Text : Translation List Name
Fnd_FCS_VersionCapabilitiesInternal
#DECLARE($version_t : Text)->$capabilities_o : Object
Project Method: Fnd_FCS_VersionCapabilities --> Object
What the running 4D can do about parameter declarations.
Application version returns four characters: chars 1-2 the version, char 3
the R-release as a hex digit (0 for an LTS), char 4 the revision. "2007" is
20.7, "2130" is 21 R3, "20A0" is 20 R10.
The ellipsis form of #DECLARE arrived in 20 R3, Direct typing in 20 R4.
Neither exists on 20 LTS whatever settings.4DSettings says: 4D 20.7 leaves
compilation_path at "4" untouched, which is why the setting on its own is
not a safe signal for either decision.
Access: Private
Parameters:
$version_t : Text : A version string to decode instead of the running 4D's,
for testing (optional)
Returns:
$capabilities_o : Object : { version ; major ; release ; key ; ellipsis ;
directTyping ; uuidVersion }Fnd_FCS_WriteClassDocumentationInternal
Project Method: Fnd_FCS_WriteClassDocumentation
Writes Documentation/Classes/<class>.md for every class in the project, so a
class has a page in the Explorer's preview area the way a method does.
The companion to Fnd_FCS_WriteDocumentation rather than part of it: that one
works through METHOD SET COMMENTS, which is a project method API and has no
equivalent for classes, so the file has to be written directly.
It reads what is already in the source and reformats it. Nothing has to be
written twice:
the block comment at the top of the class file becomes the page's
description;
each Function line becomes a heading and a prototype;
the comment lines immediately under a Function line become that
function's description — the same lines the code editor shows in its
help tip, so the two cannot disagree.
Functions whose names begin with an underscore are left out, matching 4D's
own treatment of hidden classes and functions in code completion.
Takes no parameters, alerts about nothing, and returns nothing, so it is safe
to drive headlessly:
{ "action": "test", "method": "Fnd_FCS_WriteClassDocumentation" }
Access: PrivateFnd_FCS_WriteDocumentationInternal
#DECLARE($options_v : Variant; $ToolTip_b : Boolean; $excludePrivate_b : Boolean; $silent_b : Boolean; $inline_b : Boolean)
Project Method: Fnd_FCS_WriteDocumentation {($options_v : Variant {; $ToolTip_b : Boolean {; $excludePrivate_b : Boolean {; $silent_b : Boolean {; $inline_b : Boolean}}}})}
This method will create documentation comments
it is based on the assumption that you format your
method header comments in the same manner as Foundation
The first parameter takes either form. An object bearing the options is the
clearer call and the one the scheduler sends:
Fnd_FCS_WriteDocumentation({methodName: "Fnd_Art"; silent: True; inline: True})
Its properties are methodName, tooltip, excludePrivate, silent and inline;
any left out take the defaults below. The positional form still works, so
existing callers are unaffected:
Fnd_FCS_WriteDocumentation(""; True; True)
The method name, by either route:
(a) "" - All methods (or don't pass any parameters)
(b) "Prefix" - Only methods which match a prefix (Eg. Fnd_Art)
(c) "Specific method name" - write comments for that method
tooltip - default True. Named as though it generates the tooltip; it
governs whether the leading <!-- --> block is written at all,
so False strips it from every file it touches.
excludePrivate - default False. True: exclude Private methods
silent - default False. True: don't show a final "Finished" alert
inline - default False. True: run in the calling process rather than
spawning. Use in headless/CI contexts.
Access: Private
Parameters:
$options_v : Variant : An options object, or the method name / prefix as text
$ToolTip_b : Boolean : Positional form only - write the tooltip block (optional)
$excludePrivate_b : Boolean : Positional form only - exclude Private methods (optional)
$silent_b : Boolean : Positional form only - suppress the Finished alert (optional)
$inline_b : Boolean : Positional form only - run in the calling process (optional)Fnd_FCS_WriteFailedResultInternal
#DECLARE($reason_t : Text; $requestedAt_t : Text; $requestBody_t : Text)
Project Method: Fnd_FCS_WriteFailedResult ($reason_t : Text {; $requestedAt_t : Text})
Writes a definite failure payload to <Resources>/schedulerResult.json.
The file-based compile-check protocol gives a client no way to distinguish
"the compile is still running" from "the compile never ran", so every
abnormal exit must land here rather than leaving a polling client waiting
on a file that will never appear. errorCount is -1 to mark the payload as
a non-result: the compiler was not reached, so no error count exists.
Access: Private
Parameters:
$reason_t : Text : Why the compile did not run (appended to the message)
$requestedAt_t : Text : Timestamp the watcher accepted the request (optional)
Returns: NothingFnd_File_CompressInternal
#DECLARE($inPath_t : Variant; $inDelete_b : Boolean)
Project Method: Fnd_File_Compress (Path to file/folder {; Delete Source })
Creates a zip archive of a file or folder passed to it
It does this in another thread so as not to
slow down execution of main thread
A document is archived beside itself keeping its extension, so
"report.txt" becomes "report.txt.zip". A folder drops its trailing separator,
so "payload/" becomes "payload.zip"; a package keeps its extension the way a
document does, so "bundle.app" becomes "bundle.app.zip".
Pass a path, or an object carrying the options a bare path cannot:
```
Fnd_File_Compress({sourceDocument: $path_t; deleteSource: True; synchronous: True})
```
synchronous runs the work in the calling process instead of handing it to the
"$zip worker" process, and is available only through the object form.
deleteSource defaults to True for a path and to False for an object.
Access: Private
Parameters:
$inPath_t : Variant : Path to the file or folder, or an options object
$inDelete_b : Boolean : Delete source document (optional - default is to delete)Fnd_File_DeleteEmptyFolderInternal
#DECLARE($PathName_t : Text)
Project Method: Fnd_File_DeleteEmptyFolder (Path) Deletes folder & subfolders (must be empty of files) A folder still holding a document cannot go, and raises an error rather than removing it. That is the difference from Fnd_File_DeleteFolder, which takes the documents with it. The path may be given with or without its trailing separator. Access: Private Parameters: $PathName_t : TEXT : Path to the folder
Fnd_File_DeleteFolderShared
#DECLARE($PathName_t : Text)
Project Method: Fnd_File_DeleteFolder (Path) Deletes a folder and all contained files and folders A path that is not a folder is a no-op. The path may be given with or without its trailing separator. Access: Shared Parameters: $PathName_t : TEXT : The Path to the folder
Fnd_File_FilePathToFileNameInternal
#DECLARE($originalPath : Text)->$fileName_t : Text
Project Method: Fnd_File_FilePathToFileName (Path to document) --> File Name Takes a fully qualified path name and returns just the file name. Accepts a platform path or a POSIX path. A path with no separator in it comes back whole, and a path ending at a separator gives an empty name. Access: Private Parameters: $originalPath : Text : Path to a document Returns: $fileName_t : Text : The document name
Fnd_File_FilePathToFolderNameInternal
#DECLARE($originalPath : Text)->$folderPath_t : Text
Project Method: Fnd_File_FilePathToFolderName (Path to a document) --> The containing folder From the 4D Documentation. Takes a fully qualified path name and strips off the file name so we’re left with just the path name to the folder. from 4DToday tips Accepts a platform path or a POSIX path, and answers in the separators it was given. The trailing separator is kept. A path with no separator in it comes back whole, so a bare file name is returned as though it were a folder path. Access: Private Parameters: $originalPath : text : Path to a document Returns: $folderPath_t : text : Path to the containing folder
Fnd_Find_AddCustomShared
#DECLARE($label_t : Text; $method_t : Text; $inPosition_i : Integer)
Project Method: Fnd_Find_AddCustom (label; method name{; position})
Adds a custom field to the search dialog.
Access: Shared
Parameters:
$label_t : Text : The label to use
$method_t : Text : The method to call
$inPosition_i : Longint : The position (optional)
Returns: NothingFnd_Find_AddFieldShared
#DECLARE($field_ptr : Pointer; $inPosition_i : Integer)
Project Method: Fnd_Find_AddField (->field{; position})
Lets the developer add a field to the search dialog. If a position isn't
specified, the field is added to the end of the list.
Access: Protected
Parameters:
$field_ptr : Pointer : A pointer to the field to add
$inPosition_i : Longint : The position in which to add the item (optional)
Returns: NothingFnd_Find_AddItemShared
#DECLARE($inPosition_i : Integer; $label_t : Text; $method_t : Text; $inField_ptr : Pointer; $inFieldType_i : Integer)
Project Method: Fnd_Find_AddItem (position; label; method{; ->field{; type}})
Called by the protected "Fnd_Find_Add" routines to add stuff to the arrays.
If the label is blank, the field name will be used.
Access: Private
Parameters:
$inPosition_i : Longint : The position
$label_t : Text : The label
$method_t : Text : The method
$inField_ptr : Pointer : The field (optional)
$inFieldType_i : Longint : The field's type (optional)
Returns: NothingFnd_Find_AddMultiFieldShared
#DECLARE($field_ptr : Pointer; $label_t : Text; $inPosition_i : Integer)
Project Method: Fnd_Find_AddMultiField (->array of field ptrs; label{; position})
Lets the developer add one item for searching multiple fields.
Access: Shared
Parameters:
$field_ptr : Pointer : A pointer to an array of pointers
$label_t : Text : The label for the popup item
$inPosition_i : Longint : The position in which to add the first item (optional)
Returns: NothingFnd_Find_AddSeparatorShared
#DECLARE($inPosition_i : Integer)
Project Method: Fnd_Find_AddSeparator ({position})
Adds a separator line to the list of searchable fields.
Access: Shared
Parameters:
$inPosition_i : Longint : Position of the separator (optional)
Returns: NothingFnd_Find_AddSubfieldShared
#DECLARE($field_ptr : Pointer; $fieldType_i : Integer; $inPosition_i : Integer)
Project Method: Fnd_Find_AddSubfield (->subfield; field type{; position})
Lets the developer add a subfield to the Find dialog. The field type
must be specified because we can't procedurally determine this like we
can for fields. If a position isn't specified, the field is added to the end
of the list.
Access: Shared
Parameters:
$field_ptr : Pointer : A pointer to the field to add
$fieldType_i : Longint : The type of the subfield
$inPosition_i : Longint : The position in which to add the item (optional)
Returns: NothingFnd_Find_AddTableShared
#DECLARE($table_ptr : Pointer; $inPosition_i : Integer)
Project Method: Fnd_Find_AddTable (->table{; position})
Loads the visible, searchable fields for the specified table
into an array named Fnd_Find_Fields_aptr.
Access: Protected
Parameters:
$table_ptr : Pointer : A pointer to the table to add
$inPosition_i : Longint : The position in which to add the item (optional)
Returns: NothingFnd_Find_BestPopupSizeShared
#DECLARE($array_ptr : Pointer)->$bestPopupSize_i : Integer
Project Method: Fnd_Find_BestPopupSize (->popup array) --> Number Returns the best object width to use for a pop-up menu form object. Access: Private Parameters: $array_ptr : Pointer : The array associated with the popup Returns: $bestPopupSize_i : Longint : The best object size for the pop-up
Fnd_Find_DisplayShared
Project Method: Fnd_Find_Display Displays a Find dialog and performs the query. Access: Shared Parameters: None Returns: Nothing
Fnd_Find_EngineShared
#DECLARE($searchScope_t : Text)
Project Method: Fnd_Find_Engine ("Query" or "Query Selection")
Does the grunt work.
Access: Shared
Parameters:
$searchScope_t : Text : Either "Query" or "Query Selection"
Returns: NothingFnd_Find_Engine2Shared
#DECLARE($searchScope_t : Text; $field_ptr : Pointer; $operator_t : Text)
Project Method: Fnd_Find_Engine2 ("Query" or "Query Selection"; ->field; operator)
Adds a query to the built search.
Access: Shared
Parameters:
$searchScope_t : Text : Either "Query" or "Query Selection"
$field_ptr : Pointer : A pointer to the field to search
$operator_t : Text : The operator code to use
Returns: NothingFnd_Find_Engine3Shared
#DECLARE($searchScope_t : Text; $field_ptr : Pointer; $operator_t : Text)
Project Method: Fnd_Find_Engine3 ("Query" or "Query Selection"; ->field; operator)
Adds a query to the built search.
Exactly the same as Fnd_Find_Engine2, but with "|" operators.
Access: Shared
Parameters:
$searchScope_t : Text : Either "Query" or "Query Selection"
$field_ptr : Pointer : A pointer to the field to search
$operator_t : Text : The operator code to use
Returns: NothingFnd_Find_GetDistinctAttributesInternal
#DECLARE($Field_ptr : Pointer; $Array_ptr : Pointer; $inCurrentSelection_b : Boolean)
Project Method: Fnd_Find_GetDistinctAttributes (Field Pointer; Array Pointer {; Selection Only})
This method returns the list of distinct paths from the field listed.
By default this will be for all records in the table
rather than just the current selection.
By passing True in the {optional} second parameter
only paths for the current selection will be returned.
Access: Shared
Parameters:
$Field_ptr : Pointer : Pointer to an object field
$Array_ptr : Pointer : Pointer to a text array to retreive the attribute paths
$inCurrentSelection_b : Boolean : (optional) Return only paths for current selectionFnd_Find_GetDistinctAttributes2Internal
#DECLARE($fieldPointer_ptr : Pointer; $arrayPointer_ptr : Pointer)
Project Method: Fnd_Find_GetDistinctAttributes2 (Field Pointer; Array Pointer) This method returns the list of distinct paths from the field listed. This method Executes on the server By default this will be for all records in the table rather than just the current selection. Access: Private Parameters: $fieldPointer_ptr : Pointer : Pointer to an object field $arrayPointer_ptr : Pointer : Pointer to a text array to retreive the attribute paths
Fnd_Find_GetDistinctAttributes3Internal
#DECLARE($param1_ptr : Pointer; $param2_i : Integer)
Project Method: Fnd_Find_GetDistinctAttributes3 Description Access: Shared Parameters: $param1_ptr : Type : Description $x : Type : Description (optional)
Fnd_Find_GetExtraWidthShared
#DECLARE()->$extraWidth_i : Integer
Project Method: Fnd_Find_GetExtraWidth --> Number Returns the extra width needed to display the Find dialog so none of the text in the pop-up menus gets truncated. Lots of stuff is hard-coded here because we can't get it procedurally. :-( Access: Private Parameters: None Returns: $extraWidth_i : Longint : The extra width required
Fnd_Find_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Find_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Find_InitInternal
Project Method: Fnd_Find_Init Initializes both the process and interprocess variables used by the Fnd_Find routines. Access: Private Parameters: None Returns: Nothing
Fnd_Find_LocalizeShared
Project Method: Fnd_Find_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_Find_NowShared
#DECLARE($searchScope_t : Text)
Project Method: Fnd_Find_Now ("Query" or "Query Selection")
Finishes up the built search. This is separate from the Fnd_Find_Engine routine
so it's possible to change the dialog to a multi-criteria find.
Access: Shared
Parameters:
$searchScope_t : Text : Either "Query" or "Query Selection"
Returns: NothingFnd_Find_PrefsGetShared
#DECLARE($prefName_t : Text)->$prefValue_t : Text
Project Method: Fnd_Find_PrefsGet (pref name) --> Text Gets a value from the user preferences if the Fnd_Pref component is available. Access: Private Parameters: $prefName_t : Text : The preference name Returns: $prefValue_t : Text : The saved value
Fnd_Find_PrefsPutShared
#DECLARE($name_t : Text; $value_t : Text)
Project Method: Fnd_Find_PrefsPut (pref name; text value) Adds an item to the user's preferences if the Fnd_Pref component is available. Access: Private Parameters: $name_t : Text : The preference name $value_t : Text : The value to store Returns: Nothing
Fnd_Find_SetEditorButtonShared
#DECLARE($label_t : Text; $inMethod_t : Text)
Project Method: Fnd_Find_SetEditorButton (label{; method})
Allows the developer to hide or modify the Query Editor button.
Access: Shared
Parameters:
$label_t : Text : The new label
$inMethod_t : Text : The method to run (optional)
Returns: NothingFnd_Find_SizeArrayObjectShared
#DECLARE($object_ptr : Pointer; $alignment_i : Integer)->$diffWidth_i : Integer
Project Method: Fnd_Find_SizeArrayObject (->object; alignment) --> Number Sets the best size for an array based form object based on the contents it displays. Rather than using BEST OBJECT SIZE, we calculate the size the same way we did before opening the dialog using the Fnd_Find_GetExtraWidth method. Access: Private Parameters: $object_ptr : Pointer : A pointer to the form object $alignment_i : Longint : The alignment (side not to move) Returns: $diffWidth_i : Longint : The increase in the button size
Fnd_Find_UpdateOperatorsShared
Project Method: Fnd_Find_UpdateOperators Updates the Search Operators pop-up menu depending on the type of the selected field. Access: Private Parameters: None Returns: Nothing
Fnd_FontDiscoveryInternal
Project Method: Fnd_FontDiscovery Discovers the native fonts on this computer Access: Private
Fnd_Gen_AlertShared
#DECLARE($message_t : Text; $button_t : Text)
Project Method: Fnd_Gen_Alert (message{; button text})
Displays an alert message. Uses the Foundation Dialog module alert if available.
Access: Private
Parameters:
$message_t : Text : The alert message text
$button_t : Text : The button label (optional)
Returns: NothingFnd_Gen_BugAlertShared
#DECLARE($methodName_t : Text; $description_t : Text; $options_o : Object)
Project Method: Fnd_Gen_BugAlert (method{; details{; options}})
Reports a code bug without blocking the caller: a Foundation log entry, a
line in the system standard output, and an alert shown by another process
so this one carries on.
The alert shows the method and the description only. Diagnostic detail
belongs in options.columns, which is logged but not shown.
options.seconds turns the alert into a self-dismissing notification of that
many seconds instead of a modal dialog. Pass it from any call site that
knows nobody is watching: a modal in an unattended process waits forever,
and the compile-check scheduler stops answering behind one. A notification
is not guaranteed to be seen - the OS may suppress or silence it - so it
buys "will not block", not "will be read".
```
Fnd_Gen_BugAlert(Current method name; "No number known for \""+$name_t+"\".")
Fnd_Gen_BugAlert(Current method name; "Lookup failed."; {columns: [$module_t; $code_t]})
```
Access: Shared
Parameters:
$methodName_t : Text : Method name (4D's 'Current method name' function doesn't work in components)
$description_t : Text : Details about the problem (optional)
$options_o : Object : { columns : Collection ; seconds : Integer } extra detail, logged only, and
the self-dismiss time in seconds; 0 or absent means a sticky dialog (optional)
Returns: NothingFnd_Gen_BugAlert2Shared
#DECLARE($title_t : Text; $description_t : Text; $options_o : Object)
Project Method: Fnd_Gen_BugAlert2 (title; description{; options})
Reports a code bug without blocking the caller. Kept as a name only:
Fnd_Gen_BugAlert now does this, and this passes straight through to it.
Prefer Fnd_Gen_BugAlert in new code. This one exists so that the call sites
migrated to it between 2026-05-09 and 2026-08-14 keep working, and so that
a host calling it is unaffected.
Access: Shared
Parameters:
$title_t : Text : Short title, usually Current method name
$description_t : Text : Shown in the alert and logged
$options_o : Object : { columns : Collection } extra detail, logged only (optional)
Returns: NothingFnd_Gen_ButtonTextShared
Project Method: Fnd_Gen_ButtonText (->button; text; alignment{; ->obj1..->objN}) --> Number
A replacement for 4D's BUTTON TEXT command.
Sets the button text and resizes the button if necessary. Also moves any
adjacent form objects so they stay properly aligned with the modified button.
Due to a bug in 4D 2003.1, this routine won't work properly if the
primary button is set as the default button. If this is a problem, UPGRADE!
Access: Shared
Parameters:
$button_v : Variant : A pointer to the button, or its name
$text_t : Text : New button text
$alignment_i : Longint : Which end to keep stationary (optional)
2 or Align Left - Keep left side anchored
3 or Center - Center the button on its original position
4 or Alight Right - Keep right side anchored
$4..$N : Variant : Other form objects to move, by pointer or by name
Returns:
$move_i : Longint : The increase in the button sizeFnd_Gen_CanCallHostMethodShared
#DECLARE($methodName_t : Text)->$callable_b : Boolean
Project Method: Fnd_Gen_CanCallHostMethod --> Boolean True when EXECUTE METHOD, called from the component, will actually reach the named host method: the method exists and carries "Shared by components and host database". One that exists unshared raises -10508 when called. Not thread safe, because METHOD Get attribute is not - probe once and cache the answer rather than asking per call. The name must be literal. METHOD GET NAMES honours the @ wildcard, so a name containing one answers for whatever it happens to match. Access: Shared Parameters: $methodName_t : Text : Name of the host method Returns: $callable_b : Boolean : True when the method exists and is shared
Fnd_Gen_CancelQuitShared
Project Method: Fnd_Gen_CancelQuit Call this to end Foundation's attempts to quit. Access: Shared Parameters: None Returns: Nothing
Fnd_Gen_CenterWindowShared
#DECLARE($width_i : Integer; $height_i : Integer; $inType_i : Integer; $inPosition_i : Integer; $inTitle_t : Text; $inHasCloseBox_b : Boolean)->$windowRef_i : Integer
Project Method: Fnd_Gen_CenterWindow (width; height{; type{; position{; title{; close box?}}}})
Opens a new window centered on the screen or over the frontmost window
(depending on the value of Fnd_Gen_WindowPosition_i).
Access: Shared
Parameters:
$width_i : Longint : Width of the new window
$height_i : Longint : Height of the new window
$inType_i : Longint : The window type (optional)
$inPosition_i : Longint : Window position (optional)
$inTitle_t : Text : The window title (optional)
$inHasCloseBox_b : Boolean : Has a close box (optional)
The window position can be one of these:
1 = Fnd_Wnd_CenterOnScreen = Centered on screen
2 = Fnd_Wnd_CenterOnWindow = Centered over frontmost window
Returns:
$windowRef_i : Longint : The window reference numberFnd_Gen_ComponentAvailableShared
#DECLARE($component_t : Text)->$available_b : Boolean
Project Method: Fnd_Gen_ComponentAvailable (component name) --> Boolean Returns true if the component is installed. Access: Shared Parameters: $component_t : Text : The name of the component Returns: $available_b : Boolean : True if the component is available
Fnd_Gen_ComponentCheckShared
#DECLARE($callingComponent_t : Text; $requiredComponent_t : Text)
Project Method: Fnd_Gen_ComponentCheck (calling component; required component) Alerts the developer if the specified component isn't available. Then ends execution. Access: Shared Parameters: $callingComponent_t : Text : The internal name of the calling component $requiredComponent_t : Text : The internal name of the required component Returns: Nothing
Fnd_Gen_ComponentDataShared
#DECLARE($namesArray_ptr : Pointer; $versionsArray_ptr : Pointer; $crntVersionsArray_ptr : Pointer)
Project Method: Fnd_Gen_ComponentData (->prefixes array{; ->installed versions array{; ->current versions array}})
Modifies the arrays to contain the installed Foundation
component prefixes, installed versions, and current versions.
Access: Shared
Parameters:
$namesArray_ptr : Pointer : A text array to receive the component prefixes
$versionsArray_ptr : Pointer : A text array to receive the installed component version numbers (optional)
$crntVersionsArray_ptr : Pointer : A text array to receive the current component version numbers (optional)
Returns: NothingFnd_Gen_ComponentInfoShared
#DECLARE($component_t : Text; $request_t : Text)->$reply_t : Text
Project Method: Fnd_Gen_ComponentInfo (component name; info requested) --> Text Pass this method a component name and name for the information you want. If the component exists, Foundation will call its _Info routine, pass it the info label, and return the result. This allows you to get information from a component in a single call, rather than having to first test to see if the component is available. If the component isn't installed, "Component Not Available" will be returned. If the component doesn't have an _Info routine, "Component Did Not Recognize Request" will be returned. We recommend that if a component doesn't recognize a request it should return the text "Fnd_LabelNotRecognized". This routine will return this response as "Component Did Not Recognize Request". These values will not be localized so the calling method can test for them. Access: Shared Parameters: $component_t : Text : The component name $request_t : Text : Info desired Returns: $reply_t : Text : Response from component
Fnd_Gen_CurrentFormTypeShared
#DECLARE($inForm_i : Integer)->$currentFormType_i : Integer
Project Method: Fnd_Gen_CurrentFormType ({form type}) --> Number
If no parameters are passed, this method returns the type of the
currently displayed form. Pass a form type to set the type of the
currently displayed form.
Designed specifically so we can tell if the window is displaying an input
form or an output form.
Can be one of these:
0 = Fnd_Gen_NoForm = No window
1 = Fnd_Gen_UnknownForm = Unknown form type
2 = Fnd_Gen_OutputForm = An output form
3 = Fnd_Gen_InputForm = An input form
4 = Fnd_Gen_PreferencesForm = The Preferences window
5 = Fnd_Gen_AboutForm = The About box
Access: Shared
Parameters:
$inForm_i : Longint : The form type constant
Returns:
$currentFormType_i : Longint : The form type constantFnd_Gen_CurrentTableShared
#DECLARE($inPointerTableMake_ptr : Pointer)->$currentTable_ptr : Pointer
Project Method: Fnd_Gen_CurrentTable ({->table}) --> Pointer
Returns a pointer to the current table. If no table is current, a nil
pointer is returned.
Pass a pointer to a table to this routine to make it the current table.
Access: Shared
Parameters:
$inPointerTableMake_ptr : Pointer : A pointer to the table to make current (optional)
Returns:
$currentTable_ptr : Pointer : The current tableFnd_Gen_DummyMethodShared
Project Method: Fnd_Gen_DummyMethod A generic method with no code. This is useful for assigning as the close box method for new windows (handle the close in the form method) or to use with ON ERR CALL to disable any automatic reaction to errors. **Deprecated 2026-08-22. Call Fnd_Gen_SilentError instead.** The body was always empty, so the two methods were never different. This one served six ON ERR CALL sites and one Open window close box. Access: Private Parameters: None Returns: Nothing
Fnd_Gen_FieldIsVisibleShared
#DECLARE($inField_ptr : Variant; $inFieldNumber_i : Integer)->$isFieldVisible_b : Boolean
Project Method: Fnd_Gen_FieldIsVisible ( fieldPtr | tableNum {; fieldNum} --> ReturnType
Determines if a field is visible
Access: Shared
Parameters:
Variant One : :
$inField_ptr : Pointer : Field pointer
Variant Two : :
$inField_ptr : Longint : Table number
$inFieldNumber_i : Longint : Field number
Returns:
$isFieldVisible_b : Boolean : True - the field is visibleFnd_Gen_FileNameShared
#DECLARE($path_t : Text)->$fileName_t : Text
Project Method: Fnd_Gen_FileName (path) --> Text Returns the file name from the full pathname. Access: Shared Parameters: $path_t : Text : A full pathname Returns: $fileName_t : Text : The file name at the end of the pathname
Fnd_Gen_FormMethodShared
Project Method: Fnd_Gen_FormMethod Standard form method for non-modal forms. Handles the close box and quitting the application. Responds to On Activate On Close Box Fnd_Gen_QuitNow Fnd_Wnd_CloseAllWindows Access: Shared Parameters: None Returns: Nothing
Fnd_Gen_GetArrayWidthShared
#DECLARE($array_ptr : Pointer; $fontName_t : Text; $fontSize_i : Integer; $fontStyle_i : Integer)->$maxWidth_i : Integer
Project Method: Fnd_Gen_GetArrayWidth (->text array; font; size; style) --> Number Returns the width required to display the array text given the specified font settings. Only measures the text - does not take into account the object used to display the text. Basically this just measures the width of the longest element. Access: Shared Parameters: $array_ptr : Pointer : The text array to measure $fontName_t : Text : The font name $fontSize_i : Longint : The font size $fontStyle_i : Longint : The font style Returns: $maxWidth_i : Longint : The width of the longest element
Fnd_Gen_GetDatabaseInfoShared
#DECLARE($label_t : Text)->$value_t : Text
Project Method: Fnd_Gen_GetDatabaseInfo (info type) --> Text Gets the specified database information value. Use the Fnd_Gen_SetDatabaseInfo to set this information. Access: Shared Parameters: $label_t : Text : The info type label Returns: $value_t : Text : The value
Fnd_Gen_GetStringShared
#DECLARE($moduleName_t : Text; $internalLabel_t : Text; $inReplacementString1_t : Text; $inReplacementString2_t : Text; $inReplacementString3_t : Text)->$localisedString_t : Text
Project Method: Fnd_Gen_GetString (component; internal string{; replace1..replace5})
Calls the Foundation localization routines if they're available.
If not, the default English string is returned.
Access: Shared
Parameters:
$moduleName_t : Text : The component's code ("Fnd_xxx")
$internalLabel_t : Text : The lookup code
$inReplacementString1_t..$inReplacementString3_t : Text : Replacement strings (optional)
Returns:
$localisedString_t : Text : The localized stringFnd_Gen_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Gen_Info (label) --> Text Returns requested information. See the Fnd_Gen_ComponentInfo method for more information. Responds to: version: The current version of the component name: The name of the component minimum_extras_version: The minimum version number of Foundation Extras to compare to the Fnd_Gen_ExtrasVersion constant minimum_extras_version_string: The minimum version number of Foundation Extras as a string compiled: Whether the component itself is running compiled, as the text "True" or "False" (not "1"/"0") — evaluated inside the component, so a host can tell its own compiled state from Foundation's Access: Shared Parameters: $request_t : Text : Info desired Returns: $reply_t : Text : Response
Fnd_Gen_InitInternal
Project Method: Fnd_Gen_Init Initializes both the process and interprocess variables used by the Fnd_Gen routines. Access: Private Parameters: None Returns: Nothing
Fnd_Gen_IsRunningShared
#DECLARE()->$isRunning_b : Boolean
Project Method: Fnd_Gen_IsRunning --> Boolean True when Foundation is loaded as a component inside a host, rather than being open as a project in its own right. Access: Shared Parameters: None Returns: $isRunning_b : Boolean : True when running inside a host
Fnd_Gen_LaunchAsNewProcessShared
#DECLARE($methodName_t : Text; $newProcessName_t : Text)->$go_b : Boolean
Project Method: Fnd_Gen_LaunchAsNewProcess (method name; process name) --> Boolean Launches the specified process as a new process. If the process is already running, it's just brought to the front. Access: Shared Parameters: $methodName_t : Text : The method name to launch $newProcessName_t : Text : The name to give the new process Returns: $go_b : Boolean : True if we're in a new process
Fnd_Gen_LocalizeShared
Project Method: Fnd_Gen_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_Gen_MenuBarShared
#DECLARE($inMenuBarName_t : Text)
Project Method: Fnd_Gen_MenuBar ({menu bar name})
If the Menu component is installed, it is called to handle the menu bar.
If it's not, nothing happens with the menus.
Access: Shared
Parameters:
$inMenuBarName_t : Text : menu bar name (optional)
Returns: NothingFnd_Gen_PlatformShared
#DECLARE()->$platformNumber_i : Integer
Project Method: Fnd_Gen_Platform --> Number Returns the platform number. Returns 10 if we're running on Mac OS X. Returns 3 if we're running on Windows. Access: Shared Parameters: None Returns: $platformNumber_i : Longint : The platform number
Fnd_Gen_PlugInAvailableShared
#DECLARE($plugIn_t : Text)->$available_b : Boolean
Project Method: Fnd_Gen_PlugInAvailable (plug-in name) --> Boolean Returns true if the plug-in is installed. This is done by executing a valid call to the plug-in, then checking to see if 4D set the Error variable to something other than zero. Access: Shared Parameters: $plugIn_t : Text : The name of the plug-in Returns: $available_b : Boolean : True if the plug-in is available
Fnd_Gen_PositionRShared
#DECLARE($find_t : Text; $inString_t : Text)->$posLast_i : Integer
Project Method: Fnd_Gen_PositionR (find; string) --> Number Just like 4D's Position function, but work backwards. Access: Shared Parameters: $find_t : Text : The string to find $inString_t : Text : The string to search in Returns: $posLast_i : Longint : The position of the first character
Fnd_Gen_QuitNowShared
#DECLARE($inQuit_b : Boolean)->$quitNow_b : Boolean
Project Method: Fnd_Gen_QuitNow ({quit?}) --> Boolean
Returns True if the user wants to quit. Pass True to tell Foundation
to do its quit stuff now.
Access: Shared
Parameters:
$inQuit_b : Boolean : Cause Foundation to quit now? (optional)
Returns:
$quitNow_b : Boolean : True if it's time to quitFnd_Gen_QuittingShared
#DECLARE($setQuittingStatus_b : Boolean)->$isQuitting_b : Boolean
Project Method: Fnd_Gen_Quitting ({$setQuittingStatus_b : Boolean}) --> Boolean
Reports whether the application is shutting down, and optionally sets it.
Getter and setter in one, on the usual Foundation pattern: called with no
parameter it reports, called with one it sets and then reports.
Access: Shared
Parameters:
$setQuittingStatus_b : Boolean : Sets the quitting state (optional)
Returns:
$isQuitting_b : Boolean : The state after any changeFnd_Gen_Reg_AlertShared
#DECLARE($message_t : Text)
Project Method: Fnd_Gen_Reg_Alert (message) Displays Foundation's Alert dialog if available. Otherwise displays a 4D alert. Method Type: Private Access: Shared Parameters: $message_t : Text : The text message to display Returns: Nothing
Fnd_Gen_Reg_BuyNowButtonMethodShared
Project Method: Fnd_Gen_Reg_BuyNowButtonMethod Called when one of the Buy Now buttons is clicked. Method Type: Private Access: Shared Parameters: None Returns: Nothing
Fnd_Gen_Reg_CheckTimoutShared
Project Method: Fnd_Gen_Reg_CheckTimout Checks to see if we've reached the demo timeout value. If so, an alert dialog is displayed and ABORT is called. Method Type: Private Access: Shared Parameters: None Returns: Nothing
Fnd_Gen_Reg_DemoDialogShared
Project Method: Fnd_Gen_Reg_DemoDialog Displays the demo message at startup. Called as a new process from Fnd_Reg_Startup Method Type: Private Access: Shared Parameters: None Returns: Nothing
Fnd_Gen_Reg_GetActivationCodeShared
#DECLARE()->$activationCode_t : Text
Project Method: Fnd_Gen_Reg_GetActivationCode --> Text Returns the activation code that's been stored in the list. Returns an empty string if the program hasn't been registered yet. Method Type: Private Access: Shared Parameters: None Returns: $activationCode_t : Text : The activation code
Fnd_Gen_Reg_GetUserNameShared
#DECLARE()->$registeredUserName_t : Text
Project Method: Fnd_Gen_Reg_GetUserName --> Text Returns the name of the registered user. Returns an empty string if the program hasn't been registered yet. Method Type: Private Access: Shared Parameters: None Returns: $registeredUserName_t : Text : The name of the registered user
Fnd_Gen_Reg_GetValueForElementShared
#DECLARE($elementName_t : Text)->$value_t : Text
Project Method: Fnd_Gen_Reg_GetValueForElement (element) --> Text Returns the value for the specified element in the Foundation registration xml file. Access: Private Parameters: $elementName_t : Text : The name of the element to find Returns: $value_t : Text : Its value
Fnd_Gen_Reg_LicenseFilePathShared
#DECLARE()->$licenseFilePath_t : Text
Project Method: Fnd_Gen_Reg_LicenseFilePath --> Path Returns the path to the license file. Access: Private Parameters: None Returns: $licenseFilePath_t : Text : File path
Fnd_Gen_Reg_RegButtonMethodShared
Project Method: Fnd_Gen_Reg_RegButtonMethod Called from the OK buttons in the "Fnd_Gen_Reg_RegisterDialog" form. Method Type: Private Access: Shared Parameters: None Returns: Nothing
Fnd_Gen_Reg_RegisterShared
#DECLARE($activationCode_t : Text; $userName_t : Text)
Project Method: Fnd_Gen_Reg_Register (activation code; user name) Call to register the product. Sets the OK variable to 1 if the product gets registered. Sets the Error variable if there's a problem. This doesn't check to see if it's already been registered, so it can be called to change the registration at any time. But only does the update if the user name and activation code are valid. Method Type: Private Access: Shared Parameters: $activationCode_t : Text : Activation code $userName_t : Text : User name Returns: $0 : Longint : Description
Fnd_Gen_Reg_SaveRegInfoShared
#DECLARE($userName_t : Text; $activationCode_t : Text)
Project Method: Fnd_Gen_Reg_SaveRegInfo (user name; activation code) Returns the name of the registered user. Returns an empty string if the program hasn't been registered yet. Method Type: Private Access: Shared Parameters: $userName_t : Text : User name $activationCode_t : Text : Activation code Returns: Nothing
Fnd_Gen_Reg_StartupShared
Project Method: Fnd_Gen_Reg_Startup Call when launching the database to initialize the registration routines. Method Type: Private Access: Shared Parameters: None Returns: Nothing
Fnd_Gen_Reg_UpdateStateShared
Project Method: Fnd_Gen_Reg_UpdateState Updates the <>Fnd_Gen_Reg_State_i variable. Don't check this variable directly, call Fnd_Gen_Reg_RegistrationState instead. Method Type: Private Access: Shared Parameters: None Returns: $0 : Longint : Description
Fnd_Gen_Reg_ValidateInternal
#DECLARE($userName_t : Text; $enteredActivationCode_t : Text)->$isValid_b : Boolean
Project Method: Fnd_Gen_Reg_Validate (user name; activation code) --> Boolean Returns True if a valid activation code was passed for the specified product number and user name. Method Type: Private Access: Private Parameters: $userName_t : Text : The user's name $enteredActivationCode_t : Text : The entered activation code Returns: $isValid_b : Boolean : True if the user name and activation code are valid for this product.
Fnd_Gen_RemoveActivationCodeShared
Project Method: Fnd_Gen_RemoveActivationCode Removes the activation code from the database so the developer can share the source code with the Foundation components installed. Access: Shared Parameters: None Returns: Nothing
Fnd_Gen_RequiredCompilerMethodInternal
Project Method: Fnd_Gen_RequiredCompilerMethod Creates the Compiler_Fnd_HookAndHost method in the host database if it doesn't already exist. If it does already exist, nothing happens. This single method replaces the old per-method Compiler_Fnd_Host_XXX methods: it gathers the classic parameter typing entries for every method that Fnd_Gen_RequiredHostMethod and Fnd_Gen_RequiredHookMethod can generate. Access: Private Parameters: None Returns: Nothing Called from Fnd_Gen_RequiredHostMethod and Fnd_Gen_RequiredHookMethod
Fnd_Gen_RequiredHookMethodShared
#DECLARE($methodName_t : Text)
Project Method: Fnd_Gen_RequiredHookMethod (method name) Creates the specified method in the host database if it doesn't already exist. If it does already exist, nothing happens. Access: Shared Parameters: $methodName_t : Text : The name of the method to create Returns: Nothing
Fnd_Gen_RequiredHostMethodShared
#DECLARE($methodName_t : Text)
Project Method: Fnd_Gen_RequiredHostMethod (method name) Creates the specified method in the host database if it doesn't already exist. If it does already exist, nothing happens. Access: Shared Parameters: $methodName_t : Text : The name of the method to create Returns: Nothing called from Fnd_Shell_OnStartup be sure to update Fnd_Shell_OnStartup when adding items here
Fnd_Gen_ResetShared
Project Method: Fnd_Gen_Reset Resets all of the available Foundation components. Access: Shared Parameters: None Returns: Nothing
Fnd_Gen_RunningInHostShared
#DECLARE($setFnd_Gen_RunningInHost_b : Boolean)->$isRunningInHost_b : Boolean
Wayne Stewart (Claude Opus 5) 2026-08-10 - Body uses the named parameters, not $1..$n Project Method: Fnd_Gen_RunningInHost Global and IP variables accessed:
Fnd_Gen_SelectionChangedShared
Project Method: Fnd_Gen_SelectionChanged Call this whenever the current selection of records displayed in the output list changes. Access: Shared Parameters: None Returns: Nothing
Fnd_Gen_SetDatabaseInfoShared
#DECLARE($label_t : Text; $value_t : Text)
Project Method: Fnd_Gen_SetDatabaseInfo (info type; value) Sets the specified database information value. Use the Fnd_Gen_GetDatabaseInfo to retrieve this information. Access: Shared Parameters: $label_t : Text : The info type label $value_t : Text : The info value Returns: Nothing
Fnd_Gen_SetLocalizationStringsShared
#DECLARE($component_t : Text; $lookupCodesArray_ptr : Pointer; $stringsArray_ptr : Pointer)
Project Method: Fnd_Gen_SetLocalizationStrings (component; ->lookup codes; ->strings)
Called from the Fnd_xxx_Localize method of other components to pass their localization
info to this, and (if available) the Localization component.
Access: Shared
Parameters:
$component_t : Text : The component's code ("Fnd_xxx")
$lookupCodesArray_ptr : Pointer : Array of lookup codes
$stringsArray_ptr : Pointer : Array of localized strings
Returns: NothingFnd_Gen_SilentErrorShared
Project Method: Fnd_Gen_SilentError
A method with no code. Foundation's single no-op, for the two places one is
wanted: swallowing an error, and satisfying a parameter that demands a
method name but has nothing to do.
As an error handler, install it with ON ERR CALL around a call that is
expected to fail and whose failure is not interesting, then restore the
previous handler immediately:
```
$oldHandler_t:=Method called on error
ON ERR CALL("Fnd_Gen_SilentError")
...the call that may fail...
ON ERR CALL($oldHandler_t)
```
Leaving it installed suppresses every subsequent error in the process,
including the ones that matter, so the restore is not optional.
As a close box method, pass its name to Open window when the close is handled
in the form method:
```
$windowRef_i:=Open window($l; $t; $r; $b; $type_i; $title_t; "Fnd_Gen_SilentError")
```
Access: Shared
Parameters: None
Returns: NothingFnd_Gen_TableIsVisibleShared
#DECLARE($Table_v : Variant)->$visibleTable_b : Boolean
Project Method: Fnd_Gen_TableIsVisible (Table pointer or number) --> Boolean Returns TRUE if table $1-> is visible Access: Shared Parameters: $Table_v : Pointer : the pointer to a table OR table number Returns: $visibleTable_b : Boolean : True = Visible table
Fnd_Gen_TableOfShared
#DECLARE($field_ptr : Pointer)->$table_ptr : Pointer
Project Method: Fnd_Gen_TableOf (table pointer) --> field pointer Returns a pointer to the table that the field passed in belongs to Access: Shared Parameters: $field_ptr : Pointer : A field Pointer Returns: $table_ptr : Pointer : The table the field belongs to
Fnd_Gen_ToolbarDisplayedShared
#DECLARE()->$toolbarIsDisplayed_b : Boolean
Project Method: Fnd_Gen_ToolbarDisplayed --> Boolean Returns true if the design toolbar is visible Access: Shared Returns: $toolbarIsDisplayed_b : Boolean : Description
Fnd_Gen_TraceInternal
Project Method: Fnd_Gen_Trace Call anywhere a developer-triggered breakpoint is wanted. Opens the debugger while Caps Lock is down, and does nothing once compiled. Access: Private Parameters: None Returns: Nothing
Fnd_Gen_UIWorkerShared
#DECLARE()->$worker_v : Variant
Project Method: Fnd_Gen_UIWorker --> $worker_v : Variant Returns the identifier of the UI worker every Foundation UI message is dispatched to — the host's "UI Process" hook value when one exists, otherwise "$Fnd_UI". Pass the result straight to CALL WORKER. Access: Shared Parameters: None Returns: $worker_v : Variant : The UI worker's process name (Text) or process number (Integer)
Fnd_Gen_VerifyStructureItemShared
#DECLARE($component_t : Text; $fieldName_t : Text; $inFieldType_i : Integer; $inIndexed_b : Boolean)->$field_ptr : Pointer
Project Method: Fnd_Gen_VerifyStructureItem (component; table or field name; field type{; indexed}) --> Pointer
Makes sure the required field exists. If not, the developer is notified.
Access: Shared
Parameters:
$component_t : Text :The component prefix
$fieldName_t : Text : The required table or field name
$inFieldType_i : Longint : The expected field type
$inIndexed_b : Boolean : The field should be indexed? (optional)
Returns:
$field_ptr : Pointer : A pointer to the fieldFnd_Gen_WaitToContinueShared
#DECLARE($inBoolean_b : Boolean)->$waitToContinue_b : Boolean
Project Method: Fnd_Gen_WaitToContinue (boolean) Causes a process to wait Access: Shared Parameters: C_BOOLEAN($1) Returns: $waitToContinue_b : Boolean : whether or not to wait Added by Walt Nelson on 2/19/10
Fnd_IO_AddMultipleRecordsShared
#DECLARE($inEnable_b : Boolean)->$multipleRecordsAllowed_b : Boolean
Project Method: Fnd_IO_AddMultipleRecords (enable?) --> Boolean Allows the developer to get and set the value of the Fnd_IO_AddMultipleRecords_b variable. Access: Shared Parameters: $inEnable_b : Boolean : The new value of the setting to enable adding multiple records (optional) Returns: $multipleRecordsAllowed_b : Boolean : The current setting of the variable to indicate if the feature is enabled
Fnd_IO_DisplayRecordShared
#DECLARE($inTable_ptr : Pointer; $inRecordNumber_i : Integer; $inShowlockedmessage_b : Boolean)->$displayResult_i : Integer
Project Method: Fnd_IO_DisplayRecord ({->table{; record number}{; ShowLockedMessage}})
Displays the specified record of the table in a new process. If no table is passed, then the
current form's table is used (if available). If no record number is passed, then the current
record will be displayed. Pass 4D's New record constant to create a new record.
Access: Shared
Parameters:
$inTable_ptr : Pointer : Pointer to the record's table (optional)
$inRecordNumber_i : Longint : Record number (optional)
$inShowlockedmessage_b : Boolean : Show Locked Message (optional)
Returns: Process number of the (new?) process displaying the record.Fnd_IO_DisplayRecord2Shared
#DECLARE($pointerTableDisplay_ptr : Pointer; $recordNumber_i : Integer; $inCallingProcess_i : Integer; $inShowLockedMessage_b : Boolean)
Project Method: Fnd_IO_DisplayRecord2 (->table; record number{; calling process})
Called from Fnd_IO_DisplayRecord to display an input form in a new window.
If a calling process number is passed ($3) then that process is called if
the record is saved. In this case, Fnd_IO_AddRecordNumber_i will
contain the record number of the modified record.
Access: Private
Parameters:
$pointerTableDisplay_ptr : Pointer : A pointer to the table to display
$recordNumber_i : Longint : Record number
$inCallingProcess_i : Longint : Number of the calling process (optional)
Returns: NothingFnd_IO_DisplayRecord3Shared
#DECLARE($recordNumber_i : Integer)
Project Method: Fnd_IO_DisplayRecord3 (record number) Similar to Fnd_IO_DisplayRecord2, but assumes we're displaying the record in the current process rather than in a new one. Called from Fnd_IO_DisplayRecord. Access: Private Parameters: None Returns: Nothing
Fnd_IO_DisplayTableShared
#DECLARE($table_ptr : Pointer; $inForceNew_b : Boolean)
Project Method: Fnd_IO_DisplayTable (->table{; force new window})
Displays the output list for the specified table.
If the table has already been displayed in a process by this method, it is
brought to the front. Otherwise a new process is created to display the
table.
If the optional parameter is passed and is True, a new table is created
even if one already exists.
Access: Shared
Parameters:
$table_ptr : Pointer : A pointer to the table to display
$inForceNew_b : Boolean : Open a new window, even if one is already open? (optional)
Returns: NothingFnd_IO_DisplayTable2Shared
#DECLARE($pointerTableDisplay_ptr : Pointer)
Project Method: Fnd_IO_DisplayTable2 (->table) Called from Fnd_IO_DisplayTable to display an output form in a new window. Access: Private Parameters: $pointerTableDisplay_ptr : Pointer : A pointer to the table to display Returns: Nothing
Fnd_IO_GetWindowTitleShared
#DECLARE($inTable_ptr : Pointer; $inRecordNumber_i : Integer)->$suggestedTitle_t : Text
Project Method: Fnd_IO_GetWindowTitle ({->table{; record number}}) -> Text
Returns the suggested title for the current window for input forms.
Access: Private
Parameters:
$inTable_ptr : Pointer : The table (optional)
$inRecordNumber_i : Longint : The record number (optional)
Returns:
$suggestedTitle_t : Text : Suggested titleFnd_IO_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_IO_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_IO_InitInternal
Project Method: Fnd_IO_Init Initializes both the process and interprocess variables used by the Fnd_IO routines. Access: Private Parameters: None Returns: Nothing
Fnd_IO_InputDrawButtonsShared
Project Method: Fnd_IO_InputDrawButtons Called from Fnd_IO_InputFormMethod when the window is first open to draw the buttons from the inherited form. Access: Private Parameters: None Returns: Nothing
Fnd_IO_InputFormCloseShared
#DECLARE()->$closed_b : Boolean
Project Method: Fnd_IO_InputFormClose --> Boolean Called from the Fnd_IO_InputFormMethod when the user clicks the close box or quits the database. Basically we need to ask the user if the record should be saved if it has been modified. Returns True if the window gets closed. Access: Private Parameters: None Returns: $closed_b : Boolean : True if the window will be closed.
Fnd_IO_InputFormMethodShared
Project Method: Fnd_IO_InputFormMethod Standard form method for input forms. Handles the window title and close box on an input form. Access: Shared Parameters: None Returns: Nothing
Fnd_IO_InputFormNameShared
#DECLARE($inFormName_t : Text)->$inputFormName_t : Text
Project Method: Fnd_IO_InputFormName ({form name}) --> Text
Allows the developer to get and set the name of the input form to use.
Access: Shared
Parameters:
$inFormName_t : Text : The new input form name (optional)
Returns:
$inputFormName_t : Text : The input form nameFnd_IO_InputFormObjectMethodShared
#DECLARE($object_ptr : Pointer; $inAction_t : Text)
Project Method: Fnd_IO_InputFormObjectMethod (->form object) Access: Shared Parameters: $object_ptr : Pointer : Form object Returns: Nothing
Fnd_IO_InputFormResizeShared
Project Method: Fnd_IO_InputFormResize Called by the Fnd_IO_InputFormMethod to move the inherited buttons around. Access: Private Parameters: None Returns: Nothing
Fnd_IO_LocalizeShared
Project Method: Fnd_IO_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_IO_MultiWindowShared
#DECLARE($inMulti_b : Boolean)->$multiWindowEnabled_b : Boolean
Project Method: Fnd_IO_MultiWindow ({multi-window?}) --> Boolean
Allows the developer to get and set the multi-window setting.
Multi-window means the input forms are displayed in windows separate from
the output lists. If multi-window is false, the input form is displayed in the
same window as the output form.
The setting is for the current process.
Access: Shared
Parameters:
$inMulti_b : Boolean : True to begin multi-window mode (optional)
Returns:
$multiWindowEnabled_b : Boolean : True if we're in multi-window modeFnd_IO_OutputFormMethodShared
Project Method: Fnd_IO_OutputFormMethod Standard form method for output forms. Call this from every output form method. Make sure the form events checked here are enabled by the form. Access: Shared Parameters: None Returns: Nothing
Fnd_IO_OutputFormNameShared
#DECLARE($inFormName_t : Text)->$outputFormName_t : Text
Project Method: Fnd_IO_OutputFormName ({form name}) --> Text
Allows the developer to get and set the name of the output form to use.
Access: Shared
Parameters:
$inFormName_t : Text : The new output form name (optional)
Returns:
$outputFormName_t : Text : The output form nameFnd_IO_RecordEditedShared
#DECLARE($table_ptr : Pointer; $inCallingProcess_i : Integer)->$editedRecordNumber_i : Integer
Project Method: Fnd_IO_RecordEdited ({->table; calling process}) --> Longint
Call this when a new record has been added. This routine will take care of
adding it to the output list (if any).
This routine can also be called by the output list process to get the number
of the most recently edited record. Once called to get the record number,
it clears it so you won't accidentally get it again.
Access: Shared
Parameters:
$table_ptr : Pointer : A pointer to the record's table
$inCallingProcess_i : Longint : The process number of the output form
Returns:
$editedRecordNumber_i : Longint : The record number that was editedFnd_IO_SetupToolbarShared
Project Method: Fnd_IO_SetupToolbar Handles the toolbar setup for the input and output forms. Access: Private Parameters: None Returns: Nothing
Fnd_IO_ToolbarIconGroupShared
#DECLARE($inSuggestedStyle_t : Text)->$currentStyle_t : Text
Project Method: Fnd_IO_ToolbarIconGroup ({style name}) --> Text
Changes the icons in the IO forms to the specified style.
Bold (default)
Card
Native
Mac
Win
Access: Shared
Parameters:
$inSuggestedStyle_t : Text : The style name to use (optional)
Returns:
$currentStyle_t : Text : The current styleFnd_IO_UpdateToolbarShared
Project Method: Fnd_IO_UpdateToolbar Enables and disables the toolbar buttons based on whether or not the window is frontmost, the selection of records, and the highlighted records. Access: Private Parameters: None Returns: Nothing
Fnd_InitInternal
Project Method: Fnd_Init Initialises the Fnd objects that every module hangs its state on. Calls Compiler_Fnd for the declarations, then creates Storage.Fnd if it does not exist. Every module's own Init method starts by calling this, so it runs many times and must stay safe to repeat. Access: Private Parameters: None Returns: Nothing
Fnd_List_AddButtonShared
#DECLARE($label_t : Text)
Project Method: Fnd_List_AddButton (label) Allows the developer to add an additional button to the Choice List dialog. Access: Shared Parameters: $label_t : Text : The new button's label Returns: Nothing
Fnd_List_AddItemShared
#DECLARE($commandName_t : Text; $commandMethod_t : Text)
Project Method: Fnd_List_AddItem (command name; method name) Adds a command to the Command Dialog. Access: Shared Parameters: $commandName_t : Text : The command name to add to the dialog $commandMethod_t : Text : The method name to run if it's selected Returns: Nothing
Fnd_List_AddToListEditorShared
#DECLARE($listName_t : Text)
Project Method: Fnd_List_AddToListEditor (listname) Called from the Fnd_Hook_List_SetEditableLists method. Access: Shared Parameters: $listName_t : Text : The name of the list to make available. Returns: Nothing
Fnd_List_ChoiceListShared
#DECLARE($prompt_t : Text; $pointerTextArray_ptr : Pointer)->$selectedElement_i : Integer
Project Method: Fnd_List_ChoiceList (prompt; ->text array) --> Number Allows the user to select an element from a list. Access: Shared Parameters: $prompt_t : Text : The prompt $pointerTextArray_ptr : Pointer : A pointer to a text array Returns: $selectedElement_i : Longint : The selected element number
Fnd_List_ClearShared
Project Method: Fnd_List_Clear Clears the Command List elements. Access: Shared Parameters: None Returns: Nothing
Fnd_List_CommandDialogShared
Project Method: Fnd_List_CommandDialog Displays the Admin dialog. Access: Shared Parameters: None Returns: Nothing
Fnd_List_CreateTableShared
Project Method: Fnd_List_CreateTable Global and IP variables accessed:
Fnd_List_DoesListExistShared
#DECLARE($ListName_t : Text)->$listExists_b : Boolean
Project Method: Fnd_List_DoesListExist (List Name) -> Boolean Checks if a list exists Access: Shared Parameters: $ListName_t : Text : A choice list defined in the List Editor Returns: $listExists_b : Boolean : True = The list exists
Fnd_List_EditOneShared
#DECLARE($listName_t : Text)
Project Method: Fnd_List_EditOne (list name) Call this method to edit the specified list in a semi-modal dialog. Access: Shared Parameters: $listName_t : Text : The name of the list Returns: Nothing
Fnd_List_EditOne2Shared
#DECLARE($listName_t : Text)
Project Method: Fnd_List_EditOne2 (list name) Called as a new process by Fnd_List_EditOne to edit a list. Access: Private Parameters: $listName_t : Text : The list name Returns: Nothing
Fnd_List_EditorShared
Project Method: Fnd_List_Editor Displays the List Editor window in a new process. Access: Shared Parameters: None Returns: Nothing
Fnd_List_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_List_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_List_InitInternal
Project Method: Fnd_List_Init Initializes both the process and interprocess variables used by the Fnd_List routines. Access: Private Parameters: None Returns: Nothing
Fnd_List_ListToRecordShared
#DECLARE($listName_t : Text)
Project Method: Fnd_List_ListToRecord (list name) Saves the list as a 4D list and as a record. Access: Private Parameters: $listName_t : Text : The name of the list to save Returns: Nothing
Fnd_List_LocalizeShared
Project Method: Fnd_List_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_List_OnExitShared
Project Method: Fnd_List_OnExit Stores the current date and time in both the structure file (as a list) and the data file (as a record). We can compare these at startup to determine if the structure file has been updated. Access: Shared Parameters: None Returns: Nothing
Fnd_List_OnStartupShared
Project Method: Fnd_List_OnStartup Called when the database is launched to determine if the lists in the structure file neeed to be updated from the lists in the data file. Access: Shared Parameters: None Returns: Nothing
Fnd_List_RecordLoadedShared
#DECLARE($table_ptr : Pointer; $inSecondsToWait_i : Integer)->$loaded_b : Boolean
Project Method: Fnd_List_RecordLoaded (->table{; timeout in seconds}) --> Boolean
Makes sure the current record is not locked. If it is, it waits a while to see
if the record becomes avaialble.
If no timeout period is specified control is returned immediately if
the record is locked.
Access: Private
Parameters:
$table_ptr : Pointer : The record's table
$inSecondsToWait_i : Longint : Number of seconds to wait if it's locked (optional)
Returns:
$loaded_b : Boolean : True if the record isn't lockedFnd_List_SaveListItemsShared
Project Method: Fnd_List_SaveListItems Assumes the proper [Fnd_List] record is loaded. Called from the Fnd_List_Editor and ListsCreateSystemLists2 methods. Access: Private Parameters: None Returns: Nothing
Fnd_List_TypeAheadInternal
#DECLARE($charactertyped_t : Text)
Project Method: Fnd_List_TypeAhead (CharacterTyped) Multi-character type-ahead on choice list Access: Private Parameters: $charactertyped_t : Text : The character just typed
Fnd_List_UpdateItemsListShared
Project Method: Fnd_List_UpdateItemsList Assumes the proper [Lists] record is loaded. Assumes any previous changes to the list have been saved. Called from the [Constants].ListEditor form. Access: Private Parameters: None Returns: Nothing
Fnd_List_UpdateStructureListsShared
Project Method: Fnd_List_UpdateStructureLists Copies the Foundation maintained lists to the 4D structure file. Access: Private Parameters: None Returns: Nothing
Fnd_List_UseTypeAheadShared
#DECLARE($inBoolean_b : Boolean)->$typeAheadEnabled_b : Boolean
Project Method: Fnd_List_UseTypeAhead ({$inBoolean_b : Boolean}) --> Boolean
Reports whether type-ahead is enabled for lists, and optionally sets it.
Getter and setter in one: called with no parameter it reports, called with one
it sets and then reports. The setting lives on Fnd.List, so it persists for
the session rather than the call.
Access: Shared
Parameters:
$inBoolean_b : Boolean : Turns type-ahead on or off (optional)
Returns:
$typeAheadEnabled_b : Boolean : The setting after any changeFnd_List_XML_FilePathShared
#DECLARE()->$filePath_t : Text
Project Method: Fnd_List_XML_FilePath --> Text Returns the path to the Fnd_List.xml file. Access: Private Parameters: None Returns: $filePath_t : Text : The file path
Fnd_List_XML_GetDateTimeShared
#DECLARE()->$dateTime_t : Text
Project Method: Fnd_List_XML_GetDateTime --> Text Returns the date-time value stored in the Fnd_List.xml file. Access: Private Parameters: None Returns: $dateTime_t : Text : The date-time value
Fnd_List_XML_SetDateTimeShared
#DECLARE($dateTime_t : Text)
Project Method: Fnd_List_XML_SetDateTime (date-time string) Updates the Fnd_List.xml file with the last use date for this structure file. Access: Private Parameters: $dateTime_t : Text : A date-time string (e.g.: "2007-10-16T17:55:04") Returns: Nothing
Fnd_Loc_ArrayToListShared
#DECLARE($array_ptr : Pointer; $listName_t : Text)
Project Method: Fnd_Loc_ArrayToList($array_ptr;$listName_t) Updates list in the host database. Access: Shared Parameters: $array_ptr : Pointer : The text array $listName_t : Text : The list name Returns: Nothing
Fnd_Loc_DuplicateListShared
Project Method: Fnd_Loc_DuplicateList Duplicates a 4D list. Used for creating new localizations. Access: Shared Parameters: None Returns: Nothing
Fnd_Loc_EditorShared
#DECLARE($inNumber_i : Integer)
Project Method: Fnd_Loc_Editor ({number})
Displays the Localization List Editor window in a new process.
Access: Shared
Parameters:
$inNumber_i : Longint : Used internally by this method
Returns: NothingFnd_Loc_Editor_ArrayToListShared
#DECLARE($array_ptr : Pointer; $inListName_t : Text)
Project Method: Fnd_Loc_Editor_ArrayToList (->array; list name) A wrapper for 4D's ARRAY TO LIST command. This routine always appends an asterisk to the list name, so that we don't mess up the original. See also the Fnd_Loc_ListToArray method. Access: Private Parameters: $array_ptr : Pointer : The text array $inListName_t : Text : The list name Returns: Nothing
Fnd_Loc_Editor_ClickOnCodesListShared
Project Method: Fnd_Loc_Editor_ClickOnCodesList Called from the localization editor when a lookup code is clicked, or when a higher-level list is clicked. Access: Private Parameters: None Returns: Nothing
Fnd_Loc_Editor_ClickOnGroupListShared
Project Method: Fnd_Loc_Editor_ClickOnGroupList Called from the localization editor when a group item is clicked, or when a higher-level list is clicked. Access: Private Parameters: None Returns: Nothing
Fnd_Loc_Editor_ClickOnModsListShared
Project Method: Fnd_Loc_Editor_ClickOnModsList Called from the localization editor when a module name is clicked, or when another object changes the selected list item Access: Private Parameters: None Returns: Nothing
Fnd_Loc_Editor_EditorClosedShared
#DECLARE()->$closed_b : Boolean
Project Method: Fnd_Loc_Editor_EditorClosed --> Boolean Makes sure 4D's List Editor window isn't open. If it is, the user is asked to close it. Access: Private Parameters: Returns: $closed_b : Boolean : True if the List Editor is not open
Fnd_Loc_Editor_ExportShared
Project Method: Fnd_Loc_Editor_Export Exports a text file and saves it as a 4D list. Designed to be called from the Localization Editor dialog. Don't call directly. Access: Private Parameters: None Returns: Nothing
Fnd_Loc_Editor_ImportShared
Project Method: Fnd_Loc_Editor_Import Imports Foundation localization lists. Designed to be called from the Localization Editor dialog. Don't call directly. Access: Private Parameters: None Returns: Nothing
Fnd_Loc_Editor_LoadModulesShared
Project Method: Fnd_Loc_Editor_LoadModules Loads the array of Modules names in the Localization Editor window. Access: Private Parameters: None Returns: Nothing
Fnd_Loc_Editor_SaveListShared
Project Method: Fnd_Loc_Editor_SaveList Saves changes back to the 4D Lists. Access: Private Parameters: None Returns: Nothing
Fnd_Loc_FixButtonWidthsShared
Project Method: Fnd_Loc_FixButtonWidths (->button1; ->button2{; ->buttonN})
Adjusts all of the button widths of two or more _vertically_aligned_ buttons so
they all have the same left and right coordinates of the widest button
of the group. Designed to be called after calling Fnd_Gen_ButtonText on
each of the buttons in the group.
Access: Shared
Parameters:
$1 : Pointer : A pointer to a button
$2..$N : Pointer : More button pointers
Returns: NothingFnd_Loc_FixLabelWidthsShared
Project Method: Fnd_Loc_FixLabelWidths (->form object; ->enterable object{; ..repeat..})
Used for aligning one or more sets of labels and enterable fields.
Start by localizing the label text. Then pass a pointer to it and the field
next to it to this routine. This routine will properly size the label for
its new text, and move the left side of the associated field so that
it remains an equal distance from the label as it appears on the form.
If you pass multiple label/field sets to this routine, it will adjust them
so they all work with the longest label text width.
Access: Shared
Parameters:
$1, $3, $5, etc. : Pointer : The name of the label to adjust
$2, $4, $6, etc. : Pointer : The field to its right
Returns: NothingFnd_Loc_GetStringShared
Project Method: Fnd_Loc_GetString (module name; internal string{; param 1{; param 2...}}) --> Text
Gets the localized string based on the internal string or label. Also replaces any
parameters. For example, "<<1>>" gets replaced with the first optional parameter,
"<<2>>" with the second optional parameter, etc.
Access: Shared
Parameters:
$1 : Text : The Foundation module name
$2 : Text : The internal string label
$3..$n : Text : Replacement strings (optional)
Returns:
$0 : Text : The localized stringFnd_Loc_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Loc_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo method
for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name" or "language")
Returns:
$reply_t : Text : ResponseFnd_Loc_InitInternal
Project Method: Fnd_Loc_Init Initializes both the process and interprocess variables used by the localization routines. Access: Private Parameters: None Returns: Nothing
Fnd_Loc_LanguageCodeShared
#DECLARE($inCode_t : Text)->$languageCode_t : Text
Project Method: Fnd_Loc_LanguageCode ({code}) --> Text
If no parameters are passed, this routine returns the current language
code that Foundation is using for localization. If a language code is
passed to this routine, it's set as the new localization code.
Access: Shared
Parameters:
$inCode_t : Text : The language code to use (optional)
Returns:
$languageCode_t : Text : The current langauge codeFnd_Loc_ListToArrayShared
#DECLARE($listName_t : Text; $array_ptr : Pointer)
Project Method: Fnd_Loc_ListToArray (list name; ->array) A wrapper for 4D's LIST TO ARRAY command. Tries to read in a list with an asterisk appended to the name first. If all it gets is an empty list (which probably indicates no list) then it tries to read in a list without the asterisk. See also the Fnd_Loc_Editor_ArrayToList method. Access: Private Parameters: $listName_t : Text : The list name $array_ptr : Pointer : The text array Returns: Nothing
Fnd_Loc_LoadStringListShared
#DECLARE($moduleName_t : Text)
Project Method: Fnd_Loc_LoadStringList (module name) Loads arrays with localized strings. Access: Private Parameters: $moduleName_t : Text : The Foundation module name (eg: "Fnd_Dlg") Returns: Nothing
Fnd_Loc_LoadTranslationInternal
#DECLARE($component_t : Text; $inLanguage_t : Text)
Project Method: Fnd_Loc_LoadTranslation (Module {; language })
Loads the Localization Strings for the component
If the language parameter is not passed then the system language will be used
Access: Shared
Parameters:
$component_t : TEXT : The Foundation module
$inLanguage_t : TEXT : Language to use (optional)Fnd_Loc_SetLocalizationStringsShared
#DECLARE($component_t : Text; $lookupCodes_ptr : Pointer; $strings_ptr : Pointer)
Project Method: Fnd_Loc_SetLocalizationStrings (component code; ->lookup codes; ->strings) Allows a component to use its Fnd4-style localization strings. Similar to Fnd_Loc_LoadStringList, but designed to work with Fnd5 components. Access: Shared Parameters: $component_t : Text : The component code (e.g.: "Fnd_Menu") $lookupCodes_ptr : Pointer : A text array of translation lookup codes $strings_ptr : Pointer : A text array of localized strings Returns: Nothing
Fnd_Log_AcknowledgeInternal
#DECLARE($ack_o : Object)
Project Method: Fnd_Log_Acknowledge Test helper: mark preceding worker calls complete; not used during shutdown. Access: Private
Fnd_Log_AddEntryShared
Project Method: Fnd_Log_AddEntry (text1{; text2..textN; options})
Call this method to add a new entry to the log file.
Safe to call even if we're not currently logging activity.
Access: Shared
Parameters:
$1..N : Variant : Text columns; an options object supplies logLabel, logLevel,
destinations and flushNow. Numeric severity and Boolean flush are also accepted.
Last metadata value wins. Existing text calls retain their columns.
Batching defaults on. Timestamp is local; severity and machine columns are opt-in.
Returns: NoneFnd_Log_BufferEntryInternal
#DECLARE($entry_o : Object)
Project Method: Fnd_Log_BufferEntry Buffer routed entries inside their owning worker; immediate and size triggers flush here. Access: Private
Fnd_Log_CloseLogShared
#DECLARE($inLogLabel_t : Text)
Project Method: Fnd_Log_CloseLog {(Log Label)}
Pass the log label to save and close that log
If you call this without any parameters all the logs will be closed and saved
Access: Shared
Parameters:
$inLogLabel_t : Text : The log label (optional)Fnd_Log_CloseLog2Internal
#DECLARE($TheLogLabel_t : Text)
Project Method: Fnd_Log_CloseLog2 {(Log Label)}
Pass the log label tosave and close that log
If you call this without any parameters all the logs will be closed and saved
Access: Private
Parameters:
$TheLogLabel_t : Text : The log label (optional)Fnd_Log_ConfigShared
#DECLARE($options_o : Object)->$result_o : Object
Project Method: Fnd_Log_Config Get/set run defaults. Existing named logs retain their declaration settings. Access: Shared
Fnd_Log_ControlInternal
#DECLARE($action_t : Text; $label_t : Text; $all_b : Boolean)
Project Method: Fnd_Log_Control Send flush/close/stop to the owners; no queue interrogation. Access: Private
Fnd_Log_CreateTableShared
#DECLARE()->$result_o : Object
Project Method: Fnd_Log_CreateTable Explicit interpreted-host-only schema creation; never called by logging. Returns success/created/restartRequired/message. Access: Shared
Fnd_Log_DeclareLogShared
#DECLARE($Label_t : Text; $inFileName_t : Text; $inFolderPath_t : Text; $options_o : Object; $dedicated_b : Boolean)
Project Method: Fnd_Log_DeclareLog (label{; fileName{; folderPath{; options{; dedicatedWorker}}}})
Allows the declaration of a different log
Omitted or empty filenames use the label and preferred extension.
Filenames without an extension acquire the preference; explicit extensions win.
Re-declaring an existing label leaves its filename and folder unchanged.
Access: Shared
Parameters:
$Label_t : Text : Log Label
$inFileName_t : Text : Log filename (optional)
$inFolderPath_t : Text : Folder path (optional)
$options_o : Object : Destination, batching and output settings (optional)
$dedicated_b : Boolean : Request a dedicated worker; default False (optional)Fnd_Log_DeclareServerInternal
#DECLARE($label_t : Text; $settings_o : Object; $dedicated_b : Boolean)
Project Method: Fnd_Log_DeclareServer Allocate a declared dedicated server writer without accepting client paths. Access: Private
Fnd_Log_DispatchEntryInternal
#DECLARE($entry_o : Object)
Project Method: Fnd_Log_DispatchEntry Dispatch local/server files and host records; missing records always produce a fallback. Access: Private
Fnd_Log_EnableShared
#DECLARE($inEnable_b : Boolean)->$loggingEnabled_b : Boolean
Project Method: Fnd_Log_Enable ({enable?}) --> Boolean
Allows the developer to turn the logger on or off. Also returns True
if logging is currently enabled.
Access: Shared
Parameters:
$inEnable_b : Boolean : Turn on logging? (optional)
Returns:
$loggingEnabled_b : Boolean : True if logging is enabledFnd_Log_EntryInternal
#DECLARE($columns_c : Collection; $options_o : Object)->$entry_o : Object
Project Method: Fnd_Log_Entry Build an accepted entry without modifying process selection; Null means suppressed. Access: Private
Fnd_Log_ExtensionShared
#DECLARE($inExtension_t : Text)->$extension_t : Text
Project Method: Fnd_Log_Extension {($inExtension_t : Text)} --> Text
Gets or sets the preferred log extension for this application run.
Call from On Startup with "log" or ".log"; the initial default is ".txt".
Changes affect new filenames and default-log selections. The calling process
follows the new default if it was using the old default filename. Existing
named logs and filenames selected by other processes keep their extensions.
Explicit filename extensions override this preference. Nothing is saved to disk.
Case, Unicode, internal spaces and dots are preserved. Rejects ASCII 0-31,
<>:"/\|?*, and a trailing dot or space. Invalid input leaves the setting unchanged.
Full filename and path-length limits still depend on the target filesystem.
Access: Shared
Parameters:
$inExtension_t : Text : Extension with an optional leading dot; empty resets to .txt (optional)
Returns:
$extension_t : Text : Current preferred extension, including the leading dotFnd_Log_FileErrorInternal
Project Method: Fnd_Log_FileError Report file errors without re-entering logging. Access: Private
Fnd_Log_FileNameShared
#DECLARE($inPath_t : Text)->$logFileName_t : Text
Project Method: Fnd_Log_FileName (path) --> Text Gets or sets the file name of the current process's log. Pass a file name to set it, or call with no parameter to read it. Setting it to an empty string returns the process to the default log file. Missing extensions use the run-wide preference; explicit extensions override it. Access: Shared Parameters: $inPath_t : Text : The log file name to use (optional) Returns: $logFileName_t : Text : The file name now in use by this process
Fnd_Log_FlushShared
#DECLARE($label_t : Text)
Project Method: Fnd_Log_Flush Queue a flush for a label or all logs; returns before writes complete. Access: Shared
Fnd_Log_FlushBuffersInternal
#DECLARE($path_t : Text; $dueOnly_b : Boolean)
Project Method: Fnd_Log_FlushBuffers Flush all or one physical path, optionally only buffers whose timer expired. Access: Private
Fnd_Log_FormEventAsTextShared
#DECLARE($inFormEventCode_i : Integer)->$theFormEvent_t : Text
Project Method: Fnd_Log_FormEventAsText --> Text Returns Form event Code as text Access: Shared Returns: $theFormEvent_t : Type : Description
Fnd_Log_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Log_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo method
for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version", "name", or "logging")
Returns:
$reply_t : Text : ResponseFnd_Log_InitInternal
Project Method: Fnd_Log_Init Initializes both the process and interprocess variables used by the logging routines. Access: Private Parameters: None Returns: Nothing
Fnd_Log_LabelShared
#DECLARE()->$label_t : Text
Project Method: Fnd_Log_Label Return the current process log label; empty means an unnamed/default target. Access: Shared
Fnd_Log_MaximumSizeShared
#DECLARE($inMaximumSize_i : Integer)->$logMaximumSize_i : Integer
Project Method: Fnd_Log_MaximumSize {(Maximum size)} --> Longint
Allows you set the maximum size of log files
before they are rolled over.
Pass 0 to indicate 'do not rollover'
A log file will be rolled over and renamed with a
timestamp (local timezone) that indicates the time of rollover
The rolled over log will then be compressed (zip) and deleted
Eg. "Sales.log" will become
"Sales (2021-08-11T103809).log.zip"
Access: Shared
Parameters:
$inMaximumSize_i : Longint : Maximum size in bytes (optional)
Returns:
$logMaximumSize_i : Longint : Maximum sizeFnd_Log_OverrideLevelShared
#DECLARE($level_i : Integer; $applicationWide_b : Boolean)->$result_i : Integer
Project Method: Fnd_Log_OverrideLevel Get/set threshold: None -1 disables, Inherit -2 restores application default; optional True sets application scope. Access: Shared
Fnd_Log_PathShared
#DECLARE($inFolder_t : Text)->$logPath_t : Text
Project Method: Fnd_Log_Path --> Text Gets or sets the folder of the current process's log. Pass a folder path to set it, or call with no parameter to read it. Setting it to an empty string returns the process to the default logs folder. Access: Shared Parameters: $inFolder_t : Text : The log folder path to use (optional) Returns: $logPath_t : Text : The folder path now in use by this process
Fnd_Log_QueueEntryInternal
#DECLARE($entry_o : Object)
Project Method: Fnd_Log_QueueEntry Queue an already-routed entry to the file owner. Access: Private
Fnd_Log_RecordErrorInternal
Project Method: Fnd_Log_RecordError Record a write error without logging recursively. Access: Private
Fnd_Log_RecordFailureInternal
#DECLARE($entry_o : Object; $problem_t : Text)
Project Method: Fnd_Log_RecordFailure Preserve failed record entries centrally and alert only in an interpreted host. Access: Private
Fnd_Log_RecordProblemInternal
#DECLARE()->$problem_t : Text
Project Method: Fnd_Log_RecordProblem Validate the host record destination without creating or modifying schema. Access: Private
Fnd_Log_ResolveFileNameInternal
#DECLARE($fileName_t : Text)->$resolved_t : Text
Project Method: Fnd_Log_ResolveFileName ($fileName_t : Text) --> Text Ensures a log filename has an extension. Explicit extensions are preserved; otherwise the run-wide preference is appended. Empty names use the default log. Surrounding whitespace and trailing dots are removed before resolving the name. Access: Private Parameters: $fileName_t : Text : Filename without a folder path Returns: $resolved_t : Text : Filename with an extension
Fnd_Log_ServerControlInternal
#DECLARE($action_t : Text; $label_t : Text; $all_b : Boolean)
Project Method: Fnd_Log_ServerControl Forward client flush/close requests to server log owners. Access: Private
Fnd_Log_ServerEntryInternal
#DECLARE($entry_o : Object)
Project Method: Fnd_Log_ServerEntry Route server files/records using server-owned paths and worker registry. Access: Private
Fnd_Log_SettingsInternal
#DECLARE($options_o : Object)->$settings_o : Object
Project Method: Fnd_Log_Settings Validate a copy of the supported log settings. Access: Private
Fnd_Log_ShutdownShared
#DECLARE()
Project Method: Fnd_Log_Shutdown Call after producers stop; queue local flush/close/stop without waiting. Access: Shared
Fnd_Log_SilentErrorInternal
Project Method: Fnd_Log_SilentError Dummy method to be used with ON ERR CALL **Deprecated 2026-08-22. Call Fnd_Gen_SilentError instead.** The body was always empty, so the two methods were never different. This one served one ON ERR CALL site in Fnd_Log_This. Access: Private
Fnd_Log_StopLogWriterInternal
#DECLARE($closeDirectly_b : Boolean)
Project Method: Fnd_Log_StopLogWriter
Call this method to stop the Log Writer worker
The worker will restart if needed automatically
An omitted or False parameter queues the stop behind pending writes.
Access: Private
Parameters:
$closeDirectly_b : Boolean : True to close the logs here and kill the worker,
False to hand the job to the worker itself (optional)
Returns: NothingFnd_Log_ThisInternal
#DECLARE($logEntry_t : Text; $PathToLogFolder_t : Text; $inPathToLogFile_t : Text)->$written_b : Boolean
Project Method: Fnd_Log_This (Log Entry; Log Folder Path; Log File) Instructs the log writer worker to write the log entry Files exceeding the configured maximum size roll over using a local-time timestamp, preserving the filename extension, and are compressed as ZIP. A filename without an extension receives the run-wide preferred extension. Access: Private Parameters: $logEntry_t : Text : The log entry $PathToLogFolder_t : Text : The path to the log folder $inPathToLogFile_t : Text : The path to the log file ? I'm confused as why I have both paths? // NEED TO LOOK AT
Fnd_Log_TimerInternal
#DECLARE($token_t : Text)
Project Method: Fnd_Log_Timer Poll active writers twice a second; never owns their buffers. Access: Private
Fnd_Log_UseLogShared
#DECLARE($inLogLabel_t : Text)
Project Method: Fnd_Log_UseLog {(Log Label)}
Pass the log label to use,
if you omit the label or pass an empty string, the default log will be used
Shared with hosts. Selection preserves the process enable flag.
Access: Shared
Parameters:
$inLogLabel_t : Text : The log label; omitted or empty selects the default (optional)Fnd_Log_WorkerControlInternal
#DECLARE($action_t : Text; $path_t : Text)
Project Method: Fnd_Log_WorkerControl Drain buffers before closing handles; acknowledge stop then terminate this worker. Access: Private
Fnd_Log_WorkerForInternal
#DECLARE($folder_t : Text; $file_t : Text; $dedicated_b : Boolean)->$worker_t : Text
Project Method: Fnd_Log_WorkerFor Assign one writer to a canonical file path; first assignment owns aliases. Access: Private
Fnd_Log_WriteBufferInternal
#DECLARE($key_t : Text)
Project Method: Fnd_Log_WriteBuffer Write one batch using the repaired Foundation physical writer or ORDA record sink. Access: Private
Fnd_Log_WriteRecordInternal
#DECLARE($entry_o : Object)
Project Method: Fnd_Log_WriteRecord Write one host ORDA entity; failed saves preserve the entry in a file. Access: Private
Fnd_Menu_AboutShared
Project Method: Fnd_Menu_About Called from the menu when the About box command is selected. Installed by the Fnd_Shell_OnStartup method. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_AdministrationShared
Project Method: Fnd_Menu_Administration Called from the menu. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_BuildMenuBarShared
#DECLARE()->$theMenuReference_t : Text
Project Method: Fnd_Menu_BuildMenuBar Testing Access: Private Parameters: $1 : Longint : Description Returns: $theMenuReference_t : Longint : Description
Fnd_Menu_DeleteShared
Project Method: Fnd_Menu_Delete Deletes the highlighted records in the output list. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_DisableAllShared
Project Method: Fnd_Menu_DisableAll Disables all of the menu items. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_DisableAllMenuItemsShared
#DECLARE($menu_t : Text)
Project Method: Fnd_Menu_DisableAllMenuItems (menu reference) Disables all menu items in the specified menu. A temporary work-around for a 4D v11 SQL 1.0 bug, which doesn't disable all menu items if 0 is passed as the menu item. Access: Private Parameters: $menu_t : String : A menu reference Returns: Nothing
Fnd_Menu_EnableAllMenuItemsShared
#DECLARE($menu_t : Text)
Project Method: Fnd_Menu_EnableAllMenuItems (menu reference) Disables all menu items in the specified menu. A temporary work-around for a 4D v11 SQL 1.0 bug, which doesn't enable all menu items if 0 is passed as the menu item. Access: Private Parameters: $menu_t : String : A menu reference Returns: Nothing
Fnd_Menu_EnableDisableItemsShared
Project Method: Fnd_Menu_EnableDisableItems Here's where we enable or disable menu items based on the contents and state of the frontmost window. Access: Private Parameters: None Returns: Nothing
Fnd_Menu_FindShared
Project Method: Fnd_Menu_Find Called when the user selects Find from the Select menu. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_FindRelatedShared
Project Method: Fnd_Menu_FindRelated Called when the user selects Find Related from the Select menu. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Menu_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Menu_InitInternal
Project Method: Fnd_Menu_Init Initializes both the process and interprocess variables used by the Fnd_Menu routines. Access: Private Parameters: None Returns: Nothing
Fnd_Menu_LoadMenuTitlesShared
Project Method: Fnd_Menu_LoadMenuTitles Loads the localization for the menu bar. Access: Private Parameters: None Returns: Nothing
Fnd_Menu_LocalizeShared
Project Method: Fnd_Menu_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_Menu_MenuBarShared
#DECLARE($inForce_t : Text)
Project Method: Fnd_Menu_MenuBar ({"*"})
Updates the menu bar.
Access: Shared
Parameters:
$inForce_t : Text : Pass "*" to force a full update (optional)
Returns: NothingFnd_Menu_MenuBarNameShared
#DECLARE($inMenuName_t : Text; $inWindowMenuNumber_i : Integer)->$menuBarName_t : Text
Project Method: Fnd_Menu_MenuBarName ({menu name{; Window menu number}}) --> Text
Allows the developer to specify the menu bar to display the next time
the menu bar is displayed by a Foundation component.
If a blank name is specified, the default Foundation menu bar name is restored.
You can also specify an optional number for the Window menu to use if you want
to add a Window menu to a non-Foundation database.
Access: Shared
Parameters:
$inMenuName_t : Text : The menu bar name (optional)
$inWindowMenuNumber_i : Longint : The number of the Window menu (optional)
Returns:
$menuBarName_t : Text : The menu bar name to use nextFnd_Menu_ModifyRecordsShared
Project Method: Fnd_Menu_ModifyRecords Called from the Modify Records item in the Edit menu. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_NewRecordShared
Project Method: Fnd_Menu_NewRecord Creates and displays a new record for the current table. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_OmitSubsetShared
Project Method: Fnd_Menu_OmitSubset Called from the "Omit Subset" item in the "Select" menu. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_OpenTableShared
Project Method: Fnd_Menu_OpenTable Called when the user selects the Open Table command from the File menu. This is just a temporary placeholder. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_PreferencesShared
Project Method: Fnd_Menu_Preferences Called from the menu bar. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_PrintShared
Project Method: Fnd_Menu_Print Called when Print is selected from the File menu. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_QueryEditorShared
Project Method: Fnd_Menu_QueryEditor Displays 4D's Query Editor. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_QuitShared
Project Method: Fnd_Menu_Quit Called from the menu bar when the user selects Quit from the File menu. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_SetMenuItemShared
#DECLARE($menuNumber_i : Integer; $itemNumber_i : Integer; $inLabel_t : Text)
Project Method: Fnd_Menu_SetMenuItem (menu number; item number; label) A wrapper for the SET MENU ITEM command that parses out the shortcut command and sets it using 4D's SET MENU ITEM KEY command. Pass the shortcut at the end of the label after the "/" character. Fnd_Menu_SetMenuItem (1;5;"Print.../P") Access: Private Parameters: $menuNumber_i : Longint : The menu number $itemNumber_i : Longint : The menu item number $inLabel_t : Longint : The new label, with shortcut if desired Returns: Nothing
Fnd_Menu_ShowAllShared
Project Method: Fnd_Menu_ShowAll Displays all records for the current table. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_ShowSubsetShared
Project Method: Fnd_Menu_ShowSubset Called from the "Show Subset" item in the "Select" menu. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_SortShared
Project Method: Fnd_Menu_Sort Sorts the records for the current table. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_SortOrderEditorShared
Project Method: Fnd_Menu_SortOrderEditor Displays 4D's Order By editor. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_SpecialFunctionsShared
Project Method: Fnd_Menu_SpecialFunctions Called from the menu. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_UpdateResourcesShared
Project Method: Fnd_Menu_UpdateResources Updates the 'STR#' resources in the structure file used for localizing menu titles. Access: Private Parameters: None Returns: Nothing
Fnd_Menu_ViewOptionsShared
Project Method: Fnd_Menu_ViewOptions Supports the View options function for Fnd_Out Access: Shared
Fnd_Menu_WindowItemShared
Project Method: Fnd_Menu_WindowItem This method is called whenever any of the items in the Window menu is selected. This method moves the associated process to the front. Access: Shared Parameters: None Returns: Nothing
Fnd_Menu_Window_AddShared
#DECLARE($inItemText_i : Text)
Project Method: Fnd_Menu_Window_Add ({item text})
Adds the current process to the Window menu. If no title
is specified, the current window title is used.
Access: Shared
Parameters:
$inItemText_i : Text : The item text to add to the menu (optional)
Returns: NothingFnd_Menu_Window_RemoveShared
#DECLARE($inProcessNumber_i : Integer)
Project Method: Fnd_Menu_Window_Remove ({process number})
Removes the specified process from the Window menu. If the process
number is not specified, the current process is used.
Access: Shared
Parameters:
$inProcessNumber_i : Longint : Process number to remove
Returns: NothingFnd_Menu_Window_UpdateShared
Project Method: Fnd_Menu_Window_Update Updates the Window menu. Access: Shared Parameters: None Returns: Nothing
Fnd_Msg_BackgroundProcessShared
Project Method: Fnd_Msg_BackgroundProcess Runs in a background process that diligently tries to make sure everybody receives their messages. Called as a new process from the Fnd_Msg_Send method. Access: Private Parameters: None Returns: Nothing
Fnd_Msg_BlobToPictureShared
#DECLARE($blob_ptr : Pointer; $picture_ptr : Pointer)
Project Method: Fnd_Msg_BlobToPicture (->blob; ->picture) Converts a blob to a picture. Access: Private Parameters: $blob_ptr : Pointer : A pointer to a blob $picture_ptr : Pointer : The same blob as a picture variable Returns: Nothing
Fnd_Msg_BroadcastShared
#DECLARE($broadcastName_t : Text; $message_t : Text)
Project Method: Fnd_Msg_Broadcast (process name; message) Sends the message out to all processes with the specified name. The name can contain wildcard characters. Access: Shared Parameters: $broadcastName_t : Text : The process name to send to $message_t : Text : The message to send Returns: Nothing
Fnd_Msg_GetShared
#DECLARE($inBlob_ptr : Pointer)->$messageText_t : Text
Project Method: Fnd_Msg_Get ({->blob}) --> Text
Gets the next message queued up for the current process.
Access: Shared
Parameters:
$inBlob_ptr : Pointer : For receiving an optional blob (optional)
Returns:
$messageText_t : Text : The messageFnd_Msg_GetParameterShared
#DECLARE($inParameterList_t : Text; $parameterNumber_i : Integer)->$parameterValue_t : Text
Project Method: Fnd_Msg_GetParameter (parameters string; num) --> Text Gets parameters out of the message. Also see Fnd_Msg_PackParameters. Access: Shared Parameters: $inParameterList_t : Text : A string full of parameters $inParameterList_t : Number : The parameter number to get Returns: $parameterValue_t : Text : The parameter value
Fnd_Msg_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Msg_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo method
for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Msg_InitInternal
Project Method: Fnd_Msg_Init Initializes both the process and interprocess variables used by the interprocess messaging routines. Access: Private Parameters: None Returns: Nothing
Fnd_Msg_PackParametersShared
Project Method: Fnd_Msg_PackParameters (msg; param 1 {... param N}) --> Text
Adds the text parameters to the messasge using the same delimiter expected by
the Fnd_Msg_GetParameter routine. This isn't rocket science, it's just
easier to maintain than creating the message string in multiple methods.
Access: Shared
Parameters:
$1 : Text : The message to append parameter to
$2..$n : Text : The parameters to add to the message
Returns:
$0 : Text : The delimited paramtersFnd_Msg_PictureToBlobShared
#DECLARE($picture_ptr : Pointer; $blob_ptr : Pointer)
Project Method: Fnd_Msg_PictureToBlob (->picture; ->blob) Converts a picture to a blob. Access: Private Parameters: $picture_ptr : Pointer : A pointer to the picture $blob_ptr : Pointer : A pointer to the blob to fill Returns: Nothing
Fnd_Msg_QuitBackgroundProcessShared
Project Method: Fnd_Msg_QuitBackgroundProcess Ends the message loop background process. If there are messages still waiting to be delivered, this process waits until a timeout period is reached so hopefully the messages will get delivered. Access: Shared Parameters: None Returns: Nothing
Fnd_Msg_SendShared
#DECLARE($targetProcessNumber_i : Integer; $textMessage_t : Text; $pointertoOptionalBlob_ptr : Pointer)
Project Method: Fnd_Msg_Send (target process; message; {->blob})
Call this method to send a message to another process.
Access: Shared
Parameters:
$targetProcessNumber_i : Longint : The process to send the message to
$targetProcessNumber_i : Text : The message to send
$targetProcessNumber_i : Blob : A blob (optional)
Returns: NothingFnd_Obj_LoadFromFileShared
#DECLARE($Filepath_t : Text)->$Object_o : Object
Project Method: Fnd_Obj_LoadFromFile (Path to .json file) --> Object Description Access: Shared Parameters: $Filepath_t : Text : Path to .json file (optional) Returns: $Object_o : Object : The loaded object
Fnd_Obj_SaveToFileShared
#DECLARE($Object_o : Object; $Filepath_t : Text; $inUsePrettyPrint_b : Boolean)
Project Method: OBJ_IO_SaveToFile (Object; File Path {; Pretty Print?})
Takes an object and writes it to disk
as a JSON text document
NB. will overwrite existing doc, without checking
Access: Shared
Parameters:
$Object_o : Object : Description
$Filepath_t : Text : File path
$inUsePrettyPrint_b : Boolean {Optional} : True (default) = Use Pretty Print
Based on Cannon Smith's Object module
Wayne Stewart (Claude Opus 5) 2026-08-10 - Body uses the named parameters, not $1..$n
2026-09-12 WBS - Use UTF-8 charset name (FND-55)Fnd_Out_ActiveShared
#DECLARE($active : Boolean) : Boolean
Project Method: Fnd_Out_Active ({activate?}) --> Boolean
Pass True to activate this component for the current process, or False to deactivate
for the current process. May also be called as a function to determine the current state.
Access: Shared
Parameters:
$active : Boolean : Activate? (optional)
Returns:
$0 : Boolean : ActiveFnd_Out_AddFieldShared
#DECLARE($inField_ptr : Variant; $inWidth_i : Integer; $inHeader_t : Text; $inAlignment_i : Integer; $inFormat_t : Text; $inVisible_b : Boolean)
Project Method: Fnd_Out_AddField (->field | formula | columnObject {; width{; header{; alignment{; format{; visible}}}}})
Allows the developer to specify the columns to display in the output list.
Call multiple times to display multiple columns.
The first parameter decides how the column is described, and the method reads
its type to tell which of three forms you have used. All three are current
and none is deprecated.
1. A field pointer. The simplest form, and the original one. The column
header defaults to the field's virtual-structure name.
2. A formula as text. Use this to display a calculation, or a field reached
through relations, which a pointer cannot express. The header defaults to
the name derived from the formula.
3. An object. Use this when a column needs more than the five trailing
parameters can carry — minimum and maximum widths, font style, an explicit
field type. Only fo_field is compulsory; every other property has a
default, listed below.
Form 1, by pointer:
```
Fnd_Out_AddField(->[Invoice]Date; 80; "Invoice date")
```
Form 2, by formula, for a calculation or a field reached through relations:
```
Fnd_Out_AddField("Invoice.Customer.Name"; 120)
```
Form 3, by object, when the column needs more than the parameters carry:
```
$column_o:=New object("fo_field"; "Invoice.Total"; "fo_minWidth"; 60; \
"fo_maxWidth"; 200; "fo_hAlign"; Align right; "fo_style"; Bold)
Fnd_Out_AddField($column_o)
```
Forms 1 and 2 take the column's settings from the trailing parameters. Form 3
takes them from the object instead — that is the point of it — so pass the
object alone.
Object properties, with the default applied when the property is absent:
```
fo_field Text COMPULSORY. Field name, or a formula reaching one through relations
fo_title Text Column header. Defaults to the name derived from fo_field
fo_type Longint Field type. Defaults to the type deduced from fo_field
fo_format Text Display format. Defaults to none
fo_hAlign Longint Align default | Align left | Align right | Align center. Defaults to Align default
fo_width Longint Column width. Defaults to 0, meaning the default width
fo_minWidth Longint Minimum width. Defaults to 10
fo_maxWidth Longint Maximum width. Defaults to 0, meaning no maximum
fo_style Longint Font style. Defaults to Plain
fo_visible Boolean Whether the column shows. Defaults to the current setting
```
Widths, in any form: 0 uses the default size, and a negative number auto-sizes
the column with that number as its minimum.
Access: Shared
Parameters:
$inField_ptr : Variant : A field pointer, a formula as text, or a column object
$inWidth_i : Longint : The width for the column (optional, forms 1 and 2)
$inHeader_t : Text : The column header (optional, forms 1 and 2)
$inAlignment_i : Longint : The column alignment (optional, forms 1 and 2)
$inFormat_t : Text : The column display format (optional, forms 1 and 2)
$inVisible_b : Boolean : Visible column (optional, forms 1 and 2)
Returns: NothingFnd_Out_AddToSelectionInternal
#DECLARE($recordNumber_i : Integer)
Project Method: Fnd_Out_AddToSelection (record number) Called from Fnd_Rec_AddToSelection Access: Private Parameters: $recordNumber_i : Longint : Record number Returns: Nothing
Fnd_Out_ChoosePotentialColumnsInternal
Project Method: Fnd_Out_ChoosePotentialColumns Lists fields that COULD be displayed Access: Private Parameters: None
Fnd_Out_ConfigureListShared
#DECLARE($font_t : Text; $inSize_i : Integer; $inRowHeight_i : Integer)
Project Method: Fnd_Out_ConfigureList (font{; size{; row height}})
Sets the font used for display if you wish to override the defaults
Access: Shared
Parameters:
$font_t : Text : Font Name
$inSize_i : Longint : Font Size
$inRowHeight_i : Longint : Row Height
Returns: NothingFnd_Out_FormMethodShared
#DECLARE($inFormEvent_i : Integer)
Project Method: Fnd_Out_FormMethod The controlling from method for the Fnd_Out form Access: Shared Parameters: None Returns: Nothing
Fnd_Out_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Out_Info (label) --> Text Returns requested information. See the Fnd_Gen_ComponentInfo method for more information. Responds to: • version - what version. • name - the name of the module. • state - Is Fnd_Out active for THIS process? (active/inactive) • highlighted - the number of records highlighted in the listbox. • inSelection - the number of records displayed in the listbox. • inTable - the number of records in the table. Numeric codes: -1 : Fnd_Out is not active in this process -2 : Called oustde the context of the Fnd_Out form -3 : Called in the Fnd_Out form, but object not yet initialised/touched (most likely On Load Form Event). Access: Shared Parameters: $request_t : Text : Info desired Returns: $reply_t : Text : Response (convert to string for numbers)
Fnd_Out_InitInternal
Project Method: Fnd_Out_Init Initializes both the process and interprocess variables used by the Fnd_Out routines. Access: Private Parameters: None Returns: Nothing
Fnd_Out_ListBoxMethodShared
Project Method: Fnd_Out_ListBoxMethod Controller for listbox Access: Private Parameters: None Returns: Nothing
Fnd_Out_ORDARelatedFieldShared
#DECLARE($in_o : Object)->$out_ptr : Pointer
Project Method: Fnd_Out_ORDARelatedField --> ReturnType Returns a pointer Access: Shared Parameters: $in_o : Object : Parameter block $in_o.dataclass : Text : name of dataclass from which the relation starts $in_o.path : Text : Path to bound attribute Returns: $out_ptr : Pointer : Pointer to attribute field
Fnd_Out_OpenDialogInternal
Project Method: Fnd_Out_OpenDialog Called by Fnd_IO_DisplayTable2. Not intended to be called from anywhere else. Access: Private Parameters: None Returns: Nothing
Fnd_Out_PickOutputColumnsInternal
Project Method: Fnd_Out_PickOutputColumns This routine automatically selects some columns to display in the output form in case the developer hasn't specified any in the Fnd_aa_Out_DisplayTable hook. Access: Private Parameters: None Returns: Nothing
Fnd_Out_SetupToolbarInternal
Project Method: Fnd_Out_SetupToolbar Handles the toolbar setup for the input and output forms. Method Type: Private Access: Private Parameters: None Returns: Nothing
Fnd_Out_SynchroniseSelectionShared
Project Method: Fnd_Out_SynchroniseSelection Updates the current record selection to match the displayed entity selection. Access: Shared Parameters: None Returns: Nothing
Fnd_Out_UpdateShared
Project Method: Fnd_Out_Update Access: Shared Parameters: None Returns: Nothing
Fnd_Out_UpdateToolbarInternal
Project Method: Fnd_Out_UpdateToolbar Enables and disables the toolbar buttons based on whether or not the window is frontmost, the selection of records, and the highlighted records. Method Type: Private Access: Private Parameters: None Returns: Nothing
Fnd_Out_fieldNameShared
#DECLARE($theFormula_t : Text)->$fieldName_t : Text
Project Method: Fnd_Out_fieldName (Formula) --> Text
Pass a formula to determine
the header to include in the display listbox
Fnd_Out_fieldTitle("invoice.client.FirstName") --> FirstName
Access: Shared
Parameters:
$theFormula_t : Text : A formula
Returns:
$fieldName_t : Text : The name of the fieldFnd_Out_fieldTypeShared
#DECLARE($theFormula_t : Variant)->$fieldType_i : Integer
Project Method: Fnd_Out_fieldType (Formula or field pointer) --> Long
Pass either the field pointer or a formula to determine
the field type to include in the display listbox
Fnd_Out_fieldType(->[Client]ID) --> 9 (Is longint)
Fnd_Out_fieldType("invoice.client.FirstName") --> 0 (Is alpha field)
Access: Shared
Parameters:
$theFormula_t : Variant : A field pointer or a valid formula
Returns:
$fieldType_i : Long : Field Type (-1 indicates error)Fnd_Out_getPrimaryKeyShared
#DECLARE($tableNumber_i : Integer)->$fieldNumber_i : Integer
Project Method: Fnd_Out_getPrimaryKey (Table Number)--> Integer Returns the primary key field for a table Access: Shared Parameters: $tableNumber_i : Long : Table Number Returns: $fieldNumber_i : Long : Field Number
Fnd_Pref_AlertShared
#DECLARE($message_t : Text)
Project Method: Fnd_Pref_Alert (message) Displays an alert message. Uses the Foundation Dialog module alert if available. Access: Private Parameters: $message_t : Text : The alert message text Returns: Nothing
Fnd_Pref_CreateTableShared
Project Method: Fnd_Pref_CreateTable Method Type: Private Access: Shared Parameters: None Used Returns: Nothing
Fnd_Pref_DisplayShared
#DECLARE($inPreferencesFormName_t : Text)
Project Method: Fnd_Pref_Display (preferences form name) Displays the Preferences window in a new process. Access: Shared Parameters: $inPreferencesFormName_t : Text : The name of the project form to display Returns: Nothing
Fnd_Pref_DummyMethodShared
Project Method: Fnd_Pref_DummyMethod A generic method with no code. This is useful for assigning as the close box method for new windows (handle the close in the form method) or to use with ON ERR CALL to disable any automatic reaction to errors. **Deprecated 2026-08-22. Call Fnd_Gen_SilentError instead.** The body was always empty, so the two methods were never different. This one served nothing — it had no caller in Foundation at all. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_EditorShared
Project Method: Fnd_Pref_Editor Opens the preferences editor: a list of the stored preferences, with their types and values, editable in place and deletable. Local preferences are listed. Server scoped ones share the same store and are shown when the checkbox asks for them, since a preference that plainly exists should not look missing. ``` Fnd_Pref_Editor ``` Access: Shared Returns: Nothing
Fnd_Pref_EditorApplyInternal
Project Method: Fnd_Pref_EditorApply Applies the current editor page's value to the selected row, after checking it still fits the type it is stored as. The row is the working copy: the store is only written when Fnd_Pref_EditorSave runs. A window rectangle is the case worth the care: it is four coordinates in one string, and a rectangle that is not four numbers would leave a window unopenable at the size it is asked for next. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_EditorFilterInternal
Project Method: Fnd_Pref_EditorFilter Filters the list box's rows down to those in Form.allPreferences whose name matches Form.filter. Form.allPreferences itself is not touched, so an edit held on a row the filter hides is not lost when the filter changes. The selection cannot survive a change of the displayed collection, so it is put back to nothing-selected. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_EditorIsNumberInternal
#DECLARE($text_t : Text)->$isNumber_b : Boolean
Project Method: Fnd_Pref_EditorIsNumber (text) --> Boolean Whether the text is a number, for the editor to check an edit before it is written. Num cannot answer this on its own: it returns 0 for text that is not a number at all, which is indistinguishable from a genuine zero. So the characters are looked at instead - an optional sign, digits, and at most one decimal separator. The separator is taken from the machine, so a comma is a decimal point where that is the local convention. Leading and trailing spaces are ignored. Access: Private Parameters: $text_t : Text : The text to weigh Returns: $isNumber_b : Boolean : True when it converts
Fnd_Pref_EditorLoadInternal
Project Method: Fnd_Pref_EditorLoad Puts the preference rows onto the Form object for the editor's list box, and resets what a reload invalidates. The rows themselves are built by Fnd_Pref_EditorRows, which needs no form and can therefore be checked on its own. Form.allPreferences holds the full, unfiltered set; Fnd_Pref_EditorFilter derives Form.preferences from it and clears the selection, since the collection the selection pointed into has been replaced. Access: Private Returns: Nothing
Fnd_Pref_EditorRemoveInternal
Project Method: Fnd_Pref_EditorRemove Deletes the preference selected in the editor's list box, after asking. Deleting is the safe half of this editor: a preference that is gone is recreated with its default the next time something asks for it, where a value edited into nonsense is carried until someone notices. The confirmation is there because it is still someone's stored setting. Access: Private Returns: Nothing
Fnd_Pref_EditorRetireLegacyInternal
Project Method: Fnd_Pref_EditorRetireLegacy Offers to retire the property list that preceded the JSON preferences file, and renames it to <DatabaseName>-superseded.XML when the offer is taken. Nothing has written the property list since the preferences became JSON, and Fnd_Pref_LoadLocalPrefs stopped reading it the moment the JSON file appeared. It is left on disk as downgrade insurance, which means a stale file sits beside the live one indefinitely. Renaming it keeps the values without leaving anything that reads like the current file. Offered by the Save action only. Apply writes the store without asking, as it does for everything else. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_EditorRowsInternal
#DECLARE($mode_i : Integer)->$rows_c : Collection
Project Method: Fnd_Pref_EditorRows (mode) --> Collection The preferences of one storage location as rows for the editor's list box, sorted by name. The editor's tab picks the location; the three are separate stores, not a filter over one. 1 Local Storage.Fnd.Pref.preferences, the entries scoped Local 2 Server the [Fnd_Pref] rows owned by the current user 3 Shared the [Fnd_Pref] rows owned by Fnd_Pref_SharedName Each row's "scope" is what Fnd_Pref_SetValue and Fnd_Pref_Remove take as their own scope parameter, so an edited row saves back where it came from. Access: Private Parameters: $mode_i : Integer : Which store to read: 1 Local, 2 Server, 3 Shared Returns: $rows_c : Collection : One object per preference, ordered by name
Fnd_Pref_EditorSaveInternal
Project Method: Fnd_Pref_EditorSave Writes the rows the editor has changed through to the store, then saves the preferences to disk. The rows are already validated: Fnd_Pref_EditorApply refuses a value that cannot convert, so nothing invalid reaches here. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_EditorSelectInternal
Project Method: Fnd_Pref_EditorSelect Reacts to the editor's list box selection: flips to the editor page for the selected row's type, loads its value into that page's bound variable, and enables the delete button. No selection shows the neutral page. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_EditorWindowInternal
#DECLARE($objectName_t : Text)
Project Method: Fnd_Pref_EditorWindow (object name) Applies the four window rectangle fields to the selected row, after checking Left is not greater than Right and Top is not greater than Bottom. A window that failed that check could not be opened at the size it asks for. A field that fails the check is reverted by rereading the row, which still holds what was there before, and the caret is sent back to the field that was being edited. Access: Private Parameters: $objectName_t : Text : The name of the field just edited Returns: Nothing
Fnd_Pref_ErrorHandlerShared
Project Method: Fnd_Pref_ErrorHandler Installed as an error handler by our preferences loading routines. Usually called because of an XML parsing error. Displays an alert to the user. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_GetBooleanShared
#DECLARE($itemName_t : Text; $inItemValue_b : Boolean; $inItemScope_v : Variant)->$itemValue_b : Boolean
Project Method: Fnd_Pref_GetBoolean (name{; default{; scope}}) --> Boolean
Retrieves a Boolean value in from user's preferences file. If an item with the
specified name isn't found, the default value is returned (if specified).
Otherwise False is returned.
The scope is a constant - Fnd_Pref_Local, Fnd_Pref_Server, Fnd_Pref_Shared -
or a label: any text, naming a namespace of the caller's own in
[Fnd_Pref]. A label is read from that namespace alone, so nothing local
shadows it; a constant only says where to store a default that has to be
created, and does not filter the read.
Access: Shared
Parameters:
$itemName_t : Text : The name of the preference item
$inItemValue_b : Boolean : The default value (optional)
$inItemScope_v : Variant : The scope or label if the default is used (optional)
Returns:
$itemValue_b : Boolean : The saved valueFnd_Pref_GetLongIntShared
#DECLARE($itemName_t : Text; $inItemValue_i : Integer; $inItemScope_v : Variant)->$itemValue_i : Integer
Project Method: Fnd_Pref_GetLongInt (name{; default{; scope}}) --> Longint
Retrieves a long integer value in from user's preferences file. If an item
with the specified name isn't found, the default value is returned (if specified).
Otherwise, 0 is returned.
The scope is a constant - Fnd_Pref_Local, Fnd_Pref_Server, Fnd_Pref_Shared -
or a label: any text, naming a namespace of the caller's own in
[Fnd_Pref]. A label is read from that namespace alone, so nothing local
shadows it; a constant only says where to store a default that has to be
created, and does not filter the read.
Access: Shared
Parameters:
$itemName_t : Text : The name of the preference item
$inItemValue_i : Longint : The default value (optional)
$inItemScope_v : Variant : The scope or label if the default is used (optional)
Returns:
$itemValue_i : Longint : The saved valueFnd_Pref_GetObjectShared
#DECLARE($itemName_t : Text; $inDefault_o : Object; $inItemScope_v : Variant)->$prefObject_o : Object
Project Method: Fnd_Pref_GetObject (name{; default{; scope}}) --> Object
Retrieves an Object in from user's preferences file. If an item
with the specified name isn't found, the default value is returned (if specified).
Otherwise, an empty object is returned.
The scope is a constant - Fnd_Pref_Local, Fnd_Pref_Server, Fnd_Pref_Shared -
or a label: any text, naming a namespace of the caller's own in
[Fnd_Pref]. A label is read from that namespace alone, so nothing local
shadows it; a constant only says where to store a default that has to be
created, and does not filter the read.
Access: Shared
Parameters:
$itemName_t : Text : The name of the preference item
$inDefault_o : Object : The default value (optional)
$inItemScope_v : Variant : The scope or label if the default is used (optional)
Returns:
$prefObject_o : Longint : The saved valueFnd_Pref_GetProcessWindowRefShared
#DECLARE($processNumber_i : Integer)->$foundRef_i : Integer
Project Method: Fnd_Pref_GetProcessWindowRef (process number) --> Number Returns the window ref for the frontmost window of the specified process. There's also a Fnd_Wnd_GetProcessWindowRef method, but it may not be installed. Access: Private Parameters: $processNumber_i : Longint : A process number Returns: $foundRef_i : Longint : A window reference or 0
Fnd_Pref_GetRealShared
#DECLARE($itemName_t : Text; $inItemValue_r : Real; $inItemScope_v : Variant)->$itemValue_r : Real
Project Method: Fnd_Pref_GetReal (name{; default{; scope}}) --> Real
Retrieves a real number value in from user's preferences file. If an item
with the specified name isn't found, the default value is returned (if specified).
Otherwise, 0 is returned.
The scope is a constant - Fnd_Pref_Local, Fnd_Pref_Server, Fnd_Pref_Shared -
or a label: any text, naming a namespace of the caller's own in
[Fnd_Pref]. A label is read from that namespace alone, so nothing local
shadows it; a constant only says where to store a default that has to be
created, and does not filter the read.
Access: Shared
Parameters:
$itemName_t : Text : The name of the preference item
$inItemValue_r : Real : The default value (optional)
$inItemScope_v : Variant : The scope or label if the default is used (optional)
Returns:
$itemValue_r : Longint : The saved valueFnd_Pref_GetTextShared
#DECLARE($itemName_t : Text; $inItemValue_t : Text; $inItemScope_v : Variant)->$itemValue_t : Text
Project Method: Fnd_Pref_GetText (name{; default{; scope}}) --> Text
Retrieves a text value in from user's preferences file. If an item with the
specified name isn't found, the default value is returned (if specified).
The scope is a constant - Fnd_Pref_Local, Fnd_Pref_Server, Fnd_Pref_Shared -
or a label: any text, naming a namespace of the caller's own in
[Fnd_Pref]. A label is read from that namespace alone, so nothing local
shadows it; a constant only says where to store a default that has to be
created, and does not filter the read.
Access: Shared
Parameters:
$itemName_t : Text : The name of the preference item
$inItemValue_t : Text : The default value (optional)
$inItemScope_v : Variant : The scope or label if the default is used (optional)
Returns:
$itemValue_t : Text : The saved valueFnd_Pref_GetWindowShared
#DECLARE($prefName_t : Text; $left_ptr : Pointer; $top_ptr : Pointer; $right_ptr : Pointer; $bottom_ptr : Pointer)
Project Method: Fnd_Pref_GetWindow (name; ->left; ->top; ->right; ->bottom) Retrieves a text value in from user's preferences file. If an item with the specified name isn't found, the default value is returned (if specified). Access: Shared Parameters: $prefName_t : Text : The name of the preference item $left_ptr : Pointer : The left coordinate $top_ptr : Pointer : The top coordinate $right_ptr : Pointer : The right coordinate $bottom_ptr : Pointer : The bottom coordinate Returns: Nothing
Fnd_Pref_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Pref_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Pref_InitInternal
Project Method: Fnd_Pref_Init
Initializes the Fnd_Pref routines.
The preferences live in Storage.Fnd.Pref, guarded by an Initialized key:
Storage.Fnd.Pref.preferences an object keyed by preference name, each
holding {type; value; scope; modified}
Storage.Fnd.Pref.userName the name the server preferences are owned by
Access: Private
Parameters: None
Returns: NothingFnd_Pref_Iso2Utf8Shared
#DECLARE($source_t : Text)->$utf8Text_t : Text
Project Method: Fnd_Pref_Iso2Utf8 (text) --> Text Converts ISO text to UTF-8-encoded text. Access: Private Parameters: $source_t : Text : ISO text string (use Mac to ISO) Returns: $utf8Text_t : Text : The UTF-8 representation Original method by Scott Vanderbilt, Datagenic Tool & Die, Inc. Copyright 1996-2003 Datagenic Tool & Die, Inc. All Rights Reserved. Variable names changed by Dave Batton to match the Foundation naming conventions. Wayne Stewart (Claude Opus 5) 2026-08-10 - Body uses the named parameters, not $1..$n Wayne Stewart (Claude Opus 5) 2026-08-14 - No longer called; kept as the reference Fnd_Pref_Utf8ToText is checked against
Fnd_Pref_LegacyPathShared
#DECLARE()->$path_t : Text
Project Method: Fnd_Pref_LegacyPath --> Text Returns the path to the preferences file written by versions before the move to JSON: an Apple property list, named .plist on macOS and .xml on Windows. Read by Fnd_Pref_LoadLocalPrefs when there is no JSON file yet, so an installation converts itself the first time it runs. Nothing writes it any more, and it is left on disk rather than deleted so a downgrade still has something to read. Access: Private Parameters: None Returns: $path_t : Text : The path to the legacy prefs file
Fnd_Pref_LoadLegacyPrefsShared
Project Method: Fnd_Pref_LoadLegacyPrefs Reads the Apple property list that versions before the JSON file wrote, and puts what it holds into the preference arrays. Called by Fnd_Pref_LoadLocalPrefs when there is no JSON file yet, so an existing installation converts itself the first time it runs. Nothing writes this file any more. It is left on disk rather than deleted, so a downgrade still finds it; the next save writes JSON and the JSON is read from then on. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_LoadLocalPrefsShared
Project Method: Fnd_Pref_LoadLocalPrefs Loads the preferences stored in the local external preference file into the preference arrays. Called from Fnd_Pref_LoadPrefs, which handles the semaphore. Reads the JSON file written by Fnd_Pref_SaveLocalPrefs. When there is none, reads the property list earlier versions wrote and repairs the doubled characters it holds, so an installation converts itself the first time it runs and nobody migrates anything by hand. The legacy file is left where it is; the next save writes JSON alongside it and the JSON wins from then on. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_LoadPrefsShared
Project Method: Fnd_Pref_LoadPrefs Reads the preferences file from the disk. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_LoadServerPrefsShared
Project Method: Fnd_Pref_LoadServerPrefs Loads the user's preferences from the database. Does not load the shared preferences, since we need to get those when they're needed, since they may get changed by other users. Called from Fnd_Pref_LoadPrefs, which handles the semaphore. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_LocalizeShared
Project Method: Fnd_Pref_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_PathShared
#DECLARE()->$path_t : Text
Project Method: Fnd_Pref_Path --> Text Returns the path to the preferences file (or at least where it should be). The file is JSON and is named the same on every platform; the plist and .xml files earlier versions wrote are at Fnd_Pref_LegacyPath, which is read once and converted when this one is not there yet. Access: Private Parameters: None Returns: $path_t : Text : The path to the prefs file
Fnd_Pref_RemoveShared
#DECLARE($itemName_t : Text; $inItemScope_v : Variant)->$removed_b : Boolean
Project Method: Fnd_Pref_Remove (name{; scope}) --> Boolean
Deletes a preference. Returns True if there was one to delete.
The scope says where to delete from, which is not what it means on a getter -
there it only says where to store a default. It is a constant or a label:
Fnd_Pref_Local, Fnd_Pref_Server : Storage.Fnd.Pref, and for a server
preference the [Fnd_Pref] row that goes with it
Fnd_Pref_Shared : the [Fnd_Pref] row owned by Fnd_Pref_SharedName
a label : the [Fnd_Pref] row owned by that label
Local and Server name the same slot. The store holds one entry per name and
the scope is a property of it, so a name cannot be local and server at once,
and either constant removes whichever it is. Whether the row goes too is
decided by the scope that was stored, not by the one asked for.
A local or server preference is gone from memory at once and out of the file
at the next Fnd_Pref_SavePrefs. A shared or labelled one is gone from the
data file immediately, as writing one is.
Access: Shared
Parameters:
$itemName_t : Text : The name of the preference item
$inItemScope_v : Variant : Where to delete from - a scope constant or a label (optional)
Returns:
$removed_b : Boolean : True if a preference was deletedFnd_Pref_SaveLocalPrefsShared
Project Method: Fnd_Pref_SaveLocalPrefs
Writes the preferences file to disk, as JSON.
Called from Fnd_Pref_SavePrefs, which handles the semaphore.
The file is an object of preferences keyed by name, each holding the 4D type
code it was stored under and its value in the JSON type that matches:
{
"format": 1,
"preferences": {
"Fnd_Nav: Open at Startup": { "type": 6, "value": true },
"Fnd_Out: Columns": { "type": 38, "value": { "width": 90 } },
"Fnd_Nav: Palette Window": { "type": -1, "value": "10, 20, 310, 220" }
}
}
The type is recorded because JSON cannot tell a long integer from a real, and
because a window - type -1 - has no JSON equivalent at all.
Only the local preferences are written. The server and shared ones live in
[Fnd_Pref], and a labelled one never reaches the arrays.
Access: Private
Parameters: None
Returns: NothingFnd_Pref_SavePrefsShared
Project Method: Fnd_Pref_SavePrefs Save's the user's local and server preferences. Access: Shared Parameters: None Returns: Nothing
Fnd_Pref_SaveServerPreferenceShared
#DECLARE($itemOwner_t : Text; $itemName_t : Text; $itemType_i : Integer; $itemValue_t : Text; $itemScope_i : Integer)
Project Method: Fnd_Pref_SaveServerPreference (owner; pref name; type; value; scope) Saves a single preference value in the database. A scope of Fnd_Pref_Local deletes the row instead, which is how a preference that is no longer a server or shared one is cleaned up. Access: Private Parameters: $itemOwner_t : Text : The item's owner name $itemName_t : Text : The name of the preference item $itemType_i : Longint : The variable type $itemValue_t : Text : The value to save as text $itemScope_i : Longint : The scope Returns: Nothing
Fnd_Pref_SaveServerPrefsShared
Project Method: Fnd_Pref_SaveServerPrefs Saves the user's server preferences to the data file. Called from Fnd_Pref_SavePrefs, which handles the semaphore. Access: Private Parameters: None Returns: Nothing
Fnd_Pref_SetBooleanShared
#DECLARE($itemName_t : Text; $itemValue_b : Boolean; $inItemScope_v : Variant)
Project Method: Fnd_Pref_SetBoolean (name; value{; scope})
Saves a Boolean value in the user's preferences file.
The scope is a constant - Fnd_Pref_Local, Fnd_Pref_Server, Fnd_Pref_Shared -
or a label: any text, which becomes the owner of a row in [Fnd_Pref] and
so gives the caller a namespace of its own, written through at once.
Access: Shared
Parameters:
$itemName_t : Text : The name of the preference item
$itemValue_b : Boolean : The Boolean value to save
$inItemScope_v : Variant : How to save it - a scope constant or a label (optional)
Returns: NothingFnd_Pref_SetLongIntShared
#DECLARE($itemName_t : Text; $itemValue_i : Integer; $inItemScope_v : Variant)
Project Method: Fnd_Pref_SetLongInt (name; value{; scope})
Saves a long integer value in the user's preferences file.
The scope is a constant - Fnd_Pref_Local, Fnd_Pref_Server, Fnd_Pref_Shared -
or a label: any text, which becomes the owner of a row in [Fnd_Pref] and
so gives the caller a namespace of its own, written through at once.
Access: Shared
Parameters:
$itemName_t : Text : The name of the preference item
$itemValue_i : Longint : The long integer value to save
$inItemScope_v : Variant : How to save it - a scope constant or a label (optional)
Returns: NothingFnd_Pref_SetObjectShared
#DECLARE($itemName_t : Text; $itemValue_o : Object; $inItemScope_v : Variant)
Project Method: Fnd_Pref_SetObject (name; value{; scope})
Saves a Object value in the user's preferences file.
The scope is a constant - Fnd_Pref_Local, Fnd_Pref_Server, Fnd_Pref_Shared -
or a label: any text, which becomes the owner of a row in [Fnd_Pref] and
so gives the caller a namespace of its own, written through at once.
Access: Shared
Parameters:
$itemName_t : Text : The name of the preference item
$itemValue_o : Object : The Object value to save
$inItemScope_v : Variant : How to save it - a scope constant or a label (optional)
Returns: NothingFnd_Pref_SetRealShared
#DECLARE($itemName_t : Text; $itemValue_r : Real; $inItemScope_v : Variant)
Project Method: Fnd_Pref_SetReal (name; value{; scope})
Saves a real number value in the user's preferences file.
The scope is a constant - Fnd_Pref_Local, Fnd_Pref_Server, Fnd_Pref_Shared -
or a label: any text, which becomes the owner of a row in [Fnd_Pref] and
so gives the caller a namespace of its own, written through at once.
Access: Shared
Parameters:
$itemName_t : Text : The name of the preference item
$itemValue_r : Real : The real value to save
$inItemScope_v : Variant : How to save it - a scope constant or a label (optional)
Returns: NothingFnd_Pref_SetTextShared
#DECLARE($itemName_t : Text; $itemValue_t : Text; $inItemScope_v : Variant)
Project Method: Fnd_Pref_SetText (name; value{; scope})
Saves a text value in the user's preferences file.
The scope can be one of these:
0 = store locally (Fnd_Pref_Local)
1 = store privately on server (Fnd_Pref_Server)
2 = store shared on server (Fnd_Pref_Shared)
or a label: any text, which becomes the owner of a row in [Fnd_Pref] and so
gives the caller a namespace of its own, written through at once.
Access: Shared
Parameters:
$itemName_t : Text : The name of the preference item
$itemValue_t : Text : The text value to save
$inItemScope_v : Variant : How to save it - a scope constant or a label (optional)
Returns: NothingFnd_Pref_SetValueShared
#DECLARE($prefName_t : Text; $prefType_i : Integer; $prefValue_t : Text; $prefScope_v : Variant)
Project Method: Fnd_Pref_SetValue (name; type; value; scope) Adds a preference item to Storage.Fnd.Pref. Doesn't check the semaphore. We assume the calling process has done that, since this method is only called internally by other Fnd_Pref routines. Assumes Fnd_Pref_Init has been called. The scope is either one of the three constants or a label. A label is an owner name in [Fnd_Pref] chosen by the caller, written through at once and never held in the arrays, exactly as Fnd_Pref_Shared is. Access: Private Parameters: $prefName_t : Text : The name of the preference item $prefType_i : Longint : The variable type $prefValue_t : Text : The value to save as text $prefScope_v : Variant : Fnd_Pref_Local, Fnd_Pref_Server, Fnd_Pref_Shared, or a label Returns: Nothing
Fnd_Pref_SetWindowShared
#DECLARE($prefName_t : Text; $left_i : Integer; $top_i : Integer; $right_i : Integer; $bottom_i : Integer)
Project Method: Fnd_Pref_SetWindow ({name{; window ref}})
Option 2: Fnd_Pref_SetWindow (name; left; top; right; bottom)
Saves the coordinates of the current window in the user's preferences file.
If no name is specified, the current process name is used.
If no window is specified, the frontmost window of the current process is used.
Access: Shared
Parameters:
$prefName_t : Text : The name of the preference item (optional)
$left_i : Longint : The window to save (optional)
Or:
$prefName_t : Text : The name of the preference item
$left_i : Longint : The left coordinate
$top_i : Longint : The top coordinate
$right_i : Longint : The right coordinate
$bottom_i : Longint : The bottom coordinate
Returns: NothingFnd_Pref_TypeNameInternal
#DECLARE($type_i : Integer)->$typeName_t : Text
Project Method: Fnd_Pref_TypeName (type) --> Text The stored type of a preference, as something to read. Preferences keep the 4D type constant they were written with, and a window rectangle is stored as Is Window Coordinates rather than as a type of its own. ``` Fnd_Pref_TypeName(Is text) --> "Text" Fnd_Pref_TypeName(Is Window Coordinates) --> "Window" ``` Access: Private Parameters: $type_i : Integer : The type the preference was stored with Returns: $typeName_t : Text : The name to show
Fnd_Pref_UserNameShared
#DECLARE($inName_t : Text)->$userName_t : Text
Project Method: Fnd_Pref_UserName ({name}) --> Text
Gets and sets the current user name for the preferences system.
Access: Shared
Parameters:
$inName_t : Text : The new user name (optional)
Returns:
$userName_t : Text : The current user nameFnd_Pref_Utf8ToTextShared
#DECLARE($source_t : Text)->$text_t : Text
Project Method: Fnd_Pref_Utf8ToText (text) --> Text Undoes the byte-pair expansion the old preferences writer applied to every character above 127, so a value read from a legacy preferences file comes back as what was stored rather than doubled. Two adjacent characters whose codes are a UTF-8 two-byte sequence become the one character they encode. Anything else is passed through, so text that was never doubled is returned unchanged and the method is safe to run over a whole file. Characters above U+07FF cannot be recovered: the old writer had no room for them and produced a first "byte" above 255, which is not a sequence this can read. They are left as they are. Access: Private Parameters: $source_t : Text : Text read from a legacy preferences file Returns: $text_t : Text : The same text with any doubled characters collapsed
Fnd_Pref_XmlDecodeShared
#DECLARE($inText_t : Text)->$text_t : Text
Project Method: Fnd_Pref_XmlDecode (text) --> Text Decodes reserved XML characters. For example, > is converted to >. Unlike HTML encoding, this routine only handles reserved XML characters, since accented characters are handled by the UTF-8 encoding. Call Fnd_Pref_XmlEncode to reverse the process. Access: Private Parameters: $inText_t : Text : An encoded text string Returns: $text_t : Text : The unencoded text string
Fnd_Pref_XmlEncodeShared
#DECLARE($inText_t : Text)->$text_t : Text
Project Method: Fnd_Pref_XmlEncode (text) --> Text Encodes reserved XML characters. For example, > is converted to > Unlike HTML encoding, this routine only handles reserved XML characters, since accented characters are handled by the UTF-8 encoding. Call Fnd_Pref_XmlDecode to reverse the process. Nothing writes with this any more - the preferences file is JSON, which needs no escaping of its own. It is kept as the reference Fnd_Pref_XmlDecode is checked against, that one still being live in the legacy reader, and retires when the legacy reader does. Access: Private Parameters: $inText_t : Text : An unencoded text string Returns: $text_t : Text : The encoded text string
Fnd_Pref_XmlParseShared
#DECLARE($inElement_t : Text)
Project Method: Fnd_Pref_XmlParse (element) Parses the XML reference into an array of element IDs and a 2D array of values. Reads the legacy property list only. Nothing writes that format any more, so this is the conversion path and not a round trip. Access: Private Parameters: $inElement_t : Text : A 4D XML reference Returns: Nothing
Fnd_Prnt_AlertShared
#DECLARE($message_t : Text)
Project Method: Fnd_Prnt_Alert (message) Displays an alert message. Uses the Foundation Dialog module alert if available. Access: Private Parameters: $message_t : Text : The alert message text Returns: Nothing
Fnd_Prnt_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Prnt_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Prnt_InitInternal
Project Method: Fnd_Prnt_Init Initializes both the process and interprocess variables used by the Printing routines. Designed to be called at the beginning of any Protected routines to make sure the necessary variables are initialized. Access: Private Parameters: None Returns: Nothing
Fnd_Prnt_LabelEditorShared
Project Method: Fnd_Prnt_LabelEditor Displays 4D's built-in Label Editor Access: Shared Parameters: None Returns: None
Fnd_Prnt_QuickReportEditorShared
Project Method: Fnd_Prnt_QuickReportEditor Displays 4D's built-in Quick Report Editor Access: Shared Parameters: None Returns: None
Fnd_Pswd_BulletEntryShared
#DECLARE($bulletField_ptr : Pointer; $actualField_ptr : Pointer)
Project Method: Fnd_Pswd_BulletEntry (->visible object; ->text variable) Replaces typed characters with bullet characters for password entry. Based on the Keystroke function example in the 4D documentation. Requires the field's On Before Keystroke event is enabled. Access: Shared Parameters: $bulletField_ptr : Pointer : The displayed variable $actualField_ptr : Pointer : The entered value Returns: Nothing
Fnd_Pswd_ClassCharactersInternal
#DECLARE($settings_o : Object)->$classes_c : Collection
Project Method: Fnd_Pswd_ClassCharacters ($settings_o : Object) --> $classes_c : Collection The character classes a generation may draw from, one string per class, with the excluded characters already taken out. A class left with nothing after the exclusions is dropped rather than returned empty. Fnd_Pswd_GetValidCharacters joins these; Fnd_Pswd_GeneratePassword keeps them apart so it can take one character from each. Access: Private Parameters: $settings_o : Object : Settings, as returned by Fnd_Pswd_Settings Returns: $classes_c : Collection : Strings of characters, one per class in use
Fnd_Pswd_CustomCharactersShared
#DECLARE($inCharacters_t : Text)->$pswdCustomCharacters_t : Text
Project Method: Fnd_Pswd_CustomCharacters ({characters}) --> Text
Pass any custom characters that should be used to generate passwords.
Returns the currently specified custom characters.
Access: Shared
Parameters:
$inCharacters_t : Text : Custom characters to use (optional)
Returns:
$pswdCustomCharacters_t : Text : The current custom charactersFnd_Pswd_ExcludeCharactersShared
#DECLARE($inCharacters_t : Text)->$pswdExcludeCharacters_t : Text
Project Method: Fnd_Pswd_ExcludeCharacters ({characters}) --> Text
Pass any characters that should be excluded from generate passwords.
Returns the currently specified excluded characters.
Access: Shared
Parameters:
$inCharacters_t : Text : Characters to exclude (optional)
Returns:
$pswdExcludeCharacters_t : Text : The current list of excluded charactersFnd_Pswd_GeneratePasswordShared
#DECLARE($options_v : Variant)->$password_t : Text
Project Method: Fnd_Pswd_GeneratePassword ({options}) --> Text
Generates a password.
With no parameter it uses the module's stored settings, as it always has.
Pass an object to generate under different settings without changing the
stored ones, which is also what makes it safe to call from a worker:
```
Fnd_Pswd_GeneratePassword({length: 16; useSymbols: False})
Fnd_Pswd_GeneratePassword({type: Fnd_Pswd_TypePronounceable})
Fnd_Pswd_GeneratePassword({type: Fnd_Pswd_TypePIN; length: 6})
```
The three types:
Fnd_Pswd_TypeRandom - characters drawn from the classes in use
Fnd_Pswd_TypePronounceable - syllables, in the shape macOS offers; see
Fnd_Pswd_Pronounceable for the exact form
Fnd_Pswd_TypePIN - digits only, and the exclusion list does not
apply, so all ten are available
A random password holds at least one character from every class in use, so
asking for numbers means getting one. Set requireEachClass to False for the
older behaviour of drawing every character from the pooled set.
Access: Shared
Parameters:
$options_v : Variant : Settings to override for this call (optional)
Returns:
$password_t : Text : The generated passwordFnd_Pswd_GeneratorApplyInternal
Project Method: Fnd_Pswd_GeneratorApply Writes the generator dialog's controls back to the stored settings. Called on OK only, so cancelling the dialog changes nothing. It reads the Form object, so it is of no use outside the dialog. The dialog offers one length rather than a range, so both bounds come out the same. The range is still there for a caller that wants it, through Fnd_Pswd_MinLength and Fnd_Pswd_MaxLength or the options object. Access: Private Parameters: None Returns: Nothing
Fnd_Pswd_GeneratorDialogShared
#DECLARE()->$generatedPassword_t : Text
Project Method: Fnd_Pswd_GeneratorDialog --> Text Displays a password generator dialog. Access: Shared Parameters: None Returns: $generatedPassword_t : Text : The generated password, or "" if cancelled
Fnd_Pswd_GeneratorRefreshInternal
Project Method: Fnd_Pswd_GeneratorRefresh Generates a password from whatever the generator dialog's controls currently say, and updates the password and strength lines. Called by the dialog on every change; it reads the Form object, so it is of no use outside one. Nothing here reads or writes the stored settings — the options object carries the dialog's state straight to the generator, so opening the dialog and cancelling leaves the module exactly as it was. Access: Private Parameters: None Returns: Nothing
Fnd_Pswd_GetValidCharactersShared
#DECLARE($options_v : Variant)->$validChars_t : Text
Project Method: Fnd_Pswd_GetValidCharacters ({options}) --> Text
Returns a string with all of the allowed password characters
(based on the user's preference settings).
Pass an object to answer for settings other than the stored ones, without
changing them:
```
Fnd_Pswd_GetValidCharacters({useSymbols: False; excludedCharacters: "0O"})
```
Access: Shared
Parameters:
$options_v : Variant : Settings to override for this call (optional)
Returns:
$validChars_t : Text : A string of all valid charactersFnd_Pswd_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Pswd_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Pswd_InitInternal
Project Method: Fnd_Pswd_Init Initializes the state used by the Fnd_Pswd routines. Every Fnd_Pswd method calls it, so it runs often and is safe to repeat. Access: Private Parameters: None Returns: Nothing
Fnd_Pswd_LocalizeShared
Project Method: Fnd_Pswd_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_Pswd_MaxLengthShared
#DECLARE($inMaxChars_i : Integer; $inMaxLimitation_i : Integer)->$pswdMaxLength_i : Integer
Project Method: Fnd_Pswd_MaxLength ({max chars to use{; max limitation}}) --> Number
Allows the developer to set the maximum password length, and
optionally the maximum password length defined in the Generator
dialog. Returns the current value of the maximum password length.
Access: Shared
Parameters:
$inMaxChars_i : Longint : The maximum password length setting (optional)
$inMaxLimitation_i : Longint : The maximum value displayed in the pop-up menu (optional)
Returns:
$pswdMaxLength_i : Longint : The currently set maximum lengthFnd_Pswd_MinLengthShared
#DECLARE($inMinChars_i : Integer; $inMinLimitation_i : Integer)->$pswdMinLength_i : Integer
Project Method: Fnd_Pswd_MinLength ({min chars to use{; min limitation}}) --> Number
Allows the developer to set the Minimum password length, and
optionally the Minimum password length defined in the Generator
dialog. Returns the current value of the Minimum password length.
Access: Shared
Parameters:
$inMinChars_i : Longint : The Minimum password length setting (optional)
$inMinLimitation_i : Longint : The Minimum value displayed in the pop-up menu (optional)
Returns:
$pswdMinLength_i : Longint : The currently set Minimum lengthFnd_Pswd_PronounceableInternal
#DECLARE($settings_o : Object)->$password_t : Text
Project Method: Fnd_Pswd_Pronounceable ($settings_o : Object) --> $password_t : Text A password of pronounceable syllables, in the shape macOS offers when it fills a password field: groups of six lowercase letters joined by hyphens, with exactly one character replaced by a digit and one letter capitalised. cydpin-rupxA0-cuhvux kajdy6-Qiptot-qabwot Each group is two consonant-vowel-consonant syllables. No word list is involved, which is the difference between this and a passphrase generator. The group count comes from maxLength rather than from a setting of its own: a group is seven characters with its hyphen, so the most that fit are used, and never fewer than two. The default range of 12 to 24 gives three groups and twenty characters, which is the macOS shape. Access: Private Parameters: $settings_o : Object : Settings, as returned by Fnd_Pswd_Settings Returns: $password_t : Text : The generated password
Fnd_Pswd_RandomBelowInternal
#DECLARE($upperBound_i : Integer)->$value_i : Integer
Project Method: Fnd_Pswd_RandomBelow ($upperBound_i : Integer) --> $value_i : Integer Returns a whole number from 0 up to but not including the bound, drawn from Generate UUID rather than Random, and free of modulo bias. Access: Private Parameters: $upperBound_i : Integer : One past the largest value wanted Returns: $value_i : Integer : A number from 0 to $upperBound_i - 1
Fnd_Pswd_SettingsInternal
#DECLARE($options_v : Variant)->$settings_o : Object
Project Method: Fnd_Pswd_Settings ({$options_v : Variant}) --> $settings_o : Object
The settings a generation should run under: the module's stored settings,
with anything the caller passed laid over the top.
The result is a plain copy, so nothing a caller passes can reach the shared
object. Call it with no parameter to read the stored settings as they are.
Access: Private
Parameters:
$options_v : Variant : An object of settings to override, or nothing (optional)
Returns:
$settings_o : Object : The merged settingsFnd_Pswd_StrengthShared
#DECLARE($password_t : Text; $options_v : Variant)->$strength_o : Object
Project Method: Fnd_Pswd_Strength ($password_t : Text {; $options_v : Variant}) --> Object
How much work guessing the password would be, given only its length and the
character classes it draws on.
```
$strength_o:=Fnd_Pswd_Strength("Tr0ub4dor&3")
$strength_o.bits --> 72.1
$strength_o.rating --> 3
```
rating runs 0 to 4 — very weak, weak, reasonable, strong, very strong — at
the customary boundaries of 28, 36, 60 and 128 bits. Pass rating through
Fnd_Gen_GetString("Fnd_Pswd"; "Strength"+String(rating)) for a localized name.
By default this counts the pool a guesser would have to search, which is an
upper bound rather than a judgement: it cannot know a password is a
dictionary word, and it badly overstates a pronounceable one, whose syllables
are far more constrained than its letters suggest.
So tell it what it is looking at when you know:
```
Fnd_Pswd_Strength($password_t; {type: Fnd_Pswd_TypePronounceable})
```
which counts the passwords that shape can actually produce instead — about
79 bits for the three-group default, against the 131 its characters imply.
Access: Shared
Parameters:
$password_t : Text : The password to weigh
$options_v : Variant : { type } — how it was generated, if known (optional)
Returns:
$strength_o : Object : { length ; poolSize ; bits ; rating }Fnd_Pswd_UseLowercaseShared
#DECLARE($inLowercase_b : Boolean)->$usesLowercase_b : Boolean
Project Method: Fnd_Pswd_UseLowercase ({use Lowercase?}) --> Boolean
Pass True to tell the password generator to use lowercase letters in passwords.
Returns the current setting.
Access: Shared
Parameters:
$inLowercase_b : Boolean : True to use lowercase letters (optional)
Returns:
$usesLowercase_b : Boolean : True if lowercase letters can be usedFnd_Pswd_UseNumbersShared
#DECLARE($inNumbers_b : Boolean)->$usesNumbers_b : Boolean
Project Method: Fnd_Pswd_UseNumbers ({use numbers?}) --> Boolean
Pass True to tell the password generator to use numbers in passwords.
Returns the current setting.
Access: Shared
Parameters:
$inNumbers_b : Boolean : True to use numbers (optional)
Returns:
$usesNumbers_b : Boolean : True if numbers can be usedFnd_Pswd_UseSymbolsShared
#DECLARE($inSymbols_b : Boolean)->$usesSymbols_b : Boolean
Project Method: Fnd_Pswd_UseSymbols ({use symbols?}) --> Boolean
Pass True to tell the password generator to use symbols in passwords.
Returns the current setting.
Access: Shared
Parameters:
$inSymbols_b : Boolean : True to use symbols (optional)
Returns:
$usesSymbols_b : Boolean : True if symbols can be usedFnd_Pswd_UseUppercaseShared
#DECLARE($inUppercase_b : Boolean)->$usesUppercase_b : Boolean
Project Method: Fnd_Pswd_UseUppercase ({use uppercase?}) --> Boolean
Pass True to tell the password generator to use uppercase letters in passwords.
Returns the current setting.
Access: Shared
Parameters:
$inUppercase_b : Boolean : True to use uppercase letters (optional)
Returns:
$usesUppercase_b : Boolean : True if uppercase letters can be usedFnd_Rec_AddItemShared
#DECLARE($inPosition_i : Integer; $label_t : Text; $method_t : Text; $inField_ptr : Pointer; $inFieldType_i : Integer)
Project Method: Fnd_Rec_AddItem (position; label; method{; ->field{; type}})
Called by the protected "Fnd_Rec_Add" routines to add stuff to the arrays.
If the label is blank, the field name will be used.
Access: Private
Parameters:
$inPosition_i : Position : The position
$label_t : Text : The label
$method_t : Text : The method
$inField_ptr : Pointer : The field (optional)
$inFieldType_i : Longint : The field's type (optional)
Returns: NothingFnd_Rec_AddTableShared
#DECLARE($inField_ptr : Pointer; $inPosition_i : Integer)
Project Method: Fnd_Rec_AddTable (->table{; position})
Loads the visible fields for the current form's table
into an array named Fnd_Rec_Fields_aptr.
Access: Private
Parameters:
$inField_ptr : Pointer : A pointer to the table to add
$inPosition_i : Longint : The position in which to add the item (optional)
Returns: NothingFnd_Rec_AddToSelectionShared
#DECLARE($recordNumber_i : Integer)
Project Method: Fnd_Rec_AddToSelection (record number) Adds the record to the current selection. Designed to be called from an output form. See Fnd_IO_FormMethod. Access: Shared Parameters: $recordNumber_i : Longint : Record number Returns: Nothing
Fnd_Rec_BestPopupSizeShared
#DECLARE($array_ptr : Pointer)->$bestPopupSize_i : Integer
Project Method: Fnd_Rec_BestPopupSize (->popup array) --> Number Returns the best object width to use for a pop-up menu form object. Access: Private Parameters: $array_ptr : Pointer : The array associated with the popup Returns: $bestPopupSize_i : Longint : The best object size for the pop-up
Fnd_Rec_DeleteUserSetShared
Project Method: Fnd_Rec_DeleteUserSet Deletes the highlighted records in the current selection (the "UserSet"). Asks the user first if they're sure the records should be deleted. Designed to be called from the Delete button on the toolbar or from a Delete menu item. Access: Shared Parameters: None Returns: Nothing
Fnd_Rec_GetExtraWidthShared
#DECLARE()->$extraWidth_i : Integer
Project Method: Fnd_Rec_GetExtraWidth --> Number Returns the extra width needed to display the Modify Records dialog so none of the text in the pop-up menus gets truncated. Lots of stuff is hard-coded here because we can't get it procedurally. :-( Access: Private Parameters: None Returns: $extraWidth_i : Longint : The extra width required
Fnd_Rec_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Rec_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Rec_InitInternal
Project Method: Fnd_Rec_Init Initializes both the process and interprocess variables used by the Fnd_Rec routines. Designed to be called at the beginning of any Protected routines to make sure the necessary variables are initialized. Access: Private Parameters: None Returns: Nothing
Fnd_Rec_LocalizeShared
Project Method: Fnd_Rec_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_Rec_ModifyShared
Project Method: Fnd_Rec_Modify Displays a dialog allowing the user to modify all of the records in the current selection. Access: Shared Parameters: None Returns: Nothing
Fnd_Rec_ModifyErrorHandlerShared
Project Method: Fnd_Rec_ModifyErrorHandler A method with no code, installed as the error handler for the Modify Records dialog. It never handled anything; it silenced. **Deprecated 2026-08-22. Call Fnd_Gen_SilentError instead.** The body was always empty, so the two methods were never different. This one served one ON ERR CALL site in Fnd_Rec_Modify. Access: Private Parameters: None Returns: Nothing
Fnd_Rec_NewRecordShared
#DECLARE($inTable_ptr : Pointer)
Project Method: Fnd_Rec_NewRecord ({->table})
Creates a new record for the current table.
Access: Shared
Parameters:
$inTable_ptr : Pointer : A pointer to the table to use (optional)
Returns: NothingFnd_Rec_OmitSubsetShared
Project Method: Fnd_Rec_OmitSubset Omits the highlighted records from the current selection. Access: Shared Parameters: None Returns: Nothing
Fnd_Rec_ShowAllShared
#DECLARE($inTable_ptr : Pointer)
Project Method: Fnd_Rec_ShowAll ({->table})
Updates the selection to include all records. If the Macintosh Option
key or Windows Alt key is down, the selection is reduced to no records.
Access: Shared
Parameters:
$inTable_ptr : Pointer : A pointer to the table to use (optional)
Returns: NothingFnd_Rec_ShowSubsetShared
Project Method: Fnd_Rec_ShowSubset Reduces the current selection to just the highlighted records. Access: Shared Parameters: None Returns: Nothing
Fnd_Rec_SizeArrayObjectShared
#DECLARE($object_ptr : Pointer; $alignment_i : Integer)->$diffWidth_i : Integer
Project Method: Fnd_Rec_SizeArrayObject (->object; alignment) --> Number Sets the best size for an array based form object based on the contents it displays. Rather than using BEST OBJECT SIZE, we calculate the size the same way we did before opening the dialog using the Fnd_Find_GetExtraWidth method. Access: Private Parameters: $object_ptr : Pointer : A pointer to the form object $alignment_i : Longint : The alignment (side not to move) Returns: $diffWidth_i : Longint : The increase in the button size
Fnd_RegG_FormatShared
#DECLARE($md5_t : Text; $inFormat_t : Text)->$format_t : Text
Project Method: Fnd_RegG_Format (MD5; format) --> Text
Returns an unlock code by formatting the MD5 value using the specified format.
The # characters in the format string are replaced by characters from the MD5.
This method is identical to Fnd_Reg_Format.
Example:
Input: ("35bf6fd6b73c1e29ac15a50316c4cc6c";"Test ###-##/###*")
Output: "Test 35b-f6/fd6*"
Access: Private
Parameters:
$md5_t : Text : An MD5 value
$inFormat_t : Text : A format description
Returns:
$format_t : Text : The formatted valueFnd_RegG_GenerateUnlockCodeShared
#DECLARE($secretKey_t : Text; $inFeatureCode_t : Text; $personalization_t : Text; $inLicenseInfo_t : Text; $inFormat_t : Text)->$unlockCode_t : Text
Project Method: Fnd_RegG_GenerateUnlockCode (secret key; feature code; user name; {license info{; format}}) --> Text
Returns a registration/unlock code based on the product number and user name.
Access: Shared
Parameters:
$secretKey_t : Text : The unique product secret key
$inFeatureCode_t : Text : The feature code
$personalization_t : Text : The user name
$inLicenseInfo_t : Text : The license information (optional)
$inFormat_t : Text : The unlock code format (optional)
Returns:
$unlockCode_t : Text : The unlock codeFnd_RegG_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_RegG_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo method
for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_RegG_InitInternal
Project Method: Fnd_RegG_Init Initializes both the process and interprocess variables used by the Fnd_RegG routines. Access: Private Parameters: None Returns: Nothing
Fnd_Reg_AlertShared
#DECLARE($message_t : Text)
Project Method: Fnd_Reg_Alert (message) Displays an alert message. Uses the Foundation Dialog module alert if available. Access: Private Parameters: $message_t : Text : The alert message text Returns: Nothing
Fnd_Reg_BuyNowButtonShared
Project Method: Fnd_Reg_BuyNowButton Gets called from the Buy Now buttons. Access: Shared Parameters: None Returns: Nothing
Fnd_Reg_BuyNowURLShared
#DECLARE($inFeatureCode_t : Text; $inUrl_t : Text)->$buyNowURL_t : Text
Project Method: Fnd_Reg_BuyNowURL ({feature code{; URL}}) --> Text
Allows the developer to get and set the URL to go to if the Buy Now button is clicked.
Access: Shared
Parameters:
$inFeatureCode_t : Text : A feaure code (optional)
$inUrl_t : Text : The URL (optional)
Returns:
$buyNowURL_t : Text : The URLFnd_Reg_DemoDaysShared
#DECLARE($inFeatureCode_t : Text; $inDays_i : Integer)->$days_i : Integer
Project Method: Fnd_Reg_DemoDays ({feature code{; days}}) --> Number
Allows the developer to set and get the number of demo days for the specified feature.
This routine does not modify the expiration date if it has already been set.
Access: Shared
Parameters:
$inFeatureCode_t : Text : Feature code (optional)
$inDays_i : Longint : The number of days (optional)
Returns:
$days_i : Longint : The number of daysFnd_Reg_DemoDialogShared
#DECLARE($inFeatureCode_t : Text)
Project Method: Fnd_Reg_DemoDialog ({feature code})
Displays the demo dialog if the feature is not registered.
Access: Shared
Parameters:
$inFeatureCode_t : Text : Feature code (optional)
Returns: NothingFnd_Reg_DemoDialogFormMethodShared
Project Method: Fnd_Reg_DemoDialogFormMethod We call this from a protected method because a public form can't call private methods. Access: Shared Parameters: None Returns: Nothing
Fnd_Reg_DemoMessageShared
#DECLARE($inFeatureCode_t : Text; $inMessage_t : Text)->$demoMessage_t : Text
Project Method: Fnd_Reg_DemoMessage ({feature code{; message}}) --> Text
Sets and gets the demo message for the specified feature code.
This text is displayed in the demo dialog.
This text can be localized, so it's not stored in the with the registration
record. If you want to use something other than the default values, you'll
need to call this method to set up the names before trying to retrieve them or
before displaying the registration dialogs.
Pass an empty string to revert to the default message (from the localization strings).
Access: Shared
Parameters:
$inFeatureCode_t : Text : The feature code (optional)
$inMessage_t : Text : The new demo message (optional)
Returns:
$demoMessage_t : Text : The current demo messageFnd_Reg_FeatureCodeIndexShared
#DECLARE($featureCode_t : Text)->$index_i : Integer
Project Method: Fnd_Reg_FeatureCodeIndex (feature code) --> Number Returns the index in the arrays for the specified feature code. If the feature code hasn't been added to the arrays yet it is created. Access: Private Parameters: $featureCode_t : Text : A feature code Returns: $index_i : Longint : The index in the arrays
Fnd_Reg_FeatureNameShared
#DECLARE($inFeatureCode_t : Text; $inFeatureName_t : Text)->$featureName_t : Text
Project Method: Fnd_Reg_FeatureName ({feature code{; feature name}}) --> Text
Sets and gets the feature name for the specified feature code.
This name is used in the registration dialogs.
These names can be localized, so they're not stored in the with the registration
information. If you want to use something other than the default values, you'll
need to call this method to set up the names before trying to retrieve them or
before displaying the registration dialogs.
The Application code returns the database name.
Other feature codes return "Feature: codename"
Access: Shared
Parameters:
$inFeatureCode_t : Text : The feature code (optional)
$inFeatureName_t : Text : The new feature name (optional)
Returns:
$featureName_t : Text : The current feature nameFnd_Reg_FormatShared
#DECLARE($md5_t : Text; $inFormat_t : Text)->$format_t : Text
Project Method: Fnd_Reg_Format (MD5; format) --> Text
Returns an unlock code by formatting the MD5 value using the specified format.
The # characters in the format string are replaced by characters from the MD5.
Example:
Input: ("35bf6fd6b73c1e29ac15a50316c4cc6c";"Test ###-##/###*")
Output: "Test 35b-f6/fd6*"
Access: Private
Parameters:
$md5_t : Text : An MD5 value
$inFormat_t : Text : A format description
Returns:
$format_t : Text : The formatted valueFnd_Reg_GetDemoDaysRemainingShared
#DECLARE($inFeatureCode_t : Text)->$days_i : Integer
Project Method: Fnd_Reg_GetDemoDaysRemaining ({feature code}) --> Number
Returns the number of days left in the demo. Calculated by adding
the number of demo days to the demo start date.
If the demo hasn't been started, the number of demo days is returned.
Access: Shared
Parameters:
$inFeatureCode_t : Text : The feature code (optional)
Returns:
$days_i : Longint : Days remainingFnd_Reg_GetExpirationDateShared
#DECLARE($inFeatureCode_t : Text)->$expirationDate_d : Date
Project Method: Fnd_Reg_GetExpirationDate ({feature code}) --> Date
Gets the feature's expiration date. This is calculated by adding the
number of demo days to the date the demo period was started.
If the demo hasn't been started, the number of demo days is
added to the current date, and the resulting date is returned.
Access: Shared
Parameters:
$inFeatureCode_t : Text : The feature code (optional)
Returns:
$expirationDate_d : Date : The expiration dateFnd_Reg_GetLicenseInfoShared
#DECLARE($inFeatureCode_t : Text)->$registeredUserName_t : Text
Project Method: Fnd_Reg_GetLicenseInfo ({feature code}) --> Text
Returns the name of the registered user. Returns an empty string
if the program hasn't been registered yet.
Access: Shared
Parameters:
$inFeatureCode_t : Text : The feature code (optional)
Returns:
$registeredUserName_t : Text : The name of the registered userFnd_Reg_GetUnlockCodeShared
#DECLARE($inFeatureCode_t : Text)->$unlockCode_t : Text
Project Method: Fnd_Reg_GetUnlockCode ({feature code}) --> Text
Returns the activation code that's been entered into the data file.
Returns an empty string if the program hasn't been registered yet.
Access: Private
Parameters:
$inFeatureCode_t : Text : The name of the feature in question (optional)
Returns:
$unlockCode_t : Text : The feature's unlock codeFnd_Reg_GetUserNameShared
#DECLARE($inFeatureCode_t : Text)->$registeredUserName_t : Text
Project Method: Fnd_Reg_GetUserName ({feature code}) --> Text
Returns the user name that has been saved in the registration record (if any).
Access: Shared
Parameters:
$inFeatureCode_t : Text : Feature name (optional)
Returns:
$registeredUserName_t : Text : The registered user's nameFnd_Reg_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Reg_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo method
for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Reg_InitInternal
Project Method: Fnd_Reg_Init Initializes both the process and interprocess variables used by the Fnd_Reg routines. Access: Private Parameters: None Returns: Nothing
Fnd_Reg_LoadRegistrationRecordShared
#DECLARE($inFeatureCode_t : Text)
Project Method: Fnd_Reg_LoadRegistrationRecord ({feature code})
Searches for the registration record for the specified feature. If one is found,
it is checked to make sure it hasn't been tampered with.
Access: Private
Parameters:
$inFeatureCode_t : Text : The feature code (optional)
Returns: NothingFnd_Reg_LocalizeShared
Project Method: Fnd_Reg_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_Reg_RegDialogFormMethodShared
Project Method: Fnd_Reg_RegDialogFormMethod We call this from a protected method because a public form can't call private methods. Access: Shared Parameters: None Returns: Nothing
Fnd_Reg_RegDialogOKButtonShared
Project Method: Fnd_Reg_RegDialogOKButton We call this from a protected method because a public form can't call private methods. Access: Shared Parameters: None Returns: Nothing
Fnd_Reg_RegisterShared
#DECLARE($inFeatureCode_t : Text; $inUnlockCode_t : Text; $userName_t : Text)
Project Method: Fnd_Reg_Register (feature code; unlock code; user name) Call to register the product. Sets the OK variable to 1 if the product gets registered. Sets the Error variable if there's a problem. This doesn't check to see if it's already been registered, so it can be called to change the registration at any time. But only does the update if the user name and unlock code are valid. Access: Private Parameters: $inFeatureCode_t : Text : The feature code $inUnlockCode_t : Text : Unlock code $userName_t : Text : User name Returns: Nothing
Fnd_Reg_RegistrationDialogShared
#DECLARE($inFeatureCode_t : Text)
Project Method: Fnd_Reg_RegistrationDialog ({feature code})
Displays the registration dialog. Works even if the product has been registered.
Sets the OK button if a valid registration number was entered.
Access: Shared
Parameters:
$inFeatureCode_t : Text : Feature code (optional)
Returns: NothingFnd_Reg_RegistrationStateShared
#DECLARE($inFeatureCode_t : Text)->$state_i : Integer
Project Method: Fnd_Reg_RegistrationState ({feature code}) --> Longint
Returns the current registration state.
It can be one of these constants:
Fnd_Reg_PreDemo
Fnd_Reg_Demo
Fnd_Reg_Expired
Fnd_Reg_Registered
Access: Shared
Parameters:
$inFeatureCode_t : Text : The feature code (optional)
Returns:
$state_i : Longint : The current registration stateFnd_Reg_ResetShared
#DECLARE($inFeatureCode_t : Text)
Project Method: Fnd_Reg_Reset ({feature code})
Clears out the start date and other information for the specified feature.
Access: Shared
Parameters:
$inFeatureCode_t : Text : The feature code (optional)
Returns: NothingFnd_Reg_SaveRecordShared
#DECLARE($secretKey_t : Text)
Project Method: Fnd_Reg_SaveRecord (product code) Saves the current [Fnd_Reg] record after first setting the Checksum field. Assumes the record is loaded in read/write mode. Leaves the record loaded. Use Fnd_Reg_VerifyRecord to verify the checksum. Access: Private Parameters: $secretKey_t : Text : The secret product code Returns: Nothing
Fnd_Reg_SaveRegistrationInfoShared
#DECLARE($inFeatureCode_t : Text; $userName_t : Text; $licenseInfo_t : Text; $unlockCode_t : Text)
Project Method: Fnd_Reg_SaveRegistrationInfo (feature name; personalization; license info; unlock code) Save's the specified info into a registration record. Doesn't check to make sure the activation code is valid. We'll assume whoever called us did that. Access: Private Parameters: $inFeatureCode_t : Text : Feature name $userName_t : Text : Personalization $licenseInfo_t : Text : License info $unlockCode_t : Text : Unlock code Returns: Nothing
Fnd_Reg_SetHostVarsShared
#DECLARE($hostFeatureName_ptr : Pointer; $hostMessage1_ptr : Pointer; $hostMessage2_ptr : Pointer; $hostCountDown_ptr : Pointer; $hostOKButton_ptr : Pointer; $hostRegisterButton_ptr : Pointer; $hostBuyNow_ptr : Pointer)
Project Method: Fnd_Reg_SetHostVars (->text; ->text; ->text; ->text; ->longint; ->longint; ->longint) Called by the Buy Now button method of the Fnd_Reg_DemoDialog form to pass some pointers to host variables to the component. Access: Shared Parameters: $hostFeatureName_ptr : Pointer : Host feature name $hostMessage1_ptr : Pointer : Host message 1 $hostMessage2_ptr : Pointer : Host message 2 $hostCountDown_ptr : Pointer : Host count down $hostOKButton_ptr : Pointer : Host OK button $hostRegisterButton_ptr : Pointer : Host Register button $hostBuyNow_ptr : Pointer : Host Buy Now button Returns: Nothing
Fnd_Reg_SetSecretKeyShared
#DECLARE($key_t : Text)
Project Method: Fnd_Reg_SetSecretKey (key) Allows the developer to set the secret key. For security reasons, there is no routine to get the secret key. Access: Shared Parameters: $key_t : Text : The secret key Returns: Nothing
Fnd_Reg_StartDemoPeriodShared
#DECLARE($inFeatureCode_t : Text)
Project Method: Fnd_Reg_StartDemoPeriod ({feature code})
Call this to begin the demo period. If the demo period has already
been started, this routine will do nothing.
Access: Shared
Parameters:
$inFeatureCode_t : Text : Feature code (optional)
Returns: NothingFnd_Reg_ValidateUnlockCodeShared
#DECLARE($secretKey_t : Text; $featureCode_t : Text; $personalization_t : Text; $licenseInfo_t : Text; $enteredUnlockCode_t : Text; $format_t : Text)->$valid_b : Boolean
Project Method: Fnd_Reg_ValidateUnlockCode (secret key; feature code; user name; license info; unlock code; format) --> Boolean Returns True if a valid unlock code was passed for the specified product number and user name. Strip any license info before calling. Access: Private Parameters: $secretKey_t : Text : The unique product secret key $featureCode_t : Text : The feature code $personalization_t : Text : The user name $licenseInfo_t : Text : The license information $enteredUnlockCode_t : Text : The user-entered unlock code $format_t : Text : The license code format string Returns: $valid_b : Boolean : True if the entered unlock code equals the generated unlock code
Fnd_Reg_VerifyRecordShared
Project Method: Fnd_Reg_VerifyRecord Makes sure the current [Fnd_Reg] record's Checksum field is correct. If not, the record is updated so that it is expired. Theoretically this will happen only if the user tampers with a [Fnd_Reg] record. Otherwise processing is allowed to continue uninterrupted. Assumes that there is exactly one record in the current selection. Fnd_Reg_SaveRecord is called to set the checksum. Access: Private Parameters: None Returns: Nothing
Fnd_Reltd_FindRelatedInternal
Project Method: Fnd_Reltd_FindRelated Looks at the relationship arrays (<>Fnd_Reltd_Many_ap & <>Fnd_Reltd_One_ap) generated from Fnd_Reltd_Init, and generates and displays a list of tables that are related to the current tablel, for which the current user has access. It then uses Relate Many Selection and/or Relate One Selection to retieve the desired result. Access: Private
Fnd_Reltd_GetManyKeysShared
#DECLARE($table_ptr : Pointer; $primaryKeysArray_ptr : Pointer)->$numberOfRelatedManyTables_i : Integer
Project Method: Fnd_Reltd_GetManyKeys (table pointer; array pointer) --> integer Fills array $2-> with the primary keys of related many tables to table $1-> Returns the number of related many associations for table $1-> Access: Shared Parameters: $table_ptr : Pointer : Table Pointer $primaryKeysArray_ptr : Pointer : Primary keys of related many tables Returns: $numberOfRelatedManyTables_i : Integer : the number of related many associations
Fnd_Reltd_GetOneKeysShared
#DECLARE($table_ptr : Pointer; $RelatedOneKeysArray_ptr : Pointer)->$numberOfRelatedOneTables_i : Integer
Project Method: Fnd_Reltd_GetOneKeys (table pointer; array pointer) --> integer Description Fills array $2-> with the foreign keys (source of related One relations) for table $1-> Returns the number of related one associations for table $1->. Access: Shared Parameters: $table_ptr : Pointer : Table Pointer $RelatedOneKeysArray_ptr : Pointer : Relating keys of related one tables Returns: $numberOfRelatedOneTables_i : Integer : the number of related one associations
Fnd_Reltd_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Reltd_Info (label) --> Text Returns requested information. See the Fnd_Gen_ComponentInfo method for more information. Access: Protected Parameters: $request_t : Text : Info desired Returns: $reply_t : Text : Response
Fnd_Reltd_InitInternal
Project Method: Fnd_Reltd_Init Initializes arrays used for storing relationships with other tables.. Access: Private
Fnd_Reltd_SetNameShared
#DECLARE($table_ptr : Pointer)->$setName_t : Text
Project Method: Fnd_Reltd_SetName (table pointer) --> text Returns the special Related Set Name for table ($1) Access: Shared Parameters: $table_ptr : pointer : Pointer to a table Returns: $setName_t : text : Set Name
Fnd_Reltd_ShowSetShared
#DECLARE($RelatedTable_ptr : Pointer; $SetToUse_t : Text)
Project Method: Fnd_Reltd_ShowSet (table Pointer {; Set Name to Use})
Create and show the proper related set for table $1
Use the current selection unless $2 is given.
Access: Shared
Parameters:
$RelatedTable_ptr : Pointer : Table pointer
$SetToUse_t : Text : A set name to useFnd_SVG_GetStringHeightShared
#DECLARE($inTxt_string : Text; $Txt_fontName : Text; $Lon_fontSize : Integer; $inLon_fonStyle : Integer)->$Lon_height : Real
Project Method: Fnd_SVG_GetStringHeight (text; font; size {; style}) --> height
Returns the height of text in pixels for the supplied font settings.
4D constants may be used for the style parameter.
Access: Shared
Parameters:
$inTxt_string : Text : The text to measure
$Txt_fontName : Text : The font used to display the text
$Lon_fontSize : Integer : The font size
$inLon_fonStyle : Integer : The font style (optional)
Returns:
$Lon_height : Real : The text height in pixelsFnd_SVG_GetStringWidthShared
#DECLARE($inTxt_string : Text; $Txt_fontName : Text; $Lon_fontSize : Integer; $inLon_fonStyle : Integer)->$Num_width : Real
Project Method: Fnd_SVG_GetStringWidth (text; font; size {; style}) --> width
Returns the width of text in pixels for the supplied font settings.
4D constants may be used for the style parameter.
Access: Shared
Parameters:
$inTxt_string : Text : The text to measure
$Txt_fontName : Text : The font used to display the text
$Lon_fontSize : Integer : The font size
$inLon_fonStyle : Integer : The font style (optional)
Returns:
$Num_width : Real : The text width in pixelsFnd_Shell_AdministrationShared
Project Method: Fnd_Shell_Administration Displays Foundation's Administration dialog. Access: Shared Parameters: None Returns: Nothing
Fnd_Shell_CommandWrapperShared
#DECLARE($commandToRun_t : Text; $par1_v : Variant; $par2_v : Variant; $par3_v : Variant)->$result_v : Variant
Project Method: Fnd_Shell_CommandWrapper ($commandToRun_t : Text{; $par1_v{; $par2_v{; $par3_v}}}) --> Variant
Calls a 4D command whose name has changed between versions, by number.
Command numbers are stable; their names are not. Command 254 is
"Get last table number" up to 20 LTS and "Last table number" from 20 R10,
and 33 commands were renamed between 20 and 21. A tokenised call is immune,
because 4D resolves it by number - but source written outside the IDE has no
token, so 4D must resolve it by name, and the wrong spelling becomes an
undeclared variable. Ask Command name for the current spelling instead.
Tokens are why existing calls survive, not luck - and that is a setting, not
a guarantee. Stored tokenless, every rename becomes a load-time name
resolution.
The table holds only what Foundation itself calls. A host's own command
usage is the host developer's to look after, not something to carry here.
Either spelling may be passed; both map to the same number. Foundation passes
the oldest one - "Get last table number", not "Last table number" - so that
the next rename lands in the table here and nowhere else.
Read the result into a local above the loop rather than calling per pass.
Every call builds the table below and compiles a formula.
```
Fnd_Shell_CommandWrapper("Get last table number") --> no parameters
Fnd_Shell_CommandWrapper("Get last field number"; $table) --> one, passed straight
Fnd_Shell_CommandWrapper($command; $a; $b; $c) --> up to three
Fnd_Shell_CommandWrapper($command; New collection($a; $b)) --> a collection is the list
```
Pass the parameters as they come. A collection in the second position is
taken as the whole parameter list, which is how to pass more than three -
so a command whose own first parameter is a collection cannot be wrapped.
None of the commands in the table below is such a command.
Only commands that return a value can be wrapped. An ALL-CAPS procedure
returning through output parameters - PROCESS PROPERTIES, MOUSE POSITION -
cannot be called this way. Build the call with Command name instead, as
Fnd_Date_CalendarEventHandler does.
Access: Shared
Parameters:
$commandToRun_t : Text : The command name, in any version's spelling
$par1_v : Variant : First parameter, or a collection holding all of them (optional)
$par2_v : Variant : Second parameter (optional)
$par3_v : Variant : Third parameter (optional)
Returns:
$result_v : Variant : Whatever the command returns, or Null if it is not known hereFnd_Shell_DocumentationShared
Project Method: Fnd_Shell_Documentation Displays Foundation 6 methods, class functions and the legacy reference manual. Access: Shared
Fnd_Shell_DoesMethodExistShared
#DECLARE($methodName_t : Text)->$methodExists_i : Integer
Project Method: Fnd_Shell_DoesMethodExist ($methodName_t) --> Longint Replaces call to the old plugin which was deprecated in V14 Access: Public Parameters: $methodName_t : Text : $methodName_t Returns: $methodExists_i : Longint : -> 1 if method exists
Fnd_Shell_ExcludeFromQuitShared
#DECLARE($processName_t : Text)
Project Method: Fnd_Shell_ExcludeFromQuit (process name) Tells Foundation not to worry about the specified process when trying to quit. Access: Shared Parameters: $processName_t : Text : The name of the process Returns: Nothing
Fnd_Shell_FindShared
Project Method: Fnd_Shell_Find Called from the Find menu bar item or toolbar item to display the Find dialog. Access: Shared Parameters: None Returns: Nothing
Fnd_Shell_GetFndObjectShared
#DECLARE()->$Fnd : Object
Project Method: Fnd_Shell_GetFndObject --> ReturnType Returns a copy of the Fnd object Access: Shared Returns: $Fnd : Object : The Fnd objects
Fnd_Shell_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Shell_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Sahred
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Shell_InitInternal
Project Method: Fnd_Shell_Init Initializes both the process and interprocess variables used by the Fnd_Shell routines. The Shell routines are designed for use only within the Foundation Shell. They have not been designed to be useful in other projects. Access: Private Parameters: None Returns: Nothing
Fnd_Shell_IsRunningShared
#DECLARE()->$isShellRunning_b : Boolean
Project Method: Fnd_Shell_IsRunning --> Boolean Returns True if the shell is running. Access: Shared Parameters: None Returns: $isShellRunning_b : Boolean : Is the shell running?
Fnd_Shell_LocalizeShared
Project Method: Fnd_Shell_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_Shell_MenuBarShared
#DECLARE($inInternally_i : Integer)
Project Method: Fnd_Shell_MenuBar A (hopefully) temporary method that asks the menu bar component to install the menu bar after a short delay. Must be run from a new process, but this method handles that. This is necessary because a menu bar can't be installed at startup with the first version of 4D v11 SQL. Access: Private Parameters: $inInternally_i : Longint : Used internally Returns: Nothing
Fnd_Shell_OnExitShared
Project Method: Fnd_Shell_OnExit Called from the shell's On Exit database method. Access: Shared Parameters: None Returns: Nothing
Fnd_Shell_OnStartupShared
Project Method: Fnd_Shell_OnStartup The startup routine for the Foundation Shell. Called from the On Startup database method. Access: Shared Parameters: None Returns: Nothing
Fnd_Shell_OpenTableAddShared
Project Method: Fnd_Shell_OpenTableAdd (->table{; ->table2...})
Adds the table(s) to the list of tables displayed in the Open Table dialog.
Tables are displayed in the order they are passed to this method.
Access: Shared
Parameters:
$1..$N : Pointer : The table to add
Returns: NothingFnd_Shell_OpenTableDialogShared
Project Method: Fnd_Shell_OpenTableDialog Displays a dialog with the names of all visible tables. If the user selects one it's displayed in a new window. Access: Shared Parameters: None Returns: Nothing
Fnd_Shell_PrintShared
Project Method: Fnd_Shell_Print Displays the list of printing options. Access: Shared Parameters: None Returns: Nothing
Fnd_Shell_ProcessNameShared
#DECLARE($processNumber_i : Integer)->$processName_t : Text
Project Method: Fnd_Shell_ProcessName ($processNumber_i : Integer) --> Text Returns the name of a process, or an empty string if there is no such process. An empty result is the test for "has it gone". Process info would answer this in one line but only from 20 R10, so the answer comes from Process activity, which every supported version has. Process number 0 is not addressable: 4D gives it to its own preemptive processes, several at once. Asking for it returns an empty string. Access: Shared Parameters: $processNumber_i : Integer : The process number to look up Returns: $processName_t : Text : The process name, or "" if it is not running
Fnd_Shell_QuitAllProcessesShared
#DECLARE()->$completed_b : Boolean
Project Method: Fnd_Shell_QuitAllProcesses --> Boolean Attempts to end all processes (except for 4D's) by bugging them until they end. Assumes they call the Fnd_Gen_QuitNow method to see if they're supposed to end. Doesn't try to end the current process. This method will give up (and return False) if any process cancels the Quit attempt or if the timeout value is reached. Access: Private Parameters: None Returns: $completed_b : Boolean : True if all process ended as expected
Fnd_Shell_QuitterShared
Project Method: Fnd_Shell_Quitter This process tries to tell all of the other processes to quit. Called as a new process from Fnd_Gen_QuitNow. Access: Shared Parameters: None Returns: Nothing
Fnd_Shell_SelectTableShared
#DECLARE()->$table_ptr : Pointer
Project Method: Fnd_Shell_SelectTable --> Pointer Displays a choice list of available tables. Returns a pointer to the selected table (if any). Sets the OK variable to 1 if a table is selected. Access: Private Parameters: None Returns: $table_ptr : Pointer : A pointer to the selected table
Fnd_Shell_Show4DSplashScreenShared
Project Method: Fnd_Shell_Show4DSplashScreen Allows the developer to display the 4D splash screen so the database can be used in the User environment. Access: Shared Parameters: None Returns: Nothing
Fnd_Shell_ShowAllShared
Project Method: Fnd_Shell_ShowAll Called from the Show All menu bar item or toolbar item. Access: Shared Parameters: None Returns: Nothing
Fnd_Shell_SortShared
Project Method: Fnd_Shell_Sort Called from the Sort menu bar item or toolbar item to display the Sort dialog. Access: Shared Parameters: None Returns: Nothing
Fnd_Shell_SpecialFunctionsShared
Project Method: Fnd_Shell_SpecialFunctions Displays Foundation's Special Functions dialog. Access: Shared Parameters: None Returns: Nothing
Fnd_Shell_StorageShared
#DECLARE()->$storage_t : Text
Project Method: Fnd_Shell_Storage -> $storage_t A developer utility to read the satate of Foundation Access: Private Parameters: None Returns: $storage_t : Text : The current state of the Storage.Fnd shared object Wayne Stewart (Claude Opus 5) 2026-08-11 - Header added; the body is unchanged
Fnd_Shell_WriteCommentsShared
#DECLARE($inMethodName_t : Text; $inDoNotUse_i : Integer)
Project Method: Fnd_Shell_WriteComments {(Method Name; Do not use)}
This method will create documentation comments
it is based on the assumption that you format your
method header comments in the same manner as Foundation
The second paramater is just used to trigger the method
starting in a new process, you should not pass anything in this parameter
Access: Shared
Parameters:
$inMethodName_t : Text : Either pass
(a) "" - All methods (or don't pass any parameters)
(b) "Prefix" - Only methods which match a prefix (Eg. Fnd_Art)
(c) "Specific method name" - write comments for that method
$inDoNotUse_i : Longint : Do not use thisFnd_Sort_AddFieldShared
#DECLARE($field_ptr : Pointer; $inPosition_i : Integer)
Project Method: Fnd_Sort_AddField (->field{; position})
Lets the developer add a field to the Sort dialog. If a position isn't
specified, the field is added to the end of the list.
Access: Shared
Parameters:
$field_ptr : Pointer : A pointer to the field to add
$inPosition_i : Longint : The position in which to add the item (optional)
Returns: NothingFnd_Sort_AddItemShared
#DECLARE($inPosition_i : Integer; $inFieldName_t : Text; $method_t : Text; $inField_ptr : Pointer; $inFieldType_i : Integer)
Project Method: Fnd_Sort_AddItem (position; label; method{; ->field{; type}})
Called by the protected "Fnd_Sort_Add" routines to add stuff to the arrays.
If the label is blank, the field name will be used.
Access: Private
Parameters:
$inPosition_i : Position : The position
$inFieldName_t : Text : The label
$method_t : Text : The method
$inField_ptr : Pointer : The field (optional)
$inFieldType_i : Longint : The field's type (optional)
Returns: NothingFnd_Sort_AddSeparatorShared
#DECLARE($inPosition_i : Integer)
Project Method: Fnd_Sort_AddSeparator ({position})
Adds a separator line to the list of sortable fields.
Access: Shared
Parameters:
$inPosition_i : Longint : Position of the separator (optional)
Returns: NothingFnd_Sort_AddTableShared
#DECLARE($table_ptr : Pointer; $inPosition_i : Integer)
Project Method: Fnd_Sort_AddTable (->table{; position})
Loads the visible, sortable fields for the specified table
into an array named Fnd_Sort_Fields_aptr.
Access: Shared
Parameters:
$table_ptr : Pointer : A pointer to the table to add
$inPosition_i : Longint : The position in which to add the item (optional)
Returns: NothingFnd_Sort_DirectionShared
#DECLARE($desiredDirection_i : Integer)->$sortDirection_i : Integer
Project Method: Fnd_Sort_Direction ({direction}) --> Longint
Allows the developer to set or get the currently selected sort direction.
If a valid direction is specified, this routine will make it the default direction.
Access: Shared
Parameters:
$desiredDirection_i : Longint : The desired sort direction (optional)
1 = ascending
-1 = descending
Returns:
$sortDirection_i : Longint : The current sort directionFnd_Sort_DisplayShared
#DECLARE($inPointerTable_ptr : Pointer)
Project Method: Fnd_Sort_Display ({->table})
Displays the simple Sort dialog. If the Macintosh Option key or Windows Alt
key is down, 4D's Order By editor is displayed instead.
Access: Shared
Parameters:
$inPointerTable_ptr : Pointer : A pointer to the table to use (optional)
Returns: NothingFnd_Sort_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Sort_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Sort_InitInternal
Project Method: Fnd_Sort_Init Initializes both the process and interprocess variables used by the Fnd_Sort routines. Access: Private Parameters: None Returns: Nothing
Fnd_Sort_LocalizeShared
Project Method: Fnd_Sort_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_Sort_OrderByEditorShared
Project Method: Fnd_Sort_OrderByEditor Displays the simple Sort dialog. If the Macintosh Option key or Windows Alt key is down, 4D's Order By editor is displayed instead. Access: Shared Parameters: None Returns: Nothing
Fnd_Sort_PrefsGetShared
#DECLARE($prefName_t : Text)->$prefValue_t : Text
Project Method: Fnd_Sort_PrefsGet (pref name) --> Text Gets a value from the user preferences if the Fnd_Pref component is available. Access: Private Parameters: $prefName_t : Text : The preference name Returns: $prefValue_t : Text : The saved value
Fnd_Sort_PrefsPutShared
#DECLARE($prefName_t : Text; $textValue_t : Text)
Project Method: Fnd_Sort_PrefsPut (pref name; text value) Adds an item to the user's preferences if the Fnd_Pref component is available. Access: Private Parameters: $prefName_t : Text : The preference name $textValue_t : Text : The value to store Returns: Nothing
Fnd_Sort_SelectedFieldShared
#DECLARE($desiredField_ptr : Pointer)->$selectedField_ptr : Pointer
Project Method: Fnd_Sort_SelectedField ({->field}) --> Pointer
Allows the developer to set or get the currently selected sort field.
If a field pointer is specified, this routine will make it the default selection
if it's available in the list. If not, nothing changes.
Access: Shared
Parameters:
$desiredField_ptr : Pointer : The field to default to (optional)
Returns:
$selectedField_ptr : Pointer : The selected sort fieldFnd_SqNo_CreateTableShared
Project Method: Fnd_SqNo_CreateTable Creates the Access: Private
Fnd_SqNo_DistributorShared
Project Method: Fnd_SqNo_Distributor Launched as a new process from Fnd_SqNo_Get to get sequence numbers. Sequence numbers must be gotten from a new process for any process currently in a transaction. Access: Private Parameters: None Returns: Nothing
Fnd_SqNo_EditGroupShared
#DECLARE($id_i : Integer)
Project Method: Fnd_SqNo_EditGroup (record ID) Displays a dialog for editing the specified sequence number group. Access: Private Parameters: $id_i : Longint : A sequence number ID Returns: Nothing
Fnd_SqNo_EditorShared
Project Method: Fnd_SqNo_Editor Displays the Sequence Number Editor dialog. Access: Shared Parameters: None Returns: Nothing
Fnd_SqNo_EnableShared
#DECLARE($groupName_t : Text; $inStartNumber_i : Integer)
Project Method: Fnd_SqNo_Enable (group name{; start number})
Creates the sequence number group if it doesn't already exist. Optionally starts
the numbering at the specified number. Otherwise it starts at 1.
The new group will be editable by the database administrator.
Doesn't change the [Fnd_SqNo] table's read/write state.
Access: Shared
Parameters:
$groupName_t : Text : The group name
$inStartNumber_i : Longint : The starting number (optional)
Returns: NothingFnd_SqNo_FixShared
#DECLARE($tablePtr : Pointer)
Project Method: Fnd_SqNo_Fix (->table) Fixeds the next number for the tables ID field by finding the highest number used so far and adding one to it. Access: Shared Parameters: $tablePtr : Pointer : A pointer to the table to fix Returns: Nothing
Fnd_SqNo_GetShared
#DECLARE($groupName_t : Text)->$newSeqNo_i : Integer
Project Method: Fnd_SqNo_Get (sequence number group name) --> Number Returns the next available sequence number for the specified group. If the group doesn't already exist, it is created and 1 is returned as the first number. Access: Shared Parameters: $groupName_t : Text : The group name Returns: $newSeqNo_i : Longint : The next number in the sequence
Fnd_SqNo_Get2Shared
#DECLARE($groupName_t : Text)->$seqNo_i : Integer
Project Method: Fnd_SqNo_Get2 (group name) --> Number Called by Fnd_SqNo_Get2 to get a sequence number. Access: Private Parameters: $groupName_t : Text : The group name Returns: $seqNo_i : Longint : The next number in the sequence
Fnd_SqNo_GetManyShared
#DECLARE($groupName_t : Text; $count_i : Integer; $numbers_ptr : Pointer)
Project Method: Fnd_SqNo_GetMany (group name; how many; ->longint array) Returns multiple sequence numbers for the specified group. If the group doesn't already exist, it is created. Access: Shared Parameters: $groupName_t : Text : The group name $count_i : Longint : The number of numbers to return $numbers_ptr : Pointer : A longint array to receive the numbers Returns: Nothing
Fnd_SqNo_GetMany2Shared
#DECLARE($groupName_t : Text; $numbers_ptr : Pointer)
Project Method: Fnd_SqNo_GetMany2 (group name; ->longint array) Just like Fnd_SqNo_Get2, but grabs multiple numbers. Determines how many numbers to get by the size of the array. Assumes element 1 was filled elsewhere, and starts with element 2. Access: Private Parameters: $groupName_t : Text : The group name $numbers_ptr : Pointer : A longint array to receive the numbers Returns: Nothing
Fnd_SqNo_IDFieldPtrShared
#DECLARE($table_ptr : Pointer)->$keyField_ptr : Pointer
Project Method: Fnd_SqNo_IDFieldPtr (->table) --> Pointer Returns a pointer to the specified table's ID field. Displays a bug alert if no ID field is found or specified by the hook. Access: Private Parameters: $table_ptr : Pointer : The table in question. Returns: $keyField_ptr : Pointer : A pointer to the table's key field
Fnd_SqNo_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_SqNo_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_SqNo_InitInternal
Project Method: Fnd_SqNo_Init Initializes both the process and interprocess variables used by the Foundation Sequence Number routines. Access: Private Parameters: None Returns: Nothing
Fnd_SqNo_IsInDesignGroupShared
#DECLARE()->$isDesigner_b : Boolean
Project Method: Fnd_SqNo_IsInDesignGroup --> Boolean Returns True if the current user is the Designer or in a group with a name that implies he's a designer. Access: Private Parameters: None Returns: $isDesigner_b : Boolean : True if the user is a Designer
Fnd_SqNo_LoadGroupRecordShared
#DECLARE($groupName_t : Text)
Project Method: Fnd_SqNo_LoadGroupRecord (group name) Called from Fnd_SqNo_Get2 and Fnd_SqNo_GetMany2 to load the specified group record. Creates it if it doesn't exist. Access: Private Parameters: $groupName_t : Text : The group name Returns: Nothing
Fnd_SqNo_LocalizeShared
Project Method: Fnd_SqNo_Localize Passed the localization strings to the General and (if available) Localization components. Access: Private Parameters: None Returns: Nothing
Fnd_SqNo_PutShared
#DECLARE($seqNoName : Text; $seqNo : Integer)
Project Method: Fnd_SqNo_Put (sequence number group name; number to return) Call this method to return a number to the specified sequence number group. If the number is higher than the current next number, it will be ignored. It will also be ignored if it's already in the list of numbers to reuse, or if the group name doesn't already exist. This method always starts a new process to return the sequence number so the calling process doesn't have to wait for it to finish. Access: Shared Parameters: $seqNoName : Text : The group name $seqNoName : Longint : The number to reuse Returns: Nothing
Fnd_SqNo_Put2Shared
#DECLARE($seqNoName : Text; $seqNo : Integer)
Project Method: Fnd_SqNo_Put2 (sequence number group name; number to return) Called as a new process from Fnd_SqNo_Put to put a number back into the sequence number group. Access: Private Parameters: $seqNoName : Text : The group name $seqNo : Longint : The number to reuse Returns: Nothing
Fnd_SqNo_SetShared
#DECLARE($groupName_t : Text; $nextSeqNo_i : Integer)
Project Method: Fnd_SqNo_Set (sequence number group name; next number) This routine sets the next number in the sequence, and clears out any numbers in the reuse Sets the OK variable to 1 if successful. Access: Shared Parameters: $groupName_t : Text : The group name $nextSeqNo_i : Longint : The new next number in the sequence Returns: Nothing
Fnd_SqNo_SetRecordIDShared
#DECLARE($inTable_ptr : Pointer)
Project Method: Fnd_SqNo_SetRecordID ({->table})
Assigns a sequential number to the specified table's ID field. Assumes the number
will not be seen by the end user, so the number can't be returned for reuse.
If no table is specified, either the current form table or the trigger table will be used.
Access: Shared
Parameters:
$inTable_ptr : Pointer : A pointer to the table for which to return a number (optional)
Returns: NothingFnd_SqNo_TableNameShared
#DECLARE($table_ptr : Pointer)->$tableName_t : Text
Project Method: Fnd_SqNo_TableName (->table) --> Text Returns the virtual table name if the Fnd_VS component is available. Otherwise the 4D table name is returned. Access: Private Parameters: $table_ptr : Pointer : A table Returns: $tableName_t : Text : The table name to display
Fnd_SqNo_TableSeqNoNameShared
#DECLARE($tablePointer_ptr : Pointer)->$seqNoName_t : Text
Project Method: Fnd_SqNo_TableSeqNoName (->table) --> Text Returns the group name for the table's key field sequence number. Access: Private Parameters: $tablePointer_ptr : Pointer : A table pointer Returns: $seqNoName_t : Text : The name of the sequence number group
Fnd_Tbl_CreateAccessArrayInternal
Project Method: Fnd_Tbl_CreateAccessArray Build the <>Fnd_Tbl_UserCanAccess_ab array. This array stores whether a person can display the various tables. Create/modify the Fnd_Hook_Tbl_UserCanDisplay method in the host database to return whether or not the user can display its $1-> table. This should be run on shell initialization or when new user signs in. It is used by Fnd_Reltd methods, but it could also be used by Fnd_Hook_Shell_OpenTable as a way of consolidating authorization to tables. Access: Private
Fnd_Tbl_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Tbl_Info (label) --> Text Returns requested information. See the Fnd_Gen_ComponentInfo method for more information. Access: Protected Parameters: $request_t : Text : Info desired Returns: $reply_t : Text : Response
Fnd_Tbl_InitInternal
Project Method: Fnd_Tbl_Init Initializes both the process and interprocess variables used by the Fnd_Tbl routines. Method Type: Protected Access: Private
Fnd_Tbl_UserCanAccessShared
#DECLARE($table_ptr : Pointer)->$mayAccess_b : Boolean
Project Method: Fnd_Tbl_UserCanAccess (table pointer) --> boolean Returns TRUE if the current user can access table $1-> Access: Shared Parameters: $table_ptr : Pointer : Table pointer Returns: $mayAccess_b : Type : Description
Fnd_Test_AssertInternal
#DECLARE($ok_b : Boolean; $message_t : Text)
Project Method: Fnd_Test_Assert ($ok_b : Boolean; $message_t : Text) Records one assertion and writes it to the Fnd_Test log. Use in Fnd_Test_ methods in place of ASSERT. Nothing interactive happens, so a test behaves the same run from the IDE or headlessly under Fnd_FCS_TestRunner. Results are read from the log, or from testResults.json when the runner wrote them. Access: Private Parameters: $ok_b : Boolean : The condition being asserted $message_t : Text : What was expected, and what was found Returns: Nothing
Fnd_Test_EndInternal
Project Method: Fnd_Test_End Closes a test method and writes the tally to the Fnd_Test log. Call it as the last line of every Fnd_Test_ method. Access: Private Parameters: None Returns: Nothing
Fnd_Test_PackParametersInternal
Project Method: Fnd_Test_PackParameters Unit tests for Fnd_Msg_PackParameters, the variadic method that can be exercised without a form. Run from the IDE, or headlessly through Fnd_FCS_TestRunner. Access: Private Parameters: None Returns: Nothing
Fnd_Test_VersionCapabilitiesInternal
Project Method: Fnd_Test_VersionCapabilities Unit tests for Fnd_FCS_VersionCapabilities. Run from the IDE, or headlessly through Fnd_FCS_TestRunner. Access: Private Parameters: None Returns: Nothing
Fnd_Text_Base64ToTextShared
#DECLARE($textToDecode_t : Text)->$decodedText_t : Text
Project Method: Fnd_Text_Base64ToText (text) --> Text Converts the Base64 encoded text back to ASCII text. Access: Shared Parameters: $textToDecode_t : Text : The text to decode Returns: $decodedText_t : Text : The decoded text
Fnd_Text_CapitalizeShared
#DECLARE($theText_t : Text; $options_i : Integer)->$theResult_t : Text
Project Method: Fnd_Text_Capitalize (text{; style}) --> Text
Modifies the capitalization of the text value. The options paramter
determines how the text will be modified. If no second parameter
is passed, Book Title capitalization is applied.
Access: Shared
Parameters:
$theText_t : Text : The text to format
$options_i : Longint : Style (optional)
1 = Use Sentence Style capitalization (not yet implemented)
2 = Don't use exclude word list
Returns:
$theResult_t : Text : The formatted textFnd_Text_CapitalizeExcludeShared
#DECLARE($excludeWordsArray_ptr : Pointer)
Project Method: Fnd_Text_CapitalizeExclude (->exclude array) Use this method to specify or determine the words that will not be capitalized using the Fnd_Text_Capitalize method. To get a list of words that will be excluded from capitalization, pass an empty text array. To set the words to exclude from the capitalization routine, pass an array with at least one element. To clear the list of words to exclude from the capitalization routines, pass an array with one element consisting of a blank string. Access: Shared Parameters: $excludeWordsArray_ptr : Pointer : Text array of words to exclude Returns: Nothing
Fnd_Text_DecodeBase64BlobShared
#DECLARE($pPassedBlob : Pointer)
Project Method: Fnd_Text_DecodeBase64Blob (->blob) Converts the blob from Base64 back to the bytes it encodes. Whitespace inside the encoded text is ignored, so text produced by Fnd_Text_EncodeBase64Blob decodes whatever line breaks it was wrapped with. Access: Shared Parameters: $pPassedBlob : Pointer : A pointer to a blob Returns: Nothing
Fnd_Text_EncodeBase64BlobShared
#DECLARE($pPassedBlob : Pointer; $inBInsertLineBr : Boolean; $inEOL_t : Text)
Project Method: Fnd_Text_EncodeBase64Blob (->blob{; line breaks?{; line break character(s)}})
Converts the blob to Base64, in place.
Line breaks are inserted after every 76 characters unless the second
parameter says otherwise.
Access: Shared
Parameters:
$pPassedBlob : Pointer : A pointer to the blob to encode
$inBInsertLineBr : Boolean : Insert line breaks every 76 characters (optional, default True)
$inEOL_t : Text : The line break characters (optional, default a carriage return)
Returns: NothingFnd_Text_EqualStringsShared
#DECLARE($StringOne_t : Text; $StringTwo_t : Text)->$Equal_b : Boolean
Project Method: Fnd_Text_EqualStrings (String1; String2) --> Boolean Compares two strings in the most efficient manner Access: Shared Parameters: $StringOne_t : Text : String1 $StringTwo_t : Text : String2 Returns: $Equal_b : Boolean : True if the strings are identical
Fnd_Text_FormatNumberShared
#DECLARE($theNumberToFormat_t : Text; $theFormatToUse_t : Text)->$theResult_t : Text
Project Method: Fnd_Text_FormatNumber (string, format) --> Text Formats a numeric string (like a zip code or phone number). Removes any dashes, "E"s, periods, etc. before formatting. Access: Shared Parameters: $theNumberToFormat_t : Text : The number as text $theFormatToUse_t : Text : The format to use Returns: $theResult_t : Text : The formatted number
Fnd_Text_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Text_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Text_InitInternal
Project Method: Fnd_Text_Init Initializes the state used by the text routines. Every Fnd_Text method calls it, so it runs often and is safe to repeat. Access: Private Parameters: None Returns: Nothing
Fnd_Text_MD5EncodingShared
#DECLARE($inCharset_t : Text)->$charset_t : Text
Project Method: Fnd_Text_MD5Encoding ({charset}) --> Text
Sets the charset Fnd_Text_TextToMD5 converts text through before hashing it,
for every subsequent call that does not name one itself.
Returns the charset currently in force.
The default is "ISO-8859-1". Call this once at startup to change it:
```
Fnd_Text_MD5Encoding("UTF-8")
```
ASCII hashes the same under either, so this only affects text carrying
characters above 127. Changing it invalidates any stored digest of such text.
The setting is shared, so it applies to every process in the host.
Access: Shared
Parameters:
$inCharset_t : Text : The charset name, as CONVERT FROM TEXT understands it (optional)
Returns:
$charset_t : Text : The charset now in forceFnd_Text_PadSpacesShared
#DECLARE($inText_t : Text; $length_t : Integer)->$text_t : Text
Project Method: Fnd_Text_PadSpaces (text; length) Pads the passed text with spaces. If the length of the text is greater than the length paramter, it will be truncated. Access: Shared Parameters: $inText_t : Text : The text to pad $length_t : Longint : The desired length Returns: $text_t : Text : The modified text
Fnd_Text_StripSpacesShared
#DECLARE($inTheText_t : Text; $inOptions_i : Integer; $inAltSpaces_t : Text)->$theText_t : Text
Project Method: Fnd_Text_StripSpaces (text{; options{; altSpaces}}) --> Text
Strips spaces from the text that is passed to it.
If no second parameter is passed, leading and trailing spaces
are stripped from the text.
Add these values together to specify which spaces to strip:
1 + 2 = 3 to strip leading and trailing spaces
1 + 4 = 5 to strip leading and double spaces
etc.
A third optional parameter allows you to specify alternatives or multiples:
" " - normal behaviour
char(9) - strip tabs
" "+char(9) - strip spaces and tabs
" "+char(9)+char(160) - and non-breaking spaces
Leading and trailing runs may mix the characters in any order.
Matching is strict, so a character is stripped only if it is listed..
Access: Shared
Parameters:
$inTheText_t : Text : The text from which to strip spaces
$inOptions_i : Longint : Options (optional)
1 = Remove leading spaces
2 = Remove trailing spaces
4 = Remove double spaces within the text
$inAltSpaces_t : Text : Alternatives to spaces (optional)
Returns:
$theText_t : Text : The text with spaces strippedFnd_Text_TextToBase64Shared
#DECLARE($textToEncode_t : Text)->$theEncodedText_t : Text
Project Method: Fnd_Text_TextToBase64 (text) --> Text Converts the text to Base64. Access: Shared Parameters: $textToEncode_t : Text : The text to encode Returns: $theEncodedText_t : Text : The encoded text
Fnd_Text_TextToMD5Shared
#DECLARE($textToMD5Digest_t : Text; $inCharset_t : Text)->$theMD5Digest_t : Text
Project Method: Fnd_Text_TextToMD5 (text{; charset}) --> Text
Generates and returns a MD5 message digest based on the text.
The default charset is ISO-8859-1. Pass a charset name to hash through a
different one, or call Fnd_Text_MD5Encoding once to change the default for
every subsequent call.
```
Fnd_Text_TextToMD5("abc") --> 900150983cd24fb0d6963f7d28e17f72
Fnd_Text_TextToMD5($text; "UTF-8") --> hashed as UTF-8 instead
Fnd_Text_MD5Encoding("UTF-8") --> every later call uses UTF-8
```
Access: Shared
Parameters:
$textToMD5Digest_t : Text : The text from which to create the message digest
$inCharset_t : Text : Charset to convert the text through (optional)
Returns:
$theMD5Digest_t : Text : The message digestFnd_Text_TrimShared
#DECLARE($inTheText_t : Text)->$theText_t : Text
Project Method: Fnd_Text_Trim (text) --> Text Strips native Trim whitespace from both ends of text: space, tab, LF, CR, vertical tab and form feed. Non-breaking space is deliberately excluded. Access: Shared Parameters: $inTheText_t : Text : The text to trim Returns: $theText_t : Text : The trimmed text
Fnd_Text_WrapShared
#DECLARE($inRemainingText_t : Text; $lineLength_i : Integer)->$wrappedText_t : Text
Project Method: Fnd_Text_Wrap (text; max line length) --> Text Wraps the text into lines of at most the given length, joined by carriage returns. The length is a character count, not a pixel width. Lines break at the last space that fits. A run with no space in it breaks hard at the limit, and a carriage return already in the text ends its line where it stands. Access: Shared Parameters: $inRemainingText_t : Text : The text to wrap $lineLength_i : Longint : Max line length of wrapped text Returns: $wrappedText_t : Text : The wrapped text Routine by Marco Bernasconi <mbernasconi@befund.com>
Fnd_Tlbr_Button_AddShared
#DECLARE($buttonName_t : Text; $buttonLabel_t : Text; $iconName_t : Text; $method_t : Text; $shortcut_t : Text)
Project Method: Fnd_Tlbr_Button_Add (name; buttonText; iconName; method{; keystroke})
Adds a new button to the toolbar.
Access: Shared
Parameters:
$buttonName_t : Text : A unique name for the button object
$buttonLabel_t : Text : The button label
$iconName_t : Text : A Picture Library name for the icon
$method_t : Text : The method to run when clicked
$shortcut_t : Text : The Command/Ctrl keyboard equivalent (optional)
Returns: NothingFnd_Tlbr_Button_CountShared
#DECLARE() : Integer
Project Method: Fnd_Tlbr_Button_Count --> Longint Returns the number of buttons in the toolbar Access: Shared Parameters: None Returns: $0 : Longint : Count
Fnd_Tlbr_Button_EnabledShared
#DECLARE($objectName_t : Text; $enabled_b : Boolean)
Project Method: Fnd_Tlbr_Button_Enabled (buttonName; state) Set the enabled state of the toolbar item. Access: Shared Parameters: $objectName_t : Text : The button name to modify $enabled_b : Boolean : True to enable the button Returns: Nothing
Fnd_Tlbr_Button_IconShared
#DECLARE($buttonName_t : Text; $iconName_t : Text) : Text
Project Method: Fnd_Tlbr_Button_Icon (button name{; icon name}) --> Text
Call this method to specify the name of a picture library image to
use as the button's icon.
Access: Shared
Parameters:
$buttonName_t : Text : The name of the button to modify
$iconName_t : Text : The name of the picture to use as the icon (optional)
Returns:
$0 : Text : The name of the button's iconFnd_Tlbr_Button_InsertShared
#DECLARE($beforeButton_t : Text; $buttonName_t : Text; $buttonLabel_t : Text; $iconName_t : Text; $method_t : Text; $shortcut_t : Text)
Project Method: Fnd_Tlbr_Button_Insert (beforeButton; name; buttonText; iconName; method{; keystroke})
Inserts a new button to the toolbar.
Access: Shared
Parameters:
$beforeButton_t : Text : The button in the position to insert the new button
$buttonName_t : Text : A unique name for the button object
$buttonLabel_t : Text : The button label
$iconName_t : Text : A Picture Library name for the icon
$method_t : Text : The method to run when clicked
$shortcut_t : Text : The Command/Ctrl keyboard equivalent (optional)
Returns:
NothingFnd_Tlbr_Button_LabelShared
#DECLARE($objectName_t : Text; $label_t : Text) : Text
Project Method: Fnd_Tlbr_Button_Label (button name{; label}) --> Text
Returns the label for the button with the specified name.
If a label is passed, this method first sets the button label.
Access: Shared
Parameters:
$objectName_t : Text : The button name
$label_t : Text : The new button label (optional)
Returns:
$0 : Text : The button labelFnd_Tlbr_Button_MenuShared
#DECLARE($buttonName_t : Text; $menuItems_ptr : Pointer)
Project Method: Fnd_Tlbr_Button_Menu (button name; ->menu items array) Adds a menu to the specified button. Access: Shared Parameters: $buttonName_t : Text : The button name $menuItems_ptr : Pointer : Array of menu items Returns: Nothing
Fnd_Tlbr_Button_MethodShared
#DECLARE($buttonName_t : Text; $methodName_t : Text) : Text
Project Method: Fnd_Tlbr_Button_Method (button name{; method name}) --> Text
Call this method to specify the name of the method to call when the button is clicked.
Access: Shared
Parameters:
$buttonName_t : Text : The name of the button to modify
$methodName_t : Text : The name of the method to call (optional)
Returns:
$0 : Text : The name of the method called by the button
Toolbar Component - © mitchenall.com 2002Fnd_Tlbr_Button_NameShared
#DECLARE($index_i : Integer)->$buttonName_t : Text
Project Method: Fnd_Tlbr_Button_Name (index) --> name Returns the name of the nth button in the toolbar. Access: Shared Parameters: $index_i : Index :The index number of the buttton (1 - count) Returns: $buttonName_t : Text : Button name
Fnd_Tlbr_Button_OnClickedShared
#DECLARE($buttonClicked_ptr : Pointer; $buttonVariableName_t : Text)
Project Method: Fnd_Tlbr_Button_OnClicked (->form button object)
Called whenever a button is clicked. Each button in the toolbar has the
following script for their On Clicked event....
Fnd_Tlbr_Button_OnClicked (Self)
Access: Shared
Parameters:
$buttonClicked_ptr : Pointer : A pointer to the clicked picture button object
Returns: NothingFnd_Tlbr_Button_OnShortcutShared
#DECLARE($shortcutKey_t : Text)
Project Method: Fnd_Tlbr_Button_OnShortcut (shortcut key) Called from the On Clicked form event of all of the shortcut key buttons. Access: Shared Parameters: $shortcutKey_t : Text : The shortcut key code Returns: Nothing
Fnd_Tlbr_Button_PositionShared
#DECLARE($buttonName_t : Text; $left_ptr : Pointer; $top_ptr : Pointer; $right_ptr : Pointer; $bottom_ptr : Pointer)
Project Method: Fnd_Tlbr_Button_Position (button name; ->left; ->top; ->right; ->bottom) Returns the coordinates of the specified button. Access: Shared Parameters: $buttonName_t : Text : The name of the button $left_ptr : Pointer : Longint to receive the left coordinate $top_ptr : Pointer : Longint to receive the top coordinate $right_ptr : Pointer : Longint to receive the right coordinate $bottom_ptr : Pointer : Longint to receive the bottom coordinate Returns: Nothing
Fnd_Tlbr_Button_RemoveShared
#DECLARE($buttonName_t : Text)
Project Method: Fnd_Tlbr_Button_Remove (buttonName) Call this method to remove the button with the specified name from the toolbar. Access: Shared Parameters: $buttonName_t : Text : The name of the button to remove Returns: Nothing
Fnd_Tlbr_Button_ShortcutShared
#DECLARE($buttonName_t : Text; $shortcutKey_t : Text)
Project Method: Fnd_Tlbr_Button_Shortcut (buttonName; shortcutKey) Associates a Command key shortcut with the button. Access: Private Parameters: $buttonName_t : Text : A button name $shortcutKey_t : Text : The shortcut letter to assign Returns: nothing
Fnd_Tlbr_ClearShared
Project Method: Fnd_Tlbr_Clear Clears all items from the toolbar. Access: Shared Parameters: None Returns: Nothing
Fnd_Tlbr_CurrentButtonShared
#DECLARE($newButtonName_t : Text) : Text
Project Method: Fnd_Tlbr_CurrentButton ({button name}) --> Text
Sets and gets the button specified as the "current" button.
This is for the new Mac OS X style "Prefs" style button.
Access: Shared
Parameters:
$newButtonName_t : Text : The name of the button to make the current button (optional)
Returns:
$0 : Text : The name of the current buttonFnd_Tlbr_Divider_AddShared
Project Method: Fnd_Tlbr_Divider_Add Adds a divider line to the toolbar object list. Access: Shared Parameters: None Returns: Nothing
Fnd_Tlbr_Divider_GetPictureShared
#DECLARE($pictureName_t : Text)->$divider_pic : Picture
Project Method: Fnd_Tlbr_Divider_GetPicture (divider picture name) --> Picture Returns the toolbar divider picture * 4 so it works as a button object. This is the divider version of the Fnd_Bttn_GetPicture method. Access: Private Parameters: $pictureName_t : Text : The name of the toolbar divider picture Returns: $divider_pic : Picture : The buttonized toolbar divider picture
Fnd_Tlbr_FormMethodShared
Project Method: Fnd_Tlbr_FormMethod To be called from any form method that inherits the toolbar form. Expects the On Load and On Resize form events to be enabled. Access: Shared Parameters: None Returns: Nothing
Fnd_Tlbr_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Tlbr_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_Tlbr_InitInternal
Project Method: Fnd_Tlbr_Init Must be called at the start of a new process which contains dialogs which have toolbars. Based on Mark Mitchenall's Toolbar Component. ©2002 mitchenall.com Used with permission. Access: Private Parameters: None Returns: Nothing
Fnd_Tlbr_Object_DrawShared
#DECLARE($objectNumber_i : Integer; $variation_t : Text; $leftOffset_i : Integer; $topOffset_i : Integer)
Project Method: Fnd_Tlbr_Object_Draw (object number; variation; left offset; top offset) Draws a toolbar object in the specified position. Doesn't actually do any drawing. It just moves a picture button into the right location and makes it visible. Access: Private Parameters: $objectNumber_i : Text : The object number $variation_t : Text : The object's variation $leftOffset_i : Longint : The left offset $topOffset_i : Longint : The top offset Returns: Nothing
Fnd_Tlbr_Object_GetNumberShared
#DECLARE($objectName_t : Text)->$objectNumber_i : Integer
Project Method: Fnd_Tlbr_Object_GetNumber (object name) --> Number Returns the object number (array element number) for the specified object name. Access: Private Parameters: $objectName_t : Text : A toolbar object name Returns: $objectNumber_i : Longint : The array element number
Fnd_Tlbr_PlatformShared
#DECLARE($requestedPlatform_t : Text) : Text
Project Method: Fnd_Tlbr_Platform ({platform name}) --> Text
Sets and gets the toolbar platform name.
Can be:
"Win"
"Mac"
"Auto"
Only "Mac" or "Win" will be returned.
Access: Shared
Parameters:
$requestedPlatform_t : Text : The platform to use (optional)
Returns:
$0 : Text : The selected platformFnd_Tlbr_RedrawShared
Project Method: Fnd_Tlbr_Redraw Updates the toolbar. Access: Shared Parameters: None Returns: Nothing
Fnd_Tlbr_SetHostVarsShared
#DECLARE($hostPictureVariables_ptr : Pointer; $hostPictureButtons_ptr : Pointer; $hostInfoVariables_ptr : Pointer)
Project Method: Fnd_Tlbr_SetHostVars (->pointer array; ->pointer array; ->text) Called by the first toolbar button method of the Fnd_Tlbr_Toolbar form to pass some pointers to host variables to the component. Access: Shared Parameters: $hostPictureVariables_ptr : Pointer : Host picture variables $hostPictureButtons_ptr : Pointer : Host picture buttons $hostInfoVariables_ptr : Pointer : Host info variables Returns: Nothing
Fnd_Tlbr_SetVariablesShared
Project Method: Fnd_Tlbr_SetVariables Updates the toolbar variables depending on the current platform and size settings. Access: Private Parameters: None Returns: Nothing
Fnd_Tlbr_ShortcutKeyName_GetShared
#DECLARE($keyCodeChar_t : Text)->$keyCodeName_t : Text
Project Method: Fnd_Tlbr_ShortcutKeyName_Get (Character) --> Text Because it's not easy putting the actual keycode into the buttons on the toolbar Master form for trapping shortcuts, we have names for some of them, and this routine converts the single character keycode into that name. Access: Private Parameters: $keyCodeChar_t : Text : The Key Code character Returns: $keyCodeName_t : Text : The Key Code Alias Name Author: Mark Mitchenall Created: 16/4/02 at 2:20 AM Toolbar Component - © mitchenall.com 2002 WBS 03 December 2024: Swap to var syntax for declarations
Fnd_Tlbr_StatusMessageShared
#DECLARE($newStatus_t : Text) : Text
Project Method: Fnd_Tlbr_StatusMessage ({new text}) --> Text
Allows for the getting and setting of the information text line displayed
in the standard toolbar output form.
Access: Shared
Parameters:
$newStatus_t : Text : The text to set for the info line (optional)
Returns:
$0 : Text : The text that's displayed in the info line.Fnd_Tlbr_StyleShared
#DECLARE($requestedStyle_t : Text) : Text
Project Method: Fnd_Tlbr_Style ({style name}) --> Text
Sets and gets the toolbar style name.
Can be:
"Large"
"Prefs"
"Small1"
"Small2"
Access: Shared
Parameters:
$requestedStyle_t : Text : The style to use (optional)
Returns:
$0 : Text : The selected styleFnd_Tlbr_UpdateBackgroundShared
Project Method: Fnd_Tlbr_UpdateBackground Updates the toolbar background. Access: Private Parameters: None Returns: Nothing
Fnd_Tlbr_UpdateButtonsShared
Project Method: Fnd_Tlbr_UpdateButtons Redraws the toolbar, but only if it needs it. If no code has been called which effects the toolbar, then there is no reason to redraw it. Access: Shared Parameters: None Returns: Nothing
Fnd_VS_AddTableShared
#DECLARE($table_ptr : Pointer)
Project Method: Fnd_VS_AddTable (->table) Adds the specified table, and all of its fields, to the virtual structure arrays. Doesn't call 4D's SET TABLE TITLES command. This is a private method. To add a table the developer will normally call the Fnd_VS_ShowTable method. We don't use semaphores here. We assume the calling process is using the semaphore. Access: Private Parameters: $table_ptr : Pointer : The table to add Returns: Nothing
Fnd_VS_CreateNameListsShared
Project Method: Fnd_VS_CreateNameLists Creates the 4D lists that can be used by the virtual structure routines. Access: Shared Parameters: None Returns: Nothing
Fnd_VS_FieldNameShared
#DECLARE($field_ptr : Pointer) : Text
Project Method: Fnd_VS_FieldName (->field) --> Text Returns the virtual field name of the specified field. Access: Shared Parameters: $field_ptr : Pointer : A pointer to a field Returns: $0 : Text : The virtual field name
Fnd_VS_GetFieldsShared
#DECLARE($table_ptr : Pointer; $fieldPtrsArray_ptr : Pointer; $fieldNamesArray_ptr : Pointer)
Project Method: Fnd_VS_GetFields (->table; ->pointer array{; ->text array})
Returns in the passed arrays the pointers to and the field names of all
of the visible fields for the specified table.
Access: Shared
Parameters:
$table_ptr : Pointer : A pointer to a table
$fieldPtrsArray_ptr : Pointer : A pointer to a pointer array to receive the field pointers
$fieldNamesArray_ptr : Pointer : A pointer to a text array to receive the field names (optional)
Returns: NothingFnd_VS_GetTablesShared
#DECLARE($tablePtrsArray_ptr : Pointer; $tableNamesArray_ptr : Pointer)
Project Method: Fnd_VS_GetTables (->pointer array{; ->text array})
Returns in the passed arrays the names of and pointers to all of the visible tables.
Returns the arrays already sorted in the order the developer wants them sorted.
Access: Shared
Parameters:
$tablePtrsArray_ptr : Pointer : A pointer to a pointer array to receive the table pointers
$tableNamesArray_ptr : Pointer : A pointer to a text array to receive the table names (optional)
Returns: NothingFnd_VS_HandleErrorShared
Project Method: Fnd_VS_HandleError Special Error handling for the Virtual Structure component. Access: Private Parameters: None Returns: Nothing
Fnd_VS_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_VS_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name")
Returns:
$reply_t : Text : ResponseFnd_VS_InitInternal
Project Method: Fnd_VS_Init Initializes both the process and interprocess variables used by the Virtual Structure routines. Designed to be called at the beginning of any Protected routines to make sure the necessary variables are initialized. Access: Private Parameters: None Returns: Nothing
Fnd_VS_NbrValidFieldsShared
#DECLARE($tableNumber_i : Integer)->$nbrValidFields_i : Integer
Project Method: Fnd_VS_NbrValidFields ($tableNumber_i : Integer) --> Integer Counts the fields of a table that the virtual structure treats as valid. Two negative results are error codes rather than counts, so test for them before using the number: ``` -1 no table number was passed -2 the table number is not a valid table ``` Access: Shared Parameters: $tableNumber_i : Integer : The table to scan Returns: $nbrValidFields_i : Integer : The count, or -1 / -2 as above
Fnd_VS_ReplaceStringShared
#DECLARE($old_t : Text; $new_t : Text)
Project Method: Fnd_VS_ReplaceString (old string; new string) Does a find and replace in all of the virtual table titles and field titles. Designed specifically to quickly replace underscores with spaces, but could also be used for other global changes. Access: Shared Parameters: $old_t : Text : The string to replace $new_t : Text : The string to replace it with Returns: Nothing
Fnd_VS_SetFieldTitleShared
#DECLARE($field_ptr : Pointer; $title_t : Text)
Project Method: Fnd_VS_SetFieldTitle (->field; title) Allows the developer to set a virtual field title for a single field. Access: Shared Parameters: $field_ptr : Pointer : The field to rename $title_t : Text : The virtual title Returns: None
Fnd_VS_SetFieldTitlesShared
#DECLARE($table_ptr : Pointer; $fieldNamesArray_ptr : Pointer; $fieldNumbersArray_ptr : Pointer)
Project Method: Fnd_VS_SetFieldTitles (->table; ->field titles; ->field numbers) Allows the developer to set virtual field titles. Designed to be called as a replacement to 4D's SET FIELD TITLES command. Access: Shared Parameters: $table_ptr : Pointer : The table to use $fieldNamesArray_ptr : Pointer : Array of field titles $fieldNumbersArray_ptr : Pointer : Array of field numbers Returns: None
Fnd_VS_SetTableTitleShared
#DECLARE($table_ptr : Pointer; $title_t : Text)
Project Method: Fnd_VS_SetTableTitle (->table; title) Allows the developer to set a virtual table title for a single table. Access: Shared Parameters: $table_ptr : Pointer : The table to rename $title_t : Text : The virtual title Returns: None
Fnd_VS_SetTableTitlesShared
#DECLARE($tableNamesArray_ptr : Pointer; $tableNumbersArray_ptr : Pointer)
Project Method: Fnd_VS_SetTableTitles (->table titles; ->table numbers) Allows the developer to set virtual table titles. Designed to be called as a replacement to 4D's SET TABLE TITLES command. Access: Shared Parameters: $tableNamesArray_ptr : Pointer : Array of table titles $tableNumbersArray_ptr : Pointer : Array of table numbers Returns: None
Fnd_VS_ShowTableShared
#DECLARE($table_ptr : Pointer)
Project Method: Fnd_VS_ShowTable (->table) Adds a table to the virtual structure arrays. Access: Shared Parameters: $table_ptr : Pointer : A pointer to the table to let the user see Returns: Nothing
Fnd_VS_TableNameShared
#DECLARE($table_ptr : Pointer)->$tableName_t : Text
Project Method: Fnd_VS_TableName (->table) --> Text Returns the virtual table name of the specified table. Access: Shared Parameters: $table_ptr : Pointer : A pointer to a table Returns: $tableName_t : Text : The virtual table name
Fnd_VS_UseNameListsShared
Project Method: Fnd_VS_UseNameLists Uses the virtual structure 4D lists. Access: Shared Parameters: None Returns: Nothing
Fnd_VS_WasSubtableShared
#DECLARE($table_ptr : Pointer)->$wasSubtable_b : Boolean
Project Method: Fnd_VS_WasSubtable (->table) --> Boolean Returns true if the referenced table was a subtable Test is done on the "id_added_by_converter" field name. Access: Private Parameters: $table_ptr : Pointer : A table Returns: $wasSubtable_b : Boolean : True if the table was converted from a subtable Based on the WasSubtable method donated by by Jérôme Pupier WBS 03 December 2024: Swap to var syntax for declarations
Fnd_VS_zProbeHostListsShared
#DECLARE($listName_t : Text)->$result_o : Object
Project Method: Fnd_VS_zProbeHostLists ($listName_t : Text) --> Object
A diagnostic, kept deliberately: the answer varies by host, and knowing which
route works in a particular database decides how that host is migrated off
4D lists.
Reports, from inside the component, which routes to a host's choice list
actually work. Call it from a host with the name of one of the host's own
lists.
```
Fnd_VS_zProbeHostLists("VS_Table002_EN")
```
Each route is reported as an object with a "worked" Boolean and what it
found, so one call answers all of them and a failure in one does not hide
the rest. A route that raises is silenced and reports worked:False with no
further detail: Try...Catch...End try, which could report the error, is
20 R5 and this component still builds on 20.x LTS.
Access: Shared
Parameters:
$listName_t : Text : The name of a list belonging to the HOST database
Returns:
$result_o : Object : One property per route attemptedFnd_Wnd_BringToFrontShared
#DECLARE($windowID_i : Integer)
Project Method: Fnd_Wnd_BringToFront ($windowID_i : Integer) Pass a window ID and that window is brought to the front, a more precise version than bringing an entire process to the front. Does nothing when the window does not exist. Access: Shared Parameters: $windowID_i : Integer : A Window ID
Fnd_Wnd_CancelShared
Project Method: Fnd_Wnd_Cancel Calls the CANCEL command. Exists so that CANCEL can be reached from CALL FORM, which takes a method name and cannot be given a bare command. Access: Shared Parameters: None Returns: Nothing
Fnd_Wnd_CancelCloseAllShared
Project Method: Fnd_Wnd_CancelCloseAll Call this to end Foundation's attempts to close all windows. Access: Shared Parameters: None Returns: Nothing
Fnd_Wnd_CloseAllWindowsShared
#DECLARE($wait_b : Boolean)->$completed_b : Boolean
Project Method: Fnd_Wnd_CloseAllWindows ({wait?}) --> Boolean
This process tries to tell all of the other processes to close their windows.
Called as a new process from Fnd_Shell_Quitter, and when the user Option-clicks
a window's close box.
If the wait parameter is passed and is True, this process will wait until all of the
windows have been closed, and then return True. If it takes too long for the windows
to close, or the user cancels the closing, then False is returned.
Do not pass True to this routine from a process that's displaying a window that
needs to be closed. It won't work properly.
Access: Shared
Parameters:
$wait_b : Boolean : Wait for all windows to close? (optional)
Returns:
$completed_b : Boolean : Did all windows close?Fnd_Wnd_CloseAllWindows2Shared
Project Method: Fnd_Wnd_CloseAllWindows2 This process tries to tell all of the other processes to close their windows. Called as a new process from Fnd_Wnd_CloseAllWindows. Access: Private Parameters: None Returns: Nothing
Fnd_Wnd_CloseBoxShared
#DECLARE($closeBox_b : Boolean) : Boolean
Project Method: Fnd_Wnd_CloseBox ({add close box?}) --> Boolean
Adds a close box to the upcoming window. Also returns the current setting.
This method replaces the original Fnd_Wnd_SetCloseBox method, which is now obsolete.
Access: Shared
Parameters:
$closeBox_b : Boolean : Add a close box? (optional)
Returns:
$0 : Boolean : Current settingFnd_Wnd_CloseBoxMethodShared
Project Method: Fnd_Wnd_CloseBoxMethod A generic method with no code. Used by the Fnd_Wnd_OpenWindow method as the close box method for new windows (handle the close in the form method). Access: Private Parameters: None Returns: Nothing
Fnd_Wnd_CloseNowShared
#DECLARE() : Boolean
Project Method: Fnd_Wnd_CloseNow --> Boolean Returns True if Foundation is trying to close all windows due to the user Option-clicking a window's close box. Access: Shared Parameters: None Returns: $0 : Boolean : True if it's time to close the window
Fnd_Wnd_GetNextStackElementShared
#DECLARE() : Integer
Project Method: Fnd_Wnd_GetNextStackElement --> Number Gets (and reserves) the element number of the next available position in the window stack arrays. Access: Private Parameters: None Returns: $0 : Longint : The array element number to use
Fnd_Wnd_GetProcessWindowRefShared
#DECLARE($processNumber_i : Integer) : Integer
Project Method: Fnd_Wnd_GetProcessWindowRef (process number) --> Number Returns the window ref for the frontmost window of the specified process. Access: Private Parameters: $processNumber_i : Longint : A process number Returns: $0 : Longint : A window reference or 0
Fnd_Wnd_InfoShared
#DECLARE($request_t : Text)->$reply_t : Text
Project Method: Fnd_Wnd_Info (label) --> Text
Returns requested information. See the Fnd_Gen_ComponentInfo
method for more information.
Access: Shared
Parameters:
$request_t : Text : Info desired ("version" or "name" or "position" or "title")
Returns:
$reply_t : Text : ResponseFnd_Wnd_InitInternal
Project Method: Fnd_Wnd_Init Initializes both the process and interprocess variables used by the Fnd_Wnd routines. Access: Private Parameters: None Returns: Nothing
Fnd_Wnd_MoveOnScreenShared
#DECLARE($numberOne_v : Variant; $top_ptr : Pointer; $right_ptr : Pointer; $bottom_ptr : Pointer; $windowType_i : Integer)
Project Method: Fnd_Wnd_MoveOnScreen (->left; ->top; ->right; ->bottom; {window type})
Modifies the window coordinates so the window will be opened completely onscreen.
Alternate syntax #1: do not pass any parameters and Foundation will use the settings in the Fnd.Wnd object
Alternate syntax #2: pass an object with the desired parameters
Access: Shared
Parameters:
$numberOne_v : Pointer : Pointer to the left side of the window
$top_ptr : Pointer : Pointer to the top of the window
$right_ptr : Pointer : Pointer to the right side of the window
$bottom_ptr : Pointer : Pointer to the bottom of the window
$windowType_i : Longint : The window type (optional)
$numberOne_v : Object : Object containing parameters
$numberOne_v.left : Longint : Left side of the window
$numberOne_v.top : Longint : Top of the window
$numberOne_v.right : Longint : Right side of the window
$numberOne_v.bottom : Longint : Bottom of the window
$numberOne_v.windowType : Longint : The window type (optional)
Returns: NothingFnd_Wnd_OpenFormWindowShared
#DECLARE($var1 : Variant; $var2 : Variant) : Integer
Project Method: Fnd_Wnd_OpenFormWindow (->table; form name) Opens a new window using the specified form's width and height. Access: Shared Parameters: $var1 : Pointer : A pointer to the form's table $var2 : Text : The name of the form Returns: $0 : Longint : The window reference
Fnd_Wnd_OpenWindowShared
#DECLARE($Fnd_Wnd_Left_i : Integer; $Fnd_Wnd_Top_i : Integer; $Fnd_Wnd_Right_i : Integer; $Fnd_Wnd_Bottom_i : Integer) : Integer
Project Method: Fnd_Wnd_OpenWindow (width; height) --> Number Alternate parameters: Fnd_Wnd_OpenWindow (left; top; right; bottom) Opens a new window centered on the screen or over the frontmost window (depending on the value of Fnd_Wnd_WindowPosition_i). Access: Shared Parameters: $Fnd_Wnd_Left_i : Longint : Width of the new window $Fnd_Wnd_Top_i : Longint : Height of the new window or: $Fnd_Wnd_Left_i : Longint : Global left coordinate $Fnd_Wnd_Top_i : Longint : Global top coordinate $Fnd_Wnd_Right_i : Longint : Global right coordinate $Fnd_Wnd_Bottom_i : Longint : Global bottom coordinate Returns: $0 : Longint : The window reference number
Fnd_Wnd_PositionShared
#DECLARE($left_i : Integer; $top_i : Integer; $Right_i : Integer; $Bottom_i : Integer) : Integer
Project Method: Fnd_Wnd_Position ({position setting}) --> Number
Project Method: Fnd_Wnd_Position (left; top; right; bottom) --> Number
Allows the developer to get and set the window position for the upcoming window.
1 = Fnd_Wnd_CenterOnScreen = Centered on screen
2 = Fnd_Wnd_CenterOnWindow = Centered over frontmost window
3 = Fnd_Wnd_MacOSXSheet = Sheet if possible, or centered over frontmost window
4 = Fnd_Wnd_Stack = Stacked with other stacked windows
5 = Fnd_Wnd_StackOnWindow = Stacked over the frontmost window
Optionally exact window coordinates can be passed.
This method replaces the original Fnd_Wnd_SetPosition method, which is now obsolete.
Access: Shared
Parameters:
$left_i : Longint : Window position (optional)
$top_i : Longint : Relative to Window (optional)
Parameters:
$left_i : Longint : Left
$top_i : Longint : Top
$Right_i : Longint : Right
$Bottom_i : Longint : Bottom
Returns:
$0 : Longint : Current window position settingFnd_Wnd_SavePositionShared
#DECLARE($preferenceName_t : Text; $windowReference_i : Integer)
Project Method: Fnd_Wnd_SavePosition ({name{; window ref}})
Saves the frontmost window of the current process in the user's prefernces
file (if the Foundation Preferences component is available).
This is basically the same as calling Fnd_Pref_SetWindow, but you don't have
to check first to see if the Preferences component is available.
Access: Shared
Parameters:
$preferenceName_t : Text : The name of the preference item (optional)
$windowReference_i : Longint : The window to save (optional)
Returns: NothingFnd_Wnd_SendCloseRequestsShared
#DECLARE($processNumber_i : Integer)
Project Method: Fnd_Wnd_SendCloseRequests ({process number})
Adds the current process to the list of processes with windows that should be
closed if the user option-closes a window or selects Close All Windows
from a menu.
Both the process name and number are stored, to make sure we're trying
to close the same process that was submitted here.
Access: Shared
Parameters:
$processNumber_i : Longint : Process number (optional)
Returns: NothingFnd_Wnd_TitleShared
#DECLARE($windowTitle_t : Text) : Text
Project Method: Fnd_Wnd_Title ({title}) --> Text
Gets and sets the window title for the upcoming window.
This method replaces the original Fnd_Wnd_Title method, which is now obsolete.
Access: Shared
Parameters:
$windowTitle_t : Text : Window title (optional)
Returns:
$0 : Text : Next window titleFnd_Wnd_ToolbarHeightShared
#DECLARE() : Integer
Project Method: Fnd_Wnd_ToolbarHeight --> longint Returns the toolbar height (if it is currently being displayed) Access: Shared Returns: $0 : longint : The toolbar height
Fnd_Wnd_TypeShared
#DECLARE($windowType_i : Integer) : Integer
Project Method: Fnd_Wnd_Type ({window type}) --> Number
Sets and gets the window type for the next window to be opened.
This method replaces the original Fnd_Wnd_SetType method, which is now obsolete.
Access: Shared
Parameters:
$windowType_i : Longint : Window type (optional)
Returns:
$0 : Longint : Window type
Modified by Gary Boudreaux on Dec 21, 2008
Enhanced parameter description in headerFnd_Wnd_UseSavedPositionShared
#DECLARE($processName_t : Text)
Project Method: Fnd_Wnd_UseSavedPosition ({pref name})
Tells the window routines we want to try to use a saved position.
If no preference name is specified, the current process name is used.
Access: Shared
Parameters:
$processName_t : Text : The name of the saved position (optional)
Returns: Nothing