Introdução

A linguagem ADVPL é utilizada no sistema Protheus para desenvolver aplicações personalizadas. Uma das funções importantes nessa linguagem é a capacidade de manipular e acessar dados em arrays e matrizes. Neste artigo, vamos explorar a função `fGetColValue` que é usada para obter o valor de uma coluna específica em uma matriz.

Para que serve esta função?

A função `fGetColValue` serve para encontrar o valor de uma coluna específica em uma matriz, com base no nome do campo. Isso é útil quando você precisa acessar dados em uma matriz, mas não conhece a posição exata da coluna que deseja acessar.

Entendendo a Lógica

A função `fGetColValue` recebe um parâmetro `cCampo`, que é o nome do campo cujo valor deseja-se obter. Aqui está o código da função:


Static Function fGetColValue(cCampo)
    Local nPos := 0
    Local xVal := ""

    // procura a posição do campo no cabeçalho
    nPos := aScan(aHeader, {|x| AllTrim(x[2]) == AllTrim(cCampo)})

    If nPos > 0
        xVal := aCols[n][nPos]
    EndIf

Return xVal

A lógica da função é a seguinte:
- Ela utiliza a função `aScan` para procurar a posição do campo `cCampo` no array `aHeader`. O array `aHeader` parece conter os nomes dos campos, e a função `aScan` retorna a posição do campo se ele for encontrado.
- Se o campo for encontrado (ou seja, `nPos > 0`), a função atribui o valor da coluna correspondente à variável `xVal`. O valor é obtido do array `aCols`, que parece conter os valores das colunas. A posição da coluna é obtida do array `aHeader`.
- Finalmente, a função retorna o valor da coluna.

Tabelas e Parâmetros Utilizados

Embora o código não faça referência explícita a tabelas ou parâmetros específicos do sistema Protheus, como a tabela SA1 ou o parâmetro MV_NFCDESC, é importante notar que a função `fGetColValue` pode ser utilizada em conjunto com esses elementos para obter dados específicos. Por exemplo, se você estiver trabalhando com a tabela SA1 e quiser obter o valor do campo A1_COD, você poderia passar o nome do campo como parâmetro para a função `fGetColValue`.

Conclusão

A função `fGetColValue` é uma ferramenta útil para obter o valor de uma coluna específica em uma matriz, com base no nome do campo. Ela é flexível e pode ser utilizada em conjunto com diferentes tabelas e parâmetros do sistema Protheus. Compreender como essa função opera pode ajudar os desenvolvedores a criar aplicações mais eficientes e personalizadas para atender às necessidades específicas dos usuários do sistema Protheus.