Eliminar items de un grid

110 views
Skip to first unread message

Anibal Alexander Carucí

unread,
Oct 4, 2020, 7:29:36 PM10/4/20
to Comunidad de Visual Foxpro en Español
Saludos, de antemano agradecido por su tiempo y dedicación a ayudar:
Tengo un grid en el cual agrego items
tipo factura
Código  Descripción         Cant  Precio  total
0001     Pollo con papas   1       2           2
0006     Arroz con pollo     2       3           6

el proceso agregar, esta marchando bien
ahora cuando quiero quitar un item allí es donde necesito de su siempre acertadas sugerencias

tengo un botón quitar items con este código

SELECT tb_tempvta
DELETE IN tb_tempvta
GO TOP IN tb_tempvta

thisform.actualizar_items()

en momentos elimina el items seleccionado del grid
pero hay momentos en donde no lo quita sin hacer clic dos veces en dicho items

agradecido por sus sugerencias con respecto al mejor método i/o forma de hacerlo de manera mas eficiente

Carlos Alfaro

unread,
Oct 4, 2020, 8:54:10 PM10/4/20
to publice...@googlegroups.com

Saludos cordiales estimado Anibal:

 

Te sugiero que antes del delete le asignes a la propiedad RecordSource = '' , asi de des asigna la relación con la tabla o cursor.

Despues de borrar el registro volves a asignar la tabla al grid con RecordSource = 'MiTabla'

 

Buen dia.

 

Carlos Alfaro

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
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/6b87d699-e353-46f9-9618-25bec16484f4o%40googlegroups.com.

ZeRoberto

unread,
Oct 4, 2020, 9:51:59 PM10/4/20
to publicesvfoxpro
Tienes que tener definido SET DELETE OFF, y hacer un refresh al grid.


Saludos 

Ze 






--

Antonio Meza

unread,
Oct 5, 2020, 9:45:38 AM10/5/20
to Comunidad de Visual Foxpro en Español
Siempre he usado este código y no he tenido problemas con el grid para eliminar y se muestren bien los registros, o cuando no hay seleccionado un registro no haga nada.

SELECT cotizaciones_detalles
IF EOF() OR BOF()
                                * No hace nada
ELSE
DELETE
GO top
thisform.grd_cotizaciones.SetFocus
thisform.grd_cotizaciones.Refresh
ENDIF

saludos
Antonio Meza

Anibal Alexander Carucí

unread,
Oct 5, 2020, 11:50:04 AM10/5/20
to Comunidad de Visual Foxpro en Español

Luis A. Francisco G.

unread,
Oct 5, 2020, 1:53:46 PM10/5/20
to publice...@googlegroups.com
con estas instrucciones estarás actualizando el grid

select nombredelarchivo
go top
thisform.grid1.recordsource="nombredelaTabla"

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
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/6b87d699-e353-46f9-9618-25bec16484f4o%40googlegroups.com.


--
Luis Francisco

Zarlu

unread,
Oct 5, 2020, 2:07:13 PM10/5/20
to Comunidad de Visual Foxpro en Español
Buenas tardes anibal...@gmail.com!

Por lo que dices "...en momentos elimina el items seleccionado del grid..."
Entonces lo está eliminando y si tienes configurado SET DELETE en ON.
Y coincido con los compañeros  que pudiera estar faltando un Refresh()

SELECT tb_tempvta
DELETE IN tb_tempvta
GO TOP IN tb_tempvta
Thisform.Refresh&&o al grid ThisForm.Grid1.Refresh

Suerte
zarlu
Chetumal, Quintana Roo, México

Jorge Kiernan

unread,
Oct 6, 2020, 4:31:48 PM10/6/20
to publicesvfoxpro
Sugerencia.  Eliminar FISICAMENTE las líneas es muy drástico.
Es mejor solucion Incorporar una variable en el cursor , algo así como BAJA   L
Agrega al grid un  .SETALL('DYNAMICBACKCOLOR','IIF(BAJA = .T., RGB(200,200,200),RGB(255,255,255))')
Con eso al cambiar la variable BAJA el renglón de la grilla se pinta de gris.
El cambio de BAJA  de .t. a .f. y viceversa con ese botón, le permite al usuario sacar el renglón que no quiera, pero también reponerlo si se equivoco de renglón, lo cual es mas comun de lo que parece.
Luego en los procesos que sacan los totales en pantalla y que descargan los renglones de la factura, simplemente ignoras los BAJA = .T.  (O lo que es lo mismo , solo tomas en cuenta los BAJA = .F.) 
Espero que estas sugerencia te sean de utilidad.

Reply all
Reply to author
Forward
0 new messages