Olá,
Siga este link.
http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb381a358411d1829f0000e829fbfe/content.htm
Espero que isso ajude, por favor, recompense.
Avalados por :
Olá,
Siga este link.
http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb381a358411d1829f0000e829fbfe/content.htm
Espero que isso ajude, por favor, recompense.
Olá,
AT NEW pode ser usado dentro do loop.
AT NEW f.
f é um subcampo de uma tabela interna processada com LOOP. A sequência de declarações que se segue é executada se o subcampo f ou um subcampo na linha LOOP atual definido (à esquerda) antes de f tiver um valor diferente do da linha de tabela precedente (AT NEW) ou seguinte (AT END OF).
Exemplo
TYPES: BEGIN OF COMPANIES_TYPE,
NAME(30),
PRODUCT(20),
SALES TYPE I,
END OF COMPANIES_TYPE.
DATA: COMPANIES TYPE STANDARD TABLE OF COMPANIES_TYPE WITH
NON-UNIQUE DEFAULT KEY INITIAL SIZE 20,
WA_COMPANIES TYPE COMPANIES_TYPE.
...
LOOP AT COMPANIES INTO WA_COMPANIES.
AT NEW NAME.
NEW-PAGE.
WRITE / WA_COMPANIES-NAME.
ENDAT.
WRITE: / WA_COMPANIES-PRODUCT, WA_COMPANIES-SALES.
AT END OF NAME.
SUM.
WRITE: / WA_COMPANIES-NAME, WA_COMPANIES-SALES.
ENDAT.
ENDLOOP.
As declarações AT referem-se ao campo COMPANIES-NAME.
Notas
Se um critério de interrupção de controle não é conhecido até o tempo de execução, pode-se usar AT NEW (nome) ou AT END OF (nome) para especificá-lo dinamicamente como o conteúdo do campo nome. Se o nome estiver em branco no tempo de execução, o critério de interrupção de controle é ignorado e a sequência de declarações não é executada. Se o nome contiver um nome de componente inválido, ocorrerá um erro no tempo de execução.
Ao definir um deslocamento e/ou comprimento, é possível restringir ainda mais os critérios de interrupção de controle, independentemente de serem especificados estaticamente ou dinamicamente.
Também é possível usar um símbolo de campo que aponta para a área de saída do LOOP como um critério de interrupção de controle dinâmico. Se o símbolo de campo não apontar para a área de saída do LOOP, ocorrerá um erro no tempo de execução.
Olá,
Em um loop, toda vez que houver uma nova entrada para o campo, o AT NEW é ativado e processa o bloco.
POR EXEMPLO:
ORDENAR I_VBAP POR VBELN.
LOOP EM I_VBAP.
AT NEW VBELN.
ENDAT.
ENDLOOP.
na tabela interna i_vbap, toda vez que um novo vbeln é encontrado, o evento at new é ativado.
Saudações,
madhu
Olá,
AT - itab
Sintaxe
LOOP AT itab resultado ...
[AT FIRST.
...
ENDAT.]
[AT NEW comp1.
...
ENDAT.
[AT NEW comp2.
...
ENDAT.
[...]]]
[ ... ]
[[[...]
AT END OF comp2.
...
ENDAT.]
AT END OF comp1.
...
ENDAT.]
[AT LAST.
...
ENDAT.]
ENDLOOP.
Extras:
1. ... PRIMEIRO
2. ... |{FIM DE} compi 3. ... ÚLTIMO Efeito O bloco de instruções de um loop LOOP pode conter estruturas de controle para o processamento em nível de controle. A instrução de controle correspondente é AT. As instruções AT e ENDAT definem blocos de instruções que são executados nos cortes de controle, ou seja, quando a estrutura de controle muda. As adições às instruções AT determinam o corte de controle no qual seus blocos de instruções são executados. Dentro desses blocos de instruções, a instrução SUM pode ser especificada para somar os componentes numéricos de um nível de controle. Para o comportamento de saída resultante, aplica-se o mesmo que para LOOP AT. O requisito prévio para o processamento em nível de controle é que a tabela interna esteja ordenada exatamente na mesma sequência que o componente de seu tipo de linha, ou seja, primeiro de acordo com o primeiro componente, depois de acordo com o segundo componente e assim por diante. A estrutura de linha e a sequência de classificação correspondente fornecem uma estrutura de grupo para o conteúdo da tabela interna, cujos níveis podem ser avaliados usando instruções AT. As estruturas de controle AT-ENDAT devem ser alinhadas uma após a outra, de acordo com a estrutura de grupo. Os blocos de instruções dentro das estruturas de controle AT-ENDAT são listados se um corte de controle apropriado for feito na linha atual da tabela. As instruções na estrutura de controle LOOP-ENDLOOP que não são executadas dentro de uma estrutura de controle AT-ENDAT são executadas a cada passo do loop. Para que o processamento em nível de controle seja feito corretamente, as seguintes regras devem ser observadas: Após o LOOP, uma condição restritiva cond só pode ser especificada se você selecionar um bloco de linhas consecutivas da tabela interna. Caso contrário, o comportamento do processamento em nível de controle é indefinido. A tabela interna não pode ser modificada dentro do loop LOOP. Uma área de trabalho wa especificada na instrução LOOP após a adição INTO deve ser compatível com o tipo de linha da tabela. O conteúdo de uma área de trabalho wa especificada após a adição INTO na instrução LOOP não deve ser modificado. Se a adição INTO na instrução LOOP for usada para atribuir o conteúdo da linha atual a uma área de trabalho wa, seu conteúdo é modificado ao entrar na estrutura de controle AT-ENDAT da seguinte maneira: Os componentes da chave de controle atual permanecem inalterados. Todos os componentes com um tipo de dados de caractere, à direita da chave de controle atual, são definidos como "*" em cada posição. Todos os outros componentes à direita da chave de controle atual são definidos em seu valor inicial. Ao sair da estrutura de controle AT-ENDAT, o conteúdo da linha atual da tabela é atribuído a toda a área de trabalho wa. Adição 1 ... PRIMEIRO Efeito O nível de controle é definido pela primeira linha da tabela interna. O corte de controle ocorre quando esta linha é lida. Nota No nível de grupo AT FIRST, a chave de grupo atual não contém componentes e todos os componentes do tipo caractere da área de trabalho wa estão preenchidos com "*" e todos os outros componentes são definidos em seu valor inicial. Adição 2 ... |{FIM DE} compi/>
Efeito
: Os níveis de controle são definidos pelo início ou final de um grupo de linhas com o mesmo conteúdo no componente compi (onde i = 1, 2 e assim por diante) e nos componentes à esquerda de compi. Os cortes de controle ocorrem quando o conteúdo do componente compi ou de outro componente à esquerda de compi muda.
Os componentes compi podem ser especificados conforme descrito na Especificação de Componentes, com a limitação de que aqui não é possível acessar os atributos do objeto.
Nota
Se as adições INTO ou ASSIGNING forem usadas na instrução LOOP, um símbolo de campo pode ser inserido após AT |{FIM DE} classes externas, ao qual o componente correspondente da área de trabalho wa ou o símbolo de campo <fs> é atribuído. Esta forma de especificação dinâmica de componentes está obsoleta e foi substituída.
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute