Sie sind auf Seite 1von 44

Captulo 8

Coll e ctio n Ay udan te : Un


Ba r c o d e U n d Da ta ba s e
A p p l i ca t i o n

in this Captulo
Utilizando el Barcode componente de Escner
Creando variedades multidimensionales
En desarrollo y utilizando funciones de base de datos tradicional
2 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 2
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

LA aplicacin de AYUDANTE de la COLECCIN replicates la funcionalidad de algunos de el populares


barcode aplicaciones de escner disponibles en el mercado. Su funcin bsica es para escanear un barcode y
almacenar la ubicacin y nombre de el objeto escaneado en una base de datos local. Puedes utilizar
aplicaciones de escner para muchos dierent cosas. El Ayudante de Coleccin podra soler catalogar y mantener
pista de una coleccin de medios de comunicacin como un DVD o CD coleccin, por ejemplo. Tambin pueda
ser utilizado tan parte de un sistema organizativo donde cajas o contenedores de almacenamiento son labeled con
imprimidos barcodes.

Yon building the Collection Ayudante, you learn how to utilize the functionality of the Barcode Scanner
componente. The Barcode Scanner is Un fairly simple component ingenioh just un fe w compo- nent bloques that
provide un lo t of funcionalidad. The Barcode Scanner Usos the device camerun a sca n barcodes. The Barcode
Scanner component can scan Ningn t only traditional barcodes, pero can scan the increasingly popular matrix
(en algn momentos called QR or Quick Respuesta) cdigos tambin . QR Cdigos have the capability of storing far
more information than traditional barcodes und open up un lo t of interestinaplicacin de gs for using the Barcode
Scanner componente.

Creando Ayudante de Coleccin 1.0


El Ayudante de Coleccin toma vuestro uso de el TinyDB componente a el nivel prximo. Uno de el ms
frecuentemente pregunt cuestiones sobre TinyDB es Cmo puede selecciono un elemento o etiqueta en
TinyDB y recuperar aquel elemento? En este captulo, te muestras cmo para utilizar la tcnica de stor - ing todo
utiliz etiquetas en TinyDB l de modo que estirando el dato de la base de datos es controlable.

En crear el Ayudante de Coleccin, t nd fuera ms sobre una tcnica adelantada que te dejas para crear quasi-
variedades multidimensionales en Inventor de Aplicacin. Las listas en Inventora de Aplicacin son variedades
de nivel solo en programacin tradicional. La variedad es justo otra manera de decir lista. Utilizando algn listo
(albeit complejo) texto parsing, puedes crear multi-variedades dimensionales en Inventor de Aplicacin. Un
multi-la variedad dimensional aumenta el nmero de valores que un solos vari- la lista capaz puede tener. Un
multi-la variedad dimensional es ms entendida si les visualizas como mesa. Cada etiqueta tiene dos piezas
separadas de la informacin almacenada junto con una coma que les separa . El Ayudante de Coleccin
almacena el nombre de elemento y su ubicacin en un dos- variedad dimensional que puede ser visualizado
utilizando Mesa 8-1.

Mesa 8-1 Una Variedad Bidimensional


Sencilla
Barcode (Etiqueta) Nombre, Ubicacin
(Valor1)
123456789 Dire Straits,
Balda1
3 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 3
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
987654321 P P L yo C Un T yo ORosa N Floyd, Balda

Cada fila representa un elemento individual y cada columna alguna propiedad o atributo
de aquel elemento. Recuperando el barcode recupera ambos el nombre y la ubicacin de
el elemento. ThEs es un ejemplo muy sencillo, pero el principio puede ser utilizado en dato
ms complejo lejano estructuras. Para caso, cada etiqueta podra tener diez o veinte valores
separaron por comas.

Utilizas el escaneado barcode como la etiqueta para cada elemento y, bajo aquella etiqueta,
almacenas ambos el nombre y la ubicacin separada por una coma. Entonces puedes
utilizar el texto de Inventor de Aplicacin parsing bloquea para iterar a travs del dato que
utiliza un ForEach bloque cundo est regresado de TinyDB .

Refer back to Chapter 4 fo un refresher en el ForEach bloque. NINGNT E

Tr diseo
Figura 8-1 espectculos los croquis de diseo para la aplicacin de
Ayudante de la Coleccin.

Figura - :
The croquis de
diseo de
Ayudante de
Coleccin

Ayudante de coleccin 1.0 inicios con la funcionalidad ms bsica. La aplicacin escanea


una barra- cdigo y almacena el cdigo junto con usuario-informacin introducida. El
marco de almacenamiento es local utilizando TinyDB. La 1.0 versin de la aplicacin es
capaz de mostrar todos los contenidos de la aplicacin en un formatted y exhibicin
legible.
4 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 4
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

Tr primitives
Uso estos basics para construir el Ayudante de Coleccin:

Un mtodo de escanear barcodes y poblando un texto eld con los resultados de escner
Cajas de texto para recoger el barcodes, nombres, y ubicaciones de elementos.
Botones para iniciar el barrido, ahorro, y exhibicin de elementos.
Un mtodo para almacenar atributos mltiples de un elemento solo
Un mtodo para recuperar, parsing, y formatting atributos mltiples de TinyDB.
Un mtodo para cleanly mostrando todos los elementos en la base de datos

New Componentes
Estos usos de aplicacin slo uno componente
nuevo:

Barcode Escner

New Bloques
Aqu es los bloques nuevos utilizars para construir esta
aplicacin:

Aade elemento para listar


Ruptura
Selecciona elemento de lista

Tr progresin
Estos son los pasos tomas para construir arriba de la 1.0 versin. Es siempre una idea buena de
tener una idea spera de qu orden pretendes emprender vuestro primitives. Despus de que uno
primitivo est manejado, puedes mover encima al prximo un:

1. Complexin la pantalla de entrada de elemento principal.

2. Complexin la pantalla de exhibicin de la base de datos.

3. Mango el Escner/Aade acontecimiento de botn del Elemento.

4. Mango el Salvar acontecimiento de botn del Elemento.


5 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 5
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

5. Mango el botn de Base de datos/de Elementos de Exhibicin acontecimiento.

6. Mango el Atrs a acontecimiento de botn de Pantalla Principal.

Vuestro ms duro primitivo es el mtodo para parsing y formatting el dato en el multi-


variedad dimensional fuera de TinyDB. Despus de que consigues que el algoritmo clav
abajo, aun as, te reutilizacin l en la 2.0 versin de la aplicacin cundo construyes
funcionalidad de bsqueda a la aplicacin.

Empezando encima Ayudante de Coleccin


1.0
Inicio un proyecto nuevo y rebautizarlo Ayudante_de Coleccin1_0. Pone la
Pantalla1 propiedad de Ttulo a Coleccin Assistant. Cargar el CA_icono.png le
Para la propiedad de Icono y poner las propiedades de Icono con el icono le de el
proyecto les descargaste de el sitio de Web del compaero de este libro. (Ve la
introduccin de este libro si necesitas instrucciones para descargar el proyecto les.)

Necesitas construir arriba de la interfaz de usuario para aceptar ambas entrada de el


Barcode Escner com- ponent y el usuario antes de que est salvado a la base de
datos. Vuestra interfaz de usuario utiliza dos VerticalArrangements como VirtualScreens.
VirtualScreen1 est utilizado para la pantalla de entrada de dato principal.
VirtualScreen2 est utilizado para la pantalla de exhibicin de la base de datos:

1. Sitio dos VerticalArrangements al Espectador.

2. Rebautizar el VerticalArrangements VirtualScreen1 y VirtualScreen2 .

3. Pone el Ancho y propiedades de Altura para ambos VirtualScreens para Llenar Padre.

Necesitas crear VirtualScreen1 con un grande, botn visto fcilmente para escanear un barcode en la
parte superior de la pantalla principal. Tenga que ser seguido por tres texto elds.

El rst texto eld est poblado por el dato de regreso de un exitoso Barcode escner de Escner. Porque
no quieres el cdigo para ser accidently bungled arriba por el usuario despus de que est escaneado,
deselect la propiedad Habilitada en el texto eld. El Barcode el escner todava puede poblar la caja de
texto y t todava pueden utilizar los contenidos de la caja de texto programmatically. El usuario no, aun
as, ser capaz a manualmente poblar la caja de texto. Puedes ejercer esta clase de controlar encima
cajas de texto cundo son programmatically pobl. Tambin podras utilizar este func- tionality cundo
una caja de texto est poblada a raz de un clculo hecho en los nmeros o el texto introducidos en otro
texto elds.
6 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 6
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

El segundo y terceras cajas de texto estn habilitadas y aceptar entrada de el usuario para especificar
el nombre y la ubicacin de un objeto escaneado:

1. Arrastrar un botn al Espectador y gota l a el VirtualScreen1.

2. Rebautizar el botn btnAddItem en la columna de Componentes.

3. Cambio el FontSize propiedad a 25 .

4. Cambio la propiedad de Texto para Escanear Elemento para Aadir.

Luego es la caja de texto que est poblado cundo el barcode est escaneado. Inutilizas la caja de texto
as que el usuario no puede alterar el nmero despus de que ha sido escaneado:

1. Arrastrar un TextBox componente y caerlo abajo el botn de Elemento del Escner.

2. Rebautizar el TextBox componente txtBarCode.

3. Uncheck La propiedad Habilitada.

4. Pone la propiedad de Pista para Escanear Barcode.

5. Pone la propiedad de Ancho para Llenar Padre.

El prximo dos cajas de texto son donde el usuario introduce el nombre y ubicacin de la barra
escaneada- cdigo. Si el elemento es un collectible Guerras de Estrella gurine o un DVD, el
nombre y necesidad de ubicacin para ser almacenado en una manera significativa. Utilizas la
propiedad de Pista para indicar lo que informa- tion el usuario tendra que introducir ms que
etiquetar las cajas de texto:

