MT680FINAL - Alteraçã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" 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
#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