FMLINFO: Como Obter Valores FOR

Como:

Linguagens Disponíveis: Reporting

A função FMLINFO exibe o valor FOR associado com cada linha em um relatório FML. Com FMLINFO, você pode utilizar o valor FOR adequado em um comando COMPUTE para fazer buscas detalhadas e assinar alterações para cada linha do relatório, mesmo quando a linha é uma linha resumo criada utilizando uma lista OR ou um comando ADD da hierarquia do Financial Modeling Language (FML).

Observação: É possível utilizar o parâmetro SET FORMULTIPLE=ON para habilitar um registro de entrada a ser utilizado em mais de uma linha em um relatório FML.


Topo da página

x
Sintaxe: Como Reter valores FOR em um pedido FML
FMLINFO('FORVALUE', output)

onde:

'FORVALUE'

Alfanumérico

Exibe o valor FOR associado com cada linha em um relatório FML. Se a linha FML tiver sido gerada como uma soma de registros de dados utilizando a frase OR, FMLINFO exibirá o primeiro valor FOR especificado na lista de valores. Se a frase OR tiver sido gerada por um comando ADD da Hierarquia FML, FMLINFO exibe o valor FOR associado ao pai especificado no comando ADD.

saída

Alfanumérico

É o nome do campo que contém o resultado ou o formato do valor de saída posto entre aspas simples.



Exemplo: Como Obter Valores FOR para Linhas de Hierarquia FML

A solicitação a seguir cria um campo chamado PRINT_AMT que é o negativo do campo NAT_AMOUNT para números de conta menores que 2500 na fonte de dados CENTSYSF. A fonte de dados CENTGL contém as informações de hierarquia para CENTSYSF. Portanto, CENTGL é unido a CENTSYSF para a solicitação:

SET FORMULTIPLE = ON
JOIN SYS_ACCOUNT IN CENTGL TO ALL SYS_ACCOUNT IN CENTSYSF
TABLE FILE CENTGL
SUM NAT_AMOUNT/D10 IN 30
COMPUTE PRINT_AMT/D10 = IF FMLINFO('FORVALUE','A7') LT '2500'
     THEN 0-NAT_AMOUNT ELSE NAT_AMOUNT;
COMPUTE FORV/A4 = FMLINFO('FORVALUE', 'A4');
COMPUTE ACTION/A9  = IF FORV LT '2500'
      THEN 'CHANGED' ELSE 'UNCHANGED';
FOR GL_ACCOUNT
2000 WITH CHILDREN 2 ADD AS CAPTION
END

Observação: O valor pai especificado no comando WITH CHILDREN ADD (2000) é exibido para a primeira linha do relatório. Cada linha subsequente também é uma subseção consolidade da hierarquia com um valor pai que é exibido por FMLINFO:

                                   Month 
                                  Actual     PRINT_AMT  FORV  ACTION
                                  ------     ---------  ----  ------ 
Gross Margin                 -25,639,223    25,639,223  2000  CHANGED
  Sales Revenue              -62,362,490    62,362,490  2100  CHANGED
    Retail Sales             -49,355,184    49,355,184  2200  CHANGED
    Mail Order Sales          -6,899,416     6,899,416  2300  CHANGED
    Internet Sales            -6,107,890     6,107,890  2400  CHANGED
  Cost Of Goods Sold          36,723,267    36,723,267  2500  UNCHANGED
    Variable Material Costs   27,438,625    27,438,625  2600  UNCHANGED
    Direct Labor               6,176,900     6,176,900  2700  UNCHANGED
    Fixed Costs                3,107,742     3,107,742  2800  UNCHANGED



Exemplo: Como Utilizar FMLINFO com uma Frase OR

O valor FOR impresso para a linha de resumo é 1010, mas FMLINFO retorna o primeiro valor especificado na lista OR, 1030:

SET FORMULTIPLE = ON
TABLE FILE LEDGER 
SUM AMOUNT
COMPUTE RETURNEDFOR/A8 = FMLINFO('FORVALUE','A8');
FOR ACCOUNT
1010                  OVER 
1020                  OVER
1030                  OVER
BAR                   OVER
1030 OR 1020 OR 1010
END

A saída é:

 
AMOUNT
RETURNEDFOR
1010
1020
1030
 8,784
 4,494
 7,961
1010 
1020 
1030
 
------
---------
1010
21,239
1030

Information Builders