1. Arrastra y gota dos TextBox componentes bajo el txtBarCode componente.

2. Rebautizar el rst caja de texto txtName y poner su propiedad de Pista a Nombre de


Elemento.

3. Rebautizar la segunda caja de texto txtLoc y poner su propiedad de Pista a Ubicacin de


Elemento.

4. Set tanto la propiedad de Ancho para Llenar Padre para ambas cajas de texto.

Luego, sitio el botn para salvar ambos el cdigo escaneado y los elementos de texto introducidos a
TinyDB :

1. Arrastra y caer un botn bajo la ltima caja de texto.

2. Rebautizar el botn btnSave.

3. Pone la propiedad de Texto de el botn para Salvar Elemento a Base de datos.


7 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 7
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

El botn de Elementos de la Exhibicin deja vuestro usuario puede ver que un elemento
escaneado ha sido colocado en TinyDB. Es tambin el acontecimiento que los mangos
que estiran los elementos fuera de TinyDB y parsing les al VirtualScreen2:

1. Arrastra y caer un botn bajo el bntSave botn.

2. Rebautizar el botn btnDisplay.

3. Pone la propiedad de Texto de el botn para Mostrar Elementos.

Aquellos son todos de los elementos de interfaz del usuario para VirtualScreen1.
VirtualScreen2 est compuesto pri- marily de una etiqueta para mostrar TinyDB
elementos y un botn para regresar el usuario a el principal VirtualScreen1.

La etiqueta colocas al VirtualScreen2 est poblado con texto descriptivo. Esto es en colocar
principalmente tan placeholder texto para troubleshooting. Si el texto es sin cambios
cundo intentas para mostrar TinyDB elementos, sabes para comprobar los bloques de
actualizacin de la etiqueta.

1. Arrastra y caer un componente de Etiqueta a VirtualScreen2..

2. Rebautizar el componente de Etiqueta lblDBDisplay.

3. Pone la propiedad de Texto a DB Exhibicin.

El nal elemento de interfaz del usuario es el botn para regresar el usuario a la pantalla
principal a con- tinue introduciendo elementos despus de mostrar elementos. En la 2.0
versin, tendrs un botn similar para regresar de la pantalla de bsqueda del elemento.
Planeando adelante puede mantener t de teniendo que rebautizar componentes:

1. Arrastra y caer un botn bajo el lblDBDisplay etiqueta.

2. Rebautizar el componente de Botn btnDisplayBack. Pone la propiedad de Texto para Respaldar.

Luego aades el dos componentes no visibles: Ayudante de Coleccin utiliza el Barcode


Escner y el TinyDB componentes.

3. Arrastra y caer el Barcode componente de Escner de el Otro Stu paleta.

4. Arrastra y caer el TinyDB componente de la paleta Bsica a la vista de Diseo.


Recuerda: es un componente no visible y aparece slo bajo la vista de Diseo.

Aquello es para la interfaz de usuario de Ayudante de Coleccin 1.0. Vuestra interfaz de


usuario tendra que parecer.
Figura 8-2.
8 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 8
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

Figura -
El Ayudante de
Coleccin
completado
1.0 interfaz de
usuario

Seleccionar el VirtualScreen2 componente y deselect su componente Visible. El VirtualScreen2


desaparece de el Espectador. Para hacer ajustamientos, puedes recheck el componente visible para
hacerlo visible en el Espectador otra vez.

Inicio con el Editor de Bloques por manejar el Elemento de Escner para Aadir el botn nombr
btnAddItem. El btnAddItem llama el Barcode el escner construido-en mtodo que inicios arriba de el
construidos-en Barcode Escner. Cundo el usuario escanea un barcode, un acontecimiento est
generado aquello contiene el resultado de el escner. Cundo ests construyendo acontecimiento-
aplicaciones conducidas, ayuda para seguir la estela de acontecimiento y complexin arriba de los
acontecimientos cuando ocurriran . Llamada el escner de el btnAddItem acontecimiento han- dler y
entonces construir el BarcodeScanner acontecimiento que est generado despus de escanear:.

1. Typeblock El btnAddItem.Acontecimiento de clic handler.

2. Typeblock El BarcodeScanner1.DoScan Llamada de mtodo y chasquear l a el


acontecimiento handler.

El .DoScan Llamada de mtodo contiene todo del cdigo e instrucciones para vuestro acontecimiento.
Lanza el barcode escner y esperas para un barcode para pasar delante de el cmara del telfono.
Cundo un
9 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 9
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

El escner exitoso est reconocido, el valor que est escaneado est pasado atrs al
BarcodeScanner1.AfterScan Acontecimiento handler. El resultado de el escner est pasado a el
acontecimiento handler como un argumento resultado nombrado. Aquel argumento puede ser
rebautizado por rebautizar el bloque de nombre en el casquete de resultado en el acontecimiento
handler. A pesar de que no normalmente cambias el nombre de el bloque de nombre del resultado, a
veces necesitas hacer tan si Inventor de Aplicacin no automticamente crea el bloque que es plugged a
el casquete de resultado.

Cundo el acontecimiento ocurre, aades el resultado a una lista de escane cdigos. Esta lista es la lista
clave .Porque almacenas todo de la informacin que utiliza el barcode como la etiqueta, esta lista es
importante para recuperar todos los datos introdujeron a la base de datos. Tambin necesitas recordar para
cargar esta lista con la Pantalla1.Intialize Acontecimiento.

Despus de cada escner, salvas la lista entera a TinyDB . Aquella manera, puedes recuperar todo de la
barra- cdigos que ha sido escaneado. Entonces puedes utilizar el barcodes como etiquetas para recuperar dato
de TinyDB .

T tambin puesto el texto de el discapacitado (no invisible) txtBarcode caja de texto a el resultado de el
escner.
Primero, crear la lista variable para ser utilizada para almacenar el barcodes:

1. Typeblock Un variable y rebautizarlo varBarcodelist.

2. Typeblock Una marca un bloque de lista y chasquear l a el barBarcodeList bloque.

Esto es un valid bloque sequence even con la marca un bloque de lista empty. NINGNT E
Este reminds you durante t roubletiroteo o cl earing el variable que este variable es unli st.

Luego, el inicio que construye el .AfterScan Acontecimiento handler para almacenar el


cdigo escaneado en el variable y la variable en TinyDB bajo una palabra clave sola:

1. Typeblock El BarcodeScanner1.AfterScan Acontecimiento handler. Aviso el


prepopu- lated casquete de resultado. Un bloque de valor acompaante est
creado y colocado en el Mi Denitions cajn.
2. Typeblock El Undd Elementos para Listar bloque y chasquear l a el
.AfterScan Acontecimiento handler. El Undd Elementos para Listar el
bloque te dejas para aadir elementos mltiples a un vari- lista capaz especificas.

3. Typeblock El varBarcodeList bloque variable global y chasquear l a la


lista
Casquete en el aadir elementos para listar bloque.
10 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 10
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

4. Typeblock the result value Bloquek und snap it into the rst item socket on the
aade elementos to list bloque. Recuerda, the result bloquek was cread in tr
My Denitions drawer when you usod the .AfterScan Acontecimiento. You can
change the name result A whateve r you like by changing the name bloquek on the
.AfterScan Inclusot handler.

5. Typeblock El txtBarcode.Texto [a] bloque y chasquear l en el .AfterScan


Acontecimiento bajo el aadir elementos para listar bloque. Typeblock
Otro bloque de valor del resultado y chasquear l a el .txtBarcode.Bloque de
texto. Esto pone el resultado de escner a el Textbox cundo el escner completa.
Esto da vuestro usuario retroalimentacin visual en el escner.
6. Typeblock El TinyDB1.StoreValue Bloque y chasquear l en prximo.

7. Uso un bloque de texto para poner el casquete de etiqueta a barcodelist .

8. Typeblock El varBarCodeList variable global y chasquear l a el valueToStore


Casquete.

El completado btnAddItem.Acontecimiento de clic y el


BarcodeScanner1.Despus de que escner
El acontecimiento tendra que parecer Figura 8-3.

Figura -
The
btnAddItem.
Clic y
Barcode
Escner1.
AfterScan
Acontecimie
ntos
11 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 11
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

Al llegar a este punto, tienes un variable aquello contiene todo el barcodes aquello nunca
ha sido escaneado y almacenado en TinyDB bajo la etiqueta barcodelist. Has
almacenado el barcodes en TinyDB de modo que puedes cargar el preload la variable con
todo el escner anterior dato cundo el applica- tion est empezado. La lista de barcodes
es vuestro clave a estirar el dato almacenado en TinyDB. Porque almacenaste dato con el
barcodes como etiquetas, el barcodes es vuestra lista de etiquetas. Podras utilizar la lista
en una lista picker o para estirar el dato fuera de la base de datos programmatically. En
este appli- catin, utilizas la lista de barcodes como manera de iterar a travs de todos
los elementos almacen en TinyDB. Cada barcode est sacado de la lista y utilizado
como etiqueta para estirar la informacin almacenada en el TinyDB componente con
aquel barcode.

Despus de un barcode ha sido escaneado y un nombre de elemento y la ubicacin ha


sido introducidos por vuestro usuario, necesitas salvar el introducido info en TinyDB con
el barcode como la etiqueta. Utilizas el Salvar Elemento a botn de Base de datos como el
acontecimiento para salvar a la base de datos. Utilizas un poco truco cundo almacenas el
dato de modo que pueda ser recuperado y parsed con un ForEach bloque. El nombre y
el dato de ubicacin est almacenado bajo el barcode, separado por comas. Cundo
recuperas el dato, utilizas la coma como punto partido. Esto es aproximadamente
equivalente a un multidimen- sional variedad en lenguajes de programacin tradicionales..

