Marcelo, bom dia!
Recebi seu email, via fórum, sobre a emissão dos relatórios após a inclusão.
Segue, abaixo, as correções necessárias, com um exemplo de código já modificado. Basta que vc procure no arquivo que chama o relatório o processo XXX_REL(ult_reg) e efetuar as correções, conforme comentado no exemplo.
Postei a resposta aqui no fórum pq é o canal correto de diálogo até que se encerre o tópico. Não que eu tenha nada contra o contato direto. Pode contatar-me à vontade (
prmuller@gmail.com) mas, pode ser útil para outros na mesma situação e, não acho que seja necessário ter algum tipo de constrangimento para se solicitar ajuda, ao contrária, é graças à boa vontade de pessoas como o Toledo que podemos sair de situações complicadas. Eu mesmo, apos as colocações do mestre, reutilizei o gas4harbour e pude aposentar um monte de soluções caseiras, leia-se gambiarras, que tinha efetuado, rssss.
Vamos lá então ao codigo:
Código: Selecionar todos
PROC ASS_REL(ult_reg) // imprime relatorio apos inclusao
LOCAL p_imp:=.t., i_ok:=.f., imp_rel:=.f.
DO WHIL .t.
SAVE SCREEN // salva a tela
#ifdef COM_REDE
// tps=TP_SAIDA(,,.t.) // essa linha sai
titrel:=fil_ini:="" // essa linha entra
tps:=1 // essa linha entra
tps=opcoes_rel(lin_menu,col_menu,5,11,fil_ini) // essa linha entra
IF LASTKEY()=K_ESC
EXIT
ENDI
// i_ok=(tps=2 .OR. PREPIMP("CADASTRO DE ASSOCIADOS")) // essa linha sai
// IF i_ok // essa linha sai
CRT_R002(tps,0,ult_reg) // mude pelo nome do seu relatorio
imp_rel=.t.
// ENDI // essa linha sai
#else
i_ok=PREPIMP("LANCAMENTOS NO CAIXA")
IF i_ok
CRT_R002(0,0,ult_reg)
imp_rel=.t.
ENDI
#endi
REST SCREEN // restaura tela
IF imp_rel // imprimiu algo?
msg="Prosseguir|Outra c¢pia"
op_=DBOX(msg,,,E_MENU,,"FIM DE IMPRESSŽO") // quer emitir outra copia?
IF op_=2
LOOP // nao quer...
ENDI
ENDI
EXIT
ENDD
RETU
Finalizando, acredito que vc vá ter o mesmo problema se quizer imprimir um relatorio direto do vídeo. Se precisar, peça que mando as correções e, não se esqueça de postar o retorno deste post, ok?
Sucesso!
Paulo Muller