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.

TDbfDataSet

Foro público de Xailer en español
Responder
Miguel Torrellas
Mensajes: 35
Registrado: Lun Oct 24, 2005 7:05 pm

TDbfDataSet

Mensaje por Miguel Torrellas »

Hola:
TDbfDataSet:AddTag( cTag, cExp, cFor, cFile, oProgressBar).
"oProgressBar" funciona perfectamente si el oDataSource es "TNtxDataSource"
o "TCdxDataSource", pero no funciona se es "TAdsDataSource".
Gracias.
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

TDbfDataSet

Mensaje por zeasoftware »

Si funciona yo lo he usado.
Saludos.
Ramón Zea
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

TDbfDataSet

Mensaje por ignacio »

Miguel,
Los índices de ADS en modo remoto se generan completmante en el servidor y
este no notifica al cliente del proceso. Por lo tanto la cláusula EVAL del
comando INDEX no funciona. Obviamente este problema lo hereda la clase
TAdsDataSource, que no hace otra cosa que llamar al mismo comando.
Un saludo,
"Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
news:4377797e$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Hola:
>
> TDbfDataSet:AddTag( cTag, cExp, cFor, cFile, oProgressBar).
>
> "oProgressBar" funciona perfectamente si el oDataSource es
> "TNtxDataSource" o "TCdxDataSource", pero no funciona se es
> "TAdsDataSource".
>
> Gracias.
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Miguel Torrellas
Mensajes: 35
Registrado: Lun Oct 24, 2005 7:05 pm

TDbfDataSet

Mensaje por Miguel Torrellas »

ADS lo tengo configurado en modo local y tampoco funciona, cambio el
oDatasource TCdxDatasource y funciona de maravilla, no se que estoy
haciendo mal.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:43784e9d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Miguel,
>
> Los índices de ADS en modo remoto se generan completmante en el servidor y
> este no notifica al cliente del proceso. Por lo tanto la cláusula EVAL del
> comando INDEX no funciona. Obviamente este problema lo hereda la clase
> TAdsDataSource, que no hace otra cosa que llamar al mismo comando.
>
> Un saludo,
>
> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
> news:4377797e$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Hola:
>>
>> TDbfDataSet:AddTag( cTag, cExp, cFor, cFile, oProgressBar).
>>
>> "oProgressBar" funciona perfectamente si el oDataSource es
>> "TNtxDataSource" o "TCdxDataSource", pero no funciona se es
>> "TAdsDataSource".
>>
>> Gracias.
>>
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

TDbfDataSet

Mensaje por ignacio »

Miguel,
En modo local creo que tampoco va. Preguntalo en el foro de xHarbour por si
acaso.
Un saludo,
"Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
news:[email=4378b571@ozsrvnegro.ozlan.local...]4378b571@ozsrvnegro.ozlan.local...[/email]
> ADS lo tengo configurado en modo local y tampoco funciona, cambio el
> oDatasource TCdxDatasource y funciona de maravilla, no se que estoy
> haciendo mal.
>
>
> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
> news:43784e9d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Miguel,
>>
>> Los índices de ADS en modo remoto se generan completmante en el servidor
>> y este no notifica al cliente del proceso. Por lo tanto la cláusula EVAL
>> del comando INDEX no funciona. Obviamente este problema lo hereda la
>> clase TAdsDataSource, que no hace otra cosa que llamar al mismo comando.
>>
>> Un saludo,
>>
>> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
>> news:4377797e$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Hola:
>>>
>>> TDbfDataSet:AddTag( cTag, cExp, cFor, cFile, oProgressBar).
>>>
>>> "oProgressBar" funciona perfectamente si el oDataSource es
>>> "TNtxDataSource" o "TCdxDataSource", pero no funciona se es
>>> "TAdsDataSource".
>>>
>>> Gracias.
>>>
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

TDbfDataSet

Mensaje por jfgimenez »

