- Presentación.
Estamos en un bar de tapas.
Hay tres mesas: Mesa1, Mesa2 y Mesa3.
Tres tipos de tapas: Choco, Caracoles y Ensaladilla.
También se puede pedir: Vino.
Llega el camarero.
Lo primero que debe hacer es pulsar el número de mesa de los comensales.
Luego pulsa las tapas elegidas.
Si pulsa varias veces sobre una tapa, se incrementa su cantidad. Si pulsa sobre el signo - se decrementa la cantidad de esa tapa.
En la pantalla aparece las tapas elegidas, la cantidad de cada tapa y el precio total en euros del pedido.
El camarero puede ir a otras mesas y realizar el mismo proceso. Recuerda que lo primero que debe hacer al llegar a una mesa es pulsar el número de mesa (botones de abajo).
Los datos del pedido quedan guardados automáticamente en cada "Mesa". Cuando el camarero llegue a la barra del bar pulsará sobre las mesas para ver los pedidos.
Cuando quiera borrar el pedido de una "Mesa" pulsará sobre su correspondiente botón de "Borrar".
Mientras no se borre una "Mesa" se puede ir cambiando el pedido.
____________________________
- Designer. Layout.
Designer - Layout
|
|
En funcionamiento. Se observan las tapas pedidas y la cantidad de cada una. Además 16.5 es el total en Euros del pedido.
|
____________________________
- Código (copia y pega).
- El código que he realizado puede ser algo complicado de comprender.
- Para interpretar este programa es necesario conocer la opción Tag de los View. Con el Tag y el EventName obtengo el botón pulsado. Ver tutorial de Tag.
- También utilizo tablas
La tabla Dim tapas(21,3) es donde se encuentra el nombre de la tapa y su precio correspondiente. Puede contener hasta 20 tipos de tapas.
Esta tabla es fácil de entender ya que solo se utiliza para obtener datos de tapa y precio.
Tapa |
Precio en € |
Choco |
1 |
Caracoles |
1.5 |
Ensaladilla |
2 |
Vino |
3 |
... |
... |
tapas(1,1) = " Choco"
tapas(1,2)= 1
tapas(2,1) = " Caracoles"
tapas(2,2) = 1.5
tapas(3,1) = " Ensaladilla"
tapas(3,2) = 2
tapas(4,1) = " Vino"
tapas(4,2) = 3
La tabla Dim mesas(11,21) As Float contiene el número de mesa y el pedido de tapa. Puede contener hasta 10 mesas y cada mesa elegir hasta 20 tipos de tapas.
Número de mesa |
Tapas elegidas |
1 |
|
2 |
(2,1) = 2 >>> 2 de chocos
(2,2) = 3 >>> 3 de caracoles
(2,3) = 2 >>> 2 de ensaladilla
(2,4) = 2 >>> 2 de vino
|
3 |
|
... |
... |
Esta tabla es más complicada de entender. Se utiliza para guardar la cantidad de tapas elegidas de cada clase en cada mesa.
Al elegir una mesa, ejemplo Mesa2 y luego elegir varias tapas tendremos:
mesa(2,1) = 2 ' se ha pedido 2 de choco. El 1 es choco (mira la tabla de tapas, la fila 1 es choco)
mesa(2,2) = 3 ' se ha pedido 3 de caracoles. El 2 es caracoles
mesa(2,3) = 2 ' se ha pedido 2 de ensaladilla. El 3 es ensaladilla
mesa(2,4) = 2' se ha pedido 2 de vino. El 4 es vino
Con esta línea
mesas(mesa,Send.Tag) = mesas(mesa,Send.Tag) + 1
añado a una mesa la cantidad de cierta tapa. El tipo de tapa lo recibo según el botón pulsado y su Tag.
Con esta línea
mesas(mesa,Send.Tag-100) = mesas(mesa,Send.Tag-100) - 1
disminuyo en uno la cantidad de una cierta tapa.
Fíjate que el incremento o decremento de tapa que se hace con dos botones distintos, lo realizo mediante la misma Subrutina: Sub tapa_Click. La distinción de botón lo hago mediante Tag.
Si el Tag es menor de 100 es el botón de incrementar.
Si el Tag es mayor de 100 seriá decrementar.
En el View de los botones vemos Tag de 1, 2, 3,... 101, 102, 103,...
Este sería el botón "caracoles", observa el EventName y su Tag.
Consulta el EventName y el Tag correspondiente a los botones caracoles, caracolesm, choco, chocom, ensaladilla, ensaladillam, mesa_1, mesa_2 y mesa_3.
NOTA: Si declaro Dim tabla(10). Tendrá los siguientes elementos:
tabla(0), tabla(1), tabla(2), tabla(3), tabla(4), tabla(5), tabla(6), tabla(7), tabla(8) y tabla(9).
El último elemento tabla(10) no se debe utilizar.
Yo suelo utilizar como primer elemento de la tabla el tabla(1) y no suelo utilizar el tabla(0),
Código del Basic4Android
|
Sub Process_Globals ' © Juan Antonio Villalpando
' juana1991@yahoo.com
End Sub
Sub Globals
' En las tablas si quieres tener hasta el elemento 20, debes declarar el 21.
' Además no utilizar el 21. Ejemplo tabla(21) tendría desde el elemento 0 al 20
Dim mesas(11,21) As Float ' mesas(mesa, tapas)
Dim tapas(21,3) ' Nombre de tapa y precio
tapas(1,1) = " Choco"
tapas(1,2)= 1
tapas(2,1) = " Caracoles"
tapas(2,2) = 1.5
tapas(3,1) = " Ensaladilla"
tapas(3,2) = 2
tapas(4,1) = " Vino"
tapas(4,2) = 3
Dim mesa, n As Int
Dim total As Float
Dim Label1 As Label
Dim Panel1 As Panel
Dim ListView1 As ListView
Dim linea As String
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout") ' Cargamos el Designer
End Sub
Sub tapa_Click
Dim Send As Button
Send = Sender
' Agrega tapa si el Tag es menor de 100
' Quita tapa si el Tag es mayor de 100
If Send.Tag < 100 Then
mesas(mesa,Send.Tag) = mesas(mesa,Send.Tag) + 1
Else
mesas(mesa,Send.Tag-100) = mesas(mesa,Send.Tag-100) - 1
If mesas(mesa,Send.Tag-100) < 0 Then mesas(mesa,Send.Tag-100) = 0
End If
presentacion
End Sub
Sub mesa_Click
' Elección de mesa
' Pone todas las Mesas del Panel1 en Gris
For i = 0 To Panel1.NumberOfViews - 1
Dim btn As Button
If Panel1.GetView(i) Is Button Then
btn = Panel1.GetView(i)
btn.Color=Colors.Gray
End If
Next
Dim Send As Button
Send = Sender
mesa=Send.Tag
presentacion
' Mesa seleccionada en verde
Send.Color=Colors.Green
End Sub
Sub presentacion
' Presentación
ListView1.Clear
total = 0
For n=1 To 4
linea = tapas(n, 1) & " " & (mesas(mesa,n))
If (mesas(mesa,n) * tapas(n, 2)) <> 0 Then
ListView1.AddSingleLine(linea)
End If
' Cálculo
total = total + mesas(mesa,n) * tapas(n, 2)
Next
Label1.text = total
End Sub
Sub borrar_Click
Dim Send As Button
Send = Sender
mesa=Send.Tag
For n=1 To 4
mesas(mesa,n)=0
Next
presentacion
End Sub
|
________________________________