seleccionar toda la fila del grid

1,799 views
Skip to first unread message

Saul Piña Hernandez

unread,
Apr 4, 2013, 1:35:03 PM4/4/13
to publice...@googlegroups.com
se puede seleccionar toda la fila del grid?


thank you very much to all!

Luis Maria Guayan

unread,
Apr 4, 2013, 1:42:03 PM4/4/13
to publice...@googlegroups.com
No es muy claro lo que deseas hacer, quieres "seleccionar" o "resaltar" toda la fila de un Grid?

Ejecuta el siguiente ejemplo por si te sirve:

USE (HOME(2) + "\Northwind\Customers.dbf") IN SELECT("Customers") NOUPDATE
loForm = CREATEOBJECT("Form")
loForm.WINDOWSTATE = 2
loForm.ADDOBJECT("MiGrid","Grid")
WITH loForm.MiGrid
  .HIGHLIGHTBACKCOLOR = RGB(0,128,0)
  .HIGHLIGHTSTYLE = 2
  .ALLOWCELLSELECTION = .F.
  .RECORDSOURCE = "Customers"
  .WIDTH = loForm.WIDTH
  .HEIGHT = loForm.HEIGHT
  .ANCHOR = 15
  .VISIBLE = .T.
ENDWITH
loForm.SHOW(1)


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

El 04/04/2013 14:35, Saul Piña Hernandez escribió:

Saul Piña Hernandez

unread,
Apr 4, 2013, 1:59:00 PM4/4/13
to publice...@googlegroups.com
perdon maestro, lo que quiero decir es que quiero que cuando ingrese un dato en el grid se agrega una fila, bueno quiero que el cursor lo seleccione, porque debo escribir una condicion pero por el dato de la fila en cuestion, por ejemplo:

escaneo un producto y despues otro y asi susesivamente y se me muestra todo en las filas del grid, bueno, si quiero cambiar algun dato dentro del grid voy a buscar el codigo que escane para que cambie los datos del producto del mismo codigo segun la condicion.

Espero no confundirlo mas.

Es un punto de ventas y el cliente me pide precio de venta y precio por mayoreo (entonces en algun lado el cajero debe seleccionar que tipo de precio debe asignar)

Estoy trabajando con un check1 dentro del grid, pero éste siempre se activa cuando escaneo un producto anterior.

Ahora quiero cambiar la forma, que segun la fila seleccionada, cambie el precio de mayoreo y no aquellas en donde no se requiera.

gracias de nuevo.

ultraton500

unread,
Apr 4, 2013, 3:22:29 PM4/4/13
to publice...@googlegroups.com
Saul, tu explicación me confunde: 

" ...quiero que cuando ingrese un dato en el grid se agrega una fila... "

Para ello, luego de agregar un nuevo registro (si te refieres a un registro con "un dato"), solo debes hacer un thisform.grid.refresh y verás el nuevo registro en el grid.

 "...bueno quiero que el cursor lo seleccione,.." 

A qué te refieres con "cursor"?
- Si te refieres al puntero del registro solo deberías hacer

SELECT tabla
GO BOTTOM
thisform.grid.refresh

- Si te refieres a seleccionar el contenido de un control específico de una columna del grid deberías hacer

SELECT tabla
GO BOTTOM
thisform.grid.column1.text1.setfocus

(teniendo establecida la propiedad SelectAll para text1)

- Si te refieres a que se resalte con color toda la fila del grid deberías establecerle al grid las propiedades

Highlight = .T.
HighlightRow = .T.
HighlightStyle = 2


Espero te sea de ayuda, de lo contrario veremos cómo seguimos.

Saludos,
Javier.

Saul Piña Hernandez

unread,
Apr 4, 2013, 3:34:25 PM4/4/13
to publice...@googlegroups.com
Creo que los confundí más, perdon:

Te voy a decir que es lo que quiero:  Es una pantalla de ventas: entonces debo cambiar el precio de venta por precio de mayoreo, pero lo quiero hacer de acuerdo al codigo del producto, entonces como saber a cual producto cambiar el precio? por el codigo creo yo, y como saber el codigo del producto: pues que el usuario seleccione la fila y de ese modo hacer el cambio.

Aquí el asunto es que el usuario solo quiere que con un clic cambiar de precio de venta normal a mayoreo y si he visto que otro sistema lo hace, y yo nomas no he podido lograrlo.

Que tiene que hacer? cambiar el precio de mayoreo y quitarlo (y al quitarlo se devuelva el precio normal de venta) todo esto solo en el producto que se quiere realizar el cambio.


alguna idea?

ultraton500

unread,
Apr 4, 2013, 4:38:47 PM4/4/13
to publice...@googlegroups.com
Obviamente, para hacer cambios en un registro determinado de una tabla, el sistema debe darle al usuario la manera de hacer referencia a él, a menos que el programa pueda leer la mente del usuario.
Partiendo de esto la cosa es sencilla: los cambios se hacen en el registro cuyo id (código) es el mismo que el del registro de la tabla que se muestra en el grid.
Entonces si en el grid se encuentra resaltado un registro cuyo id es 5586 los cambios (en este caso el reemplazo del precio minorista por el precio mayorista) se van a hacer sobre el registro que cumpla la condición id=5586.
De esa manera las modificaciones se van a realizar sobre el registro que se está referenciando en el grid.
No olvides hacer un grid.refresh luego de las modificaciones para reflejar los cambios y recuerda que al ejecutar UPDATE (SQL) el puntero de la tabla modificada queda en el último registro.

Saludos,
Javier.
Reply all
Reply to author
Forward
0 new messages