Árvore de páginas

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