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 ] ][ 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:
codelanguage | delphi |
---|---|
theme | Midnight |
title | Exemplo A550BUT |
linenumbers | true |
#Include
User
Function
A550BUTA550But()
Local
aButtons
:=
{}
Local
oDialog
:=
PARAMIXBParamIxb[ 1 ]
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Adiciona botao para pesquisa de celulas da MsGetDados ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Local oGetDB :=ParamIxb[ 2 ]
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
Adiciona botão para Pesquisa de Celulas na MsGetDados
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Aadd( aButtons,
{ 'Pesquisar', { || U_A550Pesq(
oDialogoGetDB ) } ,"
BotãoBotao de
pesquisaPesquisa","Pesquisar" } )
Return
aButtons
User
Function
A550Pesq(
oWindowoGetDB )
Local
cBuscaLin
:=
Space( 10 )
Local
cBuscaCol
:=
Space( 10 )
Local
nOpca
:=
0
Local
oDlg
Local
oBusca
Local
lOk
:=
.F.
Local
nTamBVTab
:=
TamSX3TamSx3(
"'BV_
TABELA"CHAVE' )[
101 ]
While
!lOk
DEFINE
MSDIALOG
oDlg
TITLE
OemtoAnsiOemToAnsi( "Pesquisa
por
descriçãoDescriç?o" )
FROM
00,0
TO
100,290
OF
oMainWnd
PIXEL @PIXEL
@08,05
SAY
OemToAnsi(
"LINHA'Linha:
"' )
OfOFoDlg
PIXEL
SIZE
25
,9
@
@05,30
MSGET
oBusca
VAR
cBuscaLin
PICTURE
"'@!
"'SIZE
50,
9
OF
oDlg
PIXEL @PIXEL
@23,05
SAY
OemToAnsi(
"COLUNA'Coluna:
"' )
OfOFoDlg
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,OFoDlg
DEFINESBUTTONoBut1FROM20,110TYPE2ACTION( nOpca:=2,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 ReturnOFoDlg
ACTIVATEMSDIALOGoDlgCENTERED
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
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
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
IfnOpca==1
nPosLin:=Ascan( aCols ,{ | x | AllTrim( SubStr( x[ 1 ],nTamBVTab ) ) ==AllTrim( cBuscaLin ) } )
nPosCol:=Ascan( aHeader ,{ | x | AllTrim( SubStr( x[ 1 ],nTamBVTab ) ) ==AllTrim( cBuscaCol ) } )
IfnPosLin>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
ReturnNil