Sub LoadArrays
Log("LoadArrays sub start")
Private row As Long
Private workbook1 As ReadableWorkbook
Private TodoSheet As ReadableSheet
table1.Visible = False
pnlBar.Visible = True
pnlValue.Visible = True
lblMessage.Visible = True
lblMessage.Text = "Loading. Please wait."
workbook1.Initialize(Starter.Dir, Starter.FileName)
'workbook1.Initialize(File.DirAssets, Starter.FileName) 'klaus
TodoSheet = workbook1.GetSheet(0)
Starter.TodoList.Initialize
'Get the header row.
row = 0
HeaderRow(0) = TodoSheet.GetCellValue(0,row)
HeaderRow(1) = TodoSheet.GetCellValue(1,row)
HeaderRow(2) = TodoSheet.GetCellValue(2,row)
HeaderRow(3) = TodoSheet.GetCellValue(5,row)
HeaderRow(4) = TodoSheet.GetCellValue(6,row)
HeaderRow(5) = TodoSheet.GetCellValue(9,row)
HeaderRow(6) = TodoSheet.GetCellValue(17,row)
'Load the main sheet of the spreadsheet into a list of type Todo. See here for an example under SortType: https://www.b4x.com/android/help/collections.html#list_sorttype
'Log(TodoSheet.RowsCount)
For row = 1 To TodoSheet.RowsCount - 1
If IsNumber(TodoSheet.GetCellValue(2,row)) Then
If TodoSheet.GetCellValue(2,row) > 0 And TodoSheet.GetCellValue(2,row) < 5 Then
Private TempTodo As Todo
TempTodo.Initialize
TempTodo.ID = TodoSheet.GetCellValue(0,row)
TempTodo.Name = TodoSheet.GetCellValue(1,row)
TempTodo.Status = TodoSheet.GetCellValue(2,row)
TempTodo.Context = TodoSheet.GetCellValue(5,row)
TempTodo.Category = TodoSheet.GetCellValue(6,row)
TempTodo.Priority = TodoSheet.GetCellValue(9,row)
TempTodo.Note = TodoSheet.GetCellValue(17,row)
Starter.TodoList.Add(TempTodo)
ExitFlag = 0
ProgressValue = row/TodoSheet.RowsCount*90
pnlValue.Width = ProgressValue/100 * pnlBar.Width
End If
Else
ExitFlag = 1 'Found the first blank cell.
End If
If ExitFlag = 1 Then Exit
Next
'Log("Todo List Size = "&TodoList.Size)
' For row = 0 To TodoList.Size-1
' Log("Todo " & row & " = " & TodoList.Get(row))
' Next
'Load Statuses
Log("Loading Statuses from spreadsheet")
Private StatusSheet As ReadableSheet
StatusSheet = workbook1.GetSheet(7)
For row = 0 To StatusSheet.RowsCount - 1
For column = 0 To 1
Statuses(row,column) = StatusSheet.GetCellValue(column, row)
'Log("Status("&row&","&column&" = "&Statuses(row,column))
Next
'Log("...")
Next
ProgressValue = 92
pnlValue.Width = ProgressValue/100 * pnlBar.Width
'Load Contexts (Locations for the Tasks)
'Context() columns:
'0 is Context Name.
'1 is Context Number.
'2 is Latitude.
'3 is Longitude.
'4 is Distance.
'5 will be whether or not the phone is within the Distance (#4) of the context.
' Column 5 is populated in the Tracker.CheckDistance sub.
'6 will be the contexts the user wants to see the todos for.
' Column 6 will be populated in the ContextCheck sub below.
Private ContextSheet As ReadableSheet
ContextSheet = workbook1.GetSheet(2)
LastContext = ContextSheet.RowsCount - 1
' col,row
'Cell A0 is 0,0
'Cell B0 is GetCellValue(col,row) 1,0.
'Cell A1 is 0,1
'Cell B1 is 1,1
Dim rowa As Byte
Log("Loading Contexts from spreadsheet")
'Log("Last Context = "&LastContext)
'This below is confusing. The spreadsheet rows start at 0.
'The Contexts start at 1 (See the Contexts sheet.)
For row = 0 To LastContext 'col,row Spreadsheet cell A1 is 0,0.
rowa = row+1 'Fore the Contexts Counter.
Contexts(rowa,0) = ContextSheet.GetCellValue(0,row) 'Name
'Log("Context Name = ("&rowa&","&0&" = "&Contexts(rowa,0))
Contexts(rowa,1) = ContextSheet.GetCellValue(1,row) 'Number
'Log("Context Number = ("&rowa&","&1&" = "&Contexts(rowa,1))
Contexts(rowa,2) = ContextSheet.GetCellValue(2,row) 'Latitude
'Log("Context Latitude = ("&rowa&","&2&" = "&Contexts(rowa,2))
Contexts(rowa,3) = ContextSheet.GetCellValue(3,row) 'Longitude
'Log("Context Longitude = ("&rowa&","&3&" = "&Contexts(rowa,3))
Contexts(rowa,4) = ContextSheet.GetCellValue(4,row) 'Distance
'Log("Context Distance = ("&rowa&","&4&" = "&Contexts(rowa,4))
'Log("...")
Next
LastContext = LastContext + 1
ProgressValue = 95
pnlValue.Width = ProgressValue/100 * pnlBar.Width
'Load Categories
Log("Loading Categories from spreadsheet")
Private CategoriesSheet As ReadableSheet
CategoriesSheet = workbook1.GetSheet(1)
For row = 1 To CategoriesSheet.RowsCount - 1 'Ignoring the top row. It is a header row.
For column = 0 To 1
Categories(row,column) = CategoriesSheet.GetCellValue(column, row)
'Log("Categories("&row&","&column&") = "&Categories(row,column))
Next
'Log("...")
Next
ProgressValue = 99
pnlValue.Width = ProgressValue/100 * pnlBar.Width
table1.Visible = True
pnlBar.Visible = False
pnlValue.Visible = False
lblMessage.Visible = False
Log("LoadArrays sub done")
End Sub