Miguel,
> ADS lo tengo configurado en modo local y tampoco funciona, cambio el
> oDatasource TCdxDatasource y funciona de maravilla, no se que estoy
> haciendo mal.
En modo local tampoco funciona. El proceso se realiza dentro de ADSLOC32.DLL
(si no me equivoco), y no notifica correctamente al programa del punto por
donde va, así que me temo que no funciona.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Miguel Torrellas
Mensajes: 35
Registrado: Lun Oct 24, 2005 7:05 pm

TDbfDataSet

Mensaje por Miguel Torrellas »

La necesidad de utilizar TAdsDatasource se produce porque en los archivos
DBF con caracteres OEM, en TCdxDataSource no tiene l aopcion de
visualizarlos correctamente.
Si hubiera una opción para visalizar estos datos con TCdxDataSource, ruego
me lo comuniquen
GRacias
"Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
news:[email=4378b571@ozsrvnegro.ozlan.local...]4378b571@ozsrvnegro.ozlan.local...[/email]
> ADS lo tengo configurado en modo local y tampoco funciona, cambio el
> oDatasource TCdxDatasource y funciona de maravilla, no se que estoy
> haciendo mal.
>
>
> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
> news:43784e9d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Miguel,
>>
>> Los índices de ADS en modo remoto se generan completmante en el servidor
>> y este no notifica al cliente del proceso. Por lo tanto la cláusula EVAL
>> del comando INDEX no funciona. Obviamente este problema lo hereda la
>> clase TAdsDataSource, que no hace otra cosa que llamar al mismo comando.
>>
>> Un saludo,
>>
>> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
>> news:4377797e$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Hola:
>>>
>>> TDbfDataSet:AddTag( cTag, cExp, cFor, cFile, oProgressBar).
>>>
>>> "oProgressBar" funciona perfectamente si el oDataSource es
>>> "TNtxDataSource" o "TCdxDataSource", pero no funciona se es
>>> "TAdsDataSource".
>>>
>>> Gracias.
>>>
>>
>>
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

TDbfDataSet

Mensaje por ignacio »

Miguel,
Puedes usar la función OemToAnsi() para visualizar.
Un saludo,
"Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
news:[email=4378c15e@ozsrvnegro.ozlan.local...]4378c15e@ozsrvnegro.ozlan.local...[/email]
> La necesidad de utilizar TAdsDatasource se produce porque en los archivos
> DBF con caracteres OEM, en TCdxDataSource no tiene l aopcion de
> visualizarlos correctamente.
> Si hubiera una opción para visalizar estos datos con TCdxDataSource, ruego
> me lo comuniquen
>
> GRacias
>
>
> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
> news:[email=4378b571@ozsrvnegro.ozlan.local...]4378b571@ozsrvnegro.ozlan.local...[/email]
>> ADS lo tengo configurado en modo local y tampoco funciona, cambio el
>> oDatasource TCdxDatasource y funciona de maravilla, no se que estoy
>> haciendo mal.
>>
>>
>> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
>> news:43784e9d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Miguel,
>>>
>>> Los índices de ADS en modo remoto se generan completmante en el servidor
>>> y este no notifica al cliente del proceso. Por lo tanto la cláusula EVAL
>>> del comando INDEX no funciona. Obviamente este problema lo hereda la
>>> clase TAdsDataSource, que no hace otra cosa que llamar al mismo comando.
>>>
>>> Un saludo,
>>>
>>> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
>>> news:4377797e$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>> Hola:
>>>>
>>>> TDbfDataSet:AddTag( cTag, cExp, cFor, cFile, oProgressBar).
>>>>
>>>> "oProgressBar" funciona perfectamente si el oDataSource es
>>>> "TNtxDataSource" o "TCdxDataSource", pero no funciona se es
>>>> "TAdsDataSource".
>>>>
>>>> Gracias.
>>>>
>>>
>>>
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

TDbfDataSet

Mensaje por jlalin »

