• Viernes 29 de Marzo de 2024, 14:37

Autor Tema:  Datawindows Seleccion  (Leído 5745 veces)

jorge2007

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Datawindows Seleccion
« en: Miércoles 20 de Junio de 2007, 22:08 »
0
Hola como estan necesito que me ayuden necesito pasar todos los datos ingresados en dw_1  a dw_2 .
y luego de copiar todo el dw_1 limpiarlos para seguir ingresando datos.



Muchas gracias por su ayuda.


Jorge.


 :hola:

Jhois

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Datawindows Seleccion
« Respuesta #1 en: Miércoles 20 de Junio de 2007, 23:13 »
0
:rolleyes: Hola, talvés intentaste con un for next? para co                                                                                                                                                                                                                    piar los datos?

no sé si te pueda ayudar esto, no sé si haya otra manera más corta, pero pon primero variables a cada columna

Código: Text
  1.  
  2. string nombre, apellido, ciudad
  3. decimal sueldo
  4. long nRow
  5.  
  6. nRow=dw_1.rowcount()
  7.  
  8. for i=1 to nRow
  9. nombre = dw_1.getitemstring(i, "nombre")
  10. dw_2.setitem(i,"nombre1",nombre)
  11.  
  12. apellido = dw_1.getitemstring(i, "apellido")
  13. dw_2.setitem(i,"apellido1",apellido)
  14.  
  15. ciudad = dw_1.getitemstring(i, "ciudad")
  16. dw_2.setitem(i,"ciudad1",ciudad)
  17.  
  18. sueldo = dw_1.getitemdecimal(i, "sueldo")
  19. dw_2.setitem(i,"sueldo1",sueldo)
  20. next
  21.  
  22. //borro todas las filas de 'dw_1'
  23.  
  24. for i=0 to nRow
  25.    dw_1.deleteRow(i)
  26. next  
  27.  
  28. // ACTUALIZO TODAS LAS TABLAS
  29.  
  30. //actualizamos dw_1
  31. dw_1.SetTransObject(SQLCA)
  32. dw_1.update()
  33. commit;
  34.  
  35. //actualizamos dw_2
  36. dw_2.SetTransObject(SQLCA)
  37. dw_2.update()
  38. commit;
  39.  
  40. //actualizar listas
  41. close(w_cliente)
  42. open(w_cliente)
  43.  
  44.  

Prueba, y me dices si así te funciona. Talvés haya otra manera..

Hazmela saber

achafio

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
    • http://www.achafio.midire.com
