SMARTWARE PROGRAM CODE, Page 2

'simbrows.pf3' Simulated Browse Command
public $key lr choice ch

screen clear 15 0 no-border
beep
repaint on
repaint
smartpoke $_spndmes 0
suspend
keys "dba",f8

label retry
screen clear box scrheight-3 1 scrheight scrwidth 1 1 no-border
screen print scrheight-2 1 14 1 "Enter = Show Full Record"
screen print scrheight-1 3 14 1 "Esc = Update Record"
screen print scrheight 2 15 1 " F10 = Main Menu"
screen print scrheight-2 28 14 1 "F8 = List Recs"
screen print scrheight-1 29 14 1 CHR(24)&"= Prev Rec"
screen print scrheight 26 14 1 "PgUp = Prev Scrn"
screen print scrheight-1 62 14 1 "Ctrl-Home = 1st Rec"
screen print scrheight-1 45 14 1 CHR(25)&"= Next Rec"
screen print scrheight 63 14 1 "Ctrl-End = End Rec"
screen print scrheight 45 14 1 "PgDn = Next Scrn"
screen print scrheight-3 58 15 4 " Current Time:"&str(TIME)
screen print scrheight-2 45 14 1 "P = Print Record"
screen print scrheight-2 68 14 1 "A = Print All"
lr=record
if lr>records
lr=records
end if
screen print scrheight-3 1 15 4 "Working on Record:"&STR(lr)&"of"&STR(RECORDS)|" "
$key=inchar
if $key={Up}
data goto record previous
jump retry
elseif $key={f8}
suspend
keys "dba",f8
jump retry
elseif $key={cr}
suspend
keys "dbo",f8
jump retry
elseif $key={F10}
transfer "mainmenu"
elseif $key={down}
data goto record next
jump retry
elseif $key={PgUp}
suspend
keys PgUp,f8
jump retry
elseif $key={PgDn}
suspend
keys PgDn,f8
jump retry
elseif $key={^Home}
suspend
keys ^Home,f8
jump retry
elseif $key={^End}
suspend
keys ^End,f8
jump retry
elseif $key={right}
suspend
keys right,f8
jump retry
elseif $key={left}
suspend
keys left,f8
jump retry
elseif $key={P} or $key={p}
repaint off
data browse off
screen clear box 12 23 16 52 15 10
screen print 14 25 15 10 "Please wait - printing...."
print current-record view all
transfer "mainmenu"
elseif $key={A} or $key={a}
repaint off
data goto record first
while record<=records
data browse off
screen clear box 12 23 16 52 15 10
screen print 14 25 15 10 "Please wait - printing...."
print current-record view all
data goto record next
end while
transfer "mainmenu"
elseif $key={esc}
data update
jump retry
else
beep 2
jump retry
end if
-search.pf3 BAR VERSION OF TWIDDLER
'use function in a query by eaxpression, i.e. ..... and -search(record,records)
public -search(2) flag

function -search(fg,bg)
local bar$ size
size=0
if flag=0
     screen clear box screhight/2-1 scrwidth/2-21 \
     screhight/2+4 scrwidth/2+22 0 0
     screen clear box screhight/2-2 scrwidth/2-22 \
     scrheight/2+3 scrwidth/2+21 fg bg
     screen print scrheight/2+2 scrwidth/2-20 fg bg "Searched"
     flag=1
end if
size=int((records-record)/records*40)
bar$=repeat("-",size)
screen print scrheight/2-1 scrwidth/2-1 fg bg \ str(format(record/records,"%"))
screen print scrheight/2 scrwidth/2-20 12 15 repeat("_",40)
screen print scrheight/2 scrwidth/2-20 15 12 bar$
screen print screhight/2+2 scrwidth/2-20_9 fg bg \
str(record)|"/"|str(records)
return true
end function

 

twiddler.pf3
public twiddler() t#
function twiddler()
     screen print scrheight-3 scrwidth-15 15 0
     "Processing"&mid("-/|\",let t#=mod(t#,4)+1,1)
     return true
end function
'vbsearch.rf3' VISUAL BASIC SEARCHER
'test's VB search program
'_searcher("datafile","startdate")
EXTERNAL _banner() _drawtxt() _drawbox()
GLOBAL _searcher(2)
PUBLIC flag startdate option$
flag=0
DATA GOTO RECORD FIRST 'get start date for calendar
startdate=DBGET("[INPUT-DATE]") `use to set calendar to the first input date in the chosen datafile
_searcher(APINFO(AP_FILEX),startdate) `parameters are current database and the startdate calculated
IF flag=0 and option$<>"MO" `don't run in certain circumstances
     BEEP
     EXECUTE "howsort" IN-MEMORY `displays a list of fields for sorting
     BEEP
     EXECUTE "bwse-prt" IN-MEMORY `choose browsing or printing of matches
     REPAINT ON
     REPAINT
     EXECUTE "simbrows" IN-MEMORY `simulated browse command
END IF
IF flag=1
     ' BEEP 2
     ' _drawtxt(SCRHEIGHT-10,5,"Search cancelled",15,14,12) `this lines can be used if you wish to generate a smartware error
     ' WAIT 2
ELSEIF flag=2
     BEEP 2
     _drawtxt(SCRHEIGHT-10,5,"No records found",15,14,12) `no records found message
     WAIT 2
END IF
RETURN

FUNCTION _searcher(datafile,datefield)
LOCAL temp
TOOLS FILE ERASE "vbdates.dfq" `delete temporary query file
FOPEN "startdte.tmp" AS 1
FWRITE 1 FROM date2(datefield) `write date for calendar start to a temp file read by the VB program
FCLOSE 1
PROCESS_CREATE("searcher.exe") `run the seacher VB program
_banner("DATE SEARCH IN PROGRESS")
WHILE(FILE("vbdates.dfq"))=0 `wait for the file created by VB program to appear before continuing
END WHILE
WAIT 1
FOPEN "vbdates.dfq" AS 1 `open query file
FREAD 1 INTO temp `read contents
FCLOSE 1
IF temp="Cancelled" `user press `quit' in VB program
     TOOLS FILE ERASE "vbdates.dfq" `delete the file
     flag=1 `set a flag to be recognised by smartware as an error
     EXIT FUNCTION
END IF
_drawtxt(5,5,"Finding matching records. Please wait....",15,14,1) `do the search
TOOLS FILE ERASE "vbdates.idx"
DATA QUERY EXECUTE "vbdates" INDEX "vbdates"
IF FILE("vbdates.idx")=0
     flag=2 `no records found, different flag value.
END IF END FUNCTION

previous.gif (589 bytes)next.gif (589 bytes)

ABOUT ME FAMILY HARDWARE SOFTWARE OTHER SMARTWARE