PML语法

注释 单行                      
     --                    
     S*                    
  多行  $($)                    
                         
定义变量                        
  var 字符串用''或者||                  
                         
  编号变量 var 1 (99+1)                  
    var 2 'sdfsdf'                  
                         
  命名变量 变量名不区分大小写,最大64字符。              
                         
  ! 变量名 局部变量                    
  !! 变量名 全局变量                    
                         
  VAR方式定义的变量值为string类型                
PML2变量类型(不局限于STRING)                  
                         
  STRING                      
  REAL                      
  BOOLEAN                      
  ARRAY   !newarray = ARRAY()              
      !newarray[1]=|xxx|              
  自动分配变量类型                    
  !answer = 42 REAL                    
  !name='ff' STRING                    
  !flag = TRUE BOOLEAN                  
  明确指定变量类型                    
  !number = real()                    
  !text = string()                    
                         
控制语句                        
DO循环                        
    DO !loopCounter FROM 1 TO 10 BY 2              
      !value=!loopCounter*2              
      q var !loopCounter !value              
    ENDDO                    
                         
  带BREAK和IF                    
    !n=0                    
    DO     IF(!value GT 1000)          
    !n=!n+1     BREAK              
    !value=POW(!n,2)   ENDIF              
    q var !value                  
    BREAK IF(!value GT 1000)                
    ENDDO                    
  带SKIP                      
    DO !n FROM 1 TO 25                
      SKIP IF (!n LE 5) OR (!n GT 15)            
      q var !n                  
    ENDDO                    
  遍历数组                      
    DO !X VALUES !ARRAY                
      !x 数组里的对象              
    ENDDO                    
                         
    DO !X INDEX !ARRAY                
      !X 从1到数组的长度的数字            
    ENDDO                    
  循环实例                      
    VAR !Zones COLL ALL ZONES FOR SITE              
    VAR !Names EVAL NAME FOR ALL FROM !Zones            
    q var !Names                  
    DO !x VALUES !Names                
      q var !x                  
    ENDDO                    
                         
    DO !x INDEX !Names                
      q var !Names[!x]                
    ENDDO                    
IF条件控制                      
  IF(!Number LT 0)THEN                  
    !Negative=TRUE                  
  ENDIF                      
  IF(!1 EQ 0)THEN                    
    $p Your value is zero                
  ELSEIF (!1 LT 0)THEN                  
    $p Your value is less then zero              
  ELSE                      
    $p Your value is Greather then zero              
  ENDIF                      
从控制语句中跳转                      
  DO !A                      
     @P Processing @!A                
    DO !B TO 10                  
      !C = !A*!B                
      GOLABEL /finished if(!C GT 100)            
      $P Product $!C                
    ENDDO                    
  ENDDO                      
  LABEL /finished                    
  $P Finished with processing = $!A Product = $!C            
                         
捕获异常                        
  NEW EQUI/ABCD                    
  HANDLE($41,8)                    
    $p Need to be at a ZONE or below              
  ELSEHANDLE(41,12)                    
    $p That name has already been used.Name must be unique        
  ELSEHANDLE ANY                    
    $p Another erroe has occurred              
  ELSEHANDLE NONE                    
    $p Everything OK.EQUI created              
  ENDHANDLE                    
Alert对象                      
  !!alert.error('This is an error!')                
  !!alert.warning('')                  
  !!alert.message('')                  
  Confirm返回'YES'或者'NO'                  
    !Answer = !!Alert.Confirm(|Are you sre!|)            
    q var !Answer                  
    'YES'                  
  Question 返回'YSE''NO'或者'CANCEL'                
  Input                      
  !!Alert.Input('填点什么','默认值')                
                         
!!CE对象 始终指向PDMS的当前元素                  
                         
PML2 FUNCTION                      
  Function的源文件的后缀名为pmlfnc                
                         
  define function !!Area(!radiu is REAL)is REAL            
  !CircleArea = !Radius.Power(2)*3.14                
  return !CircleArea                  
  endfunction                    
PML2中的构造函数和函数重载                    
                         
1.构造函数 Form和Object都可以定义构造函数,构造函数的名字和From或者Object相同      
2.函数重载 当在一个Form或者Object中定义了多个Method他们的名字相同但参数不同,系统会根据调用时的参数执行不同的method.

你可能感兴趣的:(AM)