Histórico da Página
...
Portuguese | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ponto-de-Entrada: MA330TRB - Manipulação deste arquivo antes do processamento
Descrição: LOCALIZAÇÃO : Function MATA330( ) - Função utilizada para realiizar o recalculo do custo medio. Programa Fonte MATA330.PRX Sintaxe MA330TRB - Manipulação deste arquivo antes do processamento ( ) --> Nil Retorno Nil
OBSERVAÇÕES : ObservaçõesOs campos do arquivo de trabalho são: TRBTRB_ALIAS |
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#include "RWMAKE.CH"
User Function MA330CP ()
LOCAL aRegraCP:={}
AADD(aRegraCP,"SB1->B1_TIPO == 'MP'")
AADD(aRegraCP,"SB1->B1_TIPO == 'MC'")
Return aRegraCP | ||||||||
| ||||||||
Bloco de código | ||||||||
| ||||||||
#INCLUDE 'TOTVS.ch'
/*/{Protheus.doc} User Function MA330TRB
Permite alterar a ordenação do arquivo de trabalho TRB
Obedecer a ordenação:
DTOS(TRB_DTBASE)+TRB_SEQPRO+TRB_ORDEM+TRB_NIVEL+TRB_NIVSD3+TRB_CHAVE+TRB_SEQ
- Para o método de apropriação sequêncial, o campo TRB_SEQPRO receberá o conteúdo
dos campos D1_NUMSEQ, D2_NUMSEQ ou D3_NUMSEQ, de acordo com o TRB_ALIAS, ou seja,
os movimentos são ordenados conforme a ordem de inclusão no sistema
- Para o método de apropriação mensal ou diária, o campo TRB_SEQPRO ficará sempre vazio,
ordenando conforme demais campos da chave
@type Function
@author TOTVS
/*/
User Function MA330TRB()
Local aArea := GetArea()
Local aAreaTRB := TRB->(GetArea())
Local aFils := {}
Local cNomTRB := "TRB"+cEmpAnt+"SP"
Local cAlTRB := GetNextAlias()
Local cQuery := ""
Local cThreadID := Strzero(ThreadID(), 15)
Local nFil := 0
//Realiza a filtragem das filiais selecionadas para esta execução
cQuery := " Select TRB_FILIAL "
cQuery += " From "+cNomTRB+" "
cQuery += " Where TRB_THREAD = '"+cThreadID+"' " //Para obter as filiais do processamento atual
cQuery += " And D_E_L_E_T_ = ' ' " //filtrar pela thread
cQuery += " Group By TRB_FILIAL "
cQuery := ChangeQuery(cQuery)
dbUseArea( .T., "TopConn", TCGenQry(,,cQuery), cAlTRB, .F., .F. )
While !(cAlTRB)->(EoF())
AAdd(aFils, (cAlTRB)->TRB_FILIAL)
(cAlTRB)->(DbSkip())
EndDo
(cAlTRB)->(DbCloseArea())
// ===> IMPORTANTE <===
//Implementar filtragem da área de trabalho conforme
//necessidade da alteração da ordenação dos movimentos
//Neste exemplo, iremos alterar a ordem 301 para 302
//Montagem do where conforme índice 7 da TRB para melhor performance
//TRB_THREAD+TRB_FILIAL+TRB_ORDEM+TRB_COD+TRB_NIVEL+TRB_NIVSD3+TRB_CHAVE+TRB_SEQ
For nFil := 1 To Len(aFils)
cQuery := " Select R_E_C_N_O_ RECTRB "
cQuery += " From "+cNomTRB+" "
cQuery += " Where TRB_THREAD = '"+cThreadID+"' " //<- sempre filtrar pela thread
cQuery += " And TRB_FILIAL = '"+aFils[nFil]+"' "
cQuery += " And TRB_ORDEM = '301' "
cQuery += " And D_E_L_E_T_ = ' ' "
cQuery := ChangeQuery(cQuery)
dbUseArea( .T., "TopConn", TCGenQry(,,cQuery), cAlTRB, .F., .F. )
While !(cAlTRB)->(EoF())
TRB->(DbGoTo((cAlTRB)->RECTRB))
If RecLock('TRB', .F.)
TRB->TRB_ORDEM := '302' //Alterar ordem conforme necessidade
TRB->(MsUnlock())
EndIf
(cAlTRB)->(DbSkip())
EndDo
(cAlTRB)->(DbCloseArea())
Next nFil
RestArea(aAreaTRB)
RestArea(aArea)
Return
|
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas