recorrer dos tablas

166 views
Skip to first unread message

eduardo martin Benavidez

unread,
May 4, 2019, 4:40:03 PM5/4/19
to Comunidad de Visual Foxpro en Español
Hola Grupo como estan necesito de suayuda estoy diseñando un sistema pequeño de prestamos personales y estoy en un dilema, tengo 2 tablas una principal donde cargo los datos del cliente y y los datos del credito 
tabla prestamos: 
numpres N (id del prestamo), 
dni, N (Id del Cliente)
fecpres, D (Fecha inicial del Credito)
imp, N (cantidad prestado)
cuotas N (cantidad de cuotas a devolver)
Impcuot N (Importe de las Cuotas)
Estado C (es el estado del mismo o sea si esta abierto o Cancelado), es aca donde necesito ayuda

la otra tabla es Detalle
idprest N (clave con la que se relaciona a la tabla Prestamo)
idcuota N (id del detalle)
cuota N (Aca se enumera la cuota ejemplo si el pago es en 2 cuotas el detalles seria cuota 1 cuota 2 etc)
Importe N (es el importe a pagar)
Fec_pago D (aca se registra la fecha del pago de cada cuota) 
Estado (aca indica si la cuota esta pendiente morosa o pagada)

el problema no se como hacer que me haga un scan en la tabla detalle y si todas las cuotas del prestamo estan pagadas que me coloque en el estado de la tabla Prestamo como Cancelado caso contrario que lo coloque como Abierto espero me hayan entendido,
desde ya muchas gracias.

Mik

unread,
May 4, 2019, 6:06:18 PM5/4/19
to Comunidad de Visual Foxpro en Español
Hola, te paso un pequeño codigo que quizá te ayude. 


LOCAL lCuotaPendiente AS Boolean
SELECT Prestamo
SCAN FOR Estado = 'Abierto'
SELECT Detalle
IF SEEK(Prestamo.NumPres)
SCAN FOR IdPrest = Prestamo.NumPres
IF Estado = 'Pendiente' OR Estado = 'Morosa' 
   lCuotaPendiente = .T.
   EXIT
ENDIF
ENDSCAN 
SELECT Prestamo
REPLACE Estado WITH IIF(lCuotaPendiente,'Abierto','Cancelado')
ENDIF
SELECT Prestamo
lCuotaPendiente = .F.
ENDSCAN

Saludos 

Miguel Herbias
LIMA-PERU

Víctor Hugo Espínola Domínguez

unread,
May 4, 2019, 6:57:30 PM5/4/19
to publice...@googlegroups.com
Prueba este código:

Local lcSelAbonados As String, ;
lcSelEstados As String, ;
lcUpdate As String

Create Cursor curPrestamos (NumPres I Autoinc, Cuotas I, Estado C(1))

Insert Into curPrestamos (Cuotas) Values (2)
Insert Into curPrestamos (Cuotas) Values (3)
Insert Into curPrestamos (Cuotas) Values (4)

Browse

Create Cursor curDetalles (IdPres I, Cuota N(12, 2), Estado C(1))

Insert Into curDetalles (IdPres, Cuota, Estado) Values (1, 1, "M")
Insert Into curDetalles (IdPres, Cuota, Estado) Values (1, 2, "P")

Insert Into curDetalles (IdPres, Cuota, Estado) Values (2, 1, "A")
Insert Into curDetalles (IdPres, Cuota, Estado) Values (2, 2, "A")
Insert Into curDetalles (IdPres, Cuota, Estado) Values (2, 3, "A")

Insert Into curDetalles (IdPres, Cuota, Estado) Values (3, 1, "A")
Insert Into curDetalles (IdPres, Cuota, Estado) Values (3, 2, "M")
Insert Into curDetalles (IdPres, Cuota, Estado) Values (3, 3, "M")
Insert Into curDetalles (IdPres, Cuota, Estado) Values (3, 4, "P")

Browse

