by pedroluis » Wed Mar 06, 2019 1:34 am
/*
Hola Antonio !
Tengo un programa de historias clínicas y turnos e imprimo la historia clínica de la siguiente manera:
FUNCTION HC0100LO0() --> Pido el ingreso de nombre del paciente
FUNCTION HC0100LI10() --> Imprimo los campos memo 1->texto (historia clínica) y 1->medicam (medicamentos)
FUNCTION T01001() --> Imprime el encabezamiento, o sea, los datos del paciente.
Espero te sirva
Saludos !
Pedro Lavallén */
*--------------------------------------
FUNCTION HC0100LI0(oLbx)
*--------------------------------------
local oDlg
local lGoOn,oBtn
local oReport
public ownom
public wnom:=spac(20)
public wnom:=1->nombre
default lGoOn:=.f.
set cursor on
DEFINE DIALOG oDlg RESOURCE "HC0100LI1" FONT m->oFontBrw
sele 1
set order to 1
REDEFINE GET ownom VAR wnom ID 101 OF oDlg picture "@!"
REDEFINE BTNBMP oBtn ID 103 OF oDlg RESOURCE "yes" ; // SI
ACTION (lGoOn:=.t.,oLbx:refresh(),oDlg:End(),olbx:setfocus()) ;
TOOLTIP "Correcto" BORDER
REDEFINE BTNBMP oBtn ID 104 OF oDlg RESOURCE "no2" ; // NO
ACTION (lGoOn:=.f.,1->(DbGotop()),oLbx:Refresh(),oDlg:End(),;
olbx:setfocus()) ;
TOOLTIP "Cancelar" BORDER
ACTIVATE DIALOG oDlg CENTERED
if lGoOn
SysRefresh()
sele 1
set order to 1
go top
seek alltrim(wnom)
if eof()
msgalert("Inexistente...")
go top
return NIL
endif
HC0100LI10()
endif
olbx:refresh()
return nil
*--------------------------------------
FUNCTION HC0100LI10()
*--------------------------------------
local nRecno
public oReport
public oLis,l,nsalto,ncolum,xhoja,oFont,oFont1,xmarca
public texto1
public texto2
PRINTER oLis PREVIEW NAME "H.C."
DEFINE FONT oFont NAME "arial" SIZE 0,-10 OF olis
DEFINE FONT oFont1 NAME "arial" SIZE 0,-12 bold OF olis
DEFINE PEN oPen1 WIDTH 1
nsalto:=olis:nVertRes() / 65 // Renglones
ncolum:=olis:nHorzRes() / 80 // Columnas
xhoja:=0
xmarca:=0
PAGE
T01001()
texto1:=1->texto
line_cnt:=mlcount(texto1,105)
curr_line:=1
do while curr_line<=line_cnt
if l>nsalto*60
ENDPAGE
PAGE
xmarca:=0
T01001()
endif
print_line:=memoline(texto1,105,curr_line)
olis:say(l,ncolum * 5,print_line,oFont)
curr_line:=curr_line+1
l:=l+nsalto
enddo
l:=l+nsalto
l:=l+nsalto
texto2:=1->medicam
line_cnt:=mlcount(texto2,105)
curr_line:=1
do while curr_line<=line_cnt
if l>nsalto*60
ENDPAGE
PAGE
xmarca:=0
T01001()
endif
print_line:=memoline(texto2,105,curr_line)
oLis:say(l,ncolum * 5,print_line,oFont)
curr_line:=curr_line+1
l:=l+nsalto
enddo
ENDPAGE
ENDPRINT
oFont:End()
oFont1:End()
set order to 1
return nil
*---------------------------------------
FUNCTION T01001()
*---------------------------------------
l:=nsalto
oLis:line(l,ncolum*1,l,ncolum*80,oPen1)
l:=l+(nsalto/2)
oLis:say(l,ncolum * 5 ,"HISTORIA CLINICA DE: "+alltrim(wnom),oFont1)
l:=l+(nsalto/2)
l:=l+nsalto
oLis:line(l,ncolum*1,l,ncolum*80,oPen1)
l:=l+nsalto
oLis:say(l,ncolum * 70 ,dtoc(date()),oFont)
l:=l+nsalto
xhoja:=xhoja+1
oLis:say(l,ncolum * 70 ,("Hoja "+str(xhoja,2)),oFont)
l:=l+nsalto
oLis:say(l,ncolum * 5 ,"NRO.AFILIADO: "+alltrim(str(1->afiliado,14)),oFont)
l:=l+nsalto
oLis:say(l,ncolum * 5 ,"EDAD: "+str(1->edad,3),oFont)
l:=l+nsalto
oLis:say(l,ncolum * 5 ,"DOMICILIO: "+alltrim(1->domicilio),oFont)
l:=l+nsalto
oLis:say(l,ncolum * 5 ,"OCUPACION: "+1->ocupacion,oFont)
l:=l+nsalto
oLis:say(l,ncolum * 5 ,"OBRA SOCIAL: "+alltrim(2->nombre)+;
" - ("+strzero(1->num_obra,3)+")",oFont)
l:=l+nsalto
oLis:say(l,ncolum * 5 ,"FECHA INGRESO: "+dtoc(1->fecha),oFont)
l:=l+(nsalto*2)
RETURN nil
Pedro L. Lavallen
San Luis (Capital), Argentina