You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

265 lines
5.6 KiB

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Activity
Version=11
@EndOfDesignText@
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
Sub Process_Globals
Public PatID As String
Public sURL As String
End Sub
Sub Globals
Dim jobname As String
Dim SV As ScrollView
Dim BtnClose As Button
Dim Header As Panel
Dim Table As Panel
Dim NumberOfColumns, RowHeight, ColumnWidth As Int
Dim HeaderColor, TableColor, FontColor, HeaderFontColor As Int
Dim FontSize As Float
Type RowCol (Row As Int, Col As Int)
Dim Alignment As Int
Dim SelectedRow As Int
Dim SelectedRowColor As Int
'Table settings
HeaderColor = Colors.Gray
NumberOfColumns = 3
RowHeight = 30dip
TableColor = Colors.White
FontColor = Colors.Black
HeaderFontColor = Colors.White
FontSize = 11
Alignment = Gravity.CENTER 'change to Gravity.LEFT or Gravity.RIGHT for other alignments.
SelectedRowColor = Colors.Blue
Dim list1 As List
End Sub
Sub Activity_Create(FirstTime As Boolean)
init_view
End Sub
Sub init_view
SV.Initialize(0)
Activity.LoadLayout("LData")
Table = SV.Panel
Table.Color = TableColor
Activity.AddView(SV, 5%x, 10%y, 90%x, 80%y)
ColumnWidth = SV.Width / NumberOfColumns
SelectedRow = -1
'add header
SetHeader(Array As String("ID", "Charge", "Datum"))
'add rows
Get_Data
Activity.Title="Daten " & TempData.pname
End Sub
Sub Get_Data
Dim job As HttpJob
jobname="GetData"
job.Initialize(jobname, Me)
job.Download(sURL&"/DPMService/api/PatCharge/"&PatID)
End Sub
Sub JobDone(Job As HttpJob)
ProgressDialogHide
If Job.Success Then
Dim res As String
res = Job.GetString
Dim parser As JSONParser
parser.Initialize(res)
Log("Response from server: " & res)
Select Job.JobName
Case "DelData"
list1.Clear
Table.RemoveAllViews
init_view
'Get_Data
Case "GetData"
list1 = parser.NextArray
Dim i As Int
For i=0 To list1.Size-1
Dim map1 As Map
map1=list1.Get(i)
Dim s1 As String
Dim s2 As String
Dim s3 As String
s1=map1.Get("id")
s2=map1.Get("charge")
s3=map1.Get("datum")
AddRow(Array As String(s1,s2,s3))
Next
If list1.Size<1 Then
ToastMessageShow("Keine Daten vorhanden.",True)
Return
End If
End Select
End If
End Sub
Sub Cell_LongClick
Dim rc As RowCol
Dim l As Label
Dim x As String
x=""
l = Sender
rc = l.Tag
SelectRow(rc.Row)
' Activity.Title = "Cell clicked: (" & rc.Row & ", " & rc.Col &")"
For i=0 To list1.Size-1
If i=rc.Row Then
Dim map1 As Map
map1=list1.Get(i)
x=map1.Get("id")
'ToastMessageShow(map1.Get("id"),False)
End If
Next
If x<>"" Then
Msgbox2Async("Eintrag Nr. "&x&" wirkllich löschen?", "Charge-Eintrag löschen", "Ja", "Nein", "", Null, False)
Wait For MsgBox_Result (Result As Int)
If Result = DialogResponse.POSITIVE Then
Dim job As HttpJob
jobname="DelData"
job.Initialize(jobname, Me)
job.Delete(sURL&"/DPMService/api/PatCharge/"&x)
End If
End If
End Sub
Sub Cell_Click
Dim rc As RowCol
Dim l As Label
l = Sender
rc = l.Tag
SelectRow(rc.Row)
' Activity.Title = "Cell clicked: (" & rc.Row & ", " & rc.Col &")"
For i=0 To list1.Size-1
If i=rc.Row Then
Dim map1 As Map
map1=list1.Get(i)
'ToastMessageShow(map1.Get("id"),False)
End If
Next
End Sub
Sub Header_Click
Dim l As Label
Dim col As Int
l = Sender
col = l.Tag
' Activity.Title = "Header clicked: " & col
End Sub
Sub SelectRow(Row As Int)
'remove the color of previously selected row
If SelectedRow > -1 Then
For col = 0 To NumberOfColumns - 1
GetView(SelectedRow, col).Color = Colors.Transparent
Next
End If
SelectedRow = Row
For col = 0 To NumberOfColumns - 1
GetView(Row, col).Color = SelectedRowColor
Next
End Sub
Sub GetView(Row As Int, Col As Int) As Label
Dim l As Label
l = Table.GetView(Row * NumberOfColumns + Col)
Return l
End Sub
Sub AddRow(Values() As String)
If Values.Length <> NumberOfColumns Then
Log("Wrong number of values.")
Return
End If
Dim lastRow As Int
lastRow = NumberOfRows
For i = 0 To NumberOfColumns - 1
Dim l As Label
l.Initialize("cell")
l.Text = Values(i)
l.Gravity = Alignment
l.TextSize = FontSize
l.TextColor = FontColor
Dim rc As RowCol
rc.Initialize
rc.Col = i
rc.Row = lastRow
l.Tag = rc
Table.AddView(l, ColumnWidth * i, RowHeight * lastRow, ColumnWidth, RowHeight)
Next
Table.Height = NumberOfRows * RowHeight
End Sub
Sub SetHeader(Values() As String)
If Header.IsInitialized Then Return 'should only be called once
Header.Initialize("")
For i = 0 To NumberOfColumns - 1
Dim l As Label
l.Initialize("header")
l.Text = Values(i)
l.Gravity = Gravity.CENTER
l.TextSize = FontSize
l.Color = HeaderColor
l.TextColor = HeaderFontColor
l.Tag = i
Header.AddView(l, ColumnWidth * i, 0, ColumnWidth, RowHeight)
Next
Activity.AddView(Header, SV.Left, SV.Top - RowHeight, SV.Width, RowHeight)
End Sub
Sub NumberOfRows As Int
Return Table.NumberOfViews / NumberOfColumns
End Sub
Sub SetCell(Row As Int, Col As Int, Value As String)
GetView(Row, Col).Text = Value
End Sub
Sub GetCell(Row As Int, Col As Int) As String
Return GetView(Row, Col).Text
End Sub
Sub ClearAll
For i = Table.NumberOfViews -1 To 0 Step -1
Table.RemoveViewAt(i)
Next
Table.Height = 0
SelectedRow = -1
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
'Sub get_DATA(id As String, surl As String)
'Dim job As HttpJob
'jobname="GetPat"
'job.Initialize(jobname, Me)
'
'Dim callurl As String
'callurl=surl&"/DPMService/api/Service_View_Pat/"&id
'job.Download(callurl)
''job.Download("http://192.168.111.67/DPMService/api/Service_View_Pat/"&id)
'
'End Sub
Private Sub bClose_Click
Activity.Finish
'StartActivity("Main")
End Sub