1. Typeblock El btnSave.Acontecimiento de clic handler y arrastrarlo a un claro workspace.

2. Typeblock El TinyDB1.StoreValue Bloque y chasquear l a el acontecimiento handler.

3. Typeblock El BarcodeScanner1.Bloque de resultado. Ser prudente no para


confundir l con el resultado el valor local bloquea aquello es en vuestro Mi
Denitions cajn. Aquello bloquea trabajos nicos dentro del contexto de el
BarcodeScanner1.AfterScan Acontecimiento cuando es un valor de parmetro
local . El BarcodeScanner1.Bloque de resultado tiene los mismos contenidos
pero est localizado en el BarcodeScanner1 cajn. Chasquear este bloque a el
casquete de etiqueta en el TinyDB1.StoreValue Bloque.

4. Typeblock Un bloque de texto de la marca y chasquear l a el valueToStore


casquete en el TinyDB1.StoreValue Bloque. Utilizas el bloque de texto de
la marca para unir el nombre y texto de ubicacin elds, separado por una coma.
5. Typeblock El txtName.Bloque de texto y chasquear l a el casquete de texto
en el bloque de texto de la marca.
6. Typeblock Un bloque de texto y reemplazar el default texto con una coma.
Chasquear el bloque de coma en el casquete de texto bajo el
txtName.Bloque de texto.
12 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 12
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N
7. Typeblock El txtLoc.Bloque de texto y chasquear l a el casquete de texto prximo.
13 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 13
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

Un escaneado barcode de 123456789, un nombre de Boba Fett accin gure, y una


ubicacin de armario de Sala est almacenada tan mostrada en Mesa 8-2.

Mesa 8-2 Nombre, Ubicacin


Etiqueta Valor
123456789 Boba Fett Accin gure, armario de Sala

Puedes almacenar tan muchos valora tan te gusta bajo la etiqueta separada por comas.
Ms tarde en este captulo, te muestras cmo para separar el dato en los valores.
Tambin puedes utilizar cualquier delimitador te gusta, pero una coma es normalmente
bastante fcil de utilizar y ver..

Despus de que has almacenado el elemento escaneado con su nombre y ubicacin,


puedes aclarar todas las cajas de texto en VirtualScreen1 por poner su .Propiedad de
texto a un bloque de texto del espacio.

1. Typeblock El txtBarCode.Texto [a] bloque y chasquear l en bajo el


TinyDB1.
StoreValue Bloque.

2. Typeblock El txtLoc.Texto [a ] bloque y chasquear l en prximo.

3. Typeblock El txtName.Texto [a] bloque y chasquear l en prximo.

4. Sitio un bloque de texto vaco en cada de los bloques de texto.

Vuestro btnSave.Acontecimiento de clic handler tendra que parecer el en Figura


8-4. The Escane el cdigo y las cajas de texto estn almacenados en TinyDB y las cajas de
texto estn aclaradas para el escner prximo.

Figura -
El completado
btnSave.Acont
ecimiento de
clic handler
14 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 14
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

El acontecimiento prximo necesitas al mango es el usuario tocando el botn de


Elementos de la Exhibicin en VirtualScreen1. Estas marcas de botn VirtualScreen2
visibles, carga todo el barcodes de TinyDB , y entonces parses el multi-variedad
dimensional fuera a sus valores separados y para-.
Esteras l para
exhibicin.

YNuestro algorithm fo l oading each bunrcoda y entonces formatting el dato stored con \n
el barcla oda es un poco complex. Despus de que you understy el process, you cun reuse
esta lgica fo multi-dimensional arrunys of ynuestro own.

Primero cargas el varBarcodeList a un ForEach bloque. Entonces construyes la


lgica siguiente: Para cada barcode en el varBarcodeList, partido el valor
almacenado bajo el barcode a una variable llam tmpList. El bloque de ruptura
divide cualquier cuerda de texto a una lista en el carcter escoges. Tan, partiste el
nombre,cuerda de ubicacin almacenada con el barcode a una lista provisional.
Entonces puedes utilizar un nested ForEach bloque a formato el tmpList a un
formatted pieza de texto para mostrar. Creas el formatted texto de el tmpList por
seleccionar- ing el rst elemento en el tmpList y escribindolo a una variable
provisional, y entonces seleccionando el elemento prximo y uniendo l con el elemento
anterior con formatting como newlines. Finalmente, escribes el barcode y formatted
texto a un provisional formatted variable para aguantar mientras vas en a el prximo
barcode almacen en el varBarcodeList .

Este proceso entero suena confundir y convoluted, s. Es complejo, pero puedes


entender l por ipping adelante para Representar 8-5 y leyendo a travs de los bloques en
sencillos ingleses.

Para cada elemento en varBarCode, el


siguiente:

1. Set tmpList a un sencillo lista de dos elementos (utilizando ruptura) de los


contenidos de TinyDB.
Utilizando el barcode cargado a var por el ForEach bloque.
2. Set tmpvar1 a el elemento en ndice 1 en tmpList. Esto es el valor de Nombre
almacenado bajo el barcode.
3. Set tmpvar2 a el siguiente formatted texto:

Nombre de Elemento:

\n (newline Carcter)
Nombre
15 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 15
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

REMEMBE
16 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 16
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

4. Ahora puesto tmpvar1 a el elemento en ndice 2 en tmpList. Esto es la ubicacin


almacenado bajo el barcode.
5. Unir los contenidos de tmpvar2 con el siguientes formatted texto atrs a tmpvar2 :

Nombre de Ubicacin:
\n

Ubicacin (en tmpvar1)

\n
================= (separator Caracteres entre entradas)

\n

6. Une en tmpvar3 los contenidos de tmpvar3 y tmpvar2 .

7. Vuelve hasta arriba y l otra vez para cada barcode.

8. Finalmente puesto el lblDBDisplay.Texto a los contenidos de tmpvar3 , el


cual es todo el formatted el texto creado por cada pase a travs del nested ForEach
bloques.

Cuando construyes arriba de cada conjunto de bloques, refiere


para Representar 8-5 para guiaje.

Primero, crear todas las variables provisionales y la lista provisional que te utilizar a
travs del.
btnDisplay.Acontecimiento
de clic handler:

1. Dene Una variable nombr tmpList. Chasquea en una Marca un bloque de


Lista.

2. Dene Una variable nombr tmpvar1. Chasquea en un bloque de texto vaco.

3. Dene Un nombre variable tmpvar2. Chasquea en un bloque de texto vaco.

4. Dene Una variable nombr tmpvar3. Chasquea en un bloque de texto vaco.

El var y var1 bloques de valor son dened cundo creas el ForEach bloques. El var
bloques de valor aparecen en el Mi Denitions cajn. Pueden ser typeblocked porque
aparecen en la parte superior de la lista cundo t typeblock el texto var.

Typeblock El btnDisplay.Acontecimiento de clic handler y colocarlo encima un


claro workspace en el Editor de Bloques. El btnDisplay.Acontecimiento de clic es
bastante mucho tiempo cundo eres nished con l, as que marca seguro tienes habitacin
para l.
17 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 17
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

Figura - The
complet
btnDisplay.Acon
tecimiento de
clic handler

El rst cosa que pasa cundo el usuario toca el botn de Exhibicin es que VirtualScreen2
est hecho visible y VirtualScreen1 est hecho invisible:

1. Typeblock the VirtualScreen1.Visible [A ] bloquek und snap un false bloquek in lo.

2. Typeblock El VirtualScreen2.Visible [a] bloque y chasquear un bloque cierto en l.

3. Typeblock El tmpVar3 [a] bloque y chasquear l en bajo el VirtualScreen bloques.


Chasquea en un bloque de Texto del espacio. Esto aclara el provisional
formatting variable as que pueda ser fresco y reluciente para cada prensa de el
botn de Exhibicin.

Luego, el inicio que construye la lgica para el ForEach los bloques mostrados en Figura 8-5.

1. Typeblock Un ForEach bloque y chasquear l en el acontecimiento handler.

Remember Que Aplicacin yonvent o normalmente prepopulates el var socket en el NINGNT


ForEach bloque. Si el var socket es unpopulated, you necesidad to chasquea en un
bloque de nombre from el D enitions drunw er y r ename l t o el n ext sequential var
nmero/de nombre combination.
18 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 18
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

2. Typeblock El varBarcodeList bloque de valor y chasquear l a el en


casquete de lista en el fondo de el ForEach bloque.

3. Typeblock El tmpList [a] y chasquear l a el ForEach bloque.

4. Typeblock Un bloque de ruptura y chasquear l a el tmpList bloque.

5. Typeblock Un TinyDB1.GetValue Bloque y chasquear l a el casquete de


texto en el
tmpList Bloque.

6. Typeblock El var bloque y chasquear l a el .GetValue Bloque. ThEs utiliza el


barcode actualmente cargado de el TinyDB como la etiqueta para el .GetValue
Bloque.
7. Typeblock Un bloque de texto y reemplazar el texto con una coma. Chasquear el
bloque de coma a el en casquete en el bloque de ruptura.

Esta serie de bloques carga los contenidos almacenaron bajo el actualmente cargados barcode y rupturas
l en la coma. El bloque de ruptura es un bloque muy manejable que vueltas cualquier cuerda de texto
a una lista de elementos dividi en el carcter que chasqueas a el en casquete. Puedes utilizar el
bloque de ruptura a temporalmente girar una lnea de texto a una lista as que puedes tratar cada
palabra en la lnea de texto por su nmero de ndice en la lista. Recuerda que las listas en Inventora de
Aplicacin tienen un ndice num- ber aquello es igual a su sitio en la lista.

Luego construyes el ForEach bloque que procesos el tmpList variable de lista a formatted texto para
exhibicin. Nested ForEach Los bloques pueden ser confundir: Mantiene en importar que el exterior
ForEach el bloque carga una lista provisional y el interior ForEach el bloque procesa que tempo- rary
lista. El exterior ForEach carga otra lista provisional para hacerlo todo otra vez:

