In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

A

Foro de Xailer profesional en español
Responder
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

A

Mensaje por Xevi »

Con CDX...
(cAlias)->( OrdListClear() )
(cAlias)->( OrdListAdd( cFitxer ) )
(cAlias)->( OrdSetFocus( "REFERENCIA" ) )
Esto funciona correctamente, ahora bien con NTX???
¿Como puedo añadir un índice a la área abierta???
USE MiDBF
SET INDEX TO (cIndex1), (cIndex2), (cIndex3), (cIndex4)
....
en un momento determinato de la aplicación...
index on Field->MATRICULA to (cIndex5)
....
Creía que me bastaría con
(cAlias)->( OrdListAdd( cIndex5 ) )
pero por lo visto OrdListAdd no acepta NTX
¿Cómo añado este nuevo índice a la área activa, sin tener que cerrarla???
Gracias
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

A

Mensaje por jfgimenez »

Xevi,
> Con CDX...
> (cAlias)->( OrdListClear() )
> (cAlias)->( OrdListAdd( cFitxer ) )
> (cAlias)->( OrdSetFocus( "REFERENCIA" ) )
>
> Esto funciona correctamente, ahora bien con NTX???
> ¿Como puedo añadir un índice a la área abierta???
>
> USE MiDBF
> SET INDEX TO (cIndex1), (cIndex2), (cIndex3), (cIndex4)
> ...
> en un momento determinato de la aplicación...
> index on Field->MATRICULA to (cIndex5)
> ...
>
> Creía que me bastaría con
> (cAlias)->( OrdListAdd( cIndex5 ) )
> pero por lo visto OrdListAdd no acepta NTX
>
>
> ¿Cómo añado este nuevo índice a la área activa, sin tener que cerrarla???
Nunca lo he probado, pero supongo que funcionará:
SET INDEX TO (otro_indice) ADDITIVE
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

A

Mensaje por Xevi »

Jose,
Pues parece ser que no...
MSGINFO( OrdSetFocus()) //Indice1
DbSetOrder(2)
MSGINFO( OrdSetFocus()) //Indice2
DbSetOrder(3)
MSGINFO( OrdSetFocus()) //Indice3
DbSetOrder(4)
MSGINFO( OrdSetFocus()) //Indice4
cIndexTemp := "IndiceNuevo.Ntx"
index on Field->MATRICULA to (cIndexTemp)
SET INDEX TO (cIndexTemp) ADDITIVE
MSGINFO( OrdSetFocus()) //IndiceNuevo
DbSetOrder(2)
MSGINFO( OrdSetFocus()) //En Blanco
DbSetOrder(3)
MSGINFO( OrdSetFocus()) //En Blanco
DbSetOrder(4)
MSGINFO( OrdSetFocus()) //En Blanco
DbSetOrder(5)
MSGINFO( OrdSetFocus()) //En Blanco
¿Alguna sugerencia más???
Gracias.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:4444ca06$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> Con CDX...
>> (cAlias)->( OrdListClear() )
>> (cAlias)->( OrdListAdd( cFitxer ) )
>> (cAlias)->( OrdSetFocus( "REFERENCIA" ) )
>>
>> Esto funciona correctamente, ahora bien con NTX???
>> ¿Como puedo añadir un índice a la área abierta???
>>
>> USE MiDBF
>> SET INDEX TO (cIndex1), (cIndex2), (cIndex3), (cIndex4)
>> ...
>> en un momento determinato de la aplicación...
>> index on Field->MATRICULA to (cIndex5)
>> ...
>>
>> Creía que me bastaría con
>> (cAlias)->( OrdListAdd( cIndex5 ) )
>> pero por lo visto OrdListAdd no acepta NTX
>>
>>
>> ¿Cómo añado este nuevo índice a la área activa, sin tener que cerrarla???
>
> Nunca lo he probado, pero supongo que funcionará:
>
> SET INDEX TO (otro_indice) ADDITIVE
>
> --
> Un saludo,
>
> José F. Giménez
>
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

A

Mensaje por Xevi »

