Hasta hace unos dias, trabajaba con DBF. Ahora estoy cambiando a MySql.
Yo hacia esto para obtener un informe que combinaba las dos dbf:
DO WHILE !::oDbfDataset1:eof()
IF ::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
:TextOut(100,400+n, ::oDbfDataSet1:Matricula)
:TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
do while ::oDbfDataSet2:Matricula =::oDbfDataSet1:Matricula
:TextOut(1050,400+n,substr(::oDbfDataSet2:fecha,7,2)+"-"+
substr(::oDbfDataSet2:fecha,5,2))
::oDbfDataSet2:skip()
n := n+50
if n > 2350
n := 100
endif
endd
elseIF !::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
:TextOut(100,400+n, ::oDbfDataSet1:Matricula)
:TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
:TextOut(875,400+n, ::oDbfDataSet1:telefono)
n := n+50
endif
::oDbfDataSet1:skip()
enddo
Alguien me podia hechar una mano para hacer esto con MySql.
No tengo ni idea.
Gracias
Paco V
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.
Peleando
Peleando
Paco,
En tu condicionante IF...ELSE...ENDIF, estás repitiendo la búsqueda de
:Matrícula.
En else puedes sacarle ... IF !::oDbfDataSet2:Seek(
::oDbfDataSet1:Matricula)
pues ya lo has comprobado en IF y si no IF será ELSE... ¿no crees???
Para MySql, no me he metido en ello, pero son mis deberes a corto...
Creo que el planteamiento de este informe deberías cargarlo antes en un
recorset que haga referencia a las dos tablas.
Pero esto seguro que alguien entendido en SQL te lo aclara.
Un Saludo,
Xevi.
"Paco V" <ssi@ono.com> escribió en el mensaje
news:46441316$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
> Hasta hace unos dias, trabajaba con DBF. Ahora estoy cambiando a MySql.
> Yo hacia esto para obtener un informe que combinaba las dos dbf:
>
> DO WHILE !::oDbfDataset1:eof()
> IF ::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
> :TextOut(100,400+n, ::oDbfDataSet1:Matricula)
> :TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
> do while ::oDbfDataSet2:Matricula =::oDbfDataSet1:Matricula
> :TextOut(1050,400+n,substr(::oDbfDataSet2:fecha,7,2)+"-"+
> substr(::oDbfDataSet2:fecha,5,2))
> ::oDbfDataSet2:skip()
> n := n+50
> if n > 2350
> n := 100
> endif
> endd
> elseIF !::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
> :TextOut(100,400+n, ::oDbfDataSet1:Matricula)
> :TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
> :TextOut(875,400+n, ::oDbfDataSet1:telefono)
> n := n+50
> endif
> ::oDbfDataSet1:skip()
> enddo
>
> Alguien me podia hechar una mano para hacer esto con MySql.
> No tengo ni idea.
>
> Gracias
>
> Paco V
En tu condicionante IF...ELSE...ENDIF, estás repitiendo la búsqueda de
:Matrícula.
En else puedes sacarle ... IF !::oDbfDataSet2:Seek(
::oDbfDataSet1:Matricula)
pues ya lo has comprobado en IF y si no IF será ELSE... ¿no crees???
Para MySql, no me he metido en ello, pero son mis deberes a corto...
Creo que el planteamiento de este informe deberías cargarlo antes en un
recorset que haga referencia a las dos tablas.
Pero esto seguro que alguien entendido en SQL te lo aclara.
Un Saludo,
Xevi.
"Paco V" <ssi@ono.com> escribió en el mensaje
news:46441316$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
> Hasta hace unos dias, trabajaba con DBF. Ahora estoy cambiando a MySql.
> Yo hacia esto para obtener un informe que combinaba las dos dbf:
>
> DO WHILE !::oDbfDataset1:eof()
> IF ::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
> :TextOut(100,400+n, ::oDbfDataSet1:Matricula)
> :TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
> do while ::oDbfDataSet2:Matricula =::oDbfDataSet1:Matricula
> :TextOut(1050,400+n,substr(::oDbfDataSet2:fecha,7,2)+"-"+
> substr(::oDbfDataSet2:fecha,5,2))
> ::oDbfDataSet2:skip()
> n := n+50
> if n > 2350
> n := 100
> endif
> endd
> elseIF !::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
> :TextOut(100,400+n, ::oDbfDataSet1:Matricula)
> :TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
> :TextOut(875,400+n, ::oDbfDataSet1:telefono)
> n := n+50
> endif
> ::oDbfDataSet1:skip()
> enddo
>
> Alguien me podia hechar una mano para hacer esto con MySql.
> No tengo ni idea.
>
> Gracias
>
> Paco V
-
- Mensajes: 109
- Registrado: Lun Abr 02, 2007 10:12 am
Peleando
Paco,
Crea una SELECT que combine las tablas con INNER JOIN (o LEFT JOIN) y
olvidate de los SEEK.
Es el mismo caso que se le planteaba a Juanjo cuando nos reunimos en
Miranda.
Saludos
Jose Alfonso Suarez Moreno
"Paco V" <ssi@ono.com> escribió en el mensaje
news:46441316$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
> Hasta hace unos dias, trabajaba con DBF. Ahora estoy cambiando a MySql.
> Yo hacia esto para obtener un informe que combinaba las dos dbf:
>
> DO WHILE !::oDbfDataset1:eof()
> IF ::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
> :TextOut(100,400+n, ::oDbfDataSet1:Matricula)
> :TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
> do while ::oDbfDataSet2:Matricula =::oDbfDataSet1:Matricula
> :TextOut(1050,400+n,substr(::oDbfDataSet2:fecha,7,2)+"-"+
> substr(::oDbfDataSet2:fecha,5,2))
> ::oDbfDataSet2:skip()
> n := n+50
> if n > 2350
> n := 100
> endif
> endd
> elseIF !::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
> :TextOut(100,400+n, ::oDbfDataSet1:Matricula)
> :TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
> :TextOut(875,400+n, ::oDbfDataSet1:telefono)
> n := n+50
> endif
> ::oDbfDataSet1:skip()
> enddo
>
> Alguien me podia hechar una mano para hacer esto con MySql.
> No tengo ni idea.
>
> Gracias
>
> Paco V
Crea una SELECT que combine las tablas con INNER JOIN (o LEFT JOIN) y
olvidate de los SEEK.
Es el mismo caso que se le planteaba a Juanjo cuando nos reunimos en
Miranda.
Saludos
Jose Alfonso Suarez Moreno
"Paco V" <ssi@ono.com> escribió en el mensaje
news:46441316$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
> Hasta hace unos dias, trabajaba con DBF. Ahora estoy cambiando a MySql.
> Yo hacia esto para obtener un informe que combinaba las dos dbf:
>
> DO WHILE !::oDbfDataset1:eof()
> IF ::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
> :TextOut(100,400+n, ::oDbfDataSet1:Matricula)
> :TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
> do while ::oDbfDataSet2:Matricula =::oDbfDataSet1:Matricula
> :TextOut(1050,400+n,substr(::oDbfDataSet2:fecha,7,2)+"-"+
> substr(::oDbfDataSet2:fecha,5,2))
> ::oDbfDataSet2:skip()
> n := n+50
> if n > 2350
> n := 100
> endif
> endd
> elseIF !::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
> :TextOut(100,400+n, ::oDbfDataSet1:Matricula)
> :TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
> :TextOut(875,400+n, ::oDbfDataSet1:telefono)
> n := n+50
> endif
> ::oDbfDataSet1:skip()
> enddo
>
> Alguien me podia hechar una mano para hacer esto con MySql.
> No tengo ni idea.
>
> Gracias
>
> Paco V
Peleando
Xevi, era un recorte de un buen rollo.
Gracias.
Paco V
"Xevi" <xevicomas@gmail.com> wrote:
>Paco,
>
>En tu condicionante IF...ELSE...ENDIF, estás repitiendo la búsqueda de
>:Matrícula.
>
>En else puedes sacarle ... IF !::oDbfDataSet2:Seek(
>::oDbfDataSet1:Matricula)
>pues ya lo has comprobado en IF y si no IF será ELSE... ¿no crees???
>
>Para MySql, no me he metido en ello, pero son mis deberes a corto...
>Creo que el planteamiento de este informe deberías cargarlo antes en un
>recorset que haga referencia a las dos tablas.
>
>Pero esto seguro que alguien entendido en SQL te lo aclara.
>
>Un Saludo,
>Xevi.
>
>
>"Paco V" <ssi@ono.com> escribió en el mensaje
>news:46441316$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>
>> Hasta hace unos dias, trabajaba con DBF. Ahora estoy cambiando a MySql.
>> Yo hacia esto para obtener un informe que combinaba las dos dbf:
>>
>> DO WHILE !::oDbfDataset1:eof()
>> IF ::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
>> :TextOut(100,400+n, ::oDbfDataSet1:Matricula)
>> :TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
>> do while ::oDbfDataSet2:Matricula =::oDbfDataSet1:Matricula
>> :TextOut(1050,400+n,substr(::oDbfDataSet2:fecha,7,2)+"-"+
>> substr(::oDbfDataSet2:fecha,5,2))
>> ::oDbfDataSet2:skip()
>> n := n+50
>> if n > 2350
>> n := 100
>> endif
>> endd
>> elseIF !::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
>> :TextOut(100,400+n, ::oDbfDataSet1:Matricula)
>> :TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
>> :TextOut(875,400+n, ::oDbfDataSet1:telefono)
>> n := n+50
>> endif
>> ::oDbfDataSet1:skip()
>> enddo
>>
>> Alguien me podia hechar una mano para hacer esto con MySql.
>> No tengo ni idea.
>>
>> Gracias
>>
>> Paco V
>
>
Gracias.
Paco V
"Xevi" <xevicomas@gmail.com> wrote:
>Paco,
>
>En tu condicionante IF...ELSE...ENDIF, estás repitiendo la búsqueda de
>:Matrícula.
>
>En else puedes sacarle ... IF !::oDbfDataSet2:Seek(
>::oDbfDataSet1:Matricula)
>pues ya lo has comprobado en IF y si no IF será ELSE... ¿no crees???
>
>Para MySql, no me he metido en ello, pero son mis deberes a corto...
>Creo que el planteamiento de este informe deberías cargarlo antes en un
>recorset que haga referencia a las dos tablas.
>
>Pero esto seguro que alguien entendido en SQL te lo aclara.
>
>Un Saludo,
>Xevi.
>
>
>"Paco V" <ssi@ono.com> escribió en el mensaje
>news:46441316$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>
>> Hasta hace unos dias, trabajaba con DBF. Ahora estoy cambiando a MySql.
>> Yo hacia esto para obtener un informe que combinaba las dos dbf:
>>
>> DO WHILE !::oDbfDataset1:eof()
>> IF ::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
>> :TextOut(100,400+n, ::oDbfDataSet1:Matricula)
>> :TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
>> do while ::oDbfDataSet2:Matricula =::oDbfDataSet1:Matricula
>> :TextOut(1050,400+n,substr(::oDbfDataSet2:fecha,7,2)+"-"+
>> substr(::oDbfDataSet2:fecha,5,2))
>> ::oDbfDataSet2:skip()
>> n := n+50
>> if n > 2350
>> n := 100
>> endif
>> endd
>> elseIF !::oDbfDataSet2:Seek( ::oDbfDataSet1:Matricula)
>> :TextOut(100,400+n, ::oDbfDataSet1:Matricula)
>> :TextOut(275,400+n, substr(::oDbfDataSet1:Nombre,1,25))
>> :TextOut(875,400+n, ::oDbfDataSet1:telefono)
>> n := n+50
>> endif
>> ::oDbfDataSet1:skip()
>> enddo
>>
>> Alguien me podia hechar una mano para hacer esto con MySql.
>> No tengo ni idea.
>>
>> Gracias
>>
>> Paco V
>
>