Histórico da Página
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] ] ) --> 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:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#Include 'Protheus.ch' User Function A550BUT() Local aButtons := {} Local oDialog := PARAMIXB[1] //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Adiciona botao para pesquisa de celulas da MsGetDados ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Aadd(aButtons, {'Pesquisar',{||U_A550Pesq(oDialog)},"Botão de pesquisa","Pesquisar"}) Return aButtons User Function A550Pesq(oWindow) Local cBuscaLin := Space(10) Local cBuscaCol := Space(10) Local nOpca := 0 Local oDlg Local oBusca Local lOk := .F. Local nTamBVTab := TamSX3("BV_TABELA")[1] 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 := 0, oDlg:End() ) ENABLE of oDlg ACTIVATE MSDIALOG oDlg CENTERED If nOpca == 1 //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Essa sessao de codigo pode variar de acordo com o dicionario SX3, portanto, ³ //³ altere-a conforme necessario. Verifique o tamanho dos campos BV_TABELA e BV_CHAVE ³ //³ para realizar os comandos abaixo. Nesse exemplo, o ambiente esta configurado como a seguir: ³ //³ Tamanho B1_COD = 15 ³ //³ Tamanho BV_CHAVE = 6 ³ //³ Tamanho BV_TABELA = 2 ³ //³ MV_MASCGRD = 11,02,02 ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ nPosLin := Ascan(aCols ,{|x| Alltrim(Substr(x[1],nTamBVTab + 4)) == AllTrim(cBuscaLin) }) nPosCol := Ascan(aHeader,{|x| Alltrim(Substr(x[1],nTamBVTab + 4)) == AllTrim(cBuscaCol) }) If nPosLin > 0 .And. nPosCol > 0 oWindow:oCtlFocus:nAt := nPosLin oWindow:oCtlFocus:colpos := nPosCol oWindow:Refresh() lOk := .T. Else Alert("Falha na pesquisa !") EndIf Else Exit EndIf End Return Nil |