Árvore de páginas

Versões comparadas

Chave

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

MT680FINAL - Manipulação Apontamento

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Idiomas:

Português(Brasil)

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Ponto de Entrada

Descrição:

O ponto de entrada MT680FINAL foi criado para que seja possível a alteração dos lotes dos empenhos a partir da tela do programa de Empenho Múltiplo - MATA381

Se o programa MATA681 for executado via Rotina Automática (EXECAUTO), esse ponto de entrada não tem validade, porque mesmo que retorne .T. (true), não será aberta a tela de empenho múltiplo. Porém, é possível efetuar a abertura da tela do Empenho Múltiplo - MATA381, depois da chamada do execauto (conforme exemplo 2).

Localização:

Função A680TudoOk - A função faz as consistências padrões após a digitação da tela.

Programa Fonte:MATA680.PRX
Retorno:

lAbre381 - Retorna uma variável lógica, que indicará se será aberta ( .T. ) a tela de Empenho Múltiplo ou não ( .F. ).


Exemplo 1

Bloco de código
languagec#
firstline1
titleExemplo
linenumberstrue

#INCLUDE "Protheus.ch"   

User Function MT680FINAL()
Local lAbre381 := .f.

If !Inclui
   Return lAbre381
EndIf

cH6_OP := M->H6_OP

dbSelectArea("SD4")
dbSetOrder(2)
If dbSeek(xFilial("SD4")+cH6_OP)
   While SD4->(!Eof()) .AND. SD4->D4_FILIAL == xFilial("SD4") .AND. SD4->D4_OP == cH6_OP

      If Empty(SD4->D4_LOTECTL)
         lAbre381 := .t. //Alimenta a variavel para chamar a tela de empenhos
         Exit
      EndIf

      SD4->(dbSkip())
   End
EndIf

Return lAbre381


Exemplo 1: 

#include 'protheus.ch'

#include 'parmtype.ch'

User Function MT680FINAL()
Local lAbre381 := .f.

If !Inclui
   Return lAbre381
EndIf

cH6_OP := M->H6_OP

dbSelectArea("SD4")
dbSetOrder( 2)
If dbSeek(xFilial("SD4")+cH6_OP)
   While SD4->(!Eof()) .AND. SD4->D4_FILIAL == xFilial("SD4") .AND. SD4->D4_OP == cH6_OP

      If Empty(SD4->D4_LOTECTL)
         lAbre381 := .t. //Alimenta a variavel para chamar a tela de empenhos
         Exit
      EndIf

      SD4->(dbSkip())
   End
EndIf

Return lAbre381

Exemplo 2 (abertura da tela depois do autoexec):

#INCLUDE

Bloco de código
languagec#
firstline1
titleExemplo
linenumberstrue
#INCLUDE "RWMAKE.CH"

#INCLUDE "TBICONN.CH"


 


User Function RMATA681()


Local aVetor := {}


Local dData


Local nOpc   := 3


//definição de variáveis private necessárias para funcionamento do MATA381


PRIVATE INCLUI    := .F.


PRIVATE ALTERA    := .T.


 


lMsErroAuto := .F.


 


PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" TABLES "SH6"


 


dData:=dDataBase


aVetor := {;


           {"H6_OP"      ,"00000101001 " ,NIL},;


           {"H6_PRODUTO" ,"PA01 "        ,NIL},;


           {"H6_OPERAC"  ,"01"           ,NIL},;


           {"H6_RECURSO" ,"1"            ,NIL},;


           {"H6_DTAPONT" ,dData          ,NIL},;


           {"H6_DATAINI" ,dData          ,NIL},;


           {"H6_HORAINI" ,"19:11"        ,NIL},;


           {"H6_DATAFIN" ,dData          ,NIL},;


           {"H6_HORAFIN" ,"19:20"        ,NIL},;


           {"H6_PT"      ,'P'            ,NIL},;


           {"H6_LOCAL"   ,"01"           ,NIL},;


           {"H6_QTDPROD" ,7              ,NIL}}


 


MSExecAuto({|x| mata681(x)},aVetor, nOpc)


//No retorno do execauto do MATA681 a SC2 está posicionada na OP apontada


//deverá ser posicionada a SD4 antes de chamar o MATA381


dbSelectArea("SD4")


dbSetOrder(2)


dbSeek(xFilial("SD4")+SC2->C2_NUM+SC2->C2_ITEM+SC2->C2_SEQUEN+SC2->C2_ITEMGRD)


//Chamada da tela MATA381 passando os dois primeiros parâmetros em branco (que são os parâmetros 


//utilizados quando o MATA381 é executado via rotina automática), 4 (indicando tratar-se de modificação),


//e .T. indicando que deve abrir a tela  na grid de manutenção 


MATA381(,,4,.T.) 


 


If lMsErroAuto


    Mostraerro()


Else


    Alert("ok")


EndIf


 


Return