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.
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
A
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
(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
A
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
> 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
A
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
>
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
>
A
¿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
>>
>
>
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
>>
>
>
A
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
> ¿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
A
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
>
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
- Site Admin
- Mensajes: 9448
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
A
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
>>
>
>
--
#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
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
A
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
>>
>
>
--
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
- Site Admin
- Mensajes: 9448
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
A
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
>>
>
>
--
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
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com