Histórico da Página
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#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):
#INCLUDEBloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#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 já na grid de manutenção |
MATA381(,,4,.T.) |
If lMsErroAuto |
Mostraerro() |
Else |
Alert("ok") |
EndIf |
Return |