Árvore de páginas

A550BUT - Adiciona botões de ação

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Parâmetro(s):

NomeTipoDescriçãoObrigatório

PARAMIXB[1]
oDlg

Object

Objeto de interface gráfica contendo informações e atributos sobre a tela gerada para digitação da grade de produtos

X

PARAMIXB[2]

oGet

ObjectObjeto do tipo grid contendo informações e atributos sobre a grade de produtos para digitação e pesquisa na Grade.X

Ponto de Entrada:

A550BUT - Adiciona botões de ação

Idiomas:

Português, Espanhol, Inglês

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Ponto de Entrada

Descrição:

O ponto entrada A550BUT adiciona botões de ação nas telas de inclusão e alteração da grade de produtos.

Localização:Funções A550GetInc() e A550GetAlt() - responsáveis pelas interfaces de marcação da grade dos produtos a serem gerados, antes da abertura da tela de digitação.

Eventos:


Programa Fonte:

MATA550.PRX

Sintaxe:

A550BUT - Adiciona botões de ação ( [ PARAMIXB[ 1 ] ][ PARAMIXB[ 2 ] ] ) --> aButtons

Retorno:aButtons - vetor contendo a lista de botões para serem adicionados na barra de ações relacionadas da interface de digitação da grade de produtos.
Observações:

Este ponto de entrada permite, dentre outras opções, gerar um botão para pesquisa das colunas e linhas da grade, como demonstrado adiante. No exemplo, é adicionado um botão de pesquisa em que é possível gerar uma interface gráfica para digitação da coluna e linha específica para ser posicionada na grade de produtos.

 

Exemplo:

#Include 'Protheus.ch'


User Function A550But()
Local aButtons  := {}
Local oDialog   := ParamIxb[ 1 ]
Local oGetDB    := ParamIxb[ 2 ]

/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
        Adiciona botão para Pesquisa de Celulas na MsGetDados
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/

Aadd( aButtons, { 'Pesquisar', { || U_A550Pesq( oGetDB ) } , "Botao de Pesquisa", "Pesquisar" } )

Return aButtons

User Function A550Pesq( oGetDB )
Local cBuscaLin := Space( 10 )
Local cBuscaCol := Space( 10 )
Local nOpca     := 0
Local oDlg
Local oBusca
Local lOk       := .F.
Local nTamBVTab := TamSx3( 'BV_CHAVE' )[ 01 ]

While !lOk
    DEFINE MSDIALOG oDlg TITLE OemToAnsi( "Pesquisa por Descriç?o" ) FROM 00,0 TO 100,290 OF oMainWnd PIXEL

    @08,05 SAY OemToAnsi( 'Linha:' ) OF oDlg PIXEL SIZE 25,9
    @05,30 MSGET oBusca VAR cBuscaLin PICTURE '@!' SIZE 50,9 OF oDlg PIXEL
    @23,05 SAY OemToAnsi( 'Coluna:' ) OF oDlg PIXEL SIZE 25,9
    @20,30 MSGET oBusca VAR cBuscaCol PICTURE '@!' SIZE 50,9 OF oDlg PIXEL

    DEFINE SBUTTON oBut1 FROM 05,110 TYPE 1 ACTION( nOpca := 1, oDlg:End() ) ENABLE OF oDlg
    DEFINE SBUTTON oBut1 FROM 20,110 TYPE 2 ACTION( nOpca := 2, oDlg:End() ) ENABLE OF oDlg

    ACTIVATE MSDIALOG oDlg CENTERED

    /*/
    ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
    O trecho de código abaixo pode variar de acordo com a configuração no
    Dicionário SX3, e Verifique o tamanho dos campos BV_TABELA e BV_CHAVE para
    realizar os comandos de pesquisa.
    Este exemplo esta utlizando a configuração:
        - B1_COD    = 15 posições
        - BV_CHAVE  = 06 posições
        - BV_TABELA = 02 posições
        - MV_MASCGRID = 11,02,02
    ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
    */

    If nOpca == 1
        nPosLin := Ascan( aCols     ,{ | x | AllTrim( SubStr( x[ 1 ], nTamBVTab ) ) == AllTrim( cBuscaLin ) } )
        nPosCol := Ascan( aHeader   ,{ | x | AllTrim( SubStr( x[ 1 ], nTamBVTab ) ) == AllTrim( cBuscaCol ) } )
        If nPosLin > 0 .And. nPosCol > 0
            oGetDB:oBrowse:nAt      := nPosLin
            oGetDB:oBrowse:ColPos   := nPosCol
            oGetDB:oBrowse:Refresh()
            lOk := .T.
        Else
            Alert( 'Falha na Pesquisa !' )
        EndIf
    Else
        Exit
    EndIf
End

Return Nil