|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
   AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial

____________________________

31.- Bar de tapas. Anotaciones del camarero.

- Bajar Tapas.zip

- Tutoriales. Bar de tapas. Anotaciones del camarero.

- 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

________________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información