1. Typeblock Un segundo ForEach bloque y chasquearlo debajo el tmpList [a] bloque.

2. Typeblock El tmpList bloque de valor global y chasquear l en el en casquete de


lista en el fondo de el ForEach bloque.

Esto es el interior ForEach bloque que procesos los elementos en el tmpList variable. Utilizas las
variables provisionales para seleccionar los elementos fuera de la lista provisional y formato el nal
texto de exhibicin. Esta lgica podra ser hecha ms estanco y ms graceful por utilizar el seleccionar
elemento de lista en el segundo conjunto de bloques y no utilizando tmpvar1. Aun as, sea un
poco ms duro de entender qu ests haciendo. Despus de construir esta serie y consiguindolo para
trabajar en vuestro telfono, puedes querer volver e intentar pensar a travs de cmo el mismo
objetivo podra ser cumplido con menos bloques.
19 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 19
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

El seleccionar bloque de elemento de la lista te dejas para estirar un elemento


solo fuera de una lista por su ndice num- ber. Sabes que el tmpList tiene el formato de
nombre, ubicacin, as que sacas el rst elemento de ndice y sitio l en tmpvar1:

1. Typeblock El tmpvar1 [a] bloque y chasquear l en el interior ForEach bloque.

2. Typeblock El Seleccionar bloque de Elemento de la Lista y chasquear l a el a casquete en


el
tmpvar1 bloque.

3. Typeblock El tmpList bloque de valor global y chasquear l a el casquete de lista en el


Selecciona bloque de Elemento de la Lista.

4. Typeblock Un nmero 1 bloque y chasquear l a el casquete de ndice.

Ahora utilizas tmpvar2 como sitio de holding provisional a formato el texto alrededor de el
Nombre que te colocado en tmpvar1. El unir o bloques de texto de la marca podran
ser utilizados para esta tarea. Para para- matting texto, es un poco ms fcil a envision lo
que el nished el resultado parecer cundo utilizas los bloques de texto de la marca:

1. Typeblock El tmpvar2 [a] bloque y chasquear l en bajo el tmpvar1 bloque.

2. Typeblock El bloque de texto de la marca y chasquear l a el tmpvar2 bloque.

3. Typeblock Un bloque de texto con el Nombre de Elemento del texto: y


chasquear l en el casquete de texto. Ser seguro para dejar un espacio final.
4. Typeblock Un bloque de texto con el newline carcter (\n) y chasquear l a el texto prximo
Casquete.

5. Typeblock El tmpvar1 bloque de valor y chasquear l en el casquete de texto prximo.

6. Typeblock Un bloque de texto con el newline carcter y chasquear l en ltimo.

Ahora te reutilizacin el tmpvar1 para extraer el elemento prximo en el tmpList


para formatting:

1. Typeblock El tmpvar1 [a] bloque y chasquear l en bajo el tmpvar formatting


bloques.
2. Typeblock El seleccionar bloque de elemento de la lista y chasquear l a el tmpvar1 bloque.

3. Typeblock El tmpList bloque de valor y chasquear l a el casquete de lista


en el seleccionar bloque de elemento de la lista.
4. Typeblock Un nmero 2 bloque y chasquear l a el casquete de ndice.
20 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 20
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N
Luego, unir los contenidos actuales de tmpvar2 con nuevos formatted el texto construido alrededor de
el con- tiendas de tmpvar1 . Utilizando un unir bloque para unir los contenidos de una variable con
texto nuevo y colocarlo atrs en la misma variable es mucho gusta utilizar la adicin (+) bloque a
increment un valor numrico en una variable. Tomas qu es en la variable, aade algo a l, y
entonces colocarlo atrs en la variable.

1. Typeblock El tmpvar2 [a] bloque y chasquear l en prximo en el interior ForEach bloque.

2. Typeblock Un unir bloque.

3. Typeblock El tmpvar2 valor global bloque y chasquear l a el rst casquete en el


Une bloque.

4. Typeblock Un bloque de texto de la marca y chasquear l a el segundo casquete en el unir


bloque.
5. Typeblock Un bloque de texto y poner el texto a Nombre de Ubicacin: con un espacio
final.
Chasquea l a el casquete de texto en el bloque de texto de la marca.

6. Typeblock Un bloque de texto y poner el texto a un newline carcter. Chasquea l a el


prximo Casquete de texto.

REMEMBER El n ewline character fo Aplicacin yonvent o t ext es el \n combination.

7. Typeblock El tmpvar1 valor global bloque y chasquear l al casquete de


texto prximo.
El tmpvar1 ahora contiene el valor de Ubicacin de tmpList .

8. Typeblock Un bloque de texto con un newline carcter y chasquear l en el


casquete de texto prximo.

9. Typeblock Un bloque de texto con algn separator texto como ========= y


chasquear l en el casquete de texto prximo.
10. Typeblock Un bloque de texto con un newline carcter y chasquear l en el
ltimo bloque en el
Bloque de texto de la marca.

Vuestra serie de bloque prxima est colocada en el exterior ForEach bloque bajo el interior
ForEach (ve Figura 8-5). Necesitas tomar el formatted texto que contiene la barra
escaneada y almacenada- cdigo, nombre, y ubicacin con su formatting y tienda l en
tmpvar3, donde est unido cada vez con el anteriormente formatted elementos hasta
que todo el escaneados barcodes ha sido para- matted y est a punto para ser mostrado
21 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 21
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

1. Typeblock El tmpvar3 [a] bloque y chasquear l en bajo el interior ForEach bloque.

2. Typeblock Un unir bloque y chasquear l a el tmpvar3 bloque.

3. Typeblock El tmpvar3 valor global bloque y chasquear l a el rst casquete en el


Une bloque.

4. Typeblock El tmpvar2 valor global bloque y chasquear l a el segundo casquete en el


Une bloque.

La ltima cosa que pasa en el btnDisplay.Acontecimiento de clic handler es la


exhibicin de todo el formatted elementos en el tmpvar3 variable en el lblDBDisplay
etiqueta en VirtualScreen2:

1. Typeblock El lblDBDisplay.Texto [a] bloque y chasquear l en el btnDisplay.


Clic bajo el nested ForEach bloques.

2. Typeblock El tmpvar3 valor global bloque y chasquear l a el bloque de texto.

Vuestro btnDisplay.Acontecimiento de clic handler ahora tendra que parecer


Figura 8-5. Carga el con- tiendas de el varBarcodeList y empieza utilizar el barcodes
como etiquetas para poblar un tempo- rary lista que es entonces utilizado a elementos de
formato para exhibicin. Entonces puebla la etiqueta de exhibicin de base de datos
grande en VirtualScreen2.

Despus de vuestro usuario ha perused los elementos mostraron en la etiqueta, necesitas


manejar el Posterior pero- tonelada de el VirtualScreen2.

1. Typeblock El btnDisplayBack.Acontecimiento de clic handler.

2. Typeblock Un VirtualScreen2.Visible [a] bloque y chasquear en un bloque falso.

3. Typeblock Un VirtualScreen1.Visible [a] bloque y chasquear en un bloque cierto.

El acontecimiento nico dej al mango es la Pantalla 1.Intialize Acontecimiento que ocurre en inicio de
aplicacin-arriba. Necesitas cargar el barcodes almacen en TinyDB a el varBarcodeList vari- capaz.
Aun as, si es el rst la carrera o el usuario ha aclarado el dato de el Androide applica- tion encuadres,
necesitas hacer seguro no cargas un null valor a la lista. Si cargas un null valor a la lista, los errores de
aplicacin fuera de cualquier tiempo vuestros intentos de aplicacin para utilizar la variable como lista. El
rst tiempo los intentos de usuario para aadir algo con una barra escaneada- cdigo, la aplicacin
chocara . Esto es un resultado de el bloque de lista de la marca de hecho cambiando la estructura
de una variable. Escribiendo un null el valor a la variable saca su esencial listy- ness. Porque usos de
Inventor de la Aplicacin slo una clase sola de variable, la variable toma su tipo o clase de el dato
actualmente almacenado en l. Utilizas un sencillo Si bloque para ver si cualquier dato
22 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 22
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

Est almacenado en TinyDB. Si el TinyDB es vaco, no cargas cualquier cosa a la variable, evitar- ing el
null valor. Si TinyDB de hecho tiene dato de usuario almacenado en l, sea cargado a la variable.

1. Typeblock La Pantalla1.Inicializa acontecimiento handler.

2. Typeblock Un Si bloque y chasquear l a el .Inicializa acontecimiento.

3. Typeblock Un no bloquear y chasquear l a el casquete de prueba en el Si bloque.

4. Typeblock Un equals operador de comparacin (=) y chasquear l a el no bloquear.

5. Typeblock Un TinyDB1.GetValue Bloque y chasquear l a el rst casquete en el com-


parison operador.
6. Typeblock Un bloque de texto y cambiar el texto a barcodelist y chasquear l al.
TinyDB1.GetValue Bloque.

7. Typeblock Un bloque de texto y sacar el default texto, dejando un bloque de texto del
espacio. Chasquea l a el segundo casquete en el operador de comparacin.
8. Typeblock El varBarcodeList [a] bloque y chasquear l a el Si bloque dentro del
acontecimiento handler.
9. Typeblock Un TinyDB1.GetValue Bloque y chasquear l a el varBarcodeList bloque.

10. Typeblock Un bloque de texto y hacer el texto barcodelist. Chasquear el bloque


de texto a el casquete de etiqueta en el .GetValue Bloque.

Estos bloquea rst control para hacer seguro que el .GetValue El bloque no est regresando un null
valor. Si el valor no es null, el varBarcodeList est poblado con los contenidos de la
etiqueta barcodelist.