¿No se tratará de un Bug de xHarbour???
pues lo que debería de funcionar es OrdListAdd...
SET INDEX TO (cIndexTemp) ADDITIVE
Este es el código genera al compilar /p...
if !.T. ; ordListClear() ; end ; ordListAdd((cIndexTemp) )
A mi entender, creo que las funciones OrdListClear() y OrdListAdd() deberían
de funcionar igual para NTX y/o CDX
Un Saludo,
Xevi.
"Xevi" <xevi@garatgeautopista.com> escribió en el mensaje
news:4444eaaf$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Jose,
>
> Pues parece ser que no...
>
> MSGINFO( OrdSetFocus()) //Indice1
> DbSetOrder(2)
> MSGINFO( OrdSetFocus()) //Indice2
> DbSetOrder(3)
> MSGINFO( OrdSetFocus()) //Indice3
> DbSetOrder(4)
> MSGINFO( OrdSetFocus()) //Indice4
> cIndexTemp := "IndiceNuevo.Ntx"
> index on Field->MATRICULA to (cIndexTemp)
> SET INDEX TO (cIndexTemp) ADDITIVE
> MSGINFO( OrdSetFocus()) //IndiceNuevo
> DbSetOrder(2)
> MSGINFO( OrdSetFocus()) //En Blanco
> DbSetOrder(3)
> MSGINFO( OrdSetFocus()) //En Blanco
> DbSetOrder(4)
> MSGINFO( OrdSetFocus()) //En Blanco
> DbSetOrder(5)
> MSGINFO( OrdSetFocus()) //En Blanco
>
> ¿Alguna sugerencia más???
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
> news:4444ca06$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>>> Con CDX...
>>> (cAlias)->( OrdListClear() )
>>> (cAlias)->( OrdListAdd( cFitxer ) )
>>> (cAlias)->( OrdSetFocus( "REFERENCIA" ) )
>>>
>>> Esto funciona correctamente, ahora bien con NTX???
>>> ¿Como puedo añadir un índice a la área abierta???
>>>
>>> USE MiDBF
>>> SET INDEX TO (cIndex1), (cIndex2), (cIndex3), (cIndex4)
>>> ...
>>> en un momento determinato de la aplicación...
>>> index on Field->MATRICULA to (cIndex5)
>>> ...
>>>
>>> Creía que me bastaría con
>>> (cAlias)->( OrdListAdd( cIndex5 ) )
>>> pero por lo visto OrdListAdd no acepta NTX
>>>
>>>
>>> ¿Cómo añado este nuevo índice a la área activa, sin tener que
>>> cerrarla???
>>
>> Nunca lo he probado, pero supongo que funcionará:
>>
>> SET INDEX TO (otro_indice) ADDITIVE
>>
>> --
>> Un saludo,
>>
>> José F. Giménez
>>
>
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

A

Mensaje por jfgimenez »

Xevi,
> ¿No se tratará de un Bug de xHarbour???
Puede ser.
> pues lo que debería de funcionar es OrdListAdd...
>
> SET INDEX TO (cIndexTemp) ADDITIVE
> Este es el código genera al compilar /p...
> if !.T. ; ordListClear() ; end ; ordListAdd((cIndexTemp) )
>
> A mi entender, creo que las funciones OrdListClear() y OrdListAdd()
> deberían de funcionar igual para NTX y/o CDX
Acabo de revisar la documentación de Clipper sobre esta función y no
encuentro que mencione ninguna limitación en los NTX. Es posible que sea un
bug de xHarbour. Por favor, comentalo en el foro de xHarbour, aunque pongas
el mensaje en castellano.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

A

Mensaje por Xevi »

Jose,
De momento lo he apañado creando un DataSet y añadiendo los índices con
AddTag()
Y funciona perfectamente, por lo que sería bueno saber ¿como teneis
construido este evento de la Clase para antes de hechar la culpa al
compilador, saber seguro que se trata de un Bug.
De todas formas lo posteo en el Foro... Uhmmm!!!
Si me escribis la dirección del Foro de xHarbour... pues no lo tengo a mano.
Gracias
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:4445ee46$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> ¿No se tratará de un Bug de xHarbour???
>
> Puede ser.
>
>> pues lo que debería de funcionar es OrdListAdd...
>>
>> SET INDEX TO (cIndexTemp) ADDITIVE
>> Este es el código genera al compilar /p...
>> if !.T. ; ordListClear() ; end ; ordListAdd((cIndexTemp) )
>>
>> A mi entender, creo que las funciones OrdListClear() y OrdListAdd()
>> deberían de funcionar igual para NTX y/o CDX
>
> Acabo de revisar la documentación de Clipper sobre esta función y no
> encuentro que mencione ninguna limitación en los NTX. Es posible que sea
> un bug de xHarbour. Por favor, comentalo en el foro de xHarbour, aunque
> pongas el mensaje en castellano.
>
> --
> Un saludo,
>
> José F. Giménez
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9448
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

A

Mensaje por ignacio »

Xevi,
#define COMPILAR(cExpr) &("{||" + cExpr + "}")
METHOD AddTag( cTag, cExp, cFor, cFile, oPgBar ) CLASS XDbfDataSet
Local bEval
Local nCount, nStep
DEFAULT cFile TO ::DefIdxFile()
if oPgBar != nil
nCount := ::RecCount
With Object oPgBar
:nMin := 0
:nValue := 0
:nStep := 1
if nCount > 100
nStep := Round( ( nCount / 100) + 0.5, 0 )
:nMax := 100
else
nStep := 1
:nMax := nCount
endif
end with
bEval := {|| oPgBar:nValue += 1, .t. }
endif
if cFor != nil
( ::cAlias )->( OrdCondSet( cFor, COMPILAR( cFor ),,, bEval, nStep,,,,, .F.,, .T., .F., .F., .F. ) )
elseif oPgBar != nil
( ::cAlias )->( OrdCondSet( ,,,, bEval, nStep,,,,, .F.,, .T., .F., ..F., .F. ) )
endif
( ::cAlias )->( OrdCreate( cFile, cTag, cExp, COMPILAR( cExp ) ) )
RETURN nil
"Xevi" <xevi@garatgeautopista.com> escribió en el mensaje news:4445fbb4$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Jose,
>
> De momento lo he apañado creando un DataSet y añadiendo los í­ndices con
> AddTag()
> Y funciona perfectamente, por lo que serí­a bueno saber ¿como teneis
> construido este evento de la Clase para antes de hechar la culpa al
> compilador, saber seguro que se trata de un Bug.
>
> De todas formas lo posteo en el Foro... Uhmmm!!!
> Si me escribis la dirección del Foro de xHarbour... pues no lo tengo a mano.
>
> Gracias
>
> Un Saludo,
> Xevi.
>
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
> news:4445ee46$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>>> ¿No se tratará de un Bug de xHarbour???
>>
>> Puede ser.
>>
>>> pues lo que deberí­a de funcionar es OrdListAdd...
>>>
>>> SET INDEX TO (cIndexTemp) ADDITIVE
>>> Este es el código genera al compilar /p...
>>> if !.T. ; ordListClear() ; end ; ordListAdd((cIndexTemp) )
>>>
>>> A mi entender, creo que las funciones OrdListClear() y OrdListAdd()
>>> deberí­an de funcionar igual para NTX y/o CDX
>>
>> Acabo de revisar la documentación de Clipper sobre esta función y no
>> encuentro que mencione ninguna limitación en los NTX. Es posible que sea
>> un bug de xHarbour. Por favor, comentalo en el foro de xHarbour, aunque
>> pongas el mensaje en castellano.
>>
>> --
>> Un saludo,
>>
>> José F. Giménez
>>
>
>
--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

A

Mensaje por Xevi »

Ignacio,
Pues por lo visto, si no utilizamos bFor ni oPgBar, el evento se limita a utilizar la función OrdCreate() del Alias.
Por lo que entiendo que si en lugar de utilizar OrListAdd() o SET INDEX... ADDITIVE, utilizo OrdCreate(), deberí­a de funcionar correctamente.
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje news:4445fd05$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
#define COMPILAR(cExpr) &("{||" + cExpr + "}")
METHOD AddTag( cTag, cExp, cFor, cFile, oPgBar ) CLASS XDbfDataSet
Local bEval
Local nCount, nStep
DEFAULT cFile TO ::DefIdxFile()
if oPgBar != nil
nCount := ::RecCount
With Object oPgBar
:nMin := 0
:nValue := 0
:nStep := 1
if nCount > 100
nStep := Round( ( nCount / 100) + 0.5, 0 )
:nMax := 100
else
nStep := 1
:nMax := nCount
endif
end with
bEval := {|| oPgBar:nValue += 1, .t. }
endif
if cFor != nil
( ::cAlias )->( OrdCondSet( cFor, COMPILAR( cFor ),,, bEval, nStep,,,,, .F.,, .T., .F., .F., .F. ) )
elseif oPgBar != nil
( ::cAlias )->( OrdCondSet( ,,,, bEval, nStep,,,,, .F.,, .T., .F., ..F., .F. ) )
endif
( ::cAlias )->( OrdCreate( cFile, cTag, cExp, COMPILAR( cExp ) ) )
RETURN nil
"Xevi" <xevi@garatgeautopista.com> escribió en el mensaje news:4445fbb4$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Jose,
>
> De momento lo he apañado creando un DataSet y añadiendo los í­ndices con
> AddTag()
> Y funciona perfectamente, por lo que serí­a bueno saber ¿como teneis
> construido este evento de la Clase para antes de hechar la culpa al
> compilador, saber seguro que se trata de un Bug.
>
> De todas formas lo posteo en el Foro... Uhmmm!!!
> Si me escribis la dirección del Foro de xHarbour... pues no lo tengo a mano.
>
> Gracias
>
> Un Saludo,
> Xevi.
>
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
> news:4445ee46$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>>> ¿No se tratará de un Bug de xHarbour???
>>
>> Puede ser.
>>
>>> pues lo que deberí­a de funcionar es OrdListAdd...
>>>
>>> SET INDEX TO (cIndexTemp) ADDITIVE
>>> Este es el código genera al compilar /p...
>>> if !.T. ; ordListClear() ; end ; ordListAdd((cIndexTemp) )
>>>
>>> A mi entender, creo que las funciones OrdListClear() y OrdListAdd()
>>> deberí­an de funcionar igual para NTX y/o CDX
>>
>> Acabo de revisar la documentación de Clipper sobre esta función y no
>> encuentro que mencione ninguna limitación en los NTX. Es posible que sea
>> un bug de xHarbour. Por favor, comentalo en el foro de xHarbour, aunque
>> pongas el mensaje en castellano.
>>
>> --
>> Un saludo,
>>
>> José F. Giménez
>>
>
>
--
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9448
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

