Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

 Ponto de entrada para rotina de Retorno de Check List 


Aviso
titleAtenção

Os pontos de entrada ( MNTA7351, MNTA7352, MNTA7355, MNTA7356 e MNTA7358 ) encontram-se descontinuados, passando a ser utilizado somente o modelo MVC que contas nesta documentação.


Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Manufatura

Módulo:

SIGAMNT - Manutenção de Ativos e Gestão de Frotas

Rotina:

Rotina

Nome Técnico

MNTA735

Retorno Check List

Tickets:7351993
Issues:DNG-8705

Países:

Todos.

Bancos de Dados:

Todos.

Sistemas Operacionais:

Todos.

Ponto de Entrada

Descrição:

Ponto de entrada no padrão MVC para customização da rotina de check list.

Localização:

SIGAMNT: Atualizações > Controle de Oficina > Check List  > Retorno Check List

Programa Fonte:

MNTA735.prw

Parâmetros:
NomeTipoDescriçãoObrigatório
ParamIXB[1]ObjetoModelo de Dados

Sim

ParamIXB[2]CaracterIdentificador do ponto de chamadaSim
ParamIXB[3]CaracterIdentificador do modelo de dadosSim

Retorno:

Nome

Tipo

Descrição

Obrigatório

 xRet

Indefinido

O retorno pode se modificar, dependendo do ponto de chamada enviado pelo parâmetro PARAMIXB[2]

Sim

Links:Pontos de entrada padrão MVC
Bloco de código
languagesql
titleExemplo P.E. MNTA735 padrão MVC
linenumberstrue
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'FWMVCDEF.CH'

User Function MNTA735()

	Local aParam    := PARAMIXB
	Local aAreaTTF  := {}
	Local xRet      := Nil.T.
	Local oObj      := Nil
	Local oGrid1    := Nil
	Local cIdPonto  := ''
	Local cIdModel  := ''
	Local cEtapa    := ''
	Local nLinhas   := 0
	Local nLenGrid  := 0
	Local nInd      := 0

	If !Empty( aParam )

		oObj     := aParam[1] // Modelo ativado.
		cIdPonto := aParam[2] // Determina o ponto de chamada.
		cIdModel := aParam[3] // Identificador do modelo.

		Do Case

			// Acionado antes da gravação da tabela do formulário.
			Case cIdPonto == 'FORMCOMMITTTSPRE'

				// Substituição do ponto de entrada MNTA7352.
				If cIdModel == 'MNTA735'

					oGrid1  := PARAMIXB[4] //Retorna a Grid que contêm os valores da TTG.
					nLinhas := 0

					oGrid1:AddLine() //Adiciona uma nova linha.
					nLinhas := oGrid1:Length() // Quantidade Total de linhas do oGrid1.
					oGrid1:GoLine( nLinhas ) //Posiciona na nova linha incluída.

					//Adiciona valores na Grid.
					oGrid1:LoadValue( 'TTD_TIPMOD', 'X' )
					oGrid1:LoadValue( 'TTG_CHECK', oObj:GetValue( 'TTFMASTER', 'TTF_CHECK' ) )
					oGrid1:LoadValue( 'TTG_ETAPA', '01' )
					oGrid1:LoadValue( 'TTG_NOMETA', 'Nome etapa 1' )
					oGrid1:LoadValue( 'TTG_CRITIC', 'A' )

				EndIf

			// Acionado após a gravação da tabela do formulário.
			Case cIdPonto == 'FORMCOMMITTTSPOS'

				// Substituição dos ponto de entrada MNTA7351 e MNTA7358.
				If cIdModel == 'MNTA735'

					aAreaTTF := TTF->( GetArea() ) // Salva área posicionada.

					dbSelectArea( 'TTF' )
					dbSetOrder( 1 )  // TTF_FILIAL + TTF_CHECK + TTF_CODFAM + TTF_TIPMOD + TTF_SEQFAM
					If dbSeek( xFilial( 'TTF' ) + oObj:GetValue( 'TTFMASTER', 'TTF_CHECK' ) ) // Posiciona no registro adicionado.

						RecLock( 'TTF', .F. )
							TTF->TTF_POSCON := 100  // Realiza alteração de contador.
						TTF->( MsUnLock() )

					EndIf

					dbSelectArea( 'ST9' )
					dbSetOrder( 1 )
					If dbSeek( xFilial( 'ST9' ) + oObj:GetValue( 'TTFMASTER', 'TTF_CODBEM' ) )

						RecLock( 'ST9', .F. )
							ST9->T9_PADRAO  := '2'
						ST9->( MsUnlock( 'ST9' ) )

					EndIf

					RestArea( aAreaTTF ) // Retorna área posicionada.

				EndIf

			// Acionado na validação total do modelo.
			Case cIdPonto == 'MODELPOS'

				// Substituição do ponto de entrada MNTA7356.
				If cIdModel == 'MNTA735'

					oGrid1   := oObj:GetModel( 'TTGDETAIL' ) // Posiciona no Model da Grid
					nLenGrid := oGrid1:Length() // Pega tamanho total da grid.
					nInd     := 0
					cEtapa   := ''

					If Empty( oObj:GetValue( 'TTFMASTER', 'TTF_RAMAL' ) ) // Verifica se o campo Ramal foi preenchido.

						Help( , , 'Atenção', , 'O campo de Ramal não foi preenchido. Favor realizar o seu preenchimento.', 1, 0 )
						xRet := .F.

					EndIf

					If xRet

						For nInd := 1 To nLenGrid

							oGrid1:GoLine( nInd ) // Posiciona na linha desejada.

							If !oGrid1:IsDeleted() // Veririfica se o registro não está delatado

								cEtapa := Trim( oGrid1:GetValue( 'TTG_ETAPA' ) )

								If cEtapa == '0001'

									Help( , , 'Atenção', , 'Essa etapa não pode ser utilizada', 1, 0 )
									xRet := .F.

								EndIf

							EndIf

						Next nInd

					EndIf

				EndIf

			// Acionado na validação total da linha do formulário
			Case cIdPonto == 'FORMLINEPOS'

				// Substituição do ponto de entrada MNTA7355.
				If cIdModel == 'MNTA735'

					oGrid1  := oObj:GetModel( 'TTGDETAIL' ) // Posiciona no Model da Grid

					If Empty( oGrid1:GetValue( 'TTG_CRITIC' ) ) // Verifica se o campo foi preenchido.

						Help( , , 'Atenção', , 'O campo de criticidade não foi preenchido. Favor realizar o seu preenchimento.', 1, 0 )
						xRet := .F.

					EndIf

				EndIf

			// Inclusão de botões em ações realacionadas da interface de edição.
			Case cIdPonto == 'BUTTONBAR'

				/*
					Deve ser retornado um array bi-dimencional com as seguintes posições.
					[1] Caracter        Titulo para o botão
					[2] Caracter        Nome do Bitmap para exibição
					[3] Bloco de Código CodeBlock a ser executado
					[4] Caracter        ToolTip (Opcional)
				*/
				xRet := { { 'Salvar', 'SALVAR', { || Alert( 'Salvou' ) }, 'Este botão Salva!' } }

		EndCase

	EndIf

Return xRet