Clarion - QUEUE

 
Vista:

QUEUE

Publicado por ALEJANDRA (1 intervención) el 20/11/2007 17:30:40
Hola, estoy empezando con clarion y necesito una ayuda con las queue. por el foro y la ayuda de clarion hice esto:
En Global.Date agrege una Variable del tipo queue ( MARCA ), a esta le agregué tres variables mas tipo string ( VAR:AA, VAR:BB, VAR:CC ).
en una ventana CON CLARION 6.3 puse un browse y en las propiedades, en el campo from MERCA.
Al lado del browse tres entrys ( A1, A2, A3. Variables string ) junto a un boton y en el accepted del boton escribí este codigo :

VAR:AA = A1
VAR:BB = A2
VAR:CC = A3
ADD(MARCA)
BRW9.RESETSORT(2)

El problema esta en que el browse se llena de muchos registros en ves de uno solo. yo necesitaría que solo se agregué UN registro. NO muchos.
Espero que me puedan ayudar. muchas gracias ! Alejandra.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE: QUEUE

Publicado por EMoreno (269 intervenciones) el 21/11/2007 02:14:58
Que tal.

Si colocastes un Browse te debio de haber pedido un archivo origen y por lo que veo este archivo origen debe de tener 3 registros.

Es mejor colocar un control del tipo LIST y decir que es a partir de la queue marca.

Por otro lado te recomiendo que uses un FREE(<queue>) para liberar la queue al inicio y al final del procedimiento.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: QUEUE

Publicado por ALEJANDRA (8 intervenciones) el 21/11/2007 16:22:04
Gracias por responder FEM, efectivamente es un LIST, es decir, el template te da la opcion de hacer :

* BrowseBox - File-Browsing List Box ----> con el tenes que seleccionar una tabla (TPS) y no una variable

* Relation Tree - Relation Tree Viewing Lis Box ----> No lo uso.

*MultiChildRelationTree -----> No lo uso

*Populate Control Without control template -----> Con el podes seleccionar el origen de dato de una tabla o de una Variable.

SI uso para la queue " Populate Control Without control template " que me genera un browse, en las propiedades del browse en la solapa General, en el campo From borro lo que tiene escrito "List1:Queue" y escribo el nombre de la queue (MARCA).
La estructura de la queue es : (Global)

MARCA (QUEUE)
VAR:AA (String)
VAR:BB (String)
VAR:CC (String)
END
------------------------
Al lado del browse puse tres entrys ( A1, A2, A3. Variables string ) junto a un boton y en el accepted del boton escribí este codigo :

VAR:AA = A1
VAR:BB = A2
VAR:CC = A3
ADD(MARCA)
ThisWindow.Reset(True)

y NO Hace nada, es decir, no se llena el browse !

y si uso :
FREE(MARCA)
VAR:AA = A1
VAR:BB = A2
VAR:CC = A3
ADD(MARCA)
ThisWindow.Reset(True)
FREE (MARCA)
Me tira error al compilar.
¿Cuando decis "FREE(<queue>) para liberar la queue al inicio y al final del procedimiento" te referis en el openWindow y CloseWindow del procedimiento?

muchas gracias ! Alejandra.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: QUEUE

Publicado por EMoreno (269 intervenciones) el 21/11/2007 18:59:50
Si asi es me refiero a que libere de memoria la QUEUE.

en el OpenWindow y en el Close Window pueden estar.
Que error te manda el compilador ?

Yo veo el codigo que esta bien

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: QUEUE

Publicado por Isai (64 intervenciones) el 22/11/2007 00:46:03
Prueba colocando
display() en lugar de reiniciar la pantalla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: QUEUE

Publicado por Alejandra (1 intervención) el 23/11/2007 03:44:05
Gracias ! con la ayuda de ustedes lo pude hacer funcionar el alta (ADD).
ahora necesito hacer un abm...

Segun la ayuda de clarion para encontrar un registro seria :

QUE:Nombre= 'Pedro'
GET(QUEUE,QUE:Nombre)
IF ~ERRORCODE()
message ('se encontro')
END

Lo que necesito saber es como hacer para que se posicione sobre el registro encontrado ? se que con un browse con una key seria algo asi:

TAB:NOMBRE = 'Pedro'
GET(TABLA, KEY)
BRW1.ResetFromBuffer()
SELECT(?BROWSE:1)
pero con una queue no lo se como se hace.
... otra cosa, la ayuda habla sobre un "POINTER" ¿ que es eso un campo ?
Gracias nuevamente son de muchisima ayuda !

Alejandra.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: QUEUE

Publicado por EMoreno (269 intervenciones) el 23/11/2007 16:00:58
Que tal.
Cre que son varios puntos, vamos a ir uno por uno

Segun la ayuda de clarion para encontrar un registro seria :
===============================================
Tienesd que tener un ordenamiento para la QUEUE.

Esto se logra con un sort
o cuando agregues un registro en la queue con add, decir que campo son los de ordenamientos.

con eso funcionaria a la perfeccion el GET.

Si no lo tienes ordenado entonces tendrias que hacer un ciclo para barrer la QUEUE e ir haciendo comparaciones linea por linea.

Lo que necesito saber es como hacer para que se posicione sobre el registro encontrado
======================================================================
Para que se posicione sobre un registro encontrado lo puedes hacer con
Select( <nombrecontrol>, <Posicion> )

otra cosa, la ayuda habla sobre un "POINTER"
====================================
Pointer es un apuntador a un registro. Puede ser a una queue o a una tabla. En una queue no lo he usado pero en tablas si y me ha servidor cuando acceso a un registro y luego necesito moverme de ese registro y regresar a el posteriormente. Para regresar a el lo he hecho con la ayuda de Pointer.

Bueno mas o menos ya conteste las preguntas. Espero haberte ayudado un poco.
Si necesitas mas me lo dices.

Saludos y que estes bien
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: QUEUE

Publicado por ALEJANDRA (1 intervención) el 27/11/2007 00:14:21
Gracias, voy a ponerlo en practica... sos muy amable. hasta pronto !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar