METHOD RESOLVE PATH
METHOD RESOLVE PATH ( rota ; tipoMetodo ; prtTabela ; nomObjeto ; nomObjetoForm {; *} )
Parâmetro | Tipo | Descrição | |
---|---|---|---|
rota | Text | → | Rota a resolver |
tipoMetodo | Integer | ← | Seletor tipo de objeto |
prtTabela | Pointer | ← | Referência de tabela |
nomObjeto | Text | ← | Nome de formulário ou método de base |
nomObjetoForm | Text | ← | Nome de objeto de formulário |
* | Operador | → | Se passado = o comando se aplica à base local quando se executa desde um componente (parâmetro ignorado fora deste contexto) |
Esse comando não é seguro para thread e não pode ser usado em código adequado.
Descrição
O comando METHOD RESOLVE PATH analisa a rota de acesso interna passada no parâmetro rota e devolve seus diferentes componentes nos parâmetros tipoMetodo, ptrTabela, nomObjeto e nomObjetoForm.
No parâmetro tipoMetodo devolve um valor que indica o tipo do método. Pode comparar este valor com as seguintes constantes do tema Design Object Access:
Constante | Tipo | Valor | Comentário |
---|---|---|---|
Path database method | Inteiro longo | 2 | |
Path project form | Inteiro longo | 4 | Rota dos métodos formulário projeto e de todos seus métodos objeto. Exemplos: [projectForm]/myForm/{formMethod} [projectForm]/myForm/button1 [projectForm]/myForm/mylist [projectForm]/myForm/button1 |
Path project method | Inteiro longo | 1 | Nome do método. Exemplo: MeuMétodoProjeto |
Path table form | Inteiro longo | 16 | Rota dos métodos formulário tabela e de todos seus métodos objeto. Exemplos: [tableForm]/table_1/Form1/{formMethod} [tableForm]/table_1/Form1/button1 [tableForm]/table_1/Form1/mylist [tableForm]/table_2/Form1/mylist |
Path trigger | Inteiro longo | 8 | Rota dos triggers da base. Exemplos: [trigger]/tabela_1 [trigger]/tabela_2 |
Nota: O comando não verifica se o método realmente existe no banco de dados ou projeto. Um erro só é gerado se um nome de tabela inválido for passado
O parâmetro ptrTabla contém um ponteiro a uma tabela da base quando a rota referencia um método formulário tabela ou um trigger.
O parâmetro nomObjeto contém:
- um nome de formulário se a rota referencia um formulário tabela ou projeto.
- um nome de método base se a rota referencia um método base.
O parâmetro nomObjetoForm contém um nome de objeto de formulário se a rota referencia um método objeto.
Se o comando se executa desde um componente, considera por padrão que a via designa um método do componente. Se passado o parâmetro *, se considera que a via designa um método da base local.
Exemplo 1
Resolução de uma rota de método base:
var $methodType : Integer
var $tablePtr : Pointer
var $objectName : Text
var $formObjectName : Text
METHOD RESOLVE PATH("[databaseMethod]/onStartup";$methodType;$tablePtr;$objectName;$formObjectName)
// $methodType: 2
// $tablePtr: Nil pointer
// $objectName: "onStartup"
// $formObjectName: ""
Exemplo 2
Resolução de uma rota de método de formulário tabela:
var $methodType : Integer
var $tablePtr : Pointer
var $objectName : Text
var $formObjectName : Text
METHOD RESOLVE PATH("[tableForm]/Table1/output1/myVar1";$methodType;$tablePtr;$objectName;$formObjectName)
// $methodType: 16
// $tablePtr: -> [Table1]
// $objectName: "output1"
// $formObjectName: "Btn1"