Indices decendentes

Post Reply
servicomver
Posts: 159
Joined: Fri Nov 18, 2005 7:34 pm

Indices decendentes

Post by servicomver »

Hola:
Estoy trbajando paralelamente con un sistema llamado ASPEL SAE v3.0 el cual usamos con base de datos dbf e indices mdx, el caso es que no he encontrado la forma de grabar datos y q estos se reflejen en el indice. los archivos son MINV01.DBF y los MINV01.MDX he notado que el archivo indexado esta en forma descendente abro MINV01 y se ve asi:
REGISTRO...CLV_ART....... TIPO_MOV.......CANT......DB8EXIST
1..................0001...................1................10............10
2..................0001...................53................1..............9
3..................0001...................53................2..............7

consulto con el programa mencionado arriba y se ve asi:
REGISTRO...CLV_ART....... TIPO_MOV.......CANT......DB8EXIST
3..................0001...................53................2..............7
2..................0001...................53................1..............9
1..................0001...................1.................10.............10

Supongo que el indice esta Descendente pero no se como hacerlo
o no se como activar o abrir la base de datos para que lo muestre de esa forma intente con el comando:
SET DESCENDING ON, pero al compilar marca error
alguien tiene alguna idea ???, por cierto solo tiene un indice

GRACIAS por todo
saludos
Veracruz, Ver. Mexico
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

No creo que sea complicado, esto me fucniona a mi:

INDEX ON condicion .... DESCENDING

y listo
Saludos
R.F.
servicomver
Posts: 159
Joined: Fri Nov 18, 2005 7:34 pm

Post by servicomver »

Rene
Gracias por tu ayuda, yalo intente pero me sale un error al momento de ejecutar la orden
es error en TAG
User avatar
lubin
Posts: 404
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Re: Indices decendentes

Post by lubin »

Holas
por casualidad has intentado con la funcion Descend(xValor)

Por ejemplo :

INDEX ON CLV_ART + DESCEND(TIP_MOV +STR(DBBEXIST,5,0) ) TO ......


quedaria ordenado por Clave, asscedentemente pero dentro de cada clave, descendentemente por tipo de movimiento y DBBexit...

no necesita usar SET DESCENDING..
Suerte

Lubin

servicomver wrote:Hola:
Estoy trbajando paralelamente con un sistema llamado ASPEL SAE v3.0 el cual usamos con base de datos dbf e indices mdx, el caso es que no he encontrado la forma de grabar datos y q estos se reflejen en el indice. los archivos son MINV01.DBF y los MINV01.MDX he notado que el archivo indexado esta en forma descendente abro MINV01 y se ve asi:
REGISTRO...CLV_ART....... TIPO_MOV.......CANT......DB8EXIST
1..................0001...................1................10............10
2..................0001...................53................1..............9
3..................0001...................53................2..............7

consulto con el programa mencionado arriba y se ve asi:
REGISTRO...CLV_ART....... TIPO_MOV.......CANT......DB8EXIST
3..................0001...................53................2..............7
2..................0001...................53................1..............9
1..................0001...................1.................10.............10

Supongo que el indice esta Descendente pero no se como hacerlo
o no se como activar o abrir la base de datos para que lo muestre de esa forma intente con el comando:
SET DESCENDING ON, pero al compilar marca error
alguien tiene alguna idea ???, por cierto solo tiene un indice

GRACIAS por todo
saludos
Veracruz, Ver. Mexico
servicomver
Posts: 159
Joined: Fri Nov 18, 2005 7:34 pm

Post by servicomver »

Hola:
Sigo sin resolver mi problemas, tal vez no me explique bien, no necesito generar los indices descendentes, los necesito abrir
ya que estos los crea un sistema llamado ASPEL SAE, al inicio uso esto:
(los archivos q tiene son: MINV01.DBF y MINV01.MDX)

CLEAR SCREEN
REQUEST DBFMDX
RDDSETDEFAULT( "DBFMDX" )
SET DATE BRITISH
SET CENTURY ON
SET EPOCH TO 1956