En la versin prxima de Ayudante de Coleccin, aades capacidad de bsqueda para estirar


elementos individuales de la base de datos y mostrar el dato almacenado.

Por crear Ayudante de Coleccin 1.0,


aprendiste

El Barcode componente de Escner puede soler cambiar las lneas misteriosas y


puntos de UPC y matriciales QR cdigos a texto que puede ser utilizado en vuestras
aplicaciones.
Puedes utilizar texto texto iterativo parsing para crear multi-variedades
dimensionales en TinyDB o una variable.

Ahora eres a punto para mover encima para aadir an ms complejidad en el Ayudante
de Coleccin 2.0.
23 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 23
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

Creando Ayudante de Coleccin


2.0
La 2.0 versin de la Ayudante de Coleccin aade algunos powerhouse funcionalidad a el
appli- catin as como ensendote cmo para buscar el dato almacenado en TinyDB. El
dato formatting y estructurando de la 1.0 versin es reused para mostrar los resultados
de bsqueda. ThAntes de es tres piezas bsicas de informacin que vuestras tiendas de
aplicacin en TinyDB: el barcode, un nombre, y una ubicacin. Necesitas aadir la
capacidad de buscar encima todo de estos elementos y regresar cualesquier resultados.
El mtodo te muestras a ti uso para buscar es ligeramente ms complejo que te realmente
necesidad para un aplicacin tan sencilla. Aun as, lo utilizo para ensearte un mtodo que
balanza bien a otras aplicaciones. Puedes utilizar la metodologa de bsqueda despliegas
en el Ayudante de Coleccin para buscar a travs de datos que est almacenado en
TinyDB, TinyWebDB, o variables globales a toda costa de la cantidad de datos. Mantiene
en importar que los proyectos en este libro no es preceptivo sino descriptivo. En otras
palabras,, este proyecto no ilustra cmo tendras que implementar una rutina de bsqueda,
sino cmo podras implementar una rutina de bsqueda. Uno de las alegras de programar
est viniendo arriba con maneras nuevas y nicas para solucionar problemas ms
eciently.

Tr diseo
Figura 8-6 espectculos los croquis de diseo para Ayudante de
Coleccin 2.0.

Figura -
croquis de
Diseo para
Ayudante de
Coleccin 2.0

En esta versin, aades una tercera pantalla virtual como casa de bsqueda y una cuarta
pantalla virtual como pantalla de resultados de la bsqueda. Tambin aades elementos
de interfaz nueva a cada cual de el existiendo pantallas virtuales. La funcionalidad global
para la 2.0 versin incluye aadir elementos por escanear un
24 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 24
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N
barcode E introduciendo metadata, y buscando elementos por escanear un elemento o escribiendo en un plazo
de bsqueda.

Vuestro reto de diseo primario est aadiendo la funcionalidad de bsqueda para habilitar un usuario
para buscar por escaneado barcode o nombre o ubicacin..

Tr primitives
Estos son los algoritmos bsicos y piezas de lgica para las adiciones a vuestra aplicacin:

Dos pantallas nuevas para bsqueda y resultados.


Elementos de navegacin nueva en existir pantallas
Un mtodo para cargar y buscando el dato almacenado

New Componentes
Ningn componente nuevo est introducido en esta aplicacin.

New Bloques
Slo uno el bloque nuevo est utilizado en versin 2.0 de Ayudante de
Coleccin:

Es en lista?

Tr progresin
Estos son vuestros pasos de nivel alto necesitas tomar tan mueves a travs de vuestro primitives. En
realidad, construyes el algoritmo de bsqueda una vez para el barcode bsqueda y entonces
reutilizacin que cdigo a travs de los acontecimientos de bsqueda prximos. Tambin utilizas un
segundo barcode escner para mantener el .El resultado bloquea distinto en caso vuestro usuario
es ambos aadiendo y buscando en la misma sesin. Esto tambin te das la oportunidad de ver cmo
para utilizar ocurrencias mltiples de el mismo acontecimiento. A pesar de que el .AfterScan Es el
mismo real-acontecimiento mundial, si se apellida del Aadir botn de Elemento o las marcas de botn
de la Bsqueda para muy dierent acontecimientos de Inventor de la Aplicacin.

1. Aadir el nuevo VirtualScreens.

2. Aadir el nuevo navigational elementos.

3. Aade cajas de texto de Bsqueda nuevas y botones de Bsqueda para barcode,


nombre, y ubicacin..
25 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 25
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

4. Aade elementos de resultados de Bsqueda nuevos.

5. Complexin navigational elementos para cambiar pantallas.

6. Mango barcode escner y acontecimientos de bsqueda.

7. Acontecimientos de bsqueda de nombre de mango.

8. Acontecimientos de bsqueda de ubicacin de mango.

Empezando encima Ayudante de Coleccin


2.0
Inicio por utilizar el Salvar Tan botn en la vista de Diseo para salvar una copia nueva de vuestro
Ayudante de Coleccin. Cambio el nombre a CollectionAssistant2_0 . Ests creando una copia de
Ayudante de Coleccin 1.0 Coleccin nombrada Ayudante2_0. Marca seguro la Exhibicin los
componentes Invisibles en caja de control del Espectador est seleccionado en la parte superior de la vista
de diseo.

Para la revisin, necesitas aadir funcionalidad de bsqueda a vuestra aplicacin. Esto requiere dos
nuevo VirtualScreens adems de el dos encontrado en Ayudante de Coleccin 1.0. El tercer
VirtualScreen est activado por tocar un botn de Bsqueda de la pantalla principal. The Cuarto
VirtualScreen est activado cundo el proceso de bsqueda muestra los resultados (o carencia de
resultados).

En esta revisin, aades dos nuevo VerticalArrangements para utilizar tan VirtualScreens. Recuerda para
dejar la propiedad Visible comprobada hasta que has hecho el muy ltimo ajustamiento a la interfaz
de usuario:

1. Arrastra dos nuevo VerticalArrangements para Disear vista.

2. Rebautizar el rst VerticalArrangement VirtualScreen3.

3. Rebautizar el segundo VerticalArrangement VirtualScreen4.

Vuestras necesidades de usuario para ser capaces a navigate de pantalla a pantalla, as que necesitas
colocar Atrs pero- toneladas que regreso un usuario a la pantalla principal, el cual es VirtualScreen1.
Tambin utilizas un nuevo pero- tonelada en la pantalla principal para tomar el usuario a la pantalla de
bsqueda.

Primero, indica a vuestro usuario lo que el propsito global de esta


pantalla es:

1. Arrastra y caer una etiqueta a VirtualScreen3. Lo rebautiza lblSearchBanner.


26 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 26
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N
2. Pone la propiedad de Texto de lblSearchBanner para leer Buscar Elemento en Base de datos
Utilizando Un de el
Siguiente:
27 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 27
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

Complexin prxima arriba de los


elementos de interfaz de la bsqueda:

1. Arrastrar un HorizontalArrangement al VirtualScreen1 bajo el Salvar Elemento a


Botn de base de datos.

2. Arrastrar un botn nuevo a el HorizontalArrangement y rebautizar el botn btn-


Search.

3. Pone la propiedad de Texto de btnSearch para Buscar.

4. Arrastrar el botn de Elementos de la Exhibicin de el VirtualScreen1 a el


HorizontalArrangement a la derecha de el botn de Bsqueda nuevo.

La interfaz de usuario de VIrtualScreen3 ser compuesto de una serie de cajas de texto


sigui por botones de Bsqueda. El tres elds y los botones corresponden a barcode
bsqueda, bsqueda de nombre, y bsqueda de ubicacin. El barcode la bsqueda es nica
en aquel lo dejar el usuario a cualquier escner un barcode para bsqueda o
manualmente introducir los nmeros para bsqueda.

Primero, complexin arriba de el barcode interfaz de usuario de


la bsqueda en VirtualScreen3:

1. Arrastrar un HorizontalArrangement a VirtualScreen3. ThEs aguanta el TextBox


compo- nent y los dos componentes de Botn.
2. Arrastrar un TextBox componente a el HorizontalArrangement. Rebautizar la caja
de texto
txtSearchBarcode.

3. Pone la propiedad de Pista de txtSearchBarcode para Introducir o Escner


Barcode.

4. Arrastra y caer un botn a la derecha de el txtSearchBarcode caja de texto. Lo


rebautiza btn- SearchBarcode. Esto es el botn utiliz para provocar el
acontecimiento utilizas para iniciar un barcode bsqueda en TinyDB.
5. Pone la propiedad de Texto de el btnSearchBarcode para Buscar.

6. Arrastra y caer otro botn a la derecha de el ltimo botn. Lo rebautiza


btnScan- BarCodeForSearch. Esto es el botn un usuario puede tocar para
escanear un existiendo barcode para poblar el txtSearchBarcode caja de texto.
7. Pone la propiedad de Texto de btnScanBarcodeForSearch para Escanear.

Utilizando estos elementos de interfaces y una pista suave de vuestra propiedad de Pista,
el usuario sabe que tampoco pueden introducir o escanear un barcode a la caja de texto.
28 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 28
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

Luego, complexin los elementos de interfaz del usuario para buscar


TinyDB por nombre:

1. Arrastra y caer un HorizontalArrangement bajo el arreglo horizontal anterior en


VirtualScreen1.
2. Arrastra y caer
un TextBox componente a el HorizontalArrangement. Lo rebautiza
txtSearchName.

3. Pone la propiedad de Pista para txtSearchName para Introducir Nombre para Buscar.

4. Arrastra y caer un botn a la derecha de el txtSearchName caja de texto. Lo


rebautiza btn- SearchName.
5. Cambio la propiedad de Texto para Buscar.

Sitio todo de los componentes de interfaz del usuario para buscar TinyDB dato
por ubicacin:

