4D v18

Filtrar expressões contidas em um documento 4D Write Pro

Página Inicial

 
4D v18
Filtrar expressões contidas em um documento 4D Write Pro

Filtrar expressões contidas em um documento 4D Write Pro  


 

Documentos 4D Write Pro podem conter referências a expressões dinâmicas 4D tais como variáveis e campos, além de fórmulas, métodos de projeto e comandos 4D. Expressões específicas como o número de páginas também podem ser referenciadas (ver Inserir documentos e expressões de página)

As expressôes são inseridas em áreas 4D Write Pro utilizando o comando ST INSERT EXPRESSION. Podem ser lidas com o comando ST Get expression mas também são devolvidos com os comandos WP Get textST Get plain text

As expressões (ver abaixo) são avaliadas quando os documentos são mostrados ou impressos, ou quando for chamado ao comando ST COMPUTE EXPRESSIONS. São convertidos em valores estáticos se chamar o comando ST FREEZE EXPRESSIONS.

Example  

Se quiser substituir a seleção em uma área 4D Write Pro com os conteúdos de uma variável:

 C_TEXT(fullName)
 fullName:="John Smith"
 Case of
    :(Form event code=On Clicked)
       ST INSERT EXPRESSION(myArea;"fullName";ST Start highlight;ST End highlight)
 End case

Por razões de segurança, avaliação de métodos de projeto e comandos 4D inseridos em documentos 4D Write Pro devem ser controlados pelo desenvolvedor para ter certeza que nenhuma expressão inapropriada é usada e que não gera nenhuma mudança inesperada ou efeitos colaterais no banco de dados. Isso previne que se execute comandos tais como  DELETE SELECTION ou métodos como "DeleteOrders".

Use a opção normal de filtro 4D definida ao nível do banco de dados. Esta opção está localizada na página Security da caixa de diálogo "Database Settings":

Como padrão em 4D, esta opção está marcada como Enabled for all/Ativada para todos, o que significa que comandos e métodos devem ser permitidos explicitamente, senão erros de avaliação serão retornados. Pode desativar este filtro parcialmente (para o Designer ou o Administrador) ou então para todos os usuários. Esta opção é usada para o banco de dados 4D inteiro e controla todas as avaliações de fórmulas. Para saber mais sobre esta opção, veja o manual de Referência Desenho.

Quando está opção estiver ativada:

  • usuários podem chamar apenas comandos que pertençam à lista de "fórmulas compatíveis" . Esta lista é exibida na parte direita do editor de Fórmulas:
  • usuários não podem executar qualquer método de projeto. Métodos de projeto que queira que sejam permitidos nos documentos 4D Write devem ser explicitamente declarados usando o comando SET ALLOWED METHODS

Sempre que um comando ou um método 4D  "proibido" forem encontrados durante a avaliação de uma expressão em um documento 4D Write Pro, o valor é substituido por  " ## Error # 48".

Exemplo  

Se inserir a expressão abaixo em seu documento 4D Write Pro:

 ST INSERT EXPRESSION(*;"WriteProArea";"Gender")

Como padrão, se a opção de segurança estiver marcada, o método  Gender não será avaliado:

Se executar o código abaixo:

 ARRAY TEXT(aTallow;1)
 aTallow{1}:="Gender"
 SET ALLOWED METHODS(aTallow)

O método  Gender será avaliado e retorna um valor:

O filtro não estava ativado para documentos 4D Write Pro em lançamentos anteriores. Se seus documentos 4D Write Pro  estavam referenciando métodos 4D, eles não vão mais ser avaliadoas assim que o banco de dados for convertido para 4D v16 ou superior, e será exibida uma mensagem de  "## Error # 48".

Neste caso, precisa adicionar os métodos a lista de métodos aprovados usando o comando  SET ALLOWED METHODSSET ALLOWED METHODS

Pode inserir expressões especiais relacionadas com atributos documentos ou atributos página em todas as áreas do documento (corpo, cabeçalho, rodapé) usando o comando ST INSERT EXPRESSION.

Sintaxe da expressãoTipoDescrição
$wp_titleTextoTítulo definido no atributo wk title
$wp_authorTextoAutor definido no atributo wk author
$wp_subjectTextoAssunto definido no atributo wk subject
$wp_companyTextoEmpresa definida no atributo wk company
$wp_notesTextoNotas definidas no atributo wk notes
$wp_dateCreationDataData de  criação definida no atributo wk date creation
$wp_dateModifiedDataData de modificação definida no atributo wk date modified
$wp_pageNumberInteiro longoNúmero de página, como está definido: desde o principio do documento (como padrão) ou desde a página de inicio da seção se estiver definida por inicio página da seção. Esta expressão é sempre dinâmica, não é afetada pelo comando ST FREEZE EXPRESSIONS
$wp_pageCountInteiro longoNúmero de páginas: recontagem total de páginas. Esta expressão é sempre dinâmica, não é afetada pelo comando ST FREEZE EXPRESSIONS

 

Para inserir uma expressão, tenha certeza de que o cursor se encontra na área apropriada (cabeçalho, rodapé ou corpo do documento) e chame ao comando ST INSERT EXPRESSION. Por exemplo, para inserir o número de página na área de rodapé selecionada:

 ST INSERT EXPRESSION(*;"4DWPArea";"$wp_pageNumber")

O desenho abaixo de documentos pode ser definido, por exemplo:

 

Expressões tabela e campo inseridas em documentos 4D Write Pro são compatíveis com a definição de estrutura virtual do banco de dados. A estrutura virtual exposta à fórmulas é definida com os comandos SET FIELD TITLES(...;*) e SET TABLE TITLES(...;*). 

Quando uma estrutura virtual for definida, referências à expressões contendo campos exibem nomes virtuais quando o documento 4D Write Pro mostra referências e não valores. Comandos que gerenciam referências esperam e usam nomes virtuais ou reais de acordo com a tabela abaixo:

ComandoCompatibilidade com estrutura Virtual
WP Get textRetornanomes de estrutura virtual se a opção wk expressions as source for estabelecida no parâmetro expressões.
ST Get plain textRetorna nomes de estrutura virtual se a opção ST 4D Expressions as sources for estabelecida no parâmetro refMode.
ST Get expressionIgnora estrutura virtual. Sempre retorna nomes reais de tabela/campo
ST INSERT EXPRESSIONIgnora estrutura virtual. Sempre espera nomes reia de tabela/campo

Nota: Quando um documento for exibido em modo "display expressions", referências a tabelas ou campos que não pertencem à estrutura virtual são exibidas com caracteres "?", por exemplo [VirtualTableName]? quando o campo não for definido na estrutura virtual.



Ver também 


ST INSERT EXPRESSION
Utilizar os comandos do tema Texto com estilo

 
PROPRIEDADES 

Produto: 4D
Tema: Filtrar expressões contidas em um documento 4D Write Pro

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v16
Modificado: 4D v17 R4

 
ARTICLE USAGE

Referência 4D Write Pro ( 4D v18)