4D v14.3

Command name

Página Inicial

 
4D v14.3
Command name

Command name 


 

Command name ( comando ) -> Resultado 
Parâmetro Tipo   Descrição
comando  Inteiro longo in Número de comando
Resultado  cadeia in 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

 
PROPRIEDADES 

Produto: 4D
Tema: Linguagem
Número 538

Este comando modifica a variável sistema OK

 
HISTÓRIA 

Criado por: 4D v6

 
VER TAMBÉM 

EXECUTE FORMULA

 
ARTICLE USAGE

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)