One of the most common API calls is to the FieldInfo Object. Par exemple, l'objet FieldInfo contient la méthode GetValue, qui vous permet d'obtenir la valeur d'une zone dans un enregistrement.
The following external application subroutine prints out the information stored in a FieldInfo object. The code invokes an external routine that is not shown here: StdOut, which prints its arguments to a message box.
Sub DumpFieldInfo(info) ' The parameter is a FieldInfo object. Dim temp ' a Long Dim status ' a String Dim validity ' a String Dim valuechange ' a String Dim validchange ' a String Dim value ' a String temp = info.GetValueStatus() If temp = AD_VALUE_NOT_AVAILABLE Then status = "VALUE_NOT_AVAILABLE" ElseIf temp = AD_HAS_VALUE Then status = "HAS_VALUE value ='" & info.GetValue() & "'" ElseIf temp = AD_HAS_NO_VALUE Then status = "NO_VALUE" Else status = "<invalid value status: " & temp & ">" End If temp = info.GetValidationStatus() If temp = AD_KNOWN_INVALID Then validity = "INVALID" ElseIf temp = AD_KNOWN_VALID Then validity = "VALID" ElseIf temp = AD_NEEDS_VALIDATION Then validity = "NEEDS_VALIDATION" Else validity = "<invalid validation status: " & temp & ">" End If valuechange = "" If info.ValueChangedThisSetValue() Then valuechange = valuechange & " setval=Y" Else valuechange = valuechange & " setval=N" End If If info.ValueChangedThisGroup() Then valuechange = valuechange & " group=Y" Else valuechange = valuechange & " group=N" End If If info.ValueChangedThisAction() Then valuechange = valuechange & " action=Y" Else valuechange = valuechange & " action=N" End If validchange = "" If info.ValidityChangedThisSetValue() Then validchange = validchange & " setval=Y" Else validchange = validchange & " setval=N" End If If info.ValidityChangedThisGroup() Then validchange = validchange & " group=Y" Else validchange = validchange & " group=N" End If If info.ValidityChangedThisAction() Then validchange = validchange & " action=Y" Else validchange = validchange & " action=N" End If StdOut "FieldInfo for field " & info.GetName() StdOut " field's value = " & value StdOut " value status = " & status StdOut " value change =" & valuechange StdOut " validity = " & validity StdOut " validity change =" & validchange StdOut " error = '" & info.GetMessageText() & "'" End Sub REM Start of Global Script StdOut sub StdOut(Msg) msgbox Msg end sub REM End of Global Script StdOut
use CQPerlExt; $CQsession = CQSession::Build(); $CQsession->UserLogon("admin", "", "perl", ""); $record = $CQsession->GetEntity("Defect", "perl00000001"); $fieldInfo = $record->GetFieldValue("id"); $temp = $fieldInfo->GetValueStatus(); if ($temp == $CQPerlExt::CQ_VALUE_NOT_AVAILABLE) { $status = "VALUE_NOT_AVAILABLE"; } elsif ($temp == $CQPerlExt::CQ_HAS_VALUE) { $status = "HAS_VALUE"; $value = "'" & fieldinfo.GetValue() & "'"; } elsif ($temp == $CQPerlExt::CQ_HAS_NO_VALUE) { $status = "NO_VALUE"; } else { $status = "<invalid value status: "& temp & ">"; } $temp = $fieldInfo->GetValidationStatus(); if ($temp == $CQPerlExt::CQ_KNOWN_INVALID) { $validity = "INVALID"; } elsif ($temp == $CQPerlExt::CQ_KNOWN_VALID) { $validity = "VALID"; } elsif ($temp == $CQPerlExt::CQ_NEEDS_VALIDATION) { $validity = "NEEDS_VALIDATION"; } else { $validity = "<invalid validation status: " & temp & ">"; } $valuechange = ""; if ($fieldInfo->ValueChangedThisSetValue()) { $valuechange = $valuechange & " setval=Y"; } else { $valuechange = $valuechange & " setval=N"; } if ($fieldInfo->ValueChangedThisGroup()) { $valuechange = $valuechange & " group=Y"; } else { $valuechange = $valuechange & " group=N"; } if ($fieldInfo->ValueChangedThisAction()) { $valuechange = $valuechange & " action=Y"; } else { $valuechange = $valuechange & " action=N"; } $validchange = ""; if ($fieldInfo->ValidityChangedThisSetValue()) { $validchange = $validchange & " setval=Y"; } else { $validchange = $validchange & " setval=N"; } if ($fieldInfo->ValidityChangedThisGroup()) { $validchange = $validchange & " group=Y"; } else { $validchange = $validchange & " group=N"; } if ($fieldInfo->ValidityChangedThisAction()) { $validchange = $validchange & " action=Y"; } else { $validchange = $validchange & " action=N"; } print "FieldInfo for field = ", $fieldInfo->GetName(), "\n"; print "Field's value = ", $value, "\n"; print "Value status = ", $status, "\n"; print "Value change = ", $valuechange, "\n"; print "Validity = ", $validity, "\n"; print "Validity change = ", $validchange, "\n"; print "Error = '", $fieldInfo->GetMessageText(), "'"; CQSession::Unbuild($CQsession);