Re: Datawindows Seleccion
« Respuesta #2 en: Jueves 21 de Junio de 2007, 16:53 »
0
Long ll_fila
for i=1 to dw_1.RowCount()
   ll_fila = dw_2.InsertRow(0)
   dw_2.SetItem(ll_fila,"campo_1",dw_1.GetItemString(i,"campo_1")
   dw_2.SetItem(ll_fila,"campo_2",dw_1.GetItemString(i,"campo_2")
   dw_2.SetItem(ll_fila,"campo_3",dw_1.GetItemString(i,"campo_3")
next

dw_1.RowsMove(1, dw_1.DeletedCount(), Delete!,dw_1, 1, Primary!)

Con eso es suficiente, espero te sirva.
Alberto Chafio Herrera
Bach. en Ingenieria de Sistemas e Informatica
(01) 95366038
Lima - Peru
<a href=\'mailto]achafio@gmail.com[/color]</a>

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Datawindows Seleccion
« Respuesta #3 en: Viernes 22 de Junio de 2007, 10:49 »
0
Tambien puedes usar RowsCopy

http://manuals.sybase.com/onlinebooks/grou...3015;pt=63898/*

y para 'limpiar' puedes usar

Reset

Código: Text
  1. dw.reset()
  2.  



Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Jhois

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Datawindows Seleccion
« Respuesta #4 en: Viernes 22 de Junio de 2007, 14:13 »
0
Hola, talvés aquí me haga caso F-Tanori o alguien que sepa... :(

Me puedes responder a mi pregunta?

Cómo inserto una fila entre filas de una tabla que ya está llena?

Por favor... Sí hay cómo pero no sé cómo!

Gracias

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Datawindows Seleccion
« Respuesta #5 en: Viernes 22 de Junio de 2007, 19:04 »
0
:P


Hola tengo una pregunta para ti, la tabla que estas actualizando tiene un campo autonumerico?


Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Jhois

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Datawindows Seleccion
« Respuesta #6 en: Viernes 22 de Junio de 2007, 22:36 »
0
:hola: Hola F-Tanori!!  :wub:

Bueno pues, no. Lo único que tengo son campos correspondientes a un libro diario..

Es decir, fecha(texto), detalle(texto), debe(decimal) y haber(decimal).

 :ayuda: Y no me deja ingresar!!! :ouch:

gracias

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Datawindows Seleccion
« Respuesta #7 en: Viernes 22 de Junio de 2007, 22:51 »
0
Hola ;) ( :P)

¿que version PB estas utilizando?

¿que base de datos estas utilizando?

¿que tipo de conexion estas utilizando?

¿Puedes colocar tu codigo, y la estructura de tu tabla?

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Jhois

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Datawindows Seleccion
« Respuesta #8 en: Sábado 23 de Junio de 2007, 05:14 »
0
Hola :)

Citar
¿que version PB estas utilizando?

Bueno, yo abri una discusión explicandole a ud, casi todo, incluso le envié un mail, no se me regreso, pero no sé si le llegaría. Bueno, utilizo PB 9.0 Build 5507

Citar
¿que base de datos estas utilizando?

Bueno ahora sólo estoy utilizando Access, porque es un programa de prueba, pero luego utilizaré SQL

Citar
¿que tipo de conexion estas utilizando?
La default para access, talvés te refieras a eso

Citar
¿Puedes colocar tu codigo, y la estructura de tu tabla?

Bueno en un botón que se llama insertar estoy poniendo esto:

 
Código: Text
  1.  
  2. Integer i
  3.  
  4. //controlo que exista registros
  5. if dw_libro.RowCount()=0 then return
  6.  
  7. if dw_libro.enabled = true  then
  8. // confirmo
  9. if messagebox(&#34;Insertar&#34;,&#34;Desea insertar comentario sobre la fila &#34; + String(dw_libro.GetRow()) + &#34; del libro diario?&#34;,question!, YesNo!,1)=2 then return
  10. // inserto
  11. gb_comen.visible=true
  12. cb_3.visible=true
  13. em_comen.visible=true
  14. em_comen.setfocus( )
  15. else
  16.   return
  17. end if
  18.  
  19.  

entonces se me habilita un cuadro de texto para escribir un comentario, y al hacer clic en otro boton ingresar:

Código: Text
  1.  
  2. long nrow,rowss
  3. decimal valor
  4. valor = 0
  5.  
  6. rowss = dw_libro.find(&#34;detalles=''&#34;,1,dw_libro.RowCount())  
  7.   nRow=dw_libro.insertrow(dw_libro.GetRow())
  8.   dw_libro.setitem(nRow, &#34;Detalles&#34;, em_comen.text)
  9.   dw_libro.setitem(nRow, &#34;debe&#34;, valor)
  10.   dw_libro.setitem(nRow, &#34;haber&#34;, valor)
  11.   gb_comen.visible=false
  12.   cb_3.visible=false
  13.   em_comen.visible=false
  14.  
  15.  

ahi se me inserta en donde quiero, pero al grabar:

Código: Text
  1.  
  2. Integer i
  3.  
  4. //controlo que exista registros
  5. if dw_libro.RowCount()=0 then return
  6.  
  7. if dw_libro.enabled = true  then
  8. // confirmo
  9. if messagebox(&#34;Grabar&#34;,&#34;Desea grabar con este comentario?&#34;,question!, YesNo!,1)=2 then
  10.   close(w_libro_diario)
  11.   open(w_libro_diario)
  12.   return
  13. else
  14. //actualizo
  15. dw_libro.settransobject(sqlca)
  16. dw_libro.update()
  17.  
  18. //actualizo listas
  19. close(w_libro_diario)
  20. open(w_libro_diario)
  21. end if
  22. end if
  23.  
  24.  

se me ubica al final de la tabla, y no quiero eso, quiero que se me quede ahi...

como dije, la fecha y detalles es tipo texto, debe y haber como double...
no se, estoy aprendiendo aun, pero no puedo insertar...Ayudame

Saludos

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Datawindows Seleccion
« Respuesta #9 en: Sábado 23 de Junio de 2007, 08:13 »
0
Cita de: "Jhois"
Hola :)

Citar
¿que version PB estas utilizando?

Bueno, yo abri una discusión explicandole a ud, casi todo, incluso le envié un mail, no se me regreso, pero no sé si le llegaría. Bueno, utilizo PB 9.0 Build 5507

 :blink: , no se a que te refieres, yo no recibi ningun correo, estoy seguro que ese es el motivo del porque no recibiste respuesta :P

por lo del problema pues, resulta bastante logico, lo que hace el dw es insertar un nuevo registro visualmente esta en la posicion que tu lo indicas pero al ejecutar el metodo update() como es un nuevo registro pues no hace un UPDATE sino un INSERT y lo hace pues donde debe de ir al final de la tabla :P

tendrias que "mover" todos los registros que deban quedar debajo del nuevo  lo cual serian muchas transacciones pues yo nunca he visto una instruccion para Insertar en determinada posicion de la tabla  &lt;_&lt;


mi sugerencia seria lo siguiente crear un campo para dar el orden de las filas

ejemplo

en access creando el campo orden que servira para establecer la prioridad y posicion en el DW

Citar
fecha, debe,haber,orden

y el dw lo ordenas asc por el campo orden para que el retrieve te los traiga ordenados

a la hora de insertar un nuevo registro reenumeras las filas para que te actualice el campo orden

espero haberme explicado


Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Jhois

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Datawindows Seleccion
« Respuesta #10 en: Sábado 23 de Junio de 2007, 17:49 »
0
Hola, sabes que muchas gracias, no lo había pensado de esa manera... :kicking:

Lo voy a hacer ahora, y cualquier cosa te aviso, yo sé que sí vale porque en otros tabla si reenumero, pero no me lo imaginé hacer en esta tabla, la verdad. :rolleyes:

Muchas gracias... :angel:  Eres joven y sabes mucho, te felicito.... :suerte:  Ojalá te pueda seguir pidiendo ayuda...

Espero no molestarte mucho, talvés son tontería y pequeñeces, :(  pero no se me ocurren... GRacias otra vez.. :gracias: Quiero aprender muchas más cosas...

Cuidate y chau :wub:

Jhois :comp: