Como ter inúmeras opções em um campo Combo no Protheus?

Hoje vou mostrar como ter inúmeras opções em um campo Combo no Protheus via AdvPL.

Algumas vezes precisamos criar um campo do tipo Combo Box no Protheus, porém no Configurador, a lista de opções (campo X3_CBOX) tem um pouco mais de 100 caracteres.

Portanto, se você precisar criar inúmeras opções, você terá um espaço limitado. Mas como resolveríamos isso?

O Protheus tem um recurso nativo, que ele pode chamar funções para carregar nas opções do combo. Para isso, basta começar com o caractere # (cerquilha). Por exemplo, colocar na lista de opções #u_zOpcoes() .

E sua função, teria o seguinte conteúdo:

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zOpcoes
Função para retornar uma lista de opções em um campo combo
@author Atilio
@since 29/10/2018
@version 1.0
@type function
/*/

User Function zOpcoes()
Local aArea   := GetArea()
Local cOpcoes := ""

//Montando as opções de retorno
cOpcoes += "1=Opção 1;"
cOpcoes += "2=Opção 2;"
cOpcoes += "3=Opção 3;"
cOpcoes += "4=Opção 4;"
cOpcoes += "5=Opção 5;"
cOpcoes += "6=Opção 6;"
cOpcoes += "7=Opção 7;"
cOpcoes += "8=Opção 8;"
cOpcoes += "9=Opção 9;"
cOpcoes += "0=Opção 0;"
cOpcoes += "A=Opção A;"
cOpcoes += "B=Opção B;"
cOpcoes += "C=Opção C;"
cOpcoes += "D=Opção D;"
cOpcoes += "E=Opção E;"
cOpcoes += "F=Opção F;"
cOpcoes += "G=Opção G;"

RestArea(aArea)
Return cOpcoes

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

3 Responses

  1. Jose Santos disse:

    Sei que o post é um pouco antigo, mas me deparei com a seguinte situação ao usar algo parecido com o que foi indicado acima.
    Ao colocar o campo combo com inúmeras opções no Browse o valor dele não aparece…. é gravado no banco normalmente, consigo usar sem problemas no AdvPL, porém, no Browse aparece como se estivesse em branco.
    Alguém passando por isso?

    • Dan_Atilio disse:

      Bom dia Jose, tudo bem?
      Qual é o tamanho do campo?
      Campos do tipo Combo, para funcionarem corretamente no browse, tem que ter tamanho igual a 1.

      • Jose Santos disse:

        Acredito que esteja aí o problema, então. Quem fez essa customização, colocou as opções com mais de um caracter. Muito obrigado! Vou resolver!!! Abração!!!

Deixe uma resposta