Miguel,
en el RDD de ADS se puede usar una función callback que se llama cada
dos segundos para hacer lo que pretendes.
Incluye este código en tu proyecto y pruébalo:
//--
CLASS TADSDataSource FROM XADSDataSource
PUBLIC:
METHOD Destroy()
METHOD AddTag( cTag, cExp, cFor, cFile, oProgressBar )
ENDCLASS
METHOD Destroy() CLASS TADSDataSource
AdsClrCallBack()
Super:Destroy()
RETURN Nil
METHOD AddTag( cTag, cExp, cFor, cFile, oProgressBar ) CLASS TADSDataSource
Super:AddTag( cTag, cExp, cFor, cFile, Nil )
If oProgressBar != Nil
AdsRegCallBack( {|nPercent| oProgressBar:nValue := nPercent, .T. } )
Endif
RETURN Nil
//--
No lo he probado, está escrito al vuelo y seguramente necesite algún
ajuste, pero por ahí­ deben ir los tiros.
Por otra parte, creo que, si a Ignacio le parece bien, podrí­amos
implementar este código dentro de TADSDataSource para que funcione
correctamente con todos los DataSources.
Saludos,
José Lalí­n
Miguel Torrellas
Mensajes: 35
Registrado: Lun Oct 24, 2005 7:05 pm

TDbfDataSet

Mensaje por Miguel Torrellas »

Hola:
Si de acuerdo, pero para mostrar las columnas en un Browse o DataControls
esto se complica y no favorece nada en el uso del IDE. Se debiera pensar
algo al respecto, otras herramientas lo tienen ya que todos nosotros tenemos
aplicaciones rodadando desde los tiempos de Clipper con lo cual sus DBFS no
los vamos a tirar por la borda puesto que tiran de ellas diversas
aplicaciones simultanemaente y no es cuestion de manipularlas para una
aplicacion especifica..
Saludos al grupo.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:4378e187$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Miguel,
>
> Puedes usar la función OemToAnsi() para visualizar.
>
> Un saludo,
>
> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
> news:[email=4378c15e@ozsrvnegro.ozlan.local...]4378c15e@ozsrvnegro.ozlan.local...[/email]
>> La necesidad de utilizar TAdsDatasource se produce porque en los archivos
>> DBF con caracteres OEM, en TCdxDataSource no tiene l aopcion de
>> visualizarlos correctamente.
>> Si hubiera una opción para visalizar estos datos con TCdxDataSource,
>> ruego me lo comuniquen
>>
>> GRacias
>>
>>
>> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
>> news:[email=4378b571@ozsrvnegro.ozlan.local...]4378b571@ozsrvnegro.ozlan.local...[/email]
>>> ADS lo tengo configurado en modo local y tampoco funciona, cambio el
>>> oDatasource TCdxDatasource y funciona de maravilla, no se que estoy
>>> haciendo mal.
>>>
>>>
>>> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el
>>> mensaje news:43784e9d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>> Miguel,
>>>>
>>>> Los índices de ADS en modo remoto se generan completmante en el
>>>> servidor y este no notifica al cliente del proceso. Por lo tanto la
>>>> cláusula EVAL del comando INDEX no funciona. Obviamente este problema
>>>> lo hereda la clase TAdsDataSource, que no hace otra cosa que llamar al
>>>> mismo comando.
>>>>
>>>> Un saludo,
>>>>
>>>> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
>>>> news:4377797e$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>>> Hola:
>>>>>
>>>>> TDbfDataSet:AddTag( cTag, cExp, cFor, cFile, oProgressBar).
>>>>>
>>>>> "oProgressBar" funciona perfectamente si el oDataSource es
>>>>> "TNtxDataSource" o "TCdxDataSource", pero no funciona se es
>>>>> "TAdsDataSource".
>>>>>
>>>>> Gracias.
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

TDbfDataSet

Mensaje por ignacio »

