Histórico da Página
MT680FINAL -
Manipulação ApontamentoAlteração dos Lotes dos Empenhos
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 |
, antes/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:
#include 'protheus.ch'
#include 'parmtype.ch'
User Function MT680FINAL()
Local lAbre381 := .f.
If !Inclui
Return lAbre381
EndIf
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 2 (abertura da tela depois do autoexec):#INCLUDE
Bloco 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, |
//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
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 |