Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

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

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
languagedelphi
themeMidnight
titleExemplo A550BUT
linenumberstrue
#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