Text To m.lcSelAbonados Noshow Textmerge Flags 1 Pretext 15

Select  IdPres
  , Count(Estado) As CuoAbonadas
From curDetalles
Group By IdPres
Where Estado = 'A'

Endtext

Execscript(m.lcSelAbonados)

Text To m.lcSelEstados Noshow Textmerge Flags 1 Pretext 15

Select  p.NumPres
  , Iif(Isnull(a.IdPres), 'A', 'C') As Estado
From curPrestamos p
Left Join (<<m.lcSelAbonados>>) As a
On p.NumPres = a.IdPres
And p.Cuotas = a.CuoAbonadas
Endtext

Execscript(m.lcSelEstados)

Text To m.lcUpdate Noshow Textmerge Flags 1 Pretext 15

Update curPrestamos
Set Estado = e.Estado
From (<<lcSelEstados>>) As e
Where curPrestamos.NumPres = e.NumPres

Endtext

Execscript(m.lcUpdate)

Select curPrestamos
Browse

Nota: Los Browse y Execscript intermedios son solo para facilitar la interpretación del código.

Saludos,
Víctor.
Lambaré - Paraguay.


Luis suescún

unread,
May 4, 2019, 8:00:20 PM5/4/19
to publice...@googlegroups.com
Tienes que recorrer las tablas, con query también lo harías 

eduardo martin Benavidez

unread,
May 5, 2019, 9:19:09 AM5/5/19
to publice...@googlegroups.com
muchas gracias a todos por su pronta respuesta probare con sus aportes y luego les comento

Luis suescún

unread,
May 5, 2019, 9:55:53 AM5/5/19
to publice...@googlegroups.com
Exacto, querys sin recorrer las tablas

eduardo martin Benavidez

unread,
May 5, 2019, 10:55:16 AM5/5/19
to publice...@googlegroups.com
Buenas amigo les comento que probé lo que me sugirieron y no logre lo que buscaba aca les dejo una guía de lo que deseo:
TABLA: PRESTAMOS TABLA: DETALLE
numpres fecha dni capital cuotas totalcuota estado numpres numcuota valorcuota fecini fpago estado idcuota
1 5/3/2019 24283052 50000 24 7000 Abierto 1 1 7000 28/4/2019 28/5/2019 Pagado 10
2 28/4/2019 26771727 10000 6 3500 Abierto 1 2 7000 28/4/2019 27/6/2019 Pagado 11
3 4/5/2019 24283052 10000 6 3000 Abierto 1 3 7000 28/4/2019 27/7/2019 Abierto 12
4 4/4/2019 26771727 3000 1 3450 Pagado 1 4 7000 28/4/2019 26/8/2019 Abierto 13
5 4/4/2019 26771727 3000 1 3450 Morosa 1 5 7000 28/4/2019 25/9/2019 Abierto 14
1 6 7000 28/4/2019 25/10/2019 Abierto 15
1 7 7000 28/4/2019 24/11/2019 Abierto 16

1 8 7000 28/4/2019 24/12/2019 Abierto 17
1 9 7000 28/4/2019 23/1/2020 Abierto 18
1 10 7000 28/4/2019 22/2/2020 Abierto 19
1 11 7000 28/4/2019 23/3/2020 Abierto 110
1 12 7000 28/4/2019 22/4/2020 Abierto 111
1 13 7000 28/4/2019 22/5/2020 Abierto 112
1 14 7000 28/4/2019 21/6/2020 Abierto 113
1 15 7000 28/4/2019 21/7/2020 Abierto 114
1 16 7000 28/4/2019 20/8/2020 Abierto 115
1 17 7000 28/4/2019 19/9/2020 Abierto 116
1 18 7000 28/4/2019 19/10/2020 Abierto 117
1 19 7000 28/4/2019 18/11/2020 Abierto 118
1 20 7000 28/4/2019 18/12/2020 Abierto 119
1 21 7000 28/4/2019 17/1/2021 Abierto 120
1 22 7000 28/4/2019 16/2/2021 Abierto 121
1 23 7000 28/4/2019 18/3/2021 Abierto 122
1 24 7000 28/4/2019 17/4/2021 Abierto 123
2 1 3500 28/4/2019 28/5/2019 Pagado 21
2 2 3500 28/4/2019 27/6/2019 Pagado 22
2 3 3500 28/4/2019 27/7/2019 Pagado 23
2 4 3500 28/4/2019 26/8/2019 Abierto 24
2 5 3500 28/4/2019 25/9/2019 Abierto 25
2 6 3500 28/4/2019 25/10/2019 Abierto 26
3 1 2250 4/5/2019 3/6/2019 Abierto 30
3 2 2250 4/5/2019 3/7/2019 Abierto 31
3 3 2250 4/5/2019 2/8/2019 Abierto 32
3 4 2250 4/5/2019 1/9/2019 Abierto 33
3 5 2250 4/5/2019 1/10/2019 Abierto 34
3 6 2250 4/5/2019 5/11/2019 Abierto 35
4 1 3450 4/4/2019 3/5/2019 Pagado 40
5 1 3450 4/4/2019 3/5/2019 Morosa 40


1) Recorrer la tabla Detalle y verificar si el estado esta Abierta - Pagada - Morosa, debe recorrer tos las cuotas para ver su estado ejemplo si el préstamo  numero 1 que tiene 24 cuotas, una de ella no se pago que ponga en el estado de la tabla Prestamos "Abierto" siempre y cuando no se haya pasado la fecha de pago, en ese caso colocar en el Estado de Préstamo la palabra Morosa en el caso del préstamo numero 4 donde la cuota es una sola y se pago en el detalle, colocar en el estado de Prestamos "Cancelado"

2) tener en cuenta que también pueden contener campos vacíos en el detalle, en ese caso se debe verificar la fecha de pago, si esta vacía y se debió pagar poner como Morosa

Espero me hayan comprendido muchas gracias.

Luis suescún

unread,
May 5, 2019, 11:09:05 AM5/5/19
to publice...@googlegroups.com
Eduardo, revisa bien y adapta a tu necesidad el ejemplo que te pasó Víctor Hugo, es una muy buena sugerencia, adaptado a tus tablas y campos debe funcionar....

Ing. Bernardo José Martínez Pérez

unread,
May 5, 2019, 12:50:20 PM5/5/19
to publice...@googlegroups.com

En la tabla donde tienes los datos del crédito, crea un campo denominado saldo insoluto en el cual siempre tendrás el importe total de lo pendiente por pagar (lo actualizas cada vez que realicen un pago, su valor inicial es igual al importe del crédito), cuando sea 0 el crédito estará liquidado, mientras estará activo y sabrás cuanto ya te pagaron mediante la diferencia de ambos campos.

 

Espero te sea de utilidad.

 

Saludos.

 

Enviado desde Correo para Windows 10

 


De: publice...@googlegroups.com <publice...@googlegroups.com> en nombre de eduardo martin Benavidez <embenav...@gmail.com>
Enviado: Sunday, May 5, 2019 8:18:40 AM
Para: publice...@googlegroups.com
Asunto: Re: [vfp] recorrer dos tablas
 

Luis suescún

unread,
May 5, 2019, 3:57:03 PM5/5/19
to publice...@googlegroups.com
Eduardo mira, este es el mismo código que te pasó Victor Hugo Espinola, aca lo unico que hice fue adaptarlo a la estructura que pasas en el mensaje.
este script le quitas los execScript y los browse y lo conviertes en una función(despues que hagas las respectivas pruebas) y te debe quedar bien.
Obviamente no está libre de algún error pero es asunto que lo pruebes y nos hagas saber.


Local lcSelAbonados As String, ;
lcSelEstados As String, ;
lcUpdate As String



Text To m.lcSelAbonados Noshow Textmerge Flags 1 Pretext 15

Select  idprest
  , Count(Estado) As CuoAbonadas
