01. DADOS GERAIS
Produto: | TOTVS Medicina e Segurança do Trabalho |
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | RH |
Módulo: | TOTVS RH (Linha Protheus) - Medicina e Segurança do Trabalho (SIGAMDT) |
Função: | Exames Por Função (MDTA450) |
País: | Brasil |
Ticket: | Não há. |
Issue: | Não há. |
02. DESCRIÇÃO
Criado o ponto de entrada MDTA4501 para modificar a gravação de Exames por Função, tornando possível a gravação em tabelas diferentes e tratamento de novos campos por exemplo.
Ponto de Entrada | MDTA4501() |
---|---|
Chamada | Na gravação dos exames na rotina Exames por Função (MDTA450). |
Pré-Requisito | Possuir funcionários e funções previamente cadastrados no sistema. |
Evento | Modificação da gravação dos Exames por Função, gravando em diferentes tabelas e tratando novos campos. |
Retorno | Gravação Exames por Função em diferentes tabelas. |
03. DEMAIS INFORMAÇÕES
Função | MDTA4501() |
---|---|
Parâmetros | Local nX, Array, armazena um valor. Local nY, Array, armazena um valor. |
Retorno | Não há. |
Exemplo
#include "protheus.ch" User Function MDTA4501() Local nX := 0 Local nY := 0 For nX := 1 To Len( aCols ) // Percorre as linhas do quadro inferior (GetDados). If !Empty( aCols[ nX, 1 ] ) // Verifica se o exame foi preenchido If !aCols[ nX, Len( aCols[ nX ] ) ] // Verifica se a linha do quadro inferior (GetDados) não está sendo excluída dbSelectArea( 'TON' ) dbSetOrder( 3 ) dbGoTop() If dbSeek( xFilial( 'TON' ) + SRJ->RJ_FUNCAO + aCols[ nX, 1 ] ) // Filial + Função + Exame RecLock( 'TON', .F. ) // Alterar Else RecLock( 'TON', .T. ) // Incluir Endif For nY := 1 to FCount() // Percorre todos os campos da tabela gravando as informações If '_FILIAL' $ Upper( FieldName( nY ) ) // Filial FieldPut( nY, xFilial( 'TON' ) ) ElseIf '_CODFUN' $ Upper( FieldName( nY ) ) // Código da Função FieldPut( nY, SRJ->RJ_FUNCAO ) ElseIf '_DESFUN' $ Upper( FieldName( nY ) ) // Descrição da Função FieldPut( nY, SRJ->RJ_DESC ) ElseIf '_CODEXA' $ Upper( FieldName( nY ) ) // Código do Exame FieldPut( nY, aCols[ nX, 1 ] ) ElseIf '_FAIXA' $ Upper( FieldName( nY ) ) // Faixa FieldPut( nY, aCols[ nX, 3 ] ) ElseIf '_CLIENT' $ Upper( FieldName( nY ) ) // Cliente FieldPut( nY, SA1->A1_COD ) ElseIf '_LOJA' $ Upper( FieldName( nY ) ) // Loja FieldPut( nY, SA1->A1_LOJA ) ElseIf '_TIPOEX' $ Upper( FieldName( nY ) ) // Tipo do Exame FieldPut( nY, aCols[ nX, 4 ] ) Endif Next nY ( 'TON' )->( MsUnLock() ) Else // Caso a linha do quadro inferior (GetDados) esteja sendo excluída If dbSeek( xFilial( 'TON' ) + SRJ->RJ_FUNCAO + aCols[ nX, 1 ] ) // Filial + Função + Exame RecLock( 'TON', .F. ) ( 'TON' )->( dbDelete() ) // Deleta registro ( 'TON' )->( MsUnLock() ) EndIf Endif Endif Next nX // Verifica se existe na tabela algum registro pra essa função que não esteja no quadro inferior (GetDados). dbGoTop() If dbSeek( xFilial( 'TON' ) + SRJ->RJ_FUNCAO ) // Filial + Função While ( 'TON' )->( !Eof() ) .And. TON->TON_CODFUN == SRJ->RJ_FUNCAO .And. TON->TON_FILIAL == xFilial( 'TON' ) If aScan( aCols, { | x | x[ 1 ] == TON->TON_CODEXA } ) == 0 RecLock( 'TON', .F. ) ( 'TON' )->( dbDelete() ) ( 'TON' )->( MsUnLock() ) Endif ( 'TON' )->( dbSkip() ) End EndIf Return
04. ASSUNTOS RELACIONADOS
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas