Árvore de páginas

Carregando...

CONTEÚDO

  1. Descrição
  2. Localização
  3. Programa Fonte
  4. Parâmetros
  5. Retorno
  6. Exemplo de utilização
  7. Assuntos Relacionados

01. DESCRIÇÃO

Este Ponto de Entrada permite manipular a impressão dos movimentos na rotina MATC040.

02. LOCALIZAÇÃO

Em Outras Ações, botão Imprimir.

03. PROGRAMA FONTE

MATC040.PRX

04. PARÂMETROS

ParâmetrosTipoDescrição
PARAMIXB[1]NuméricoSaldo Lote/Sub-Lote
PARAMIXB[2] NuméricoSaldo Total Lote
PARAMIXB[3]ArrayListBox das movimentacoes dos Lote/SubLote

05. RETORNO

Tela de configuração da impressão e impressão dos movimentos.

06. EXEMPLO DE UTILIZAÇÃO


Exemplo
#INCLUDE 'Protheus.ch'

User Function MC040IMP()

Local nSaldo    := PARAMIXB[1]
Local nSaldoLote:= PARAMIXB[2]
Local aRegs     := PARAMIXB[3]
Local cTitulo  	:= "Rastreamento de Lotes/Sub-Lotes"
Local cDesc1 	:= "Este programa ira imprimir a Consulta do Produto selecionado"
Local cDesc2 	:= "informando o Rastreamento do seu Lote/Sub-Lote."
Local cString  	:= "SB8"
Local cTamanho  := "G"
Local cPergRel  := "      "
Local cNomeProg := "MC040IMP"
Local aRegAnt

Private aReturn := {"Zebrado", 1,"Administracao", 1, 2, 1, "", 1 }
Private nLastKey:= 0
Private wnrel  	:= "MATC040"

If nSaldo <= 0
	Aviso("Atencao !!!","Saldo do produto menor ou igual a zero !!!",{"OK"})
Else
	aRegAnt := GetArea()
	wnRel   := SetPrint(cString,wnrel,cPergRel,@cTitulo,cDesc1,cDesc2,"",.F.,"",.F.,cTamanho)

	RestArea(aRegAnt)
	If nLastKey == 27
		dbClearfilter()
	Else
		SetDefault( aReturn, cString )
		
		If nLastKey == 27
			dbClearfilter()
        Else
	        RptStatus({|lEnd| U_TestRel(@lEnd,cTitulo,wnRel,nSaldo,nSaldoLote,cTamanho,cNomeProg,aRegs)},cTitulo)
		EndIf
	EndIf
EndIf
Return .T.

User Function TestRel(lEnd,cTitulo,wnRel,nSaldo,nSaldoLote,cTamanho,cNomeProg,aRegs)

Local cCabec1, cCabec2
Local cRodaTxt := oemtoansi("Rodapé")
Local nCntImpr := 0
Local nI       := 1
Local cPicB8Sld:= PesqPictQT("B8_SALDO",14)
Local nTipo

li    := 80
m_pag := 1
 
// Inicializa os códigos de caracter Comprimido da impressora
nTipo := 15
 
// Monta os Cabecalhos
cCabec1 := "Rastreamento de Lotes/SubLotes"
cCabec2 := ""       

SetRegua(Len(aRegs))
 
For nI:=1 to Len(aRegs)
	If lEnd
		@PROW()+1,001 PSAY "Cancelado pelo operador"
		Exit
	EndIf
	Incregua()
	If li > 60
		li := cabec( cTitulo, cCabec1, cCabec2, cNomeProg, cTamanho )
		li++
		@ li,  005 PSAY OemtoAnsi("Lote") + " " + SB8->B8_LOTECTL 
		If Rastro(SB1->B1_COD, "S")
			@ li,030 PSAY OemtoAnsi("Sub-Lote") + " " + SB8->B8_NUMLOTE
		EndIf
		@ li++,050 PSAY "Validade:" + " " + DtoC(SB8->B8_DTVALID)
		@ li++,005 PSAY OemtoAnsi("Produto/Descricao") + " " + SB8->B8_PRODUTO + " - " + SB1->B1_DESC
		@ li++,005 PSAY OemtoAnsi("Almoxarifado") + " " + SB8->B8_LOCAL
		@ li,  005 PSAY OemtoAnsi("Saldo")
		@ li++,011 PSAY If(Rastro(SB1->B1_COD, "L"), nSaldo, nSaldoLote) Picture cPicB8Sld
		@ li++,000 PSAY __PrtThinLine()
		li ++
		@ li,000 PSAY __PrtThinLine()
		li ++
	EndIf
Next nI

If li != 80
	li++
	roda(nCntImpr,cRodaTxt,cTamanho)
EndIf

If aReturn[5] = 1
	Set Printer To
	dbCommitAll()
	ourspool(wnrel)
EndIf

MS_FLUSH()

Return .T.

07. ASSUNTOS RELACIONADOS

SetPrint - Configuração impressão de relatórios