dbGrid insertar en fila y columna deseada un dato
Bueno me gustaria que me resolvieran una duda que tengo es que tengo un combox del cual selecciono uno de sus elementos y despues le presiono al boton para agregarlo a un dbgrid conectado a un query, pero no he podido insertar ningun elemento manual mas lo que inserta cuando muestro lo que obtiene el query, es decir, tengo tres columna en el dbgrid el usuario selecciona algo del combox y al presionar el boton que se agrege en la fila y columna deseada, no se si me explique bien en caso contrario diganmelo para tratar de expresarlo de otra manera, de ante mano les agradezco la molestia que se toman al tan solo leer;)
|
Seria bueno que colocaras el código que utilizas para que se te pueda ayudar.
Salud OS |
Normalmente debes pensar no en insertar en el DBGrid, sino en la fuente de Datos a la que está conectado el DBGrid.
En tu caso debes hacer el (APPEND..POST) en la Query o tabla que suministra los datos al DBGrid. |
La inserción de filas en la tabla
Si tu componente de consulta (query) no tiene posibilidad de agregar registros o filas a la tabla sería algo así:
En cambio, en otros componentes se puede incorporar la sentencia INSERT como una propiedad. De este modo se trabaja con APPEND... POST. como asi sugiere Neftali. También conviene que busques acerca de la propiedad RequestLive; y las instrucciones try... except, StartTransaction... Commit... Rollback. |
creo que no me explique bien, gracias por molestase
tengo:
DBGridventadetalle: TDBGrid; CBProductoID: TComboBox; CBnombre: TComboBox; CBprecio: TComboBox; BtnAgregarProducto: TButton; txtcantidaddeproducto: TEdit; y en el DBGridventadetalle tengo las columnas una para el ProductoID, cantidaddeproducto, precio, y total al momento que le doy click al boton btnagregarproducto quiero q me inserte lo que tengo seleccionado en el CBnombre , CBprecio, txtcantidaddeproducto y el ultimo campo obtenerlo mediante la multiplicacion de precio por cantidad procedure TfrmVenta0.BtnAgregarProductoClick(Sender: TObject); var text : string; lst : string; begin inherited; //DBGridventadetalle.Columns[1].DisplayName :='1aq12'; //DBGridventadetalle.Columns[1].PickList.add('0')//:='23s2'; //DBGridventadetalle.Columns[1].FieldName ('venta_id') := 'ksd'; //DBGridventadetalle.Columns.Items[0].Title.Caption := 'ksd'; //e estado haciendo esto pero no me ha insertado nada dbgridventadetalle.columns[1]. pienso que a de haber una opcion para agregar la fila ya q la columna ya esta seleccionada y ponerla en la propiedad de q sea una cadena de caracteres (asstring) o algun artificio = CBNombre.Items.ValueFromIndex[1]; end; de hecho al verlo muy detenidamente creo que sale sobrando el query por q solo requiro que lo que inserte en el dbgridventadetalle lo guarde en la base de datos al darle click a un boton si tendran unos tips para arreglar o utilizar otros componentes se los agradecere, pd soy algo nuevo en porgramacion en delphi y les pido que entre mas especificos en sus respuestas. Gracias a todos;) |
Paso a paso
Un TDBGrid muestra los datos obtenidos con una consulta TQuery o TTable asociada con un TDataSource. El TDataSource tiene una propiedad TDataSet donde va el nombre del TQuery o TTable. El TDBGrid tiene una propiedad TDataSource donde va el nombre del TDataSource asociado a la consulta. Por eso es que vale lo que escribí anteriormente. Pero ahora lo haré más específico.
Por otro lado, no se cómo piensas operar los datos obtenidos de los combos pues deberían ser numéricos. Yo trataré de obtenerlos de todos modos. :) |
|
La franja horaria es GMT +2. Ahora son las 19:03:30. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi