FoxPro/Visual FoxPro - Ordenar registros en tabla

 
Vista:
sin imagen de perfil

Ordenar registros en tabla

Publicado por Juan Carlos (6 intervenciones) el 30/08/2017 06:41:46
Hola a todos los foreros, necesito ordenar los registros de la tabla LIS_ADE.DBF en forma ascendente y permanente en la tabla, manteniendo la estructura de la tabla, version (DBF), Quiero la tabla en forma ascendente.
Sin-Ordenar
Sin-Ordenar-1
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Ordenar registros en tabla

Publicado por Fidel José (643 intervenciones) el 30/08/2017 14:13:46
Y en función de qué campos quieres ordenar la tabla?
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
sin imagen de perfil

Ordenar registros en tabla

Publicado por Campos a ordenar (6 intervenciones) el 30/08/2017 14:59:20
En función de Num_pag y Num_ite (Las dos primeras columnas) tengo mas tablas para ordenar pero solo necesito saber como se hace una y después lo haré el resto. Deseo saber también que versión es el DBF de la tabla
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Ordenar registros en tabla

Publicado por Fidel José (643 intervenciones) el 30/08/2017 15:59:44
La instrucción de índice sería

USE LIS_ADE IN O EXCLUSIVE
SELECT LIS_ADE
INDEX on STR(num_pag,6,0)+STR(num_ite,2,0) TAG iPagIte
USE

* El nombre de la Tag ponlo a tu gusto (hasta 10 caracteres)

<NOTA>
A la hora de crear índices, debes tener en cuenta lo siguiente:
1) No generes índices para ordenar la presentación del archivo
2) Los índices que te servirán para búsqueda por SQL-SELECT son los de un solo campo sin utilizar funciones.
3) Para la presentación de información utiliza un cursor y ordenas el cursor según el criterio de presentación.
Por ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
USE LIS_ADE IN O EXCLUSIVE
SELECT LIS_ADE
INDEX ON NUM_PAG TAG IPAG
INDEX ON NUM_ITE TAG IITE
INDEX ON NUM_ELE TAG IELE
INDEX ON APE_MAT TAG IAPEMAT
INDEX ON APE_MAT TAG IAPEPAT
USE
 
USE LIS_ADE IN 0 SHARED
SELECT * FROM LIS_ADE WHERE NUM_PAG BETWEEN 800 AND 899 INTO CURSOR CURLISADE READWRITE
SELECT CURLISADE
INDEX on STR(num_pag,6,0)+STR(num_ite,2,0) TAG iPagIte
SELECT CURLISADE
GO TOP
BROWSE
</NOTA>

En cuanto a la versión del archivo dbf, no la pude determinar. Te adjunto una versión convertida a Visual Fox 9. Fijate si te sirve y cambiale el nombre.

Esta es la descripción del archivo generado.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<proc name="get_table_info">
	<table name="C:\THEODORE\TEMP\lis_ade9.dbf">
		<filetype>Tabla de Visual Fox Pro</filetype>
		<size>1975869</size>
		<header_records>14965</header_records>
		<header_size>488</header_size>
		<record_size>132</record_size>
		<cdx_memo>0-Ninguna</cdx_memo>
		<calculate_records>14965</calculate_records>
		<fields_count>6</fields_count>
		<database>Free_Table</database>
		<field_list>
			<field name="NUM_PAG"><type>N</type><lenght>6</lenght><decim>0</decim></field>
			<field name="NUM_ITE"><type>N</type><lenght>2</lenght><decim>0</decim></field>
			<field name="NUM_ELE"><type>C</type><lenght>8</lenght><decim>0</decim></field>
			<field name="APE_PAT"><type>C</type><lenght>40</lenght><decim>0</decim></field>
			<field name="APE_MAT"><type>C</type><lenght>40</lenght><decim>0</decim></field>
			<field name="NOM_ADE"><type>C</type><lenght>35</lenght><decim>0</decim></field>
		</field_list>
	</table>
</proc>
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
sin imagen de perfil

Ordenar registros en tabla

Publicado por Juan Carlos (6 intervenciones) el 30/08/2017 17:38:42
Estimado, no se que es lo que estoy haciendo mal pero no me sale. Sigue igual la data
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
Imágen de perfil de Eduardo
Val: 114
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Ordenar registros en tabla

Publicado por Eduardo (116 intervenciones) el 01/09/2017 00:11:02
Después del indizado tal y como se lo indica el colega:

USE LIS_ADE IN O EXCLUSIVE
SELECT LIS_ADE
INDEX on STR(num_pag,6,0)+STR(num_ite,2,0) TAG iPagIte

Para poder ver la tabla ordenada, debe incluir el comando:

SELECT Lis_Ade
SET ORDER TO TAG iPagelte
BROWSE

Los índices deben ser permantentes, para reutilizarlos según sea necesario y no para crear consultas. Si usted quiere ordenar información para una consulta específica, hágalo con los comandos para Sql o bien, traslada registros a un cursor o tabla temporal y, una vez ahí, le hace los ordenamientos que quiera.

Saludos

Eduardo
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
sin imagen de perfil
Val: 309
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Ordenar registros en tabla

Publicado por SANTIAGO JUAN (507 intervenciones) el 30/08/2017 18:49:48
Mas simple:

USE LIS_ADE
INDEX on STR(num_pag,6,0)+STR(num_ite,2,0) To juan
browse
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

Crear tabla a partir de consulta

Publicado por juan carlos (6 intervenciones) el 31/08/2017 01:45:43
Deseo crear una tabla a partir de la consulta realizar con el asistente de vfp6.0 (query) a la tabla LIS_ADE.DBF
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
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Crear tabla a partir de consulta

Publicado por Leonardo Daniel A. (462 intervenciones) el 31/08/2017 07:23:06
select * from tu_tabla into dbf tuDBFNuevo
y puedes agregar un order by, group by etc.


buscale en la ayuda..... o en internet
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