Abrindo uma tela para marcação de registros com a F_Opcoes – Maratona AdvPL e TL++ 261

Nesse vídeo demonstraremos a utilização da função F_Opcoes, que serve para abrir uma tela com marcação de registros.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe261
Função que abre uma tela para seleção de registros conforme um Array
@type  Function
@author Atilio
@since 21/02/2023
@obs 

    Função F_Opcoes
    Parâmetros
        + Define a variável de retorno
        + Define o texto do título da janela
        + Define o array de linhas da grid
        + Define os códigos das linhas da grid
        + Mantido por compatibilidade
        + Mantido por compatibilidade
        + Define se será a seleção de apenas 1 linha por vez
        + Tamanho da string da chave
        + Número máximo de elementos
        + Inclui botões para múltipla seleção
        + Define se será montado através de um X3_CBOX
        + Qual é o campo para montagem das opções
        + Não permite ordenação
        + Não permite pesquisar
        + Força o retorno como Array
        + Acionado em consulta F3
    Retorno
        Retorna .T. se foi confirmado ou .F. se foi cancelado
    
    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe261()
    Local aArea      := FWGetArea()
    Local aRet       := {}
    Local cTitulo    := "Regiões do Brasil"
    Local aOpc       := {}
    Local cRet       := ""

    //Define as opções que serão exibidas
    aAdd(aOpc, "Norte")
    aAdd(aOpc, "Nordeste")
    aAdd(aOpc, "Centro Oeste")
    aAdd(aOpc, "Sudeste")
    aAdd(aOpc, "Sul")

    //Define as opções de retorno (conforme o aOpc acima)
    cRet := "000000001000000002000000003000000004000000005"

    //Abre a tela para a seleção
    If F_Opcoes(@aRet       ,;    //uVarRet
                cTitulo     ,;    //cTitulo
                aOpc        ,;    //aOpcoes
                cRet        ,;    //cOpcoes
                12          ,;    //nLin1
                49          ,;    //nCol1
                .T.         ,;    //l1Elem
                9           ,;    //nTam
                999         ,;    //nElemRet
                .F.         ,;    //lMultSelect
                .F.         ,;    //lComboBox
                Nil         ,;    //cCampo
                .F.         ,;    //lNotOrdena
                .F.         ,;    //lNotPesq
                .T.         ,;    //lForceRe
                Nil          ;    //cF3
        )

        FWAlertInfo("A opção marcada foi " + aRet[1], "Teste F_Opcoes")
    EndIf

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

2 Responses

  1. THIAGO OLIVEIRA DO NASCIMENTO disse:

    Boa tarde tudo bem? Estou utilizando a rotina f_Opcoes dentro de uma consulta padrão porem o nome sem ser o da variável cTitulo vem fixo a palavra ENDEREÇO já tentei analisar de onde vem sem sucesso.

    • Bom dia Thiago, tudo joia?

      Que estranho, tentamos simular aqui e não vimos nenhum texto “ENDEREÇO”, você teria o print para nos enviar?

      Se for o caso, tente simular com o exemplo do fonte desse artigo e veja se vai exibir esse texto.

      Ficamos no aguardo.

      Tenha uma ótima e abençoada quarta feira.

      Um grande abraço.

Deixe uma resposta

Terminal de Informação