Consegui resolver o problema da senha do meu tópico anterior e consegui fazer o sistema só q fiquei agarrado em um relatório e gostaria, se possível, da ajuda de vcs. É o seguinte:
tenho um banco de dados composto da seguinte maneira:
Campo nome Tipo Larg Dec
Emissao D 8 0
CodPac C 6
Paciente C 60
CodMed C 5
Medica C 50
Codtipo C 3
Descricao C 20
Quantidade N 6 0
Desse banco de dados, eu preciso fazer um relatório que sai de acordo com o tipo de medicamento(Codtipo) e a cada medicamento(Codtipo) ele ejeta a folha e já entra imprimindo o próximo medicamento(Codtipo) até chegar ao fim do arquivo, sendo q em quantas cópias o usuário quiser.
Aqui vai o código fonte que fiz e gostaria da ajuda de vcs.
set cursor on
set confirm off
do alinha with '** R e l a t o r i o s **', 2
set color to w+/g++++++
@ 9, 9 clear to 16, 72
set color to w++/b++
@ 9, 8 clear to 15, 70
@ 8, 8 to 15, 70 double
@ 10, 9 to 10, 69
set color to gr++/b
@ 9, 17 say '** Saida de Geral por Medicamento **'
set color to w+/b
select (1)
use marpec index codigo, produto
select (2)
use estoque index estoque2, estoque1, estoque3
datai = '00000'
dataf = '99999'
mes = space (7)
set color to w+/b
@ 11, 11 say 'Mes de Referencia' get mes picture '99/9999'
read
if mes = space (5)
close all
return
endif
do msg with 'Prepare a Impressora em Seguida P/<ENTER> '
inkey (0)
if ! impri ()
close all
return
endif
select (2)
set filter to codigo>=datai .and.codigo<=dataf .and.dataestoq=mes
goto top
set device to printer
vcod = codigo
vmedica = produto
vestoqant = estoqant
ventrada = 0
vsaidas = 0
tot1 = 0
tot2 = 0
tot3 = 0
tot4 = 0
tot5 = 0
pag = 1
lin = 37
insc = ' '
do while ! eof ()
if lin > 34
if pag > 1
eject
endif
@ prow (), 0 say chr (15)
@ prow (), 0 say replicate ('=', 137)
@ prow (), 0 say chr (18)
@ prow () + 1, 1 say 'SECRETARIA MUNICIPAL DE SAUDE'
@ prow (), 0 say chr (15)
@ prow (), 120 say 'PAGINA -' + str (pag, 5) + ' '
@ prow (), 0 say chr (18)
@ prow () + 1, 1 say 'PREFEITURA DO MUNICIPIO DE ITALVA - RJ'
@ prow () + 1, 1 say 'CENTRO MUNICIPAL DE SAUDE - DR. ADILTON JORGE CRESPO'
@ prow (), 0 say chr (15)
@ prow (), 120 say 'Data : '
@ prow (), 128 say date ()
@ prow () + 1, 0 say replicate ('-', 137)
@ prow (), 0 say chr (18)
@ prow () + 1, 25 say 'SAIDAS DE MEDICAMENTO GERAL - ' + mes
@ prow (), 0 say chr (15)
@ prow () + 1, 0 say replicate ('-', 137)
@ prow () + 1, 1 say '( M E D I C A M E N T O S ) ( EST.ANTER. ) ( ENTRADAS ) ( EST. ATUAL ) ( SAIDAS ) (ESTOQUE )'
@ prow () + 1, 0 say replicate ('=', 137)
@ prow (), 0 say chr (15)
lin = 6
pag = pag + 1
passou = 'S'
endif
select (2)
ventrada = ventrada + entrada
vsaidas = vsaidas + saidas
skip 1
if vmedica != produto .or. eof ()
vestatual = vestoqant + ventrada
vestfinal = vestatual - vsaidas
@ prow () + 1, 2 say vmedica
@ prow (), 60 say vestoqant picture '@E 99,999'
@ prow (), 74 say ventrada picture '@E 99,999'
@ prow (), 87 say vestatual picture '@E 99,999'
@ prow (), 100 say vsaidas picture '@E 99,999'
@ prow (), 111 say vestfinal picture '@E 99,999'
@ prow () + 1, 0 say replicate ('-', 137)
tot1 = tot1 + ventrada
tot2 = tot2 + vestoqant
tot3 = tot3 + vsaidas
tot4 = tot4 + vestatual
tot5 = tot5 + vestfinal
vcod = codigo
vmedica = produto
vestoqant = estoqant
ventrada = 0
vsaidas = 0
lin = lin + 1
endif
if nextkey () = 27
exit
endif
enddo
@ prow () + 1, 58 say tot2 picture '@E 99,9999'
@ prow (), 72 say tot1 picture '@E 99,999'
@ prow (), 85 say tot4 picture '@E 99,999'
@ prow (), 98 say tot3 picture '@E 99,999'
@ prow (), 109 say tot5 picture '@E 99,999'
eject
set device to screen
close all
return
Desde já veleu!!!! :xau

