Post by abc on Jan 27, 2020 13:42:06 GMT -5
hi,
I have started working my first web application using run basic. As a part of it I have written code for calendar problem.(rewritten by modifying the code shipped for 'text calendar' with just basic). Suggestions and comments are welcome. thanks for Carl providing a wonderful server. Here is my cod
I have started working my first web application using run basic. As a part of it I have written code for calendar problem.(rewritten by modifying the code shipped for 'text calendar' with just basic). Suggestions and comments are welcome. thanks for Carl providing a wonderful server. Here is my cod
' mycalendardemo1
[masterPage]
cls
html "<h2>calendar Demo</h2>"
link #lbm,"listbox model",[lbm1]
print " ";
link #lkm, "link model", [lkm1]
print " ";
link #lgd, "grid model", [lgd1]
print
if launchFlag then render #subProg
print
wait
[lbm1]
run "mycalendarapp1", #subProg
launchFlag = 1
goto [masterPage]
[lkm1]
run "mycalendarapp2", #subProg
launchFlag = 1
goto [masterPage]
[lgd1]
run "mycalendarapp3", #subProg
launchFlag = 1
goto [masterPage]
'-------------------------------------------------------------------------------------------------------------
' mycalendarapp1
[mcal0]
cssid #lbn, "{ font-family:DejaVu Sans mono;font-size: 16pt; background: #CFC; width: 220px; color:#00a0b0}"
d=val(word$(date$("mm/dd/yyyy"),2,"/")):m=val(word$(date$("mm/dd/yyyy"),1,"/")):y=val(word$(date$("mm/dd/yyyy"),3,"/"))
run "mycalendar1.bas",#mycal
l= #mycal lday(m,y)
ll$=#mycal cal2$(m,y)
dim dt$(l)
for i=d to l
dt$(i)=word$(ll$,i,";")
next
print:print:print space$(10);
listbox #ltdt,dt$(),3: print
link #sedt,"select date",[sedt1]
#ltdt setid("lbn")
wait
[sedt1]
dd$=#ltdt selection$()
if dd$="" then dd$="none"
print
print "selected ";dd$
dd$="none"
wait
'------------------------------------------------------------------
' mycalendarapp2[mcal0]
cssid #cold1,"{font-size:16pt; color:red}" :cssid #cold2,"{font-size:16pt; color:#00b010}" :cssid #cold3 ,"{font-size:16pt; color:#50a050}"
d=val(word$(date$("mm/dd/yyyy"),2,"/")):m=val(word$(date$("mm/dd/yyyy"),1,"/")):y=val(word$(date$("mm/dd/yyyy"),3,"/"))
d1=d
run "mycalendar1.bas",#mycal
l= #mycal lday(m,y)
ll$=#mycal cal2$(m,y)
[mcal1]
graphic #g1,200,50
render #g1
if d1>d then link #pdt,"<< prev",[pred1]:print " "; else print "<< prev";" ";
link #cdt ,word$(ll$,d1,";"),[curd1] :print " ";
if d1<l then link #ndt,"next >>",[nxtd1]:print else print "next >>"
if word$(word$(ll$,d1,";"),1)="Sun" then #cdt setid("cold1")
for i=1 to 3
if word$(word$(ll$,d1,";"),1)=word$("Mon Wed Fri",i) then #cdt setid("cold2")
next
for i=1 to 3
if word$(word$(ll$,d1,";"),1)=word$("Tue Thu Sat",i) then #cdt setid("cold3")
next
wait
[pred1]
if d1>d then d1=d1-1 :cls :goto[mcal1]:wait
[nxtd1]
if d1<l then d1=d1+1 :cls :goto[mcal1]:wait
[curd1]
print "selected "; word$(ll$,d1,";")
wait
'------------------------------------------------------------------------------------
'mycalendarapp3
[mcal0]
wd$="Sun,Mon,Tue,Wed,Thu,Fri,Sat"
cssid #cold1,"{font-family:DejaVu Sans Mono;font-size:10pt; color:red}" :cssid #cold2,"{font-family:DejaVu Sans Mono;font-size:16pt; color:#00b010}" :cssid #cold3 ,"{font-size:16pt; color:#50a050}"
d=val(word$(date$("mm/dd/yyyy"),2,"/")):m=val(word$(date$("mm/dd/yyyy"),1,"/")):y=val(word$(date$("mm/dd/yyyy"),3,"/"))
d1=d
run "mycalendar1.bas",#mycal
print #mycal dow(m,y)
l= #mycal lday(m,y)
ll$=#mycal cal2$(m,y)
lll$=#mycal cal1$(m,y)
lll$=wd$+","+lll$
[mcal1]
call mar1 200,50
call mar1 200,10
for i=1 to l+6+#mycal dow(m,y)
if len(word$(lll$,i,","))=3 then c$=trim$(word$(lll$,i,","))
if val(word$(lll$,i,","))>9 then c$=" ";word$(lll$,i,",")
if word$(lll$,i,",")="0" then c$=" * "
if word$(lll$,i,",")<>"0" and val(word$(lll$,i,","))<10 then c$=" ";word$(lll$,i,",");" "
link #cdt ,c$,[curd1] :print " ";
if i mod 7 =0 then call mar1 200,1
if i<8 then #cdt setid("cold1") else #cdt setid("cold2")
next
#cdt setid("cold2")
[curd1]
wait
sub mar1 w,h
print
graphic #g1,w,h
render #g1
end sub
'-----------------------------------------------------------
'mycalendar1
function cal2$(mnt,yr)
w$="Sun Mon Tue Wed Thu Fri Sat"
m$="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
mm$=word$(m$,mnt)
yy$=str$(yr)
l$=cal1$(mnt,yr)
for i=1 to 42
if i mod 7 <>0 then j=i mod 7 else j=7
if word$(l$,i,",")<>"0" then ll$=ll$+word$(w$,j);" ";word$(l$,i,",");" ";mm$;" ";yy$;";" :t=t+1
cal2$=ll$
next
end function
function cal1$(mm,yyyy)
l=lday(mm,yyyy)
b=42-l 'b=(42-31)+(42-l)=42-l
f=dow(mm,yyyy):p=f-1 :s=b-p
for i=1 to (f-1)
l$=l$+","+str$(0)
next
for i=1 to l
l$=l$+","+str$(i)
next
for i=1 to s
l$=l$+","+str$(0)
next
cal1$=right$(l$,len(l$)-1)
end function
function cal$(mm,yyyy)
wk$="3 4 5 x 6 7 x 1 2"
fd=date$(str$(mm);"/1/";str$(yyyy))
ld=date$(str$(mm+1);"/1/";str$(yyyy)):ld=ld-1
lday$=date$(ld)
ld=val(word$(lday$,2,"/"))
dow=val(word$(wk$,int((fd/7-int(fd/7))*10)+1))
w$="sun mon tue wed thu fri sat"
dow$=word$(w$,dow)
cal$=str$(ld)+" "+str$(dow)+" "+dow$
end function
function lday(mm,yyyy)
lday=val(word$(cal$(mm,yyyy),1))
end function
function dow(mm,yyyy)
dow=val(word$(cal$(mm,yyyy),2))
end function
'-----------------------------------------------------------------------------