From curDetalles
Group By IdPrest
Where Estado = 'Pagada' &&Asumiendo que Ese es el estado para una cuota pagada

Endtext

Execscript(m.lcSelAbonados) &&esta te daria una muestra de los id de prestamos y su numero de cuotas pagadas 

Text To m.lcSelEstados Noshow Textmerge Flags 1 Pretext 15

Select  p.NumPres
  , Iif(Isnull(a.IdPres), 0, CuoAbonadas) As Estado
From Prestamos p
Left Join (<<m.lcSelAbonados>>) As a
On p.NumPres = a.IdPrest
And p.Cuotas = a.CuoAbonadas
Endtext

Execscript(m.lcSelEstados) &&Solo muestra prestamosVsabonadas  

Text To m.lcUpdate Noshow Textmerge Flags 1 Pretext 15

Update Prestamos
Set Estado = iif(prestamos.cuotas=e.CuoAbonadas,'Cancelado','Abierto')
From (<<lcSelEstados>>) As e
Where Prestamos.NumPres = e.NumPres
Endtext

Execscript(m.lcUpdate)

Select curPrestamos
Browse

Muy buena la estructura que propone Victor. Es genial.

Luis suescún

unread,
May 5, 2019, 4:09:23 PM5/5/19
to publice...@googlegroups.com
mejor este Eduardo

Select  idprest
  , Count(Estado) As CuoAbonadas
From Detalles
Group By IdPrest
Where Estado = 'Pagada' &&Asumiendo que Ese es el estado para una cuota pagada

Endtext

Execscript(m.lcSelAbonados) &&esta te daria una muestra de los id de prestamos y su numero de cuotas pagadas 

Text To m.lcSelEstados Noshow Textmerge Flags 1 Pretext 15

Select  p.NumPres
  , Iif(Isnull(a.IdPres), 0, CuoAbonadas) As Estado
From Prestamos p
Left Join (<<m.lcSelAbonados>>) As a
On p.NumPres = a.IdPrest
And p.Cuotas = a.CuoAbonadas
Endtext

Execscript(m.lcSelEstados) &&Solo muestra prestamosVsabonadas  

Text To m.lcUpdate Noshow Textmerge Flags 1 Pretext 15

Update Prestamos
Set Estado = iif(prestamos.cuotas=e.CuoAbonadas,'Cancelado','Abierto')
From (<<lcSelEstados>>) As e
Where Prestamos.NumPres = e.NumPres
Endtext

Execscript(m.lcUpdate)

Select curPrestamos
Browse

la pequeña diferencia es el nombre de tu tabla de detalles de cuotas.

El sáb., 4 de may. de 2019 a la(s) 15:40, eduardo martin Benavidez (embenav...@gmail.com) escribió:

eduardo martin Benavidez

unread,
May 5, 2019, 9:35:18 PM5/5/19
to publice...@googlegroups.com
muchisimas gracias a todos por ser tan amables mañana pruebo los codigos y les comento
Message has been deleted
Message has been deleted

Juan Manuel Féliz Jimenez

unread,
May 6, 2019, 10:29:50 AM5/6/19
to Comunidad de Visual Foxpro en Español
Prueba con este proceso sencillo 

Select Prestamos
Scan For Estado != "Pagado"
     Store numpres to m.numpres
     
        
        Select * From Detalle Where idprest = m.numpres And Estado <> "Pagado" Into Cursor TmpDetalle
       
       * Solo Cambio el Estado si Tiene todo el detalle Pagado, Pero si quiere que se cambie en todo los caso solo habilita el comentario 
        If _Tally = 0
            Select Prestamos
            Replace Estado With "Pagado"  &&"Cancelado'
*        else
*            Select Prestamos
*           Replace Estado With "Abierto" 
       Endif
       
       Use in TmpDetalle

        Select Prestamos
EndScan


Carlos Miguel FARIAS

