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 |