Miguel,
¿Qué herramienta es esa que es capaz de mostrar los datos correctamente en
una ventana de Windows aunque estén en formato Ansi. E igualmente editarlos
y salvarlos correctamente?
> esto se complica y no favorece nada en el uso del IDE.
Es un doble-click de ratón y luego escribir:
cText := OemToAnsi( cText )
Tampoco lo veo mucho trabajo. Incluso lo de escribir se hace una sola vez ya
que luego puedes hacer que todas las columnas tipo carácter apuntes a ese
mismo evento. Con lo cual en dicho caso el trabajo se reduce a seleccionar
un evento en la lista de eventos por cada columna.
Posibilidades que se me ocurren:
* Que utilices expresamente un FONT que sea compatible con el modo OEM como
puede ser 'Terminal' pero perderas vistosidad.
* Hacer campos calculados que pasan de Oem a Ansi en visualización y de Ansi
a Oem en grabación, no es dificil, pero tendrías que hacer un campo
calculado por cada campo a tratar pero sería completamente transparente.
* Que utilices el OemToAnsi según te he indicado y en grabación de datos en
el evento OnPreSave hagas la conversión de los tipo carácter a OEM
* Investiga en Internet la existencia de juegos de fonts con CharSet OEM e
intenta utilizarlos.
En cualquier caso te diré que con ADS dudo que funcione como tu piensas, de
forma transparente. Con ADS simplemente se le informa como es el formato,
más que nada para realizar su colación correctamente, pero no hace ningún
tipo de milagro que yo sepa.
Un saludo,
"Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
news:[email=437a0829@ozsrvnegro.ozlan.local...]437a0829@ozsrvnegro.ozlan.local...[/email]
> Hola:
>
> Si de acuerdo, pero para mostrar las columnas en un Browse o DataControls
> esto se complica y no favorece nada en el uso del IDE. Se debiera pensar
> algo al respecto, otras herramientas lo tienen ya que todos nosotros
> tenemos aplicaciones rodadando desde los tiempos de Clipper con lo cual
> sus DBFS no los vamos a tirar por la borda puesto que tiran de ellas
> diversas aplicaciones simultanemaente y no es cuestion de manipularlas
> para una aplicacion especifica..
>
> Saludos al grupo.
>
> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
> news:4378e187$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Miguel,
>>
>> Puedes usar la función OemToAnsi() para visualizar.
>>
>> Un saludo,
>>
>> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
>> news:[email=4378c15e@ozsrvnegro.ozlan.local...]4378c15e@ozsrvnegro.ozlan.local...[/email]
>>> La necesidad de utilizar TAdsDatasource se produce porque en los
>>> archivos DBF con caracteres OEM, en TCdxDataSource no tiene l aopcion de
>>> visualizarlos correctamente.
>>> Si hubiera una opción para visalizar estos datos con TCdxDataSource,
>>> ruego me lo comuniquen
>>>
>>> GRacias
>>>
>>>
>>> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
>>> news:[email=4378b571@ozsrvnegro.ozlan.local...]4378b571@ozsrvnegro.ozlan.local...[/email]
>>>> ADS lo tengo configurado en modo local y tampoco funciona, cambio el
>>>> oDatasource TCdxDatasource y funciona de maravilla, no se que estoy
>>>> haciendo mal.
>>>>
>>>>
>>>> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el
>>>> mensaje news:43784e9d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>>> Miguel,
>>>>>
>>>>> Los índices de ADS en modo remoto se generan completmante en el
>>>>> servidor y este no notifica al cliente del proceso. Por lo tanto la
>>>>> cláusula EVAL del comando INDEX no funciona. Obviamente este problema
>>>>> lo hereda la clase TAdsDataSource, que no hace otra cosa que llamar al
>>>>> mismo comando.
>>>>>
>>>>> Un saludo,
>>>>>
>>>>> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
>>>>> news:4377797e$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>>>> Hola:
>>>>>>
>>>>>> TDbfDataSet:AddTag( cTag, cExp, cFor, cFile, oProgressBar).
>>>>>>
>>>>>> "oProgressBar" funciona perfectamente si el oDataSource es
>>>>>> "TNtxDataSource" o "TCdxDataSource", pero no funciona se es
>>>>>> "TAdsDataSource".
>>>>>>
>>>>>> Gracias.
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

TDbfDataSet

Mensaje por jfgimenez »