unread,
May 6, 2019, 11:46:47 AM5/6/19
to Grupo Fox
Suponiendo que cuando otorgas un préstamo generas todas las cuotas:

UPDATE Prestamos SET Estado = "Cancelado";
    WHERE numpres NOT IN (SELECT DISTINCT idprest FROM Detalle WHERE Detalle.Estado != "Pagada")

El select de la subconsulta genera una lista de préstamos que tienen alguna cuota sin pagar (en mora o impaga)
Como cada préstamo puede tener más de una cuota impaga, el DISTINCT elimina los duplicados (para acelerar  el proceso posterior)
Un préstamo está cancelado si no figura en la subconsulta.
Para probar, sugiero trabajar sobre copias de seguridad, luego probar la subconsulta y ver si retorna bien los resultados,
luego probar todo junto.
El código es sin garantía. O en todo caso reclamar a Mon Toto

Saludos: Miguel

Luis suescún

unread,
May 6, 2019, 11:54:34 AM5/6/19
to publice...@googlegroups.com
Pero es que debe validar si ya completo el número de cuotas... 

Carlos Miguel FARIAS

unread,
May 6, 2019, 12:32:03 PM5/6/19
to Grupo Fox
Por eso indique que suponía que generaba todas las cuotas al momento de generar el préstamo.
Si las cuotas las genera a medida que transcurren los meses

UPDATE Prestamos SET Estado = "Cancelado";
   WHERE numpres NOT IN (SELECT idpres FROM Detalle;
                             WHERE Pretamos.numpres = Detalle.idpres;
                             GROUP BY idpres HAVING COUNT(*) < Prestamos.Cuotas);
      AND numpres NOT IN (SELECT DISTINCT idprest FROM Detalle WHERE Detalle.Estado != "Pagada"))

la primer subconsulta retorna aquellos préstamos que no tienen generadas todas las cuotas.
La segunda consulta genera la lista de todos los préstamos que tienen alguna cuota sin pagar.
También se puede escribir como.

UPDATE Prestamos SET Estado = "Cancelado";
   WHERE numpres NOT IN (SELECT idpres FROM Detalle;
                             WHERE Pretamos.numpres = Detalle.idpres;
                             GROUP BY idpres HAVING COUNT(*) < Prestamos.Cuotas;
                         UNION;  
                         SELECT idprest FROM Detalle WHERE Detalle.Estado != "Pagada")

La cláusula UNION elimina los duplicados, esto va a ser más lento porque el primer select en subconsultas debe ejecutarse para cada préstamo.
También, puedes generar un cursor intermedio para la 2da subconsulta y luego actualizar emparejando el UPDATE contra ese cursor y la otra subconsulta.
Saludos Miguel

P.D. SEUO


Luis suescún

unread,
May 6, 2019, 12:37:25 PM5/6/19
to publice...@googlegroups.com
Carlos se nota que las.cuotas las genera todas al inicio del préstamo pero queda para determinar después de cumplida las.fechas de cancelación de la cuota  si se cancela o si queda pendiente ...

eduardo martin Benavidez

unread,
May 6, 2019, 1:55:59 PM5/6/19
to publice...@googlegroups.com
Si amigos efectivamente mi proceso genera todas las cuotas al momento de otorgar el préstamos he estado probando sus aportes y creo que estoy encontrando lo que busco utilizando el código de Luis al ejecutarlo en modo de edición funciona pero en modo de ejecución no pasa nada o me tira errores el tema es que  cuando utilizo el flag en la sentencia execsxript supongo que el flag 2 indica la cantidad de caracteres en la función text en fin seguiré probando desde ya agradezco sus aportes cada día aprendo más de Uds
In saludo muy grande

Luis suescún

unread,
May 6, 2019, 2:26:29 PM5/6/19
to publice...@googlegroups.com
No es mi código Eduardo, es de Víctor, yo solo lo ajuste a tu estructura que nos pasas..
Si en pruebas te está funcionando en producción tbien debe funcionar, solo debes dejar el ultimo execscript...

