cargar una queue

Consultas, trucos, consejos. Todo sobre Clarion en todas sus versiones
edgar Fernando
Al nivel de RZ
Mensajes: 210
Registrado: Vie Feb 25, 2011 7:16 pm
Contactar:

cargar una queue

Mensaje por edgar Fernando » Vie Ene 20, 2012 9:38 pm

hola amigos

otra consulta

como puedo cargar una queue de 1 al 50

item
1
2
3
4
5
.
.
.
.
50


desde ya gracias


LeoPalomares
Ayudante de Santa
Mensajes: 53
Registrado: Lun Feb 07, 2011 10:50 pm
Contactar:

Re: cargar una queue

Mensaje por LeoPalomares » Sab Ene 21, 2012 7:11 am

LOOP 50 TIMES
MiQueue.Item += 1
ADD(MiQueue)
END
Saludos!!!

Leo Palomares

edgar Fernando
Al nivel de RZ
Mensajes: 210
Registrado: Vie Feb 25, 2011 7:16 pm
Contactar:

Re: cargar una queue

Mensaje por edgar Fernando » Sab Ene 21, 2012 4:17 pm

hola leo

no carga con este codigo

solo carga una sola linea

item
50
##

asi carga

adjunto una imagen de la planilla esta en word,, debe verse asi alli esta cargada nombre de los alumnos asta el item 39
y del item 40 al 50 estan vacia, esa es la forma que debe salir la planilla

en un curso maximo hay 50 alumnos,, puede que aya menos alumnos peo siempre el item debe imprimir asta el nrode orden 50

o sea si hay 45 alumnos imprime los 45 alumnos y esos 5 que falta se tiene que imprimer asta llegar al 50

item alumnos
1
2
.
.
44 juan perez
45 maria sanabria
46
47
48
49
50
en este caso imprime asta el nro de orden 45 y luego debeb imprimer 5 registros varios

creo que me explico bien,,


edgar fernando
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.

HDMadeira
Al nivel de RZ
Mensajes: 306
Registrado: Dom Feb 06, 2011 10:02 pm
Ubicación: Trelew, Chubut, Argentina
Contactar:

Re: cargar una queue

Mensaje por HDMadeira » Dom Ene 22, 2012 2:11 am

Hola Edgar
primero recorres la tabla de alumnos y cargas la queue con alumnos (no se sabe cuantos son pero son menos de 50)

free(queue)
loop .... ! buscar los alumnos condicion de filtro ,etc..
add(queue) ! carga los registros
. !

luego
loop while records(queue)<50
que:campo=''
add(queue)
.

asi la queu siempre tendra 50 registros


saludos

Daniel

edgar Fernando
Al nivel de RZ
Mensajes: 210
Registrado: Vie Feb 25, 2011 7:16 pm
Contactar:

Re: cargar una queue

Mensaje por edgar Fernando » Dom Ene 22, 2012 1:42 pm

hola daniel

no carga


yo le cree una tabla donde puse nro de orde y curso como campo y los genero el nro de orden del 1 al 50 asta alli todo bien
lo relaciono con mi formulario por el campo ord:curso y for:curso

en mi reporte quiero usar las 2 tablas como principal le coloco mi tabla ordencontrol


item alumnos/as sexo
ord:item for:nomape for:sexo

el nro de orden o item me ace como quiero del 1 al 50,, pero en nombre de alumno me repite el primer nombre de alumno me repite 50 veces

alguna sugerecia

edgar fernando

Cristian78
Al nivel de RZ
Mensajes: 108
Registrado: Dom Abr 17, 2011 6:07 pm
Contactar:

Re: cargar una queue

Mensaje por Cristian78 » Dom Ene 22, 2012 6:06 pm

este es un ejemplo de una lista que se carga desde un Browse, vos adaptalo:

FREE (QUE_Alumnos_Del_Curso)

SET(BRW12::VIEW:BROWSE)
LOC:Contador = 0 !****** variable del tipo long
!aqui cargo la QUEUE desde el browse
LOOP
NEXT (BRW12::VIEW:BROWSE)
IF ERRORCODE() THEN BREAK.
Q_Orden_En_Registro = MAT3:IdNumOrdenEnRegistroAsistencia
Q_ApellidoYnombre = Lej:ApellidoYnombre
LOC:Contador += 1 !**** Otra opcion para sumar el contado LOC:Contador = LOC:Contador + 1
ADD(QUE_Alumnos_Del_Curso)

END
!al finalizar evaluamnos el valos del contador
!para asegurarno bien de que solo vamos a cargar 50 lines
If LOC:Contador < 50 then
LOOP I# = LOC:Contador TO 50 BY 1
Q_Orden_En_Registro = Q_Orden_En_Registro + 1
Q_ApellidoYnombre = ''
ADD(QUE_Alumnos_Del_Curso)

END !END LOOP
END !END IF

!PARA QUE NO TE REPITA EL ULTIMO NOMBRE DE LA LISTA EN LOS REGISTROS
!SUBSIGUIENTES LE ASIGNO UN VALOR VACIO AL NOMBRE
!ESO CON CADA CAMPO QUE TENGA

Espeo que te funcione saludos desde SAlta - Argentina

edgar Fernando
Al nivel de RZ
Mensajes: 210
Registrado: Vie Feb 25, 2011 7:16 pm
Contactar:

Re: cargar una queue

Mensaje por edgar Fernando » Dom Ene 22, 2012 6:35 pm

hola amigo

SET(BRW12::VIEW:BROWSE)

yo le puse BRW1 que es el mio

en esta linea da error


edgar fernando

Cristian78
Al nivel de RZ
Mensajes: 108
Registrado: Dom Abr 17, 2011 6:07 pm
Contactar:

Re: cargar una queue

Mensaje por Cristian78 » Dom Ene 22, 2012 6:45 pm

NEXT (BRW12::VIEW:BROWSE)

Cambia tambien esta linea por BRW1

edgar Fernando
Al nivel de RZ
Mensajes: 210
Registrado: Vie Feb 25, 2011 7:16 pm
Contactar:

Re: cargar una queue

Mensaje por edgar Fernando » Dom Ene 22, 2012 7:05 pm

si tb lo cambie pero da error en el primero en el SET

dime la queue debe ser globalo local, este codigo se pone en el reporte o en el browse

HDMadeira
Al nivel de RZ
Mensajes: 306
Registrado: Dom Feb 06, 2011 10:02 pm
Ubicación: Trelew, Chubut, Argentina
Contactar:

Re: cargar una queue

Mensaje por HDMadeira » Dom Ene 22, 2012 10:06 pm

Hola edgar, el codigo que te envie era solo el boceto de lo que podrias usar,
una version un poco mas completa seria...
el siguiente codigo se puede colocar en embebido open window o bien luego de abrir la tabla alumnos
luego de donde dice relate:alumnos.open

free(miqueue) ! miqueue es una queue declarada como local en el procedimiento del reporte, contiene un campo string para el numero de orden
! y otro para el nombre del alumno...
contador=0 !variable local para generar el nro de orden
clear(alu:record)
alu:curso=glob_curso !relacionar el campo global del curso a imprimir con al campo de la tabla de alumnos, para que el SET() y los sucesivos NEXT()
!traigan los registros ordenados por curso
set(alu:indice_por curso,alu:indice_por_curso) ! usar la key de la tabla de alumnos para recorrer la tabla en el orden alfabetico del curso
!
loop while eof(alumnos)=false
next(alumnos)

if alu:curso<>glob_curso then break. ! si el alumno no es del curso deseado, terminar el ciclo de carga
contador=contador+1
miq:orden=contador
miq:nombre=alu:nombre
add(miqueue) ! si el alumno es del curso deseado, contarlo y agregarlo a la queue
. !


loop while records(miqueue)<50
miq:nombre=''
miq:orden=''
add(miqueue)
.

luego, el reporte debe configurarse para que reciba los datos de una queue en vez de usar una tabla,ver adjunto,
la tabla alumnos debe declararse en tables tal como si se tratara de un reporte convencional
en la banda de detalle se debe hacer referencia a los campos de la queue miq:orden y miq:nombre...
el resto es cosmetica..
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 98 invitados