Existem alguns cuidados necessários para criação e utilização de variáveis do tipo array como:

 

  • Na criação sempre inicializa-la como um Array.

1.     Exemplo:

           

// ArrayInitializationSample.prw

 

Local aRet1 := {}

Local aRet2 := Array()

 

Assim garantimos que quando usamos funções como Len(), não será apresentado “Erro”.

 

  • Carregar em linhas ao invés de colocá-los em uma só linha de comando, colocar uma posição por linha.

2.     Exemplo:

 

// ArrayAAddSample.prw

AAdd(aRet,{ X3Titulo(),;                   // 01

                           X3_CAMPO,;         // 02

                           X3_PICTURE,;      // 03

                           X3_TAMANHO,;      // 04

                           X3_DECIMAL,;      // 05

                           X3_VALID,;         // 06

                           X3_USADO,;         // 07

                           X3_TIPO,;          // 08

                           X3_ARQUIVO,;      // 09

                           X3_CONTEXT,;      // 10

                           X3_PROPRI   } )    // 11

 

           

  • Para ajudar na manutenção e o uso desse Array, importante sempre documentar cada posição.

3.     Exemplo

                                                          

// ArrayAssignmentSample.prw

 

// [01] Abatimentos

// [02] Correcao Monetaria

// [03] Juros

// [04] Acrescimo

// [05] Decrescimo

// [06] Desconto

// [07] Valor Original do Titulo

// [08] Saldo do Titulo na Moeda do Titulo

// [09] Saldo do Titulo na Moeda Corrente

// [10] Pagamento Parcial

// [11] Valor a ser Recebido na moeda do titulo

// [12] Valor a ser Recebido na moeda corrente

                                

aRdpTlc[1][2]     := aRdpTlc[1][2] + aValores[2]

aRdpTlc[2][2]     := aRdpTlc[2][2] + aValores[10]

aRdpTlc[3][2]     := aRdpTlc[3][2] + aValores[8]

aRdpTlc[4][2]     := aRdpTlc[4][2] + aValores[5]

aRdpTlc[5][2]     := aRdpTlc[5][2] + aValores[4]

aRdpTlc[6][2]     := aRdpTlc[6][2] + aValores[9]

aRdpTlc[7][2]     := aRdpTlc[7][2] + aValores[1]

aRdpTlc[8][2]     := aRdpTlc[8][2] + aValores[6]

aRdpTlc[9][2]     := aRdpTlc[9][2] + aValores[7]

aRdpTlc[10][2]:= aRdpTlc[10][2] + aValores[3]

aRdpTlc[11][2]:= aRdpTlc[11][2] + aValores[11]

aRdpTlc[12][2]:= aRdpTlc[12][2] + aValores[12]

 

  • Antes de referencia os dados de um Array, é necessário verificar se realmente existes dados carregado no mesmo, para não exibir erro.

4.     Exemplo:

                       

// ArrayReferenceSample.prw

If Len(aRet) > 0

      cRet := aRet[1]

EndIf

 

  • Sem rótulos