eduardo martin Benavidez

unread,
May 6, 2019, 2:31:16 PM5/6/19
to publice...@googlegroups.com
Perdón tienes razón perfecto ya lo pruebo y les comento muchas gracias 

eduardo martin Benavidez

unread,
May 6, 2019, 8:53:10 PM5/6/19
to publice...@googlegroups.com
Buenas noches Comunidad les comento que de tanto probar sus aportes el que mas me funciono es el publicado Carlos Farias el cual es el siguiente:
UPDATE Prestamos SET Estado = "Cancelado";
    WHERE numpres NOT IN (SELECT DISTINCT idprest FROM Detalle WHERE Detalle.Estado != "Pagada"), pero necesito no solo que me actualice el prestamo como cancelado sino tambien que me haga lo mismo con las cuotas morosas es decir yo tengo una subrutina en donde en el detalle me coloca la cuota como morosa si la fecha de pago es menor a la fecha actual en la tabla detalle me coloca la cuota como morosa la idea es hacer lo mismo con la rutina de la cancelacion que me coloque en el estado del prestamo como moroso espero me puedan ayudar con esto muchas gracias a todos

Libre de virus. www.avast.com

Libre de virus. www.avast.com

Carlos Miguel FARIAS

unread,
May 6, 2019, 9:14:18 PM5/6/19
to Grupo Fox
No veo la fecha actual en la tabla detalle, solo la fecha de inicio y la fecha de pago.
Si la cuota se pagó fuera de término, es un pago atrasado, pero no es moroso. (Eso al menos desde mi criterio).
En los pagos atrasados se cobran intereses por atraso, o tiempo de mora (que es lo que demora en pagar después del vencimiento).
Podrías reescribir el último requerimiento? E indicar donde están los datos correspondientes.
Pero estimo que deberás correr primero el que actualiza los estados de las cuotas y luego el que actualiza los estados de los préstamos.
Saludos: Miguel
P.D. Estoy complicado con los tiempos, recién podré dar otra respuesta mañana a la tarde.

eduardo martin Benavidez

unread,
May 6, 2019, 10:40:23 PM5/6/19
to publice...@googlegroups.com
Gracias amigo por tu respuesta la lógica que ocupó es primero cargo la cabecera del préstamo allí se carga los datos del préstamo en el detalle van las cuotas del mismo en este caso no cobramos intereses por mora ya que los pago se hacen automáticamente por débito la fecha que tomó para comparar la morosidad es la del sistema ya que depende aveces del sueldo del cliente si no está muy pasado el banco no nos permite cobrar el 100 % siempre queda un saldo que se cobraría en la seg quincena pero yo necesito saber  cuál es crédito que no se pudo cobrar con normalidad en la primera quincena para procesar la liquidación del saldo

eduardo martin Benavidez

unread,
May 6, 2019, 10:46:17 PM5/6/19
to publice...@googlegroups.com
Ahora bien lo que necesito es que en el estado del préstamo me actualicé CANCELADO Ó ABIERTO O MOROSO esos son los Estados válidos para poder hacer la consulta.  Si las cuotas del detalle están todas pagadas que en el estado del préstamo diga CANCELADO ahora si existen cuotas a pagar en el detalle pero que no están morosas diga en el estado del préstamo ABIERTO. Ahora si una de las cuotas del detalle figure como morosas debido a que no entró el  pago en la fecha indicada que coloque en el estado de préstamo como MOROSO de esta forma puedo saber que crédito o que cuota debo reclamar al Banco el saldo de la mismas

Víctor Hugo Espínola Domínguez

unread,
May 7, 2019, 1:03:00 AM5/7/19
to publice...@googlegroups.com
Local lcSelEstados As String,  ;
lcSelPagPenMor As String,  ;
lcUpdate As String

Create Cursor curPrestamos (NumPres I Autoinc, Cuotas I, Estado C(10))

