Please find below (1) Code of the Stack; (2) Code of the Card; (3) Code of the Buttons Used;
Code of the Main Stack
global gConnID, gHomeFolder
on preOpenStack
set the enabled of button "Login" to true
put the effective filename of this stack into gHomeFolder
set the itemDelimiter to slash
put item 1 to -2 of gHomeFolder into gHomeFolder
set the defaultFolder to gHomeFolder
disable widget "navbar"
connectToDB
end preOpenStack
on openStack
set the fullscreenmode of stack "dbMembershipSuite" to "exactFit"
end openStack
on closeStack
databaseDisconnect
end closeStack
on connectToDB
local tDatabasePath, tDatabaseID
put "membershipdatabase.db" into tDatabasePath
put revOpenDatabase("sqlite", tDatabasePath,,,,) into tDatabaseID
if tDatabaseID is "" then
answer warning "There was a problem accessing the Membership Database!"
end if
setDatabaseID tDatabaseID
end connectToDB
command setDatabaseID pDatabaseID
put pDatabaseID into gConnID
end setDatabaseID
function getDatabaseID
return gConnID
end getDatabaseID
command databaseDisconnect
local tResult
revCloseDatabase gConnID
put the result into tResult
handleRevDBerror tResult
if the result is not empty then
answer warning the result
exit to top
end if
answer information "Connection Terminated"
end databaseDisconnect
on handleRevDBerror p
switch
case item 1 of p is "revdberr"
return "revDB Error:" & p
break
case "syntax error" is in p
return "Database Error:" & p
break
end switch
end handleRevDBerror
on showAllRecords
local tQuery, tRecords
connectToDB
show group "dgMembersList"
put "SELECT * FROM members" into tQuery
put revDataFromQuery(,,gConnID, tQuery) into tRecords
if tRecords begins with "revdberr" then
answer error "There was a problem accessing the Database: " & tRecords
databaseDisconnect gConnID
exit to top
end if
set the dgText of group "dgMembersList" to tRecords
end showAllRecords
Code of the Card
global gConnID
on openCard
set the enabled of button "MembersPaid" to true
set the enabled of button "MembersDue" to true
set the enabled of button "MembersList" to true
enable widget "navbar"
showAllRecords
end openCard
on resizeStack x,y
local tRowSize
put 60 into tRowSize
-- Header - fixed height, full bleed:
set the rect of btn "header" to 0,0,x, tRowSize
-- Content Region
set the rect of grp "ContentRegion" to 0, tRowSize, x, y-tRowSize
-- Footer - fixed height, full bleed:
set the rect of widget "NavBar" to 0,y-tRowSize,x,y
end resizeStack
Code of the 'Members Paid" Button
global gConnID
on mouseUp
local tQuery, tRecords, tDatabaseID
connectToDB
put gConnID into tDatabaseID
put "SELECT * FROM members WHERE paid = 'Yes'" into tQuery
put revDataFromQuery(,,tDatabaseID, tQuery) into tRecords
if tRecords begins with "revdberr" then
answer error "There was a problem accessing the Database: " & tRecords
exit to top
end if
set the dgText of group "dgMembersList" to tRecords
end mouseUp
Code for the 'Members Due' Button
global gConnID
on mouseUp
local tRecords, tQuery, tDatabaseID
connectToDB
put gConnID into tDatabaseID
put "SELECT * FROM members WHERE paid = 'No'" into tQuery
put revDataFromQuery(,,tDatabaseID, tQuery) into tRecords
if tRecords begins with "revdberr" then
answer error "There was a problem accessing the Database: " & tRecords
exit to top
end if
set the dgText of group "dgMembersList" to tRecords
end mouseUp
Code for the 'Members List' Button
on mouseUp
showAllRecords
end mouseUp
Code for the 'mouseUp' when clicking on a members name shown on the Datagrid
global gConnID,gRecordID, gFname,gLname,gAddr1,gAddr2,gAddr3,gAddr4,gPostcode,gTelephone,gMobile,gEmail,gDate,gFee,gPaid,gType
on mouseUp
local tLineSelected
put the dgHilitedLine of group "dgMembersList" into tLineSelected
if tLineSelected is a number and tLineSelected>0 then
set the itemDelimiter to tab
put item 1 of line tLineSelected of the dgText of group "dgMembersList" into gRecordID
put item 2 of line tLineSelected of the dgText of group "dgMembersList" into gFname
put item 3 of line tLineSelected of the dgText of group "dgMembersList" into gLname
put item 4 of line tLineSelected of the dgText of group "dgMembersList" into gAddr1
put item 5 of line tLineSelected of the dgText of group "dgMembersList" into gAddr2
put item 6 of line tLineSelected of the dgText of group "dgMembersList" into gAddr3
put item 7 of line tLineSelected of the dgText of group "dgMembersList" into gAddr4
put item 8 of line tLineSelected of the dgText of group "dgMembersList" into gPostcode
put item 9 of line tLineSelected of the dgText of group "dgMembersList" into gDate
put item 10 of line tLineSelected of the dgText of group "dgMembersList" into gFee
put item 11 of line tLineSelected of the dgText of group "dgMembersList" into gPaid
put item 12 of line tLineSelected of the dgText of group "dgMembersList" into gType
put item 13 of line tLineSelected of the dgText of group "dgMembersList" into gTelephone
put item 14 of line tLineSelected of the dgText of group "dgMembersList" into gMobile
put item 15 of line tLineSelected of the dgText of group "dgMembersList" into gEmail
visual effect "push" left fast
go to card "selected member"
end if
end mouseUp
Code for the Widget 'NavBar'
on hiliteChanged
global gMenuName
get the hilitedItemName of widget "navbar"
go to card it
// set the hilitedItemName of widget "navbar" to gMenuName
set the hilitedItemName of widget "navbar" to it
end hiliteChanged
Thanks