Miguel,
no sé si funcionará porque no lo he probado, pero quizás te pueda servir
algo así (ponlo en alguna parte de tu programa):
CLASS TDbfDataSet FROM XDbfDataSet
METHOD FieldGet( n )
METHOD FieldPut( n, x )
ENDCLASS
METHOD FieldGet( n ) CLASS TDbfDataSet
LOCAL x := ( ::cAlias )->( FieldGet( n ) )
IF ValType( x ) $ "CM"
x := OemToAnsi( x )
ENDIF
RETURN x
METHOD FieldPut( n, x ) CLASS TDbfDataSet
IF ValType( x ) == "C"
( ::cAlias )->( FieldPut( n, AnsiToOem( x ) ) )
ELSE
( ::cAlias )->( FieldPut( n, x ) )
ENDIF
RETURN x
No está completo, ya que hay otros métodos que seguramente necesitarían
convertir también las cadenas desde/hacia OEM, pero por lo menos te puede
servir para comprobar si puede ser una solución.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Miguel Torrellas
Mensajes: 35
Registrado: Lun Oct 24, 2005 7:05 pm

TDbfDataSet

Mensaje por Miguel Torrellas »

> ¿Qué herramienta es esa que es capaz de mostrar los datos correctamente en
> una ventana de Windows aunque estén en formato Ansi. E igualmente
> editarlos y salvarlos correctamente?
Creeme que funciona perfectamente la conversion transparente. El propio
Advantage Data Architect lo hace correctamente. Como prueba puedes vincular
el DBF a una MSAccess.MDB o XlS, cualquier otra herrameinta.
Alaska xBase++ Version 1.82.294 y anteriores, desde hace 10 años es la
herramienta que he utilizado. Estoy desarrollando una nueva aplicacion en
Xailer a modo de aprendizaje y testeo, por lo que he visto hasta ahora de
seguro que me voy a quedar aqui, me gusta, me siento cómodo, pero sobre todo
vuestra atención (extraordinaria) incluidos los que hasta ahora no hemos
pagado nada, seguir asi porque esta va a ser la clave del exito.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:437a0ef1$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Miguel,
>
> ¿Qué herramienta es esa que es capaz de mostrar los datos correctamente en
> una ventana de Windows aunque estén en formato Ansi. E igualmente
> editarlos y salvarlos correctamente?
>
>> esto se complica y no favorece nada en el uso del IDE.
>
> Es un doble-click de ratón y luego escribir:
>
> cText := OemToAnsi( cText )
>
> Tampoco lo veo mucho trabajo. Incluso lo de escribir se hace una sola vez
> ya que luego puedes hacer que todas las columnas tipo carácter apuntes a
> ese mismo evento. Con lo cual en dicho caso el trabajo se reduce a
> seleccionar un evento en la lista de eventos por cada columna.
>
> Posibilidades que se me ocurren:
>
> * Que utilices expresamente un FONT que sea compatible con el modo OEM
> como puede ser 'Terminal' pero perderas vistosidad.
>
> * Hacer campos calculados que pasan de Oem a Ansi en visualización y de
> Ansi a Oem en grabación, no es dificil, pero tendrías que hacer un campo
> calculado por cada campo a tratar pero sería completamente transparente.
>
> * Que utilices el OemToAnsi según te he indicado y en grabación de datos
> en el evento OnPreSave hagas la conversión de los tipo carácter a OEM
>
> * Investiga en Internet la existencia de juegos de fonts con CharSet OEM e
> intenta utilizarlos.
>
> En cualquier caso te diré que con ADS dudo que funcione como tu piensas,
> de forma transparente. Con ADS simplemente se le informa como es el
> formato, más que nada para realizar su colación correctamente, pero no
> hace ningún tipo de milagro que yo sepa.
>
> Un saludo,
>
> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
> news:[email=437a0829@ozsrvnegro.ozlan.local...]437a0829@ozsrvnegro.ozlan.local...[/email]
>> Hola:
>>
>> Si de acuerdo, pero para mostrar las columnas en un Browse o DataControls
>> esto se complica y no favorece nada en el uso del IDE. Se debiera pensar
>> algo al respecto, otras herramientas lo tienen ya que todos nosotros
>> tenemos aplicaciones rodadando desde los tiempos de Clipper con lo cual
>> sus DBFS no los vamos a tirar por la borda puesto que tiran de ellas
>> diversas aplicaciones simultanemaente y no es cuestion de manipularlas
>> para una aplicacion especifica..
>>
>> Saludos al grupo.
>>
>> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
>> news:4378e187$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Miguel,
>>>
>>> Puedes usar la función OemToAnsi() para visualizar.
>>>
>>> Un saludo,
>>>
>>> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
>>> news:[email=4378c15e@ozsrvnegro.ozlan.local...]4378c15e@ozsrvnegro.ozlan.local...[/email]
>>>> La necesidad de utilizar TAdsDatasource se produce porque en los
>>>> archivos DBF con caracteres OEM, en TCdxDataSource no tiene l aopcion
>>>> de visualizarlos correctamente.
>>>> Si hubiera una opción para visalizar estos datos con TCdxDataSource,
>>>> ruego me lo comuniquen
>>>>
>>>> GRacias
>>>>
>>>>
>>>> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
>>>> news:[email=4378b571@ozsrvnegro.ozlan.local...]4378b571@ozsrvnegro.ozlan.local...[/email]
>>>>> ADS lo tengo configurado en modo local y tampoco funciona, cambio el
>>>>> oDatasource TCdxDatasource y funciona de maravilla, no se que estoy
>>>>> haciendo mal.
>>>>>
>>>>>
>>>>> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el
>>>>> mensaje news:43784e9d$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>>>> Miguel,
>>>>>>
>>>>>> Los índices de ADS en modo remoto se generan completmante en el
>>>>>> servidor y este no notifica al cliente del proceso. Por lo tanto la
>>>>>> cláusula EVAL del comando INDEX no funciona. Obviamente este problema
>>>>>> lo hereda la clase TAdsDataSource, que no hace otra cosa que llamar
>>>>>> al mismo comando.
>>>>>>
>>>>>> Un saludo,
>>>>>>
>>>>>> "Miguel Torrellas" <miguel@torsat.net> escribió en el mensaje
>>>>>> news:4377797e$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>>>>> Hola:
>>>>>>>
>>>>>>> TDbfDataSet:AddTag( cTag, cExp, cFor, cFile, oProgressBar).
>>>>>>>
>>>>>>> "oProgressBar" funciona perfectamente si el oDataSource es
>>>>>>> "TNtxDataSource" o "TCdxDataSource", pero no funciona se es
>>>>>>> "TAdsDataSource".
>>>>>>>
>>>>>>> Gracias.
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
Miguel Torrellas
Mensajes: 35
Registrado: Lun Oct 24, 2005 7:05 pm