Insert Into curPrestamos (Cuotas) Values (2)
Insert Into curPrestamos (Cuotas) Values (3)
Insert Into curPrestamos (Cuotas) Values (4)

Browse


Create Cursor curDetalles (IdPres I, Cuota N(12, 2), Estado C(10))

Insert Into curDetalles (IdPres, Cuota, Estado) Values (1, 1, "Moroso")
Insert Into curDetalles (IdPres, Cuota, Estado) Values (1, 2, "Abierto")

Insert Into curDetalles (IdPres, Cuota, Estado) Values (2, 1, "Pagado")
Insert Into curDetalles (IdPres, Cuota, Estado) Values (2, 2, "Pagado")
Insert Into curDetalles (IdPres, Cuota, Estado) Values (2, 3, "Pagado")

Insert Into curDetalles (IdPres, Cuota, Estado) Values (3, 1, "Pagado")
Insert Into curDetalles (IdPres, Cuota, Estado) Values (3, 2, "Pagado")
Insert Into curDetalles (IdPres, Cuota, Estado) Values (3, 3, "Pagado")
Insert Into curDetalles (IdPres, Cuota, Estado) Values (3, 4, "Pendiente")

Browse

Text To m.lcSelPagPenMor Noshow Textmerge Flags 1 Pretext 15

Select  IdPres
  , Sum(Iif(Estado = 'Pagado', 1, 0)) As CuoPagadas
  , Sum(Iif(Estado = 'Pendiente', 1, 0)) As CuoPendientes
  , Sum(Iif(Estado = 'Moroso', 1, 0)) As CuoMorosas
From curDetalles
Group By IdPres

Endtext

Execscript(m.lcSelPagPenMor)

Text To m.lcSelEstados Noshow Textmerge Flags 1 Pretext 15

Select  p.NumPres
  , Icase(p.Cuotas = ppm.CuoPagadas, 'Pagado'
, ppm.CuoMorosas > 0, 'Moroso'
, 'Pendientes') As Estado
From curPrestamos p
Left Join (<<m.lcSelPagPenMor>>) As ppm
On p.NumPres = ppm.IdPres
Endtext

Execscript(m.lcSelEstados)

Cancel

Text To m.lcUpdate Noshow Textmerge Flags 1 Pretext 15

Update curPrestamos
Set Estado = e.Estado
From (<<lcSelEstados>>) As e
Where curPrestamos.NumPres = e.NumPres

Endtext

Execscript(m.lcUpdate)

Select curPrestamos
Browse

Saludos,
Víctor.
Lambaré - Paraguay.


eduardo martin Benavidez

unread,
May 7, 2019, 1:29:28 PM5/7/19
to Comunidad de Visual Foxpro en Español
Buenas tardes amigos del grupo, por la presente quiero agradecer infinitamente a todos por sus aportes me ha sido de mucha ayuda y de todos he aprendido y/o refrescado mis conceptos gracias a sus aportes he podido dar solución a mi problema, si me surge alguna otra duda les estaré molestando de nuevo y apenas termine mi proyecto lo subiré para compartirlo. Gracias a todos, un saludo desde la ciudad La Rioja Rep. Argentina

Luis suescún

unread,
May 7, 2019, 2:21:59 PM5/7/19
to publice...@googlegroups.com
Me alegra que hayas salido adelante con tu caso

--
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/80e23325-4e80-4976-b8af-c26ba57c7afd%40googlegroups.com.

Víctor Hugo Espínola Domínguez

unread,
May 7, 2019, 2:25:19 PM5/7/19
to publice...@googlegroups.com
Trata de familiarizarte con la técnica que mostré, está basada en un algoritmo romano muy antiguo "divide y vencerás" ;-)

Saludos,
Víctor.
Lambaré - Paraguay.


Luis suescún

unread,
May 7, 2019, 2:30:40 PM5/7/19
to publice...@googlegroups.com
Si señor....
Es excelente esa propuesta, yo le vi una bondad enorme 

Reply all
Reply to author
Forward
0 new messages