4D v14.3Command name |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
Command name
|
Command name ( comando ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
comando | Inteiro longo |
![]() |
Número de comando | |||||
Resultado | cadeia |
![]() |
Nome do comando localizado | |||||
O comando Command name devolve o nome (universal) do comando cujo número é passado em comando.
4D integra uma tradução dinâmica de palavras chaves, constantes e nomes de comandos utilizados em seus métodos. Por exemplo, se está utilizando a versão inglesa de 4D, você escreveria:
DEFAULT TABLE([MinhaTabela])
ALL RECORDS([MinhaTabela])
Este mesmo código, se for aberto com a versão francesa de 4D, será traduzido automaticamente:
TABLE PAR DEFAUT([MinhaTabela])
TOUT SELECTIONNER([MinhaTabela])
Entretanto, 4D também inclui uma característica única, o comando EXECUTE FORMULA, o qual lhe permite construir código de maneira improvisada e depois executá-lo, mesmo que o banco esteja compilado.
O código de exemplo, escrito com EXECUTE FORMULA em inglês, será visto assim:
EXECUTE FORMULA("DEFAULT TABLE([MinhaTabela])")
EXECUTE FORMULA("ALL RECORDS([MinhaTabela])")
O mesmo código, aberto com a versão francesa de 4D, é traduzida automaticamente:
EXECUTER FORMULE("DEFAULT TABLE([MinhaTabela])")
EXECUTER FORMULE("ALL RECORDS([MinhaTabela])")
4D traduz automaticamente EXECUTE FORMULA (inglês) a EXECUTER FORMULE (francês), mas não pode traduzir as instruções passadas ao comando.
Se utiliza o comando EXECUTE FORMULA em sua aplicação, pode utilizar Command name para eliminar os problemas de tradução associados a este tipo de instruções, e assim fazer instruções independentes das localizações. O código de exemplo se converte em:
EXECUTE FORMULA(Command name(46)+"([MinhaTabela])")
EXECUTE FORMULA(Command name(47)+"([MinhaTabela])")
Com uma versão francesa de 4D, este código será:
EXECUTER FORMULE(Nom commande(46)+"([MinhaTabela])")
EXECUTER FORMULE(Nom commande(47)+"([MinhaTabela])")
Nota: o número de cada comando está na área de Propriedades da página de documentação do comando.
O comando Command name define a variável OK em 1 se comando corresponde a um número de comando existente, caso contrário em 0. Note no entanto, que alguns comandos existentes foram desativados, em cujo caso Command name devolve uma cadeia vazia (ver o último exemplo).
Para todas as tabelas de seu banco de dados, você tem um formulário chamado “FORMULARIO DE ENTRADA” utilizado para a entrada de dados em cada tabela. Se deseja adicionar um método de projeto genérico que vá a designar este formulário como o formulário de entrada atual para a tabela cujo ponteiro ou nome foi passado, você escreve:
` Método de projeto FORMULARIO ENTRADA ESTANDAR
` FORMULARIO ENTRADA ESTANDAR ( Ponteiro {; String })
` FORMULARIO ENTRADA ESTANDAR ( ->Tabela {; NomTabela })
C_POINTER($1)
C_STRING(31;$2)
[
If(Count parameters>=2)
EXECUTE FORMULA(Command name(55)+"(["+$2+"];"+Char(Double quote)+"FORMULARIO DE ENTRADA"+Char(Double quote)+")")
Else
If(Count parameters>=1)
FORM SET INPUT($1->;"FORMULARIO DE ENTRADA")
End if
End if
Quando tiver adicionado este método de projeto a seu banco, você escreve:
FORMULARIO ENTRADA ESTANDAR(->[Empregados])
FORMULARIO ENTRADA ESTANDAR("Empregados")
Nota: geralmente, é preferível utilizar ponteiros para escrever rotinas genéricas. Primeiro, o código será executado compilado se o banco estiver compilado. Depois, como no exemplo anterior, seu código deixará de funcionar corretamente se renomear a tabela. Entretanto, em alguns casos, a utilização de EXECUTE FORMULA resolverá o problema.
Em um formulário, você deseja mostrar uma lista suspensa que contenha os comandos padrão de geração de informes. No método de objeto desta lista suspensa, você escreve:
Case of
:(Form event=On Before)
ARRAY TEXT(asComando;4)
asComando{1}:=Command name(1) ` Soma
asComando{2}:=Command name(2) ` Media
asComando{3}:=Command name(4) ` Min
asComando{4}:=Command name(3) ` Max
` ...
End case
Na versão inglesa de 4D, a lista suspensa conterá: Sum, Average, Min, e Max. Na versão francesa, a lista suspensa conterá: Somme, Moyenne, Min, e Max.
O seguinte código lhe permite carregar todos os comandos 4D válidos em um array:
C_LONGINT($Lon_id)
C_TEXT($Txt_command)
ARRAY LONGINT($tLon_Command_IDs;0)
ARRAY TEXT($tTxt_commands;0)
Repeat
$Lon_id:=$Lon_id+1
$Txt_command:=Command name($Lon_id)
If(OK=1) //o número de comando existe
If(Length($Txt_command)>0) //o comando não está desativado
APPEND TO ARRAY($tTxt_commands;$Txt_command)
APPEND TO ARRAY($tLon_Command_IDs;$Lon_id)
End if
End if
Until(OK=0) //fim dos comandos existentes
Produto: 4D
Tema: Linguagem
Número
538
Criado por: 4D v6
Manual de linguagem 4D ( 4D v12.4)
Manual de linguagem 4D ( 4D v14 R2)
Manual de linguagem 4D ( 4D v14 R3)
Manual de linguagem 4D ( 4D v13.5)
Manual de linguagem 4D ( 4D v14.3)
Manual de linguagem 4D ( 4D v14 R4)
Inherited from : Command name ( 4D v11 SQL Release 6)