1. Arrastra y caer un tercer HorizontalArrangement en VirtualScreen3 debajo los


componentes de bsqueda anteriores.
2. Arrastra y caer un TextBox componente a el HorizontalArrangement. Lo rebautiza
txtSearchLoc.

3. Pone la propiedad de Pista de txtSearchLoc para Introducir Ubicacin para Buscar.

4. Arrastra y caer
un botn a la derecha de el txtSearchLoc caja de texto. Lo
rebautiza btn- SearchLoc.
5. Pone la propiedad de Texto de btnSearchLoc para Buscar.

Finalmente, necesitas un elemento de navegacin para dejar usuarios para regresar a la


pantalla principal sin completar una bsqueda:

1. Arrastra y caer un botn como el ltimo componente en el VirtualScreen3. Lo


rebautiza btn- SearchBack.
2. Pone la propiedad de Texto para Respaldar.

Estos son todos los componentes para vuestra pantalla de bsqueda, el cual es
VirtualScreen3. Tendras que tener una lista de componente y diseo que parece Figura
8-7.

VirtualScreen4 es mucho como VirtualScreen2 en aquel es un sitio sencillo para mostrar


cualesquier resultados de el algoritmo de bsqueda. Dos etiquetas indican a el usuario
qu son est mirando en y entonces mostrar los resultados:
29 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 29
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

1. Arrastra y caer
una etiqueta a el VirtualScreen4. Lo rebautiza
lblSearchResults- Banner.

2. Pone la propiedad de Texto para Buscar Pantalla de Resultados .

3. Arrastra y caer una segunda etiqueta bajo el rst. Lo rebautiza lblSearchResults.

4. Pone la propiedad de Texto a algunos placeholder texto como

Resultados Aqu. Finalmente, puesto un componente de navegacin para

tomar el usuario atrs a la pantalla principal.

1. Arrastra y caer un componente de Botn como el ltimo componente en


VirtualScreen4. Lo rebautiza btnResultsBack .
2. Pone la propiedad de Texto de el btnResultsBack para Respaldar.

El btnScanBarcodeForSearch el botn activa el barcode escner de modo que vuestro


usuario puede escanear el barcode quieren buscar. Aun as, no quieres utilizar el mismo
Barcode componente de Escner que est siendo utilizado por el Escner y Aadir botn de
Elemento. Esto es porque cada escner genera no slo un acontecimiento pero tambin un
bloque con los ltimos escners resulta almacenado en l. Quieres hace seguro que
ltimo escner de elemento de la tienda de vuestro usuario nunca es confundido con el
resultado de escner de elemento de bsqueda. Para conseguir alrededor de este ,
aades un segundo Barcode componente de Escner y utilizar los acontecimientos y los
bloques del segundo componente.

Arrastra y caer un nuevo Barcode componente de Escner de el Otro Stu


paleta.

Marca seguro la propiedad Visible para VirtualScreen3 y VirtualScreen4 es

deselected. Vuestro Ayudante de Coleccin completado 2.0 interfaz de usuario tendra

que parecer Figura 8-7.

Ahora, encima a construir la lgica y algoritmos para vuestro Ayudante de Coleccin 2.0
aplicacin en el Editor de Bloques. Pusiste cada cual de los botones Posteriores en
VirtualScreen3 y VirtualScreen4 para regresar el usuario a la pantalla principal. El
acontecimiento de botn de la Bsqueda activa VirtualScreen3. VirtualScreen4 est
activado despus del algoritmo de bsqueda ha sido corrido.
30 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 30
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

Figura - :
Los
componentes
de interfaz de
usuario
nuevos

Primero, instalado el botn Posterior para emotivo el usuario de VirtualScreen3 atrs


a la pantalla principal. VirtualScreen3 es la pantalla de bsqueda primaria, as que nombra
el botn btnSearchBack:

1. Typeblock El btnSearchBack.Acontecimiento de clic handler y arrastrarlo a un


trabajo vaco- espacial en vuestro Editor de Bloques.
2. Typeblock El VirtualScreen3.Visible [a] bloque y chasquear l a el acontecimiento.
Chasquea en un bloque falso.

3. Typeblock El VirtualScreen1.Visible [a] bloque y chasquear l en bajo el


VirtualScreen3 bloque. Chasquear un bloque cierto a el
VirtualScreen1.Visible [a] bloque.

Este acontecimiento res cundo el botn Posterior est tocado y dirige el usuario atrs a la
pantalla principal. Los bloques prximos manejan la pgina de resultados Respalda botn
en VirtualScreen4:
31 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 31
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

1. Typeblock El btnResultsBack.Acontecimiento de clic handler.

2. Typeblock El VirtualScreen4. Visible [a ] bloque y chasquear l en el


acontecimiento handler. Chasquea en un bloque falso.
3. Typeblock the VirtualScreen1.Visible [A ] bloquek und snap it in under
el
VirtualScreen4 bloque. Snap Un true bloquek into the VirtualScreen1 [a ]

casquete. Ahora instalado el acontecimiento de botn de la Bsqueda para VirtualScreen1.

1. Typeblock El btnSearch.Acontecimiento de clic handler.

2. Typeblock El VirtualScreen1.Visible [a] bloque y chasquear l a el


acontecimiento handler. Chasquea en un bloque falso.
3. Typeblock El VirtualScreen3.Visible [a] bloque y chasquearlo luego en el
acontecimiento handler. Chasquea en un bloque cierto.

Esto trae arriba de la pantalla de bsqueda cundo el usuario toca el


botn de Bsqueda.

El acontecimiento prximo necesitas al mango es el botn de Escner en la pantalla de


bsqueda. Cundo el usuario toca el botn de escner, tenga que traer arriba de el
barcode escner. Cundo el usuario escanea un barcode exitosamente, el resultado de el
escner tendra que ser cargado a el txtSearchBarcode y utilizado para buscar TinyDB. Si
vuestro usuario manualmente tipos en un cdigo para bsqueda, el botn de Bsqueda
utiliza el nmero de el txtSearchBarcode.

1. Typeblock El btnScanbarcodeForSearch.Acontecimiento de clic handler.

2. Typeblock El BarcodeScanner2.DoScan Llamada de mtodo y chasquear l en el


acontecimiento han- dler. Marca seguro que es el .DoScan De el segundo barcode
escner.

El barcode el escner genera un acontecimiento cundo all es un escner exitoso. The


BarcodeScanner2.AfterScan El acontecimiento llama el mismo procedimiento que
el btnBarcode- llamadas de acontecimiento de la Bsqueda.

Construyes un procedimiento para ser utilizado para ambos acontecimientos. The


procBarcodeSearch se apellida de el BarcodeScanner2.AfterScan Y tambin
de el btnSearchBarcode.Acontecimiento de clic. Whichever El acontecimiento
llama el procedimiento, toma como su bsqueda denomina los contenidos de txt-
SearchBarcode caja de texto. Pone el .AfterScan Acontecimiento para poblar el
txtSearchBarcode caja de texto con los resultados de el escner. Colocas la llamada de
procedimiento en ambos estos acontecimientos en justos un momento.
32 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 32
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

1. Typeblock El BarcodeScanner2.AfterScan Acontecimiento handler.

2. Typeblock El txtSearchBarcode.Texto [a] bloque y chasquear l al.


.AfterScan Bloque.

Si Aplicacin yonvent o es no automaticaliado populate el resultado socket en el REMEMBER


.AfterScan
event Mangor, you necesidad to tapn en un bloque de nombre.

3. Typeblock El resultado1 bloque de valor y chasquear l a el


txtSearchBarcode.Texto
Bloque.

4. Typeblock El btnSearchBarcode.Acontecimiento de clic handler.

Pone estos dos acontecimientos aparte para un momento. Colocas la llamada de


procedimiento en ellos apenas lo creas.

El procedimiento de bsqueda carga los contenidos de el varBarcodeList un elemento a la


vez utilizando un ForEach bloque. Entonces comprueba para ver si el plazo de bsqueda
es igual a el actualmente cargado barcode. Si el actualmente cargado barcode es igual como
el plazo de bsqueda, sea formatted y produccin para buscar resultados. Este
algoritmo est conseguido con un IfElse bloque en el ForEach que controles la
variable local contra el plazo de bsqueda. El formatting est manejado por la misma lgica
que te utilizado para formatting en la 1.0 versin.

Primero, dene las variables sers utilizar en el procedimiento. Necesitas una variable
para el plazo de bsqueda y otro para los resultados de bsqueda:

1. Typeblock Una variable nueva y rebautizarlo varSearchTerm .

2. Tapn un bloque de texto vaco a l..

3. Typeblock Una variable nueva y rebautizarlo varSearchResults.

4. Tapn en un bloque de texto vaco.

Estos dos variables estn utilizadas a travs del procedimiento para proporcionar claridad en
comprensivo qu est yendo en. No son estrictamente necesarios y la rutina podra ser
hecha ms ecient sin ellos. Aun as, la claridad es de rst importancia cundo tratando
algo tan com- plex como estos bloques. T tambin reutilizacin las variables provisionales
utilizaron por el formatting rou- tine en el acontecimiento de exhibicin.
33 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 33
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N
Inicio por crear el procedimiento y poniendo el varSearchTerm a el nmero aquello ha
sido introducido a el txtSearchBarcode por el usuario o un escner. Cuando construyes el
procedimiento, refiere a el complet bloques en Figuras 8-8, 8-9, y 8-10..

1. Typeblock El procedimiento nuevo y rebautizarlo procBarcodeSearch.

2. Typeblock El procBarcodeSearch llamada y chasquear l a el


BarcodeScanner2.
AfterScan Acontecimiento handler.

3. Typeblock Otro procBarcodeSearch llamada y chasquear l a el


btnSearchBar- acontecimiento de cdigo handler.

