Tengo un problema con dos listas en visual foxpro 9
Hola, bueno el problema es el siguiente, tengo dos listas en VFP en un mismo formulario y quiero poder hacer el contenido de ambas dinámico, me explico mejor, es decir, que yo pueda pasar elementos del rowsorce de una a la otra y viceversa. Pero que las que yo pase de un lado hacia el otro desaparezca del lado original. Gracias
1 Respuesta
Respuesta de davsoft
1
1
davsoft, Desarrollador con 10 años de experiencia en el area de Visual...
Por lo extenso que va ser la respuesta te prepare un ejemplo que aquí pego, copias y pones en un PRG y lo ejecutas, miras los eventos de los dos botones para ver como se hace el tema, el problema es que no me fije que habías mencionado list y yo hice en grid, pero lo único que cambiara es recordsource='' por rowsource='', y rowsourcetype=2, solo eso PUBLIC oform1 oform1=NEWOBJECT("form1") oform1.Show RETURN ************************************************** *-- Form: form1 (c:\util\vfp\todoexpertos\grid2.scx) *-- ParentClass: form *-- BaseClass: form * DEFINE CLASS form1 AS form Top = 62 Left = 86 Height = 300 Width = 815 DoCreate = .T. Caption = "Form1" Name = "Form1" ADD OBJECT grid1 AS grid WITH ; DeleteMark = .F., ; Height = 200, ; Left = 12, ; Top = 60, ; Width = 320, ; Name = "Grid1" ADD OBJECT grid2 AS grid WITH ; DeleteMark = .F., ; Height = 200, ; Left = 456, ; Top = 60, ; Width = 320, ; Name = "Grid2" ADD OBJECT command1 AS commandbutton WITH ; Top = 120, ; Left = 348, ; Height = 27, ; Width = 84, ; Caption = ">>", ; Name = "Command1" ADD OBJECT command2 AS commandbutton WITH ; Top = 148, ; Left = 348, ; Height = 27, ; Width = 84, ; Caption = "<<", ; Name = "Command2" PROCEDURE Load set delete on create cursor x(campo1 c(30)) for c=1 to 7 se le x append blank replace campo1 with cdow(date()+c) endfor go top create cursor y(campo1 c(30)) ENDPROC PROCEDURE grid1.Init this.recordsource = 'x' ENDPROC PROCEDURE grid2.Init this.recordsource = 'y' ENDPROC PROCEDURE command1.Click sele x xDato = campo1 delete se le y append blank replace campo1 with xDato ThisForm.Grid1.refresh ThisForm.Grid2.refresh ENDPROC PROCEDURE command2.Click sele y delete ThisForm.Grid2.refresh ENDPROC ENDDEFINE * *-- EndDefine: form1 **************************************************
Hola de nuevo, muchas gracias por la información me sirve de mucho para algo que estoy haciendo para la universidad, bueno esas listas la necesito para que el usuario puede organizar un reporte por las categorías que necesite y que pueda elegir más de una, ademas no sabia que se podía hacer un form solo con puro código es algo nuevo para mi. Bueno te cuidas y muchísimas gracias...