Hola , Buenos dias a Todos!
1. - Porque TSqlQuery no heredo los Metodos de TDbfDataSet ?
cCU1:=SUBS(::oDSCATCLI:FIELDGETBYNAME('CtaConCli'),1,4)
cCU2:=SUBS(::oDSCATCLI:FIELDGETBYNAME('CtaConCli'),5,4)
cCU3:=SUBS(::oDSCATCLI:FIELDGETBYNAME('CtaConCli'),9,4)
cCU4:=SUBS(::oDSCATCLI:FIELDGETBYNAME('CtaConCli'),13,4)
cCUENTA:=cCU1+cCU2+cCU3+cCU4
::oDSCATCUENTAS:SELECT()
LOCATE FOR
::oDSCATCUENTAS:FIELDGETBYNAME('CtaMay')+::oDSCATCUENTAS:FIE LDGETBYNAME('SubCta')+;
::oDSCATCUENTAS:FIELDGETBYNAME('SSbCta')+::oDSCATCUENTAS:FIE LDGETBYNAME('SSSCta')=;
cCU1+cCU2+cCU3+cCU4
IF FOUND()
cDESCR:=::oDSCATCUENTAS:FIELDGETBYNAME('Descripcion')
ELSE
Application:lbusy:=.F.
MsgStop('No encontre cuenta '+cCUENTA,'Error')
ENDIF
Ahora este codigo no me funciona ya que el Metodo Locate() es Heredado de
TDataSet y se comporta diferente que el Metodo Locate() del TDbfDataSet.
El Metodo Locate() del TDataSet Acepta la siguiente sintaxis :
LOCATE('CtaMay='+cCUENTA) , solo acepta una columna en la busqueda, no
permite varias columnas
Como resuelvo el problema de buscar varias columnas como el ejemplo de
arriba?
Tendre que usar nuevamente TOdbcDataSet ?
SIGUIENTE PREGUNTA ?
2. - La Variable aSucursales es una varibale Publica definida en el programa
principal, la cual utilizo en otro modulo, cuando compilo me sale el
siguite Warning
Compilando ProcesaCortes.prg...
ProcesaCortes.prg(163) Warning W0002 Ambiguous reference, assuming memvar:
'ASUCURSALES'
Porque si esta definida como variable publica?
ademas en las propiedades del Proyecto en Opciones/Xharbour tengo
seleccionada la opcion declaracion automatica de variables.
Gracias
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.
HERENCIA EN TSQLQUERY
-
- Mensajes: 114
- Registrado: Dom Dic 18, 2005 7:50 pm
HERENCIA EN TSQLQUERY
Martin,
> 2. - La Variable aSucursales es una varibale Publica definida en el programa
> principal, la cual utilizo en otro modulo, cuando compilo me sale el
> siguite Warning
>
> Compilando ProcesaCortes.prg...
> ProcesaCortes.prg(163) Warning W0002 Ambiguous reference, assuming memvar:
> 'ASUCURSALES'
>
> Porque si esta definida como variable publica?
>
> ademas en las propiedades del Proyecto en Opciones/Xharbour tengo
> seleccionada la opcion declaracion automatica de variables.
Lo mejor que puedes hacer para usar variables de ámbito global en Xailer
es usar AppData. AppData es una clase visible por todos los módulos de
la aplicación.
Para añadir una DATA a AppData:
AppData:AddData( "aSucursales", {} )
Después la usas en cualquier sitio así:
AppData:aSucursales
Saludos
Jose A. Suarez
>
>
> Gracias
>
>
>
> 2. - La Variable aSucursales es una varibale Publica definida en el programa
> principal, la cual utilizo en otro modulo, cuando compilo me sale el
> siguite Warning
>
> Compilando ProcesaCortes.prg...
> ProcesaCortes.prg(163) Warning W0002 Ambiguous reference, assuming memvar:
> 'ASUCURSALES'
>
> Porque si esta definida como variable publica?
>
> ademas en las propiedades del Proyecto en Opciones/Xharbour tengo
> seleccionada la opcion declaracion automatica de variables.
Lo mejor que puedes hacer para usar variables de ámbito global en Xailer
es usar AppData. AppData es una clase visible por todos los módulos de
la aplicación.
Para añadir una DATA a AppData:
AppData:AddData( "aSucursales", {} )
Después la usas en cualquier sitio así:
AppData:aSucursales
Saludos
Jose A. Suarez
>
>
> Gracias
>
>
>
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
HERENCIA EN TSQLQUERY
Martin,
>> 1. - Porque TSqlQuery no heredo los Metodos de TDbfDataSet ?
Pues porque no hereda de TDbfDataSet, sino de TDataSet directamente
> Ahora este codigo no me funciona ya que el Metodo Locate() es Heredado
> de TDataSet y se comporta diferente que el Metodo Locate() del
> TDbfDataSet.
> El Metodo Locate() del TDataSet Acepta la siguiente sintaxis :
> LOCATE('CtaMay='+cCUENTA) , solo acepta una columna en la busqueda, no
> permite varias columnas
El método Locate del TDataSet se basa en la clásica instrucción WHERE de
SQL. Sin embargo en TDbfDataSet se base en el propio comando LOCATE de
Clipper. (En esto consiste la característica del polimorfismo en OOP)
> Como resuelvo el problema de buscar varias columnas como el ejemplo de
> arriba?
> Tendre que usar nuevamente TOdbcDataSet ?
Consulte cualquier documentación SQL del funcionamiento de la cláusula WHERE
en una instrucción SELECT
TOdbcDataSet seguirá por compatibilidad. Si ya tiene hecha su aplicación con
esa clase no lo cambie.
> 2. - La Variable aSucursales es una varibale Publica definida en el
> programa principal, la cual utilizo en otro modulo, cuando compilo me
> sale el siguite Warning
Revise la documentación de Clipper referente a la expresión MEMVAR:
http://www.itlnet.net/programming/progr ... e/c53g01c/ ng1082ed.html
> ademas en las propiedades del Proyecto en Opciones/Xharbour tengo
> seleccionada la opcion declaracion automatica de variables.
Es un 'warning'. Si quiere evitarlo, que no se lo recomiendo, simplemente
reduzca el nivel de avisos en la configuración del proyecto.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
>
> 2. - La Variable aSucursales es una varibale Publica definida en el
> programa principal, la cual utilizo en otro modulo, cuando compilo me
> sale el siguite Warning
>
> Compilando ProcesaCortes.prg...
> ProcesaCortes.prg(163) Warning W0002 Ambiguous reference, assuming
> memvar: 'ASUCURSALES'
>
> Porque si esta definida como variable publica?
>
> ademas en las propiedades del Proyecto en Opciones/Xharbour tengo
> seleccionada la opcion declaracion automatica de variables.
>
>
> Gracias
>
>
>
>> 1. - Porque TSqlQuery no heredo los Metodos de TDbfDataSet ?
Pues porque no hereda de TDbfDataSet, sino de TDataSet directamente
> Ahora este codigo no me funciona ya que el Metodo Locate() es Heredado
> de TDataSet y se comporta diferente que el Metodo Locate() del
> TDbfDataSet.
> El Metodo Locate() del TDataSet Acepta la siguiente sintaxis :
> LOCATE('CtaMay='+cCUENTA) , solo acepta una columna en la busqueda, no
> permite varias columnas
El método Locate del TDataSet se basa en la clásica instrucción WHERE de
SQL. Sin embargo en TDbfDataSet se base en el propio comando LOCATE de
Clipper. (En esto consiste la característica del polimorfismo en OOP)
> Como resuelvo el problema de buscar varias columnas como el ejemplo de
> arriba?
> Tendre que usar nuevamente TOdbcDataSet ?
Consulte cualquier documentación SQL del funcionamiento de la cláusula WHERE
en una instrucción SELECT
TOdbcDataSet seguirá por compatibilidad. Si ya tiene hecha su aplicación con
esa clase no lo cambie.
> 2. - La Variable aSucursales es una varibale Publica definida en el
> programa principal, la cual utilizo en otro modulo, cuando compilo me
> sale el siguite Warning
Revise la documentación de Clipper referente a la expresión MEMVAR:
http://www.itlnet.net/programming/progr ... e/c53g01c/ ng1082ed.html
> ademas en las propiedades del Proyecto en Opciones/Xharbour tengo
> seleccionada la opcion declaracion automatica de variables.
Es un 'warning'. Si quiere evitarlo, que no se lo recomiendo, simplemente
reduzca el nivel de avisos en la configuración del proyecto.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
>
> 2. - La Variable aSucursales es una varibale Publica definida en el
> programa principal, la cual utilizo en otro modulo, cuando compilo me
> sale el siguite Warning
>
> Compilando ProcesaCortes.prg...
> ProcesaCortes.prg(163) Warning W0002 Ambiguous reference, assuming
> memvar: 'ASUCURSALES'
>
> Porque si esta definida como variable publica?
>
> ademas en las propiedades del Proyecto en Opciones/Xharbour tengo
> seleccionada la opcion declaracion automatica de variables.
>
>
> Gracias
>
>
>
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