Beruflich Dokumente
Kultur Dokumente
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
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.
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.
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 .
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
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:
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:
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:
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:
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:
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 :
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:
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.
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:
Figura -
El Ayudante de
Coleccin
completado
1.0 interfaz de
usuario
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:.
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:
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.
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.
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.
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..
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
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.
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
Nombre de Ubicacin:
\n
\n
================= (separator Caracteres entre entradas)
\n
Primero, crear todas las variables provisionales y la lista provisional que te utilizar a
travs del.
btnDisplay.Acontecimiento
de clic handler:
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.
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:
Luego, el inicio que construye la lgica para el ForEach los bloques mostrados en Figura 8-5.
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:
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
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:
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
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.
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.
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.
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
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:
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.
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:
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.
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
3. Pone la propiedad de Pista para txtSearchName para Introducir Nombre para Buscar.
Sitio todo de los componentes de interfaz del usuario para buscar TinyDB dato
por ubicacin:
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.
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.
1. Arrastra y caer
una etiqueta a el VirtualScreen4. Lo rebautiza
lblSearchResults- Banner.
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
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
Primero, dene las variables sers utilizar en el procedimiento. Necesitas una variable
para el plazo de bsqueda y otro para los resultados de bsqueda:
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..
Ahora colocas el nested ForEach e IfElse bloques para comprobar todo el barcodes en el
var- BarcodeList:
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.
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.
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.
Ningnw anunciod the barcode that was searched to the formatted resultados from the var2 local variable:
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.
Figura -
El completado
procBarcode
procedimiento
de Bsqueda
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.
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.
Tan l anteriormente, este ForEach carga cada cual barcode almacenado en TinyDB a
un tempo- rary lista para evaluacin o formatting:.
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:
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.
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:
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.