&& AUTHOR: MIGUEL CARDENAS. Lima PerĂº.
#define money_ "$###,##0.00" && variable to define the mask to show currency
#define CRTLF CHR(13)+ CHR(10)
#define vbMaximizedFocus 3
Declare INTEGER ShellExecute ;
IN SHELL32.dll ;
INTEGER nWinHandle, STRING cOperation, STRING cFileName, ;
STRING cParameters, STRING cDirectory, INTEGER nShowWindow
*
create cursor cData (emp_id c(4), emp_name c(50), emp_address c(50), emp_phone c(20), ;
emp_zipcode c(4), emp_e_mail c(50), emp_birth_date d, emp_salary n(15,2), ;
emp_area c(20), emp_schedule c(20), emp_start_date d)
insert into cData (emp_id, emp_name, emp_address, emp_phone, emp_zipcode, ;
emp_e_mail, emp_birth_date, emp_salary, emp_area, emp_schedule, emp_start_date) ;
values ;
("0001", "MIGUEL C.", "LIMA", "457844", "45", "MIMAIL@MISERVER", DATE(), ;
150.45, "SISTEMAS", "SCHELUDE", DATE())
insert into cData (emp_id, emp_name, emp_address, emp_phone, emp_zipcode, ;
emp_e_mail, emp_birth_date, emp_salary, emp_area, emp_schedule, emp_start_date) ;
values ;
("0002", "JOSE D.", "LIMA", "457844", "45", "MIMAIL@MISERVER", DATE(), ;
150.45, "SISTEMAS", "SCHELUDE", DATE())
*!* emp_id
*!* emp_name
*!* emp_address
*!* emp_phone
*!* emp_zipcode
*!* emp_e_mail
*!* emp_birth_date
*!* emp_salary
*!* emp_area
*!* emp_schedule
*!* emp_start_date
*
local lnConFile, lcFile, lcTexto, lcTexto
*
lcFile= "c:\employees.rpv"
lcRutaRpv= "C:\Archivos de programa\Rpv"
*
STORE "" TO lcTexto
*
lnConFile= Fcreate(lcFile)
if lnConFile> 0
lcTexto= lcTexto+ "report_title=Employees report."+ CRTLF
lcTexto= lcTexto+ "Papersize=letter"+ CRTLF && defines paper size
lcTexto= lcTexto+ "orientation=2"+ CRTLF && defines landscape orientation
lcTexto= lcTexto+ "spacing=250"+ CRTLF && defines space between lines default is 200
&& the programmer defines the columns
lcTexto= lcTexto+ "$c0=400"+ CRTLF
lcTexto= lcTexto+ "$c1=1000"+ CRTLF
lcTexto= lcTexto+ "$c2=3400"+ CRTLF
lcTexto= lcTexto+ "$c3=6800"+ CRTLF
lcTexto= lcTexto+ "$c4=8400"+ CRTLF
lcTexto= lcTexto+ "$c5=11000"+ CRTLF
lcTexto= lcTexto+ "$c6=13000"+ CRTLF
lcTexto= lcTexto+ "$c7=13200"+ CRTLF
&& header section begins
&& remember that "HEADER" means all the data that will be common for all the pages
lcTexto= lcTexto+ "[header]"+ CRTLF
lcTexto= lcTexto+ "{f=arial;s=8}"+ CRTLF
lcTexto= lcTexto+ "{pic=rpvlogo.bmp,400,400,1400,900}"+ CRTLF
lcTexto= lcTexto+ "{\n;$c7} Page {12800;pag}"+ CRTLF
lcTexto= lcTexto+ "{s=16;\n;1800;c=2;b=y} Sample Application Report {spacing=350;\n}"+ CRTLF
lcTexto= lcTexto+ "{c=1;1800} Employees Report (one line per record). {c=0;b=n;\n;\n;\n}"+ CRTLF
lcTexto= lcTexto+ "{LINE=400,14000;\n}"+ CRTLF
lcTexto= lcTexto+ "{s=8;b=y;$c0} ID {$c1} Name {$c2} Address {$c3} Phone {$c4} E-mail {$c5} Birth date {a=r;$c6} Mon Salary {a=l;$c7} Schedule {b=n;spacing=375;\n}"+ CRTLF
lcTexto= lcTexto+ "{LINE=400,14000;\n}"+ CRTLF
&& data section begins
lcTexto= lcTexto+ "[data]"+ CRTLF
*
select cData
go top
scan
&& reads from person.dat
If cData.emp_salary < 1500
string_color = "c=12"
Else
string_color = "c=0"
EndIf
lcTexto= lcTexto+ ;
"{$c0} "+ cData.emp_id+ ;
"{$c1}"+ cData.emp_name+ ;
"{$c2}"+ cData.emp_address+ ;
"{$c3}"+ cData.emp_phone+ ;
"{$c4}"+ cData.emp_e_mail+ ;
"{$c5}"+ alltrim(dtoc(cData.emp_birth_date))+ ;
"{a=r;"+ string_color+ ;
";$c6}"+ alltrim(str(cData.emp_salary, 15, 2))+ ;
"{c=0;a=l;$c7}"+ cData.emp_schedule+ ;
"{\n}"+ CRTLF
endscan
fwrite(lnConFile, lcTexto)
Fclose(lnConFile)
*
&& lcTexto must contain some text
*!* lcPathRpv= lcRutaRpv+ "\rpv"+ lcFile+ " /e"
*!* lctempo= "run "+ lcRutaRpv+ "\rpv "+ lcFile
*!* &lctempo
lnexito= ShellExecute(0, "Open", "Rpv", lcFile, lcRutaRpv, 1)
endif
ShellExecute(0, "Open", "Rpv", lcFile, lcRutaRpv, 1) |