USE MINV01
SET ORDER TO 2
APPEND BLANK
FIELD->NUM_REG:=16
FIELD->CLV_ART:="0001"
FIELD->TIPO_MOV:=51
FIELD->FECHA_DOCU:=DATE()
FIELD->REFER:="84"
FIELD->CLAVE_CLPV:="MOSTR"
FIELD->VEND:=""
FIELD->CANT:=3
FIELD->CANT_COST:=0
FIELD->PRECIO:=1
FIELD->COSTO:=1
FIELD->ALMACEN:=1
FIELD->AFEC_COI:=""
FIELD->OBS_MINV:=0
FIELD->REG_SERIE:=0
FIELD->UNI_VENTA:="pz"
FIELD->U4SEC:=0
FIELD->DB8EXIST:=1
FIELD->TIPO_PROD:="I"
FIELD->FACTOR_CON:=1
FIELD->FECHAELAB:= DATE()
FIELD->USUARIO:=0
FIELD->M_FLETE:=0

* al poner set order to 2, si despues de grabar el registro lo listo efectivamente lo ordena bien, pero al consultarlo con el programa ya elaborado (Aspel), repite muchas veces el ultimo registro, no se q estoy haciendo mal, pero si regenero indices desde ese mismo programa el problema se soluciona, solo q yo necesito grabar y q se afecten correctamente los indices, vi que la estructura del indice es:
CLV_ART + STR(ALMACEN) + STR(NUM_REG) + STR(TIPO_MOV)

Y ademas como les comentaba antes no encuentro la forma de donde lo ordena descendentemente, espero haberme explicado bien o no se si sea necesario pasarles los archivos,

Como puedo hacer para que al grabar en la base de datos MINV01.DBF se afecten todos los Indices contenidos en MINV01.MDX ????

saludos
veracruz, ver. mexico
Miguel Rivera
Posts: 117
Joined: Sun Oct 01, 2006 11:39 pm

Post by Miguel Rivera »

Amigo:

Viendo tu problema, me gustaria acotar algo, podrias probar declarando el archivo indice, no se enque esta desarrollado el programa que arriba declaras el que genera y actualiza la base y sus indices.

USE MINV01
Set Inde to MINVO1 && Prueba esto
SET ORDER TO 2

Segun lo que veo en tu programa, solo prodias probar esto y me cuentas.

Ojala de pueda servir.

servicomver wrote:Hola:
Sigo sin resolver mi problemas, tal vez no me explique bien, no necesito generar los indices descendentes, los necesito abrir
ya que estos los crea un sistema llamado ASPEL SAE, al inicio uso esto:
(los archivos q tiene son: MINV01.DBF y MINV01.MDX)

CLEAR SCREEN
REQUEST DBFMDX
RDDSETDEFAULT( "DBFMDX" )
SET DATE BRITISH
SET CENTURY ON
SET EPOCH TO 1956

USE MINV01
SET ORDER TO 2
APPEND BLANK
FIELD->NUM_REG:=16
FIELD->CLV_ART:="0001"
FIELD->TIPO_MOV:=51
FIELD->FECHA_DOCU:=DATE()
FIELD->REFER:="84"
FIELD->CLAVE_CLPV:="MOSTR"
FIELD->VEND:=""
FIELD->CANT:=3
FIELD->CANT_COST:=0
FIELD->PRECIO:=1
FIELD->COSTO:=1
FIELD->ALMACEN:=1
FIELD->AFEC_COI:=""
FIELD->OBS_MINV:=0
FIELD->REG_SERIE:=0
FIELD->UNI_VENTA:="pz"
FIELD->U4SEC:=0
FIELD->DB8EXIST:=1
FIELD->TIPO_PROD:="I"
FIELD->FACTOR_CON:=1
FIELD->FECHAELAB:= DATE()
FIELD->USUARIO:=0
FIELD->M_FLETE:=0

* al poner set order to 2, si despues de grabar el registro lo listo efectivamente lo ordena bien, pero al consultarlo con el programa ya elaborado (Aspel), repite muchas veces el ultimo registro, no se q estoy haciendo mal, pero si regenero indices desde ese mismo programa el problema se soluciona, solo q yo necesito grabar y q se afecten correctamente los indices, vi que la estructura del indice es:
CLV_ART + STR(ALMACEN) + STR(NUM_REG) + STR(TIPO_MOV)

Y ademas como les comentaba antes no encuentro la forma de donde lo ordena descendentemente, espero haberme explicado bien o no se si sea necesario pasarles los archivos,

Como puedo hacer para que al grabar en la base de datos MINV01.DBF se afecten todos los Indices contenidos en MINV01.MDX ????

saludos
veracruz, ver. mexico
Post Reply