PML Help
PML Help
$! = Evaluate a variable
$. = Terminates a macro
$S = Defines a synonym
$G = Defines a global synonym
$S- = Turns synonyms of
$S+ = Turns synonyms On
$QS = Quearys the synonyms
$H = Help
$Q = Another syntax help
$P = Prints a line to your command line
$$ = Adds a $ symbol
$D = Default argument value
pml rehash
pml index
!!pmldefinition(codename)
pmlscan directory_name
q var !!PML.getpathname( 'filename.pmlobj' )
Q Var !browser
Q methods !browser
q var !!mydata.elements()
q var !!mydata.collections()
------------------------------------------------------------- DEBUG
$R <n>
Name()
Description()
Hash()
IsUdet()
systemAttributes()
$* Hash value
string ChangeType()
changed
SystemType()
Primary()
MemberTypes()
ParentTypes()
IsPseudo()
IsUda()
querytext()
units
Noclaim()
ElementTypes
works for UDAs
ValidValues(ElementType)
element type
$* List of valid for text attributes. The list may vary with
string DefaultValue
(ElementType) Attribute default. This only works for UDAs
Category()
Utility form
hyperlink()
connection()
$* if true then the attribute value will appear on the reference list
form
hidden()
form or after Q ATT
protected()
EndBuildCallback
--This method is called once after any other actions during the Build process.
BeginCompareCallback
--This method is called once prior to any other actions during the Build process.
EndCompareCallback
--This method is called once after any other actions during the Build process.
--The arguments for each method are specified in the supplied PML.
--Each place where customised code can be added is delimited as follows.
--================================================
-- Start of customisation
-- End of customisation
--================================================
--Other methods on the IntegratorProjectHandler object should not be modified.
--The callback which provides the required operation, must be cyclical so that there is some
repeated access point where the user can report progress (approximately as a percentage of the total
task), and check to see if the user has clicked a stop button which the user has provided on some
displayed form.
--In the users callback function they must first notify the system of the identification of the stop
button using the FMSYS method SetInterrupt:
!!FMSYS.setInterrupt(!!fmstop.stopButton )
--Then at an appropriate point in the callback, check to see if the stop button has been pressed
using the FMSYS Interrupt method, and exit with a message if it has:
-- Initialise progress bar
!!FMSYS.setProgress(0)
!!FMSYS.setProgressText('Routing pipes')
do !next from 1 to 50
...
!!RoutePipe( !next, . . . ) $*Route next pipe
...
-- Update the progress bar - first update the percentage
--completion
!percent = ...
!!FMSYS.setProgress( !percent )
-- Check if user pressed interrupt button
if ( !!FMSYS.Interruppt() ) then
return error 1 'Processing aborted'
endif
enddo
--Following is the PML code for a simple interrupt form !!fmstop.pmlfrm:
$* F&M test harness: Stop form for interrupt management
--layout form !!fmstop dialog NoAlign
title 'STOP (!!fmstop)'
path down
!!FMSYS.Refresh()
$* optionel
!undo.redoAction('!!hvacSpool.undoRedoAction()')
$* optionel
!undo.add()
blabla
!undol.endUndoable()
!!alert.message('message')
!!alert.error('message')
!!alert.warning('message')
!answer = !!alert.Confirm('Question resulte YES or NO in string')
!answer = !!alert.Question('Question resulte YES or NO in string')
!answer = !!Alert.Input( 'message', 'default' ) is STRING
!table = array()
!table[1][1] = 50
!table[1][2]= 'E'
!table[2][1] = 100
!table[2][2]= 'N'
!table[3][1] = 10
!table[3][2]= 'D'
do !x indices !table
!tmptable[!x] = !table[$!x][1]
enddo
!tmptable = !tmptable.sortedindices()
!table.reindex(!tmptable)
!progress
=0
!this.showProgress(0)
do !x values !this.TABLE
enddo
!this.showProgress(0)
endmethod
if (!percent lt 0) then
!!fmsys.setProgress(0)
else
!!fmsys.setProgress(!percent)
endif
endmethod
do !x values !this.TABLE
enddo
endmethod
Import 'PMLNetUtilities'
Handle (1000, 0)
Endhandle
import 'PDMSCommands'
Handle (1000, 0)
Endhandle
!Pipes = !Collect.results()
!args[1]='inside'
!args[2]=$!!ce.refno
!nvol=!!ce.attribute('nvol',!args)
!poid = (!nvol[1] / 1000000 ) * 7.850
$p Poid = $!poid kg pour $!nvol[1] mm3
handle any
!!alert.error(|Error |& !!error.text & | - |& !!error.line & | - |& !!error.command )
endhandle
-- OPERATION