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): |
| ||||||||||||
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