4. Typeblock El varSearchTerm [a] bloque y chasquear l a el procedimiento.

5. Typeblock El txtSearchBarcode.Bloque de texto y chasquear l a el


varSearch- bloque de Plazo.

Ahora colocas el nested ForEach e IfElse bloques para comprobar todo el barcodes en el
var- BarcodeList:

1. Typeblock Un ForEach bloque y chasquear l en bajo el varSearchTerm bloque.

2. Typeblock El varBarcodeList y chasquear l a el fondo de ForEach bloque


en el en casquete de lista.

Estos bucles a travs del varBarcodeList y carga cada elemento uno a la vez a la
variable local, var2, el cual era dened cundo creaste el ForEach bloque.

NINGNT E Si el var2 variable isn't creunt ed, you cun chasquear un bloque de nombre ent o el
var socket en el
ForEach Bloque y r ename lo.

Ahora necesitas probar si el elemento actualmente cargado es igual como el plazo de


bsqueda que te salvado a varSearchTerm . Utilizas un IfElse bloque para construir la
lgica que dice, Si el con- tiendas de var2 no es igual como los contenidos de
varSearchTerm , nada; si son igual, formato los contenidos.

1. Typeblock Un IfElse bloque y chasquear l a el ForEach bloque.

2. Typeblock Un no bloquear y chasquear l a el casquete de prueba en el


IfElse bloque.

3. Typeblock Un equals (=) operador de comparacin y chasquear l a el no bloquear.


34 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 34
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

4. Typeblock El var2 bloque de valor y chasquear l en el rst casquete en el


operador de comparacin.
5. Typeblock El varSearchTerm bloque de valor global y chasquear l a el segundo
casquete en el operador de comparacin.

El procedimiento para el barcode la bsqueda tendra que parecer Figura 8-8 al llegar a
este punto. Dejar el entonces-hacer el casquete vaco en el IfElse bloque. Si los
contenidos de la variable provisional y la variable de plazo de la bsqueda no son igual,
no quieres cualquier cosa todava. Aquello es el rst el caso en qu la prueba evala a
cierto , significando que var2 no es igual al plazo de bsqueda. El ForEach el bucle carga
otro barcode a el var2 variable y sus contenidos sern evaluados en la misma manera.

Figura -
Empezando
el
procBarCode
procedimient
o de
Bsqueda

Si la prueba evala cuando no cierto, quieres tomar el barcode en var2 y uso l como
etiqueta para recuperar los contenidos almacenaron bajo aquel barcode. T entonces
formato que contenido con el mismo ForEach bucle utilizaste en el
btnDisplay.Acontecimiento de clic.

Para el segundo caso, cundo la prueba evala no cierta, t rst aclarar el


varSearchResults de cualesquier resultados de bsqueda anteriores. Entonces estirar
los contenidos almacenaron bajo el barcode y tienda l en el tmpList utilizaste
anteriormente:

1. Typeblock El varSearchResults [a] y chasquear l a el ms-hacer


casquete en el IfElse bloque.
2. Typeblock Un bloque de texto y puesto lo vaco. Chasquear el bloque de texto vaco al.
varSearchResults.

3. Typeblock El tmpList [a] y chasquear l en prximo en el ms-hacer casquete.


35 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 35
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

4. Typeblock Un bloque de ruptura y chasquear l a el tmpList bloque.

5. Typeblock Un TinyDB1.GetValue Y chasquear l a el casquete de texto en


la ruptura
Bloque.

6. Typeblock El var2 bloque de valor y chasquear l a el .GetValue Bloque.

7. Typeblock Un bloque de texto y poner el texto a una coma. Chasquea l a el en


casquete en el
Bloque de ruptura.

Estos bloques recuperan los contenidos almacenaron bajo el barcode actualmente en el


var2 variable local y partido l a una lista almacenada en el tmpList variable. Despus
del tmpList est cargado con los contenidos almacenaron bajo el barcode que el usuario
busc, necesitas utilizar un ForEach para iterar a travs del tmpList y formato l:

1. Typeblock Un ForEach bloque y chasquear l en bajo el tmpList bloque.

2. Typeblock El tmpList bloque variable global y chasquear l a el en


casquete de lista en el fondo de el ForEach bloque.

WUnRNING Unf ter un f ew ForEach bloqueks, Aplicacin yonvent o s ometimes faqueja to auto-
populate la variable socket en el ForEach bloqueks. To x thi s, use un bloque de nombre
from el Denition drunw er en el Built-En tab. Chasquear el bloque de nombre ent o la
variable socket en el ForEach bloque. You Necesidad to change el t ext nombre en el
bloque de nombre. Nose El n ext sequential nmero var combination (en otro w ords, el
previous ForEach you creunt ed dened el var2, so you tener que use var3 en el bloque
de nombre).

Luego, uso el truco del programador viejo de tomar prestado cdigo de t. T ya puesto junto los
bloques para formatting y outputting el dato de TinyDB , as que por qu complexin l otra vez?
Localizar el btnDisplay.Acontecimiento de clic handler. Encontrar el interior ForEach bloque en
el nested ForEach bloques. Los bloques que formato el TinyDB1 dato es los necesitas copiar. La
manera ms fcil de hacer este es para copiar el entero ForEach bloque y entonces arrastrar fuera de
los bloques contiene. No utiliza el copiado ForEach los asuntos que esto puede causar es irri-
tating y duro a x. En cambio, justo sacar las tripas de el ForEach: todo del formatting bloques
que uso las variables provisionales.

1. Localizar el btnDisplay.Acontecimiento de clic handler.

2. Clic el interior ForEach nested bloque.

3. Uso el Ctrl+C para copiar y Ctrl+V a pasta l.

4. Arrastrar la copia luego a vuestro procBarcodeSearch procedimiento.


36 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 36
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

5. Clic en el bloque superior en el copiado ForEach bloque y arrastrar todos los


bloques de interior y chasquearles a vuestro ForEach bloque en vuestro
procBarcodeSearch (ve Figura 8-9).

6. Puedes eliminar el viejo copiado y unused ForEach bloque.

Ningnw anunciod the barcode that was searched to the formatted resultados from the var2 local variable:

1. En el ltimo tmpVar2 [a] bloque, sacar el separator caracteres ( utilizaste una


serie de equals seales para separar el formatted resultados cundo construiste el
formatting lgica) y ltimo newline carcter y puesto les a un lado.
2. Typeblock El var2 valor bloque variable local y chasquear l a el casquete de
texto abierto en el bloque de texto de la marca.

3. Copia el newline bloque de carcter. Chasquear la copia a el casquete de texto prximo.

4. Resnap En el separator caracteres en el casquete de texto prximo.

5. Chasquear vuestro nal newline carcter a el casquete de texto prximo.

Figura - The
formatting
bloquea tomado
de
btnDisplay.Acon
tecimiento de
clic handler
37 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 37
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N
Ahora que te ha formatted cualesquier partidos de el tmpList, necesitas escribir fuera de el
tmpVar a la variable de resultados. Entonces puedes hacer una decisin aproximadamente si la
bsqueda era exitosa basado en los contenidos de el varSearchResults variable.

1. Typeblock El varSearchResults [a] bloque y chasquear l en bajo el ltimo


tmpVar
formatting Bloque.

2. Typeblock El tmpvar2 valor bloque variable global y chasquear l al.


varSearchResults Bloque.

Finalmente, necesitas probar el varSearchResults para ver si cualquier cosa


emparejado y era writ- diez a la variable. Si no, escribes No Encontrado a los resultados
de bsqueda. Si hay resultados en la variable de resultados de la bsqueda, escribes los
resultados a la etiqueta de exhibicin en VirtualScreen4.

1. Typeblock Un Si bloque y chasquear l en bajo el exterior ForEach bloque


en el
procBarcodeSearch Procedimiento.

2. Typeblock El equals (=) operador de comparacin y chasquear l a el Si bloque.

3. Typeblock El varSearchResults bloque de valor global y chasquear l en el rst


casquete en el operador de comparacin.
4. Typeblock Un bloque de texto y eliminar el texto para un bloque vaco. Chasquea l
a el segundo casquete en el operador de comparacin.
5. Typeblock El varSearchResults [a] bloque y chasquear l a el entonces-
hacer casquete en el Si bloque.

6. Typeblock Un bloque de texto y cambiar el texto a No Found. Chasquear este


bloque de texto a el varSearchResults bloque t justo colocado.

Si el varSearch variable de resultados es vaca, la cuerda de texto No Encontrada est


escrito al vari- capaz. Ahora justo necesitas escribir los contenidos de el
varSearchResults variable a la etiqueta de exhibicin y habilitar el VirtualScreen4:

1. Typeblock El lblSearchResults.Texto [a] bloque y chasquear l en bajo el


Si
Bloque.

2. Typeblock El varSearchResults bloque de valor y chasquear l a el


lbl- SearchResults.Bloque de texto.

3. Typeblock El VirtualScreen3.Visible [a] bloque y chasquear l en bajo el


varSearchResults. Chasquea en un bloque falso.
38 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 38
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

4. Typeblock El VirtualScreen4.Visible [a ] bloque y chasquear l en bajo


previ- ous bloque. Chasquea en un bloque cierto.

Vuestro completado procBarcodeSearch el procedimiento tendra que parecer Figura 8-10.

Figura -
El completado
procBarcode
procedimiento
de Bsqueda

Este procedimiento se apellida por el BarcodeScanner2.AfterScan


Acontecimiento y el btn- SearchBarcode.Acontecimiento de clic.

1. Localizar el BarcodeScanner2.AfterScan Acontecimiento handler.

2. Typeblock El procBarcodeSearch bloque de llamada y chasquear l a el .AfterScan


Acontecimiento handler.

3. Localizar el btnSearchBarcode.Acontecimiento de clic handler.