A

Mensaje por ignacio »

Xevi,
Te recomiendo que eches un vistazo al PPO para ver que está pasando.
Un saludo,
"Xevi" <xevi@garatgeautopista.com> escribió en el mensaje news:[email=444604d2@ozsrvnegro.ozlan.local...]444604d2@ozsrvnegro.ozlan.local...[/email]
Ignacio,
Pues por lo visto, si no utilizamos bFor ni oPgBar, el evento se limita a utilizar la función OrdCreate() del Alias.
Por lo que entiendo que si en lugar de utilizar OrListAdd() o SET INDEX... ADDITIVE, utilizo OrdCreate(), deberí­a de funcionar correctamente.
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje news:4445fd05$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
#define COMPILAR(cExpr) &("{||" + cExpr + "}")
METHOD AddTag( cTag, cExp, cFor, cFile, oPgBar ) CLASS XDbfDataSet
Local bEval
Local nCount, nStep
DEFAULT cFile TO ::DefIdxFile()
if oPgBar != nil
nCount := ::RecCount
With Object oPgBar
:nMin := 0
:nValue := 0
:nStep := 1
if nCount > 100
nStep := Round( ( nCount / 100) + 0.5, 0 )
:nMax := 100
else
nStep := 1
:nMax := nCount
endif
end with
bEval := {|| oPgBar:nValue += 1, .t. }
endif
if cFor != nil
( ::cAlias )->( OrdCondSet( cFor, COMPILAR( cFor ),,, bEval, nStep,,,,, .F.,, .T., .F., .F., .F. ) )
elseif oPgBar != nil
( ::cAlias )->( OrdCondSet( ,,,, bEval, nStep,,,,, .F.,, .T., ..F., .F., .F. ) )
endif
( ::cAlias )->( OrdCreate( cFile, cTag, cExp, COMPILAR( cExp ) ) )
RETURN nil
"Xevi" <xevi@garatgeautopista.com> escribió en el mensaje news:4445fbb4$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Jose,
>
> De momento lo he apañado creando un DataSet y añadiendo los í­ndices con
> AddTag()
> Y funciona perfectamente, por lo que serí­a bueno saber ¿como teneis
> construido este evento de la Clase para antes de hechar la culpa al
> compilador, saber seguro que se trata de un Bug.
>
> De todas formas lo posteo en el Foro... Uhmmm!!!
> Si me escribis la dirección del Foro de xHarbour... pues no lo tengo a mano.
>
> Gracias
>
> Un Saludo,
> Xevi.
>
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
> news:4445ee46$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>>> ¿No se tratará de un Bug de xHarbour???
>>
>> Puede ser.
>>
>>> pues lo que deberí­a de funcionar es OrdListAdd...
>>>
>>> SET INDEX TO (cIndexTemp) ADDITIVE
>>> Este es el código genera al compilar /p...
>>> if !.T. ; ordListClear() ; end ; ordListAdd((cIndexTemp) )
>>>
>>> A mi entender, creo que las funciones OrdListClear() y OrdListAdd()
>>> deberí­an de funcionar igual para NTX y/o CDX
>>
>> Acabo de revisar la documentación de Clipper sobre esta función y no
>> encuentro que mencione ninguna limitación en los NTX. Es posible que sea
>> un bug de xHarbour. Por favor, comentalo en el foro de xHarbour, aunque
>> pongas el mensaje en castellano.
>>
>> --
>> Un saludo,
>>
>> José F. Giménez
>>
>
>
--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder