Hola ante todo gracias por responder muchas gracias.
1. En cuanto a la primera pregunta deseo que los resultados sean aleatorios que no tengan ningún orden que sea dispersados, pero que tenga un contador o numero de orden (del orden aleatorio que se ha realizado) este es mi código a mostrar:
IF thisform.optiongroup2.Value = 1
IF LEN(ALLTRIM(thisform.text1.Value))=5
tor = ALLTRIM(thisform.text1.Value)
DO CASE
CASE thisform.optiongroup1.Value = 1
SELECT * FROM torneos WHERE id_torneo = tor INTO CURSOR torneo
SELECT a.id_torneo, a.nombre, a.fech_fin, a.fech_ini,;
b.gallo_a, buscarcaract(b.gallo_a) name_car, buscarGallo(b.gallo_a) name_a, buscarGalponA(b.gallo_a) name_x, b.galpon_a,;
b.gallo_b, buscarcaract(b.gallo_b) name_ca, buscarGallo(b.gallo_b) name_b, buscarGalponA(b.gallo_b) name_y, b.galpon_b,;
b.ganador,buscarGallo(b.ganador) name_g, b.estado,;
pesito(b.gallo_a) pesitoA, pesito(b.gallo_b) pesitoB;
FROM torneo a, partidas b;
WHERE a.id_torneo = b.id_torneo;
INTO CURSOR REPORTE_PARTIDAS
REPORT FORM rpt_partidas preview
OTHERWISE
ENDCASE
ELSE
MESSAGEBOX('Numero de Torneo Incorrecto')
ENDIF
ELSE
SELECT a.id_torneo, a.nombre, a.fech_fin, a.fech_ini,;
b.peso_a, b.peso_b,b.gallo_a, buscarcaract(b.gallo_a) name_car, buscarGallo(b.gallo_a) name_a, b.galpon_a,;
b.gallo_b, buscarcaract(b.gallo_b) name_ca,buscarGallo(b.gallo_b) name_b, buscarGalponA(b.gallo_a) name_x, b.galpon_b,;
b.ganador, buscarGallo(b.ganador) name_g, buscarGalponA(b.gallo_b) name_y, b.estado,;
pesito(b.gallo_a) pesitoA, pesito(b.gallo_b) pesitoB;
FROM torneos a, partidas b;
WHERE a.id_torneo = b.id_torneo;
INTO CURSOR REPORTE_PARTIDAS
REPORT FORM rpt_partidas preview
ENDIF
Las funciones son estas:
FUNCTION buscarGallo(por)
SELECT * FROM gallos a1 WHERE a1.id_gallo=por INTO CURSOR gal
a = gal.nombre
RETURN a
ENDFUNC
******
FUNCTION buscarcaract(d)
SELECT * FROM gallos a2 WHERE a2.id_gallo=d INTO CURSOR car
c = car.característica
RETURN c
ENDFUNC
*****
********
FUNCTION pesito(n)
SELECT * FROM gallos a9 WHERE a9.id_gallo=n INTO CURSOR jum
n = jum.pesito
RETURN n
ENDFUNC
*******
*****
FUNCTION buscarGalponA(y)
SELECT a1.nombre, a2.id_gallo, a1.representa FROM galpón a1, gallos a2 WHERE a2.id_galpon = a1.id_galpon INTO CURSOR galp
SELECT * FROM GALP WHERE ID_GALLO = Y INTO CURSOR GALP1
b = GALP1.nombre
RETURN b
ENDFUNC
FUNCTION buscarGalpon(y)
SELECT a1.nombre, a2.id_gallo, a1.representa FROM galpón a1, gallos a2 WHERE a2.id_galpon = a1.id_galpon INTO CURSOR galp
SELECT * FROM GALP WHERE ID_GALLO = Y INTO CURSOR GALP1
b = GALP1.representa
RETURN b
ENDFUNC
FUNCTION Galpón(y)
SELECT representa FROM galpón WHERE id_galpon = Y INTO CURSOR GALP1
b = GALP1.representa
RETURN b
ENDFUNC
FUNCTION buscarTorneoA(y)
SELECT * FROM torneos a1 WHERE a1.id_torneo=y AND a1.estado = .t. INTO CURSOR galpa
c = galpa.nombre
RETURN c
ENDFUNC
FUNCTION buscarTorneoB(y)
SELECT * FROM torneos a1 WHERE a1.id_torneo=y AND a1.estado = .t. INTO CURSOR galpa
d = galpa.nombre
RETURN d
ENDFUNC
FUNCTION buscarTorneoC(y)
SELECT * FROM torneos a1 WHERE a1.id_torneo=y AND a1.estado = .t. INTO CURSOR galpa
d = galpa.categoría
RETURN d
ENDFUNC
FUNCTION ganador(POR)
**
SELECT COUNT(ID_TORNEO) CANTIDAD ;
FROM PARTIDAS;
WHERE ID_TORNEO = POR ;
AND ALLTRIM(ESTADO) = 'PENDIENTE';
INTO CURSOR GANADORES
**
SELECT GANADORES
**
IF GANADORES.CANTIDAD > 0
*SELECT COUNT(GANADOR) GANA, GANADOR FROM PARTIDAS GROUP BY GANADOR ORDER BY GANA INTO CURSOR GA
ELSE
RETURN 'VACIO'
ENDIF
**
ENDFUNC
FUNCTION porPelear(x)
SELECT count(gallo_a) cantidad FROM partidas WHERE id_torneo = x AND ALLTRIM(ganador) = '' INTO CURSOR peleadas
RETURN peleadas.cantidad
ENDFUNC
FUNCTION peleadas(x)
SELECT count(gallo_a) cantidad FROM partidas WHERE id_torneo = x and LEN(ALLTRIM(ganador)) > 0 INTO CURSOR peleadas
RETURN peleadas.cantidad
ENDFUNC
FUNCTION peleas(x)
SELECT count(gallo_a) cantidad FROM partidas WHERE id_torneo = x INTO CURSOR peleadas
RETURN peleadas.cantidad
ENDFUNC
FUNCTION Sobrantes(x)
SELECT count(id_torneo) cantidad FROM partidas WHERE id_torneo = x INTO CURSOR canttorneo
SELECT canttorneo
IF canttorneo.cantidad > 1 THEN
SELECT cruce_varios
DELETE FROM cruce_varios
SELECT gallo_a id_gallo FROM partidas WHERE id_torneo = x INTO ARRAY galloa
SELECT cruce_varios
APPEND FROM ARRAY galloa
**
SELECT gallo_b id_gallo FROM partidas WHERE id_torneo = x INTO ARRAY gallob
SELECT cruce_varios
APPEND FROM ARRAY gallob
**
SELECT competidores.id_gallo FROM competidores;
LEFT OUTER JOIN cruce_varios ON cruce_varios.id_gallo = competidores.id_gallo;
WHERE cruce_varios.id_gallo IS NULL;
INTO CURSOR sobrantes
SELECT sobrantes
**
SELECT b.*, c.* FROM sobrantes a, gallos b, galpón c;
WHERE a.id_gallo = b.id_gallo AND b.id_galpon = c.id_galpon AND b.torneo = x;
INTO CURSOR sobrantes2
SELECT sobrantes2
ELSE
MESSAGEBOX('No hay Partidas Cotejadas',0+64,'COTEJO')
ENDIF
ENDFUNC
Todo este proceso me funciona correctamente, reitero lo que requiero:
que en el reporte deseo que no tenga ningún orden que la posición de cada registro sea aleatoria, que el registro 1 de mi tabla pase a ser el 50 o 30 el 2 que sea el 100 y así sucesivamente, pero que exista un numero de orden, osea desordenar los registros y que ese desorden tenga numeración.
2. la pregunta 2 ya lo resolví, muchas gracias igual.
3. la pregunta tres es para borrar todo lo que haga en la pregunta 1 la tabla se llama partidas, y para llegar a partidas uso otras tres tablas mas que son; partidas, partidas2, amarres; y una que no esta dentro del proyecto se encuentra en la carpeta del proyecto pero no dentro de el y también se llama partidas2, quiero crear el modulo de mantenimiento en la cual me borre, esas tablas.
Espero me entiendas, muchas gracias.