PDA

Ver la Versión Completa : Asignar valores a campos de una tabla en un cxGrid


cmfab
12-09-2012, 01:35:56
Hola a todos, en especial a los amigos que usan las devexpress. resulta que tengo en un cxgrid una vista editable de una tabla, cuyos campos son de tipo string. en un combobox en el form tengo una serie de items que son posibles datos de los campos de mi tabla. la pregunta es: como puedo hacer una multiseleccion de celdas de la vista y al presionar un boton poder asignar a todas el valor del item seleccionado en el combobox ?

Gracias de antemano por las sugerencias

ecfisa
12-09-2012, 03:55:27
Hola cmfab.

No uso devexpress, pero quizá con poco puedas adaptar este código para un TDBGrid:

var
i: Integer;
begin
if (ComboBox1.ItemIndex >= 0)and(DBGrid1.SelectedRows.Count>0) then
begin
for i:= 0 to DBGrid1.SelectedRows.Count-1 do
begin
DBGrid1.DataSource.DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i]));
DBGrid1.DataSource.DataSet.Edit;
DBGrid1.DataSource.DataSet.FieldByName('tuCampo').AsString := ComboBox1.Items[ComboBox1.ItemIndex];
DBGrid1.DataSource.DataSet.Post;
end;
end;
end;

Lógicamente para que funcione debe estar: DBGrid1 -> Options -> dgMultiSelect = True

Saludos.

cmfab
12-09-2012, 13:46:01
Gracias ecfisa por tu respuesta, analizaré el código que propones, lo que detecto a simple vista es que la multiseleccion que aplicas parece ser para toda la fila. en mi caso, se seleccionarían x cantidad de celdas y habría que detectar el nombre del campo en cada celda seleccionada.

un saludo !!!!!