TDbfDataSet

Mensaje por Miguel Torrellas »

Tiene buen aspecto. Lo probaré
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=437a20c0@ozsrvnegro.ozlan.local...]437a20c0@ozsrvnegro.ozlan.local...[/email]
> Miguel,
>
> no sé si funcionará porque no lo he probado, pero quizás te pueda servir
> algo así (ponlo en alguna parte de tu programa):
>
> CLASS TDbfDataSet FROM XDbfDataSet
> METHOD FieldGet( n )
> METHOD FieldPut( n, x )
> ENDCLASS
>
> METHOD FieldGet( n ) CLASS TDbfDataSet
> LOCAL x := ( ::cAlias )->( FieldGet( n ) )
> IF ValType( x ) $ "CM"
> x := OemToAnsi( x )
> ENDIF
> RETURN x
>
> METHOD FieldPut( n, x ) CLASS TDbfDataSet
> IF ValType( x ) == "C"
> ( ::cAlias )->( FieldPut( n, AnsiToOem( x ) ) )
> ELSE
> ( ::cAlias )->( FieldPut( n, x ) )
> ENDIF
> RETURN x
>
>
> No está completo, ya que hay otros métodos que seguramente necesitarían
> convertir también las cadenas desde/hacia OEM, pero por lo menos te puede
> servir para comprobar si puede ser una solución.
>
> --
> Un saludo,
>
> José F. Giménez
>
Responder