4. Typeblock El procBarcodeSearch bloque de llamada y chasquear l a el


.Acontecimiento de clic handler.
39 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 39
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

Ningnw the Scan und Search acontecimientos are mangod for the barcode search functionality on el
search pantalla. Ningnw to handle the Search button inclusot for the Name Search text caja, you
complexin out un similar lgica. The name search Inclusot pruebas each barcode in the
varBarcodeList to ve whether the text string entered into the txtNameSearch text box i s tiendad in
TinyDB. Yof el text string is emparej, it cargas und formatos that barcode into the Search resultas
variable.

Primero, sitio el btnSearchName.Acontecimiento de clic y cargar el texto introducido


a la caja de texto a la variable de plazo de la Bsqueda. Entonces colocas el exterior
ForEach bloque que cargas cada barcode en el varBarcodeList:

1. Typeblock El btnSearchName.Acontecimiento de clic handler y colocarlo encima


un trabajo vaco- espacial de el Editor de Bloques.
2. Typeblock El varSearchTerm [a] bloque y chasquear l a el btnSearchName.
Acontecimiento de clic.

3. Typeblock El txtSearchName.Bloque de texto y chasquear l a el


varSearchTerm
Bloque.
4. Typeblock Un ForEach bloque y chasquear l en bajo el txtSearchName.Bloque
de texto.

WUnRNING Make sure que elre es un bloque de nombre en la variable socket en elt op of el
ForEach bloque. Sometimes Aplicacin yonvent o f aqueja to populate lo. Si elre es ningn
bloque de nombre, drag un from el Denition drunw er y chasquear l ent o la variable socket
en el ForEach bloque. ChanGe el bloque de nombre to el n ext sequential var number. En
este c uns e, you would nombre l var4.

5. Typeblock El varBarcodeList bloque de valor y chasquear l a el en


casquete de lista en el fondo de el ForEach bloque.

Tan l anteriormente, este ForEach carga cada cual barcode almacenado en TinyDB a
un tempo- rary lista para evaluacin o formatting:.

1. Typeblock El tmpList [a] bloque y chasquear l a el ForEach bloque.

2. Typeblock Un bloque de ruptura y chasquear l a el tmpList bloque.

3. Typeblock Un TinyDB1.GetValue Y chasquear l a el casquete de texto en


la ruptura
Bloque.

4. Typeblock El var4 bloque de valor (la variable local de el ForEach bloque) y


chasquear l a el .GetValue Bloque.
40 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 40
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

5. Typeblock Un bloque de texto y puesto lo a una coma sola. Chasquea l a el en casquete en el


Bloque de ruptura.

Estos bloquea puestos el tmpList hasta ser queried por un IfElse bloque. The IfElse
Pruebas de bloque si los contenidos de varSearchTerm es en el tmpList. Si no, el
IfElse bloque nada y el ForEach carga el conjunto prximo de datos en el
varBarcodeList:

1. Typeblock Un IfElse bloque y chasquear l en bajo el tmpList bloque.

2. Typeblock Un no bloquear y chasquear l a el bloque de prueba de el IfElse bloque.

3. Typeblock Un Es en Lista? Bloque y chasquear l a el no bloquear.

4. Typeblock El varSearchTerm bloque de valor y chasquear l a el casquete de cosa en el


Es en Lista? Bloque.

5. Typeblock El tmpList bloque de valor global y chasquear l a el casquete de


lista en el Es en Lista? Bloque.

El Es en Lista? El bloque te dejas para comprobar si una cuerda es en un specied


lista. En este caso, ests comprobando el tmpList aquello est creado de el dato
almacenado bajo un barcode etiqueta. Si el plazo de bsqueda no es en la lista, nada est
hecho y el prximo barcode est utilizado como etiqueta a reload el tmpList. Ahora
manejas el segundo caso. Si el plazo de bsqueda es en el tmpList, necesitas a formato
y produccin la lista..

Primero, claro fuera de cualesquier resultados de sobra en el varSearchResults y


colocar un nuevo ForEach
Bloque para manejar el formatting de el dato encontrado de
TinyDB :

1. Typeblock El varSearchResults [a] y chasquear l a el ms-hacer


casquete en el IfElse bloque.
2. Chasquea en un bloque de texto del espacio a el varSearchResults bloque.

3. Typeblock Un nuevo ForEach bloque y chasquear l en prximo en el ms-hacer casquete.

4. Typeblock El tmpList bloque de valor global y chasquear l a el en


casquete de lista en vuestro nuevo ForEach bloque.

Serc ause Aplicacin yonvent o s ometimes forgets, make sure la variable socket es TIP
populated con un bloque de nombre nombr var5.
41 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 41
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N
Utilizas el formatting de el btnDisplay.Clic tan t anteriormente. Recuerda que es ms fcil de
copiar un bloque de contener como el ForEach porque cuando copias y pasta un bloque de contener,
los bloques internos estn copiados tambin. Copiars y pasta el formatting bloques de el interior
ForEach de el btnDisplay.Acontecimiento de clic, y entonces utilizas el formatting bloques
en vuestro btnSearchName.Acontecimiento de clic, por ello ahorro t la tarea tediosa de construir
la misma cosa. T entonces discard el copiado ForEach bloque.

1. Localizar el btnDisplay.Acontecimiento de clic.

2. Clic el interior ForEach bloque en el acontecimiento.

3. Uso el Ctrl+C y Ctrl+ V llaves para copiar y pasta el ForEach y todo su contuvo
bloques. Lo arrastra encima por vuestro btnSearchName acontecimiento.
4. Clic y arrastrar el rst bloque en el copiado ForEach bloques. Todo el sujet los
bloques estn arrastrados. Gota el conectado formatting bloques a el ForEach el
bloque localizado en el entonces-hacer casquete en vuestro IfElse el bloque
localizado en el btnSearchName.Acontecimiento de clic.
5. Eliminar el unused viejo ForEach bloque.

Tendras que aadir cul barcode la bsqueda estuvo encontrada debajo a el formatted
texto. Para hacer este, aadir el var4 variable local de el exterior ForEach bloque a el
ltimo formatting paso. Te Tapn l en correcto por encima de la lnea de separator
caracteres:

1. Localizar el ltimo tmpvar2 bloque en el formatting bloques.

2. Sacar el ltimo newline bloque de carcter de el bloque de texto de la marca y


puesto lo aparte.

3. Sacar el separator carcter text bloque y puesto lo aparte.

4. Typeblock El var4 variable local de el exterior ForEach bloque. Esto contiene el


barcode aquel soli estira el dato de TinyDB .
5. Chasquear el var4 bloque a el bloque de texto abierto en el bloque de texto
de la marca.
6. Seleccionar el newline bloque y crear una copia de l utilizando Ctrl+C y Ctrl+V .

7. Chasquea en un newline carcter bajo el var4 bloque.

8. Chasquea en el separator el bloque de texto del carcter bajo el newline bloque de


carcter.

9. Chasquea en el ltimo newline bloque de carcter.


42 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 42
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N
Finalmente, puesto el varSearchResults contenidos a el formatted texto en
tmpvar2 y entonces mostrar la variable en VirtualScreen4 y hacer la pantalla visible:
43 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 43
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

1. Typeblock El varSearchResults [a] y chasquear l en despus de que el


ltimo formatting bloque (ve Figura 8-11).
2. Typeblock El tmpvar2 valor global bloque y chasquear l a el varSearchResults
Bloque.
3. Typeblock El VirtualScreen3.Visible [a] bloque y chasquear l en bajo el
fuera- lado ForEach bloque. (Ahora tenga que ser el ltimo bloque en el
.Acontecimiento de clic.)

4. Chasquear un bloque falso a el VirtualScreen3 bloque.

5. Typeblock El VirtualScreen4.Visible [a] bloque y chasquear en un bloque cierto.

6. Typeblock El lblSearchResults.Texto [a] bloque y chasquear l en bajo el


VirtualScreen4 bloque.

7. Typeblock El varSearchResults bloque de valor global y chasquear l a el


lbl- SearchResults.Bloque de texto.

Vuestro completado btnSearchName.Acontecimiento de clic handler tendra que


parecer Figura 8-11 y
Figura 8-12.

Figura - El
completado
btnSearchName.
Bloques de
acontecimiento
del clic
(superiores)
44 C H Un P T E R E yo G H T CUnO P
L LP E EC N
T yo
V EO N T
NOUn R
S FS O
yo SRTUn
UnNNDTR: Un 44
O yo R
B Un D C O D E Un N D D Un T Un B Un S E Un
P P L yo C Un T yo O N

Figura -
El completado
btnSearchName.
Bloques de
acontecimiento
del clic
(inferiores)

Desafiante T
Estos fines de proyecto con dos retos. The rst Es para completar la aplicacin que utiliza la
lgica misma exacta (y bloques de cdigo) para manejar el btnSearchLoc
acontecimiento. Has construido la lgica y los bloques para el btnSearchName
acontecimiento. La bsqueda de ubicacin tendra que ser idntica con la excepcin de
utilizar las cajas de texto de la ubicacin y botn de Bsqueda. Prueba construir el
acontecimiento para parecer el btnSearchName acontecimiento.

The second challenge is more diCulto. TSue is unn es un of redundant bacalaoe in ter
aplicacin. Whenever the search routine Productos un resultado, the resulting datuna
necesidads to be formatted para exhibicin. To accomplish Esto, you copied the exact same
bloques to nuncay acontecimiento. Yot would be lejano more ecient to have un procedure
that could handle the text formatting for te. You Podra el n call the procedure whenever you
needed to format unn entry from TinyDB1 und display lo.

Si eres arriba para un reto de bonificacin, uso un procedimiento con bloque


de resultado y pasar el barcode a el procedimiento para formatting y exhibicin..

Das könnte Ihnen auch gefallen