Hola que tal.
Una QUEUE es una estructura en memoría. Puede ser de un campo hasta "n" números de campos, con 1 registro o "n" numero de registros, dependiendo de la manipulacion que hagas de ellos.
Cuando haces un browse, realmente lo que ves en pantalla es una QUEUE, esta declarada de la misma manera que el archivo, Clarion lo que hace es cargar desde el archivo a la QUEUE.
A una QUEUE la puedes manipular:
- Agregndo Registros (Add)
- Modificando datos (Put)
- Eliminando registros (Delete)
- Ordernarla (Sort)
- Obtener un registro determinado (Get)
Entre otras cosas.
Como es una estructura en memoría las QUEUE's trabajan super rápido (obviamebnte esto va de la mano de acuerdo con el procesador que cuentes).
La manera en que declaras un archivo en tu diccionario es similar en cuanto a los campos a como se declara una QUEUE ya dentro de la aplicacion, la diferencia es que al archivo en el DCT le puedes agregar llaves e indices, y a la QUEUE no le puedes agergar ni llaves e indices, pero le puedes poner ordenamiento.
Las QUEUE's las puedes usar para muchas cosas, su uso es muy variable.
Puede ser para procesamiento de datos, para imprimir reportes complejos, para crear listados. etc etc
Un ejemplo algo simple de una QUEUE es el siguiente
QEjemplo QUEUE,PRE()
Campo_Clave Short
Campo_Nombre String(20)
END
Free(QEjemplo) ! Liberar y limpiar QUEUE
QEjemplo.Campo_Clave = 4
QEjemplo.Campo_Nombre = 'Perro'
Add(QEjemplo)
QEjemplo.Campo_Clave = 2
QEjemplo.Campo_Nombre = 'Delfin'
Add(QEjemplo)
Sort(QEjemplo, QEjemplo.Campo_Clave)
Loop ABC# = 1 To Records(QEjemplo)
Get(QEjemplo, ABC#)
Message(QEjemplo.Campo_Clave & '|' & QEjemplo.Campo_Nombre)
End
Sort(QEjemplo, QEjemplo.Campo_Nombre)
Loop ABC# = 1 To Records(QEjemplo)
Get(QEjemplo, ABC#)
Message(QEjemplo.Campo_Clave & '|' & QEjemplo.Campo_Nombre)
End
Espero haber sido de ayuda.
Saludos
P.D. A mi las QUEUE's me facilitan mucho el trabajo y me ahorran mucho tiempo.
Las Adoro