| Quintiq file version 2.0 | 
| #parent: #root | 
| Method PTF_ValidateStatement ( | 
|   String action, | 
|   structured[String] parameters | 
| ) as String id:Method_LibPTF_dlgCreateEditTestScript_PTF_ValidateStatement | 
| { | 
|   #keys: '[103546.0.109833699]' | 
|   Body: | 
|   [* | 
|     // Checks the statement with various validation based on the action | 
|     errormsg  := "" | 
|     paramsize := parameters.Size(); | 
|      | 
|     // No parameters | 
|     if( action = LibPTF_StandardAction::AutoClose() | 
|         or action = LibPTF_StandardAction::CloseAllForms() | 
|         or action = LibPTF_StandardAction::EndLoop() | 
|         or action = LibPTF_StandardAction::ProfilerStart() | 
|       ) | 
|     { | 
|       errormsg := this.PTF_ValidateParametersSize( action, paramsize, 0 ); | 
|     } | 
|     // Exactly one parameter | 
|     else if( action = LibPTF_StandardAction::OpenView() | 
|              or action = LibPTF_StandardAction::Loop() | 
|            ) | 
|     { | 
|       errormsg := this.PTF_ValidateParametersSize( action, paramsize, 1 ); | 
|      | 
|       if( errormsg.Length() = 0 and action = LibPTF_StandardAction::Loop() ) | 
|       { | 
|         errormsg := this.PTF_ValidateGreaterThanZeroInteger( action, parameters.Element( 0 ), 1 ); | 
|       } | 
|     } | 
|     // Exactly two parameter | 
|     else if( action = LibPTF_StandardAction::ScrollGCToBottom() | 
|              or action = LibPTF_StandardAction::ScrollGCToNow() | 
|              or action = LibPTF_StandardAction::ScrollGCToTop() | 
|              or action = LibPTF_StandardAction::ScrollListToLast() | 
|              or action = LibPTF_StandardAction::Wait() | 
|            ) | 
|     { | 
|       errormsg := this.PTF_ValidateParametersSize( action, paramsize, 2 ); | 
|      | 
|       // This whole block will be executed if action = "Wait" | 
|       if( action = LibPTF_StandardAction::Wait() ) | 
|       { | 
|         if( errormsg.Length() = 0 ) | 
|         { | 
|           errormsg := this.PTF_ValidatePositiveNumericValue( action, parameters.Element( 0 ), 1 ); | 
|      | 
|           if( errormsg.Length() = 0 ) | 
|           { | 
|             errormsg := this.PTF_ValidatePositiveNumericValue( action, parameters.Element( 1 ), 2 ); | 
|           } | 
|         } | 
|         else | 
|         { | 
|           custommsg := 'Action "' + action + '" should have 1 or 2 parameters. Found ' + [String]paramsize + ' instead.' + String::NewLine(); | 
|           errormsg := this.PTF_ValidateParametersSizeShowCustomMsg( action, paramsize, 1, custommsg ); | 
|      | 
|           if( errormsg.Length() = 0 ) | 
|           { | 
|             errormsg := this.PTF_ValidatePositiveNumericValue( action, parameters.Element( 0 ), 1 ); | 
|           } | 
|         } | 
|       } | 
|     } | 
|     // Exactly three parameters | 
|     else if( action = LibPTF_StandardAction::ScrollGCLeftRight() | 
|              or action = LibPTF_StandardAction::ScrollGCPageLeftRight() | 
|              or action = LibPTF_StandardAction::ScrollGCPageUpDown() | 
|              or action = LibPTF_StandardAction::ScrollGCUpDown() | 
|              or action = LibPTF_StandardAction::SelectListFrom() | 
|              or action = LibPTF_StandardAction::ZoomGC() | 
|            ) | 
|     { | 
|       errormsg := this.PTF_ValidateParametersSize( action, paramsize, 3 ); | 
|      | 
|       if( errormsg.Length() = 0 ) | 
|       { | 
|         if( action = LibPTF_StandardAction::SelectListFrom() ) | 
|         { | 
|           errormsg := this.PTF_ValidatePositiveInteger( action, parameters.Element( 2 ), 3 ); | 
|         } | 
|         // Other actions: "ScrollGCLeftRight", "ScrollGCPageLeftRight", "ScrollGCPageUpDown", "ScrollGCUpDown", "ZoomGC" | 
|         else | 
|         { | 
|           errormsg := this.PTF_ValidateInteger( action, parameters.Element( 2 ), 3 ); | 
|         } | 
|       } | 
|     } | 
|     // Zero or one parameter | 
|     else if( action = LibPTF_StandardAction::ProfilerReset() | 
|              or action = LibPTF_StandardAction::ProfilerStop() | 
|            ) | 
|     { | 
|       errormsg := this.PTF_ValidateParametersWithOptionalParamSize( action, paramsize, 0, 1 ); | 
|     } | 
|      | 
|     return errormsg; | 
|   *] | 
| } |