Quais são os botões disponíveis para usar no FormBatch | Ti Responde 0105

No vídeo de hoje, vamos demonstrar quais são os botões disponíveis para usar em uma FormBatch.

A dúvida de hoje, nos perguntaram, quais tipos de botões poderiam ser usados em uma FormBatch, se teria como colocar por exemplo “Incluir”, “Excluir”, entre outros.

 

Pensando nisso, montamos esse exemplo, onde demonstramos a utilização da classe SButton, e os 23 tipos de botões que existem, com isso podendo usar na FormBatch.

 

Segue abaixo o vídeo exemplificando:

 

E abaixo o código fonte desenvolvido:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zVid0105
Vamos demonstrar quais botões podem ser usados num FormBatch
@type  Function
@author Atilio
@since 06/03/2024
@obs Abaixo a lista de botões (veja em https://tdn.totvs.com/display/tec/Construtor+SButton%3ANew)
    01 = OK
    02 = Cancelar
    03 = Excluir
    04 = Incluir
    05 = Parâmetros
    06 = Imprimir
    07 = Susp. Impr.
    08 = Cancelar Impressão
    09 = Ordem
    10 = Prioridade
    11 = Editar
    12 = Ouvir
    13 = Salvar
    14 = Abrir
    15 = Visualizar
    16 = Cond. Neg.
    17 = Filtrar
    18 = Financ.
    19 = Avançar
    20 = Voltar
    21 = Avançar
    22 = Voltar
    23 = Gráfico
/*/

User Function zVid0105()
    Local aArea := FWGetArea()

    //Monta uma dialog de Exemplo, conforme disponível no TDN - 
    fExempBtn()

    //Agora monta um FormBatch com alguns botões
    fExempForm()

    FWRestArea(aArea)
Return

Static Function fExempBtn()
    Local aArea := FWGetArea()
    Local oDlgBtn
    Local nJanAltu    := 300
    Local nJanLarg    := 300
    Local lDimPixels  := .T.
    Local lCentraliz  := .T.
    Local bBlocoIni   := {|| }
    Local cJanTitulo  := "Exemplo de SButton"
    //Fonte usada
    Local cFontNome   := 'Tahoma'
    Local oFontPadrao := TFont():New(cFontNome, , -12)
    //Colunas dos objetos
    Local nColunaA := 001
    Local nColunaB := 031
    Local nColunaC := 061
    Local nColunaD := 091
    Local nColunaE := 121
    //Objetos dentro da Janela
    Local oSayTip01, oBtnTip01
    Local oSayTip02, oBtnTip02
    Local oSayTip03, oBtnTip03
    Local oSayTip04, oBtnTip04
    Local oSayTip05, oBtnTip05
    Local oSayTip06, oBtnTip06
    Local oSayTip07, oBtnTip07
    Local oSayTip08, oBtnTip08
    Local oSayTip09, oBtnTip09
    Local oSayTip10, oBtnTip10
    Local oSayTip11, oBtnTip11
    Local oSayTip12, oBtnTip12
    Local oSayTip13, oBtnTip13
    Local oSayTip14, oBtnTip14
    Local oSayTip15, oBtnTip15
    Local oSayTip16, oBtnTip16
    Local oSayTip17, oBtnTip17
    Local oSayTip18, oBtnTip18
    Local oSayTip19, oBtnTip19
    Local oSayTip20, oBtnTip20
    Local oSayTip21, oBtnTip21
    Local oSayTip22, oBtnTip22
    Local oSayTip23, oBtnTip23

    //Cria a dialog
    oDlgBtn := TDialog():New(0, 0, nJanAltu, nJanLarg, cJanTitulo, , , , , , /*nCorFundo*/, , , lDimPixels)

        //Primeira linha (tipo 01 ao 05)
        oSayTip01 := TSay():New(001, nColunaA, {|| "Tipo 01:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip02 := TSay():New(001, nColunaB, {|| "Tipo 02:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip03 := TSay():New(001, nColunaC, {|| "Tipo 03:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip04 := TSay():New(001, nColunaD, {|| "Tipo 04:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip05 := TSay():New(001, nColunaE, {|| "Tipo 05:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oBtnTip01 := SButton():New(011, nColunaA, 01, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip02 := SButton():New(011, nColunaB, 02, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip03 := SButton():New(011, nColunaC, 03, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip04 := SButton():New(011, nColunaD, 04, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip05 := SButton():New(011, nColunaE, 05, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)

        //Segunda linha (tipo 06 ao 10)
        oSayTip06 := TSay():New(031, nColunaA, {|| "Tipo 06:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip07 := TSay():New(031, nColunaB, {|| "Tipo 07:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip08 := TSay():New(031, nColunaC, {|| "Tipo 08:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip09 := TSay():New(031, nColunaD, {|| "Tipo 09:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip10 := TSay():New(031, nColunaE, {|| "Tipo 10:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oBtnTip06 := SButton():New(041, nColunaA, 06, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip07 := SButton():New(041, nColunaB, 07, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip08 := SButton():New(041, nColunaC, 08, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip09 := SButton():New(041, nColunaD, 09, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip10 := SButton():New(041, nColunaE, 10, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)

        //Terceira linha (tipo 11 ao 15)
        oSayTip11 := TSay():New(061, nColunaA, {|| "Tipo 11:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip12 := TSay():New(061, nColunaB, {|| "Tipo 12:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip13 := TSay():New(061, nColunaC, {|| "Tipo 13:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip14 := TSay():New(061, nColunaD, {|| "Tipo 14:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip15 := TSay():New(061, nColunaE, {|| "Tipo 15:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oBtnTip11 := SButton():New(071, nColunaA, 11, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip12 := SButton():New(071, nColunaB, 12, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip13 := SButton():New(071, nColunaC, 13, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip14 := SButton():New(071, nColunaD, 14, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip15 := SButton():New(071, nColunaE, 15, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)

        //Quarta linha (tipo 16 ao 20)
        oSayTip16 := TSay():New(091, nColunaA, {|| "Tipo 16:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip17 := TSay():New(091, nColunaB, {|| "Tipo 17:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip18 := TSay():New(091, nColunaC, {|| "Tipo 18:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip19 := TSay():New(091, nColunaD, {|| "Tipo 19:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip20 := TSay():New(091, nColunaE, {|| "Tipo 20:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oBtnTip16 := SButton():New(101, nColunaA, 16, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip17 := SButton():New(101, nColunaB, 17, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip18 := SButton():New(101, nColunaC, 18, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip19 := SButton():New(101, nColunaD, 19, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip20 := SButton():New(101, nColunaE, 20, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)

        //Quinta linha (tipo 21 ao 23)
        oSayTip21 := TSay():New(121, nColunaA, {|| "Tipo 21:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip22 := TSay():New(121, nColunaB, {|| "Tipo 22:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oSayTip23 := TSay():New(121, nColunaC, {|| "Tipo 23:"}, oDlgBtn, /*cPicture*/, oFontPadrao, , , , lDimPixels, /*nClrText*/, /*nClrBack*/, 30, 10, , , , , , /*lHTML*/)
        oBtnTip21 := SButton():New(131, nColunaA, 21, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip22 := SButton():New(131, nColunaB, 22, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)
        oBtnTip23 := SButton():New(131, nColunaC, 23, {|| Alert('Tst')}, oDlgBtn, .T., /*cMsg*/, /*bWhen*/)

    //Ativa e exibe a janela
    oDlgBtn:Activate(, , , lCentraliz, , , bBlocoIni)

    FWRestArea(aArea)
Return

Static Function fExempForm()
    Local aArea     := FWGetArea()
    Local aTexto    := {}
    Local aBotoes   := {}
    Local nContinua := 0
    Local cTitulo   := "Processamento de Dados"

    //Monta o texto que será exibido na tela
    aAdd(aTexto, "Essa é uma rotina para processamento de informações")
    aAdd(aTexto, "--")
    aAdd(aTexto, "Abaixo uma estrófe da música tema do Duck Dodgers:")
    aAdd(aTexto, "Duck Dodgers of the twenty-four and a half century")
    aAdd(aTexto, "Protecting the powerless and the weak")
    aAdd(aTexto, "Duck Dodgers he s fighting tyranny")
    aAdd(aTexto, "In the twenty-four and a half century")

    //Monta os botões que serão exibidos
    aAdd(aBotoes, {01, .T., {|| nContinua := 1, FechaBatch()} }) //01 = Confirmar
	aAdd(aBotoes, {02, .T., {|| nContinua := 2, FechaBatch()} }) //02 = Cancelar
    aAdd(aBotoes, {14, .T., {|| Alert("Abrindo")}             }) //14 = Abrir
    aAdd(aBotoes, {17, .T., {|| Alert("Filtrando")}           }) //17 = Filtrar

    //Abre a tela
    FormBatch(cTitulo, aTexto, aBotoes) 

    //Se o usuário clicou no Confirmar
    If nContinua == 1
        //Aqui você aciona a sua função se o usuário clicou no botão confirmar
    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.

Deixe uma resposta

Terminal de Informação