Ver la Versión Completa : Filtro en dbgrid
gianfranco_tont
12-02-2012, 16:07:36
Tengo un from con un dbgrid inegrado con un clientdataset, provaider y un datasouce y por supuesto una adotable, estoy trabajando con sqlserver. Mi pregunta es como hacho para que en una celda pueda yo filtrar y seleccionar atravez de un like los datos de otra tabla. Ejemplo en el grid de facturación debo poder seleccionar un producto de la tabla de producto y que me traiga en el grid el costo unitario, el codigo y la descripción del producto almacenado en la misma tabla.
Caral
12-02-2012, 16:29:08
Hola
El dbgrid MUESTRA el contenido de lo que necesites.
NO me parece buena practica mostrar el contenido de una tabla, cambiar un dato y mostrar el contenido de otra tabla.
Lo mas sencillo y logico es buscar el dato de otras maneras y si tienes que mostrarlos en ese dbrid hacerlo por lo menos con un masterdetail.
Saludos
gianfranco_tont
12-02-2012, 17:11:27
Eso ya se puso difícil, bueno realmente quisiera que dentro del grid en una celda en especifico el usuario pueda accionar el eclipse y abrir una consulta con un like y al seleccionar la linea de la consulta me traiga el codigo y la descripción para que el usuario coloque solo la cantidad.
Lo que tu me esta recomendando no tengo ni idea como hacerlo.
Oye! Gracias por tu pronta respuesta. Gracias a este foro estoy avanzando con mi programa.
Caral
12-02-2012, 17:14:48
Hola
Lo mas seguro es que no estoy entendiendo lo que necesitas hacer.
Saludos
gianfranco_tont
12-02-2012, 17:21:05
Tengo un from con un dbgrid inegrado con un clientdataset, provaider y un datasouce y por supuesto una adotable, estoy trabajando con sqlserver. Mi pregunta es como hacho para que en una celda pueda yo filtrar y seleccionar atravez de un like los datos de otra tabla. Ejemplo en el grid de facturación debo poder seleccionar un producto de la tabla de producto y que me traiga en el grid el costo unitario, el codigo y la descripción del producto almacenado en la misma tabla.
Quiero hacer un formulario de factura. Donde en el grid tengo: codigo, descripción, cantidad, total entre otros, ahora bien quiero que cuando el usuario ingrese al modulo de facturación y coloque el mouse en la columna codigo abra una consulta utilizando un like y cuando el usuario selecione la fila de la consulta me llene la celda codigo,descripción para que solo el usuario coloque la cantidad.
Caral
12-02-2012, 17:25:03
Hola
Creo que seria bueno que vieras este tutorial (http://www.delphiaccess.com/forum/tutoriales/tutorial-(como-hacer-un-programa-de-facturacion)/) que hice de facturacion, tal vez te de ideas.
Revisa la parte del uso que hago del dbgrid, creo que es mas logico.
Saludos
gianfranco_tont
12-02-2012, 18:06:39
Seguramente no me estoy explicando bien. Bueno pero puede decirme como hago para darle una función a buttonstyle cbsellipsis en una columna de un grid? Es allí donde quiero lograr lo que te comente. Al usuario presionar el cdsellipsis debe poder seleccionar un producto de una tabla y traerlo hasta el grid
Caral
12-02-2012, 20:37:15
Hola
If dbgrid1.Columns[0].ButtonStyle = cbsEllipsis then
showmessage('hola');
Saludos
Caral
12-02-2012, 21:35:11
Hola
Aqui te dejo un ejemplo de como usar el boton elipse que quieres, ademas de otras cosas.:)
En la primera columna, IDUsuario, esta el boton, si lo presionas saldra un form con un memo.
Es muy sencillo el uso, revisalo.
Saludos
Neftali
13-02-2012, 13:13:54
+1
Fantástico ejemplo Carlos.
Si no te molesta lo subo al FTP (http://terawiki.clubdelphi.com).
Caral
13-02-2012, 14:45:54
Hola
Con gusto amigo, aunque es un ejemplo sencillito, a lo novato.
Saludos
gianfranco_tont
13-02-2012, 18:15:50
Una pregunta?
Puedo usar un TDBLOOKUPCOMBO o TDBCOMBOBOX en una celda de un dbgrid?
si la respuesta es si como lo hago?
El TDBLOOKUPCOMBO o TDBCOMBOBOX deben estar conectado a una tabla y al selecionar la linea del TDBLOOKUPCOMBO o TDBCOMBOBOX debe traerme el codigo en la celda del dbgrid.
Caral
13-02-2012, 18:18:45
Hola
El dbgrid tiene un combobox, es lo mismo, solo hay que llenarlo con los datos de la tabla.
Osea, SI se puede.
COMO ???: Depende de como lo quieras hacer ya que el dbgrid se supone que estara lleno, no??.
Saludos
gianfranco_tont
13-02-2012, 18:24:45
El dbgrid no esta lleno, esta completamente vacio y conectado a clientdataset. ahora por la opción que tu me indicas (PICKLIST) solo me mostrara lo que yo le escribo alli, mas sin embargo yo quiero que me muestre la información de una tabla en especifico.
Caral
13-02-2012, 18:39:04
Hola
Hay que tener en cuenta que es cada cosa.
1- El dbgrid tiene celdas, en ellas se puede colocar un boton, un combobox o nada.
2- Cada celda se puede manejar como se necesite.
3- Si se quiere, por ejemplo, llenar el combobox que tiene el dbgrid entonces se utiliza la propiedad PickList (efectivamente).
4- Para llenar ese combobox con la informacion de una tabla entonces se puede, por ejemplo, hacer esto:
AdoQuery1.SQL.Text := 'Select Nombre From Usuarios '; // selecciono el nombre de la tabla usuarios
AdoQuery1.Active := True; // activo el sql
While not AdoQuery1.Eof do // recorro la tabla hasta el final
begin
DBGrid1.Columns[0].PickList.add(AdoQuery1.Fields[0].Text); // INSERTO EN EL PICKLISI DEL DBGRID LOS DATOS
AdoQuery1.Next; // sigo insertando hasta que encuentre el ultimo
end;
AdoQuery1.Active := False; // cierro la consulta
Osea: Muy facil, no?.
Saludos
gianfranco_tont
13-02-2012, 20:22:54
excelente esa es la mejor opcion, de verdad gracias.
gianfranco_tont
13-02-2012, 20:32:22
pero ahora tengo una duda: donde coloco esta funcion? onshow, oncellclick? en donde.
Caral
13-02-2012, 20:40:38
Hola
No es una funcion.
Colócalo en el evento ONShow del form que contiene el dbgrid.
Saludos
gianfranco_tont
13-02-2012, 20:43:07
perfecto pero donde llamo el picklist?
Caral
13-02-2012, 20:46:07
Hola
No entiendo ?.
A ver si es lo que imagino:
El picklist esta en el campo que tiene el dbgrid.
Si le das dobleclick al dbgrid te sale una pantalla, ahi deben estar los campos que tendra el dbgrid.
Escoge el campo que necesites que tenga el combobox y pon en su propiedad Buttonstile cbsAuto.
No se si es lo que preguntas ?.
Saludos
gianfranco_tont
13-02-2012, 21:02:30
ya lo logre gracias a tu ayuda.
pero fijate:
AdoQuerytipo.SQL.Text := 'Select co_tipo,des_tipo From tipo_aju '; // selecciono el nombre de la tabla usuarios
AdoQuerytipo.Active := True; // activo el sql
While not AdoQuerytipo.Eof do // recorro la tabla hasta el final
begin
DBGrid1.Columns[1].PickList.add(AdoQuerytipo.Fields[0].Text); // INSERTO EN EL PICKLISI DEL DBGRID LOS DATOS
AdoQuerytipo.Next; // sigo insertando hasta que encuentre el ultimo
end;
AdoQuerytipo.Active := False; // cierro la consulta
if ClientDataSet1.State in [dsEdit, dsInsert] then
end;
dentro de PickList me muestra solo la columna codigo, pero para el usuario el codigo no le dice nada, quisiera que el usuario seleciones por des_tipo pero en el grid se guarde co_tipo.
Sera posible hacer eso o estoy totalemente fuera de lugar?
Caral
13-02-2012, 21:03:03
Hola
Por código, en el evento OnShow del form:
Digamos que quieres que la primera columna del dbgrid contenga el combobox y te traiga los datos:
DBGrid1.Columns[0].ButtonStyle:= cbsAuto; // boton para combobox en dbgrid
AdoQuery1.SQL.Text := 'Select Nombre From Usuarios '; // selecciono el nombre de la tabla usuarios
AdoQuery1.Active := True; // activo el sql
While not AdoQuery1.Eof do // recorro la tabla hasta el final
begin
DBGrid1.Columns[0].PickList.add(AdoQuery1.Fields[0].Text); // INSERTO EN EL PICKLISI DEL DBGRID LOS DATOS
AdoQuery1.Next; // sigo insertando hasta que encuentre el ultimo
end;
AdoQuery1.Active := False; // cierro la consulta
Como ves:
1- Se le asigna el boton del combobox al dbgrid.
2- Se hace la consulta a la tabla.
3- Se recorre
4- Se le inserta en la propiedad PICKLIST del dbgrid los datos de la tabla.
5- Se cierra.
Saludos
Caral
13-02-2012, 21:07:11
Hola
El Dbgrid tiene una consulta que es la que cargo los datos, verdad ?.
Hoy no traje la bola de cristal, si no la pones no me la imagino.:D:cool:
Saludos
gianfranco_tont
13-02-2012, 21:33:47
el dbgrid como dije esta amarrado a un clientdataset por alli contruyo el grid y al terminar los guardo con los datos intruducido por el usuario.
Ahora como dije la opción del picklist es perfecta pero quisiera saber si hay forma de que el picklist me muestre las dos columna de la consulta pero solo me guarde la columna del codigo en el grid.
Caral
13-02-2012, 21:36:48
Hola
Donde ?????.
Donde quieres que la guarde ?.
Se puede: SI, SI se puede, si se sabe donde.
Saludos
Caral
13-02-2012, 21:40:11
Hola
Muestrame el codigo con el que quieres guardar lo que necesitas.
Saludos
Caral
13-02-2012, 21:44:34
Hola
Pregunto:
Cuando hablas de GUARDAR en el Dbgrid hablas de MOSTRAR ????.
Saludos
gianfranco_tont
13-02-2012, 21:59:29
no! uso el dbgrid para atravez del clientdataset me proveea una tabla temporal para luego al finalizar guardar la informacion en la tabla correspodiente. el picklist lo necesito para armar la informacion del tada set,te explico es como un from de factura. Armo el detalle de la factura y luego la guardo.
gianfranco_tont
13-02-2012, 22:04:13
AdoQuerytipo.SQL.Text := 'Select co_tipo,des_tipo From tipo_aju '; // selecciono el nombre de la tabla usuarios
AdoQuerytipo.Active := True; // activo el sql
While not AdoQuerytipo.Eof do // recorro la tabla hasta el final
begin
DBGrid1.Columns[1].PickList.add(AdoQuerytipo.Fields[0].Text); // INSERTO EN EL PICKLISI DEL DBGRID LOS DATOS
AdoQuerytipo.Next; // sigo insertando hasta que encuentre el ultimo
end;
AdoQuerytipo.Active := False; // cierro la consulta
if ClientDataSet1.State in [dsEdit, dsInsert] then
Fijate en el select estoy cargando la informacion en el picklist 'Select co_tipo,des_tipo From tipo_aju' pero en el picklist solo puedo selecionar una forma de guardar ' DBGrid1.Columns[1].PickList.add(AdoQuerytipo.Fields[0]' aunque puedo escojer entre .Fields[0] y el .Fields[1], yo quiero que se vean ambos pero al selecionar la linea en el picklist solo me pase al grid o client data set el .Fields[0],
gianfranco_tont
13-02-2012, 22:10:30
te mando el codigo completo para ver si me puedes ayudar tambien porque cuando salgo del from se me queda colgado el programa creo que tiene algo que ver con el clientdata set edit o incert.
unit Unitajuste;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Provider, DBClient, Grids, DBGrids, StdCtrls, ToolWin,
ActnMan, ActnCtrls, Ribbon, RibbonLunaStyleActnCtrls, Buttons, pngimage,
ExtCtrls, ActnList, ImgList, PlatformDefaultStyleActnCtrls, ComCtrls, Menus,
DBCtrls;
const
nif_info = $10;
type
tnotifyicons = (niif_none, niif_info, niif_warning, niif_error, niif_user);
TFormAjuste = class(TForm)
Ribbon1: TRibbon;
RibbonPage1: TRibbonPage;
RibbonGroup1: TRibbonGroup;
GroupBox1: TGroupBox;
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
Label2: TLabel;
Edit3: TEdit;
Label3: TLabel;
DataSetProvider1: TDataSetProvider;
ClientDataSet1: TClientDataSet;
ADOTable1: TADOTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Edit4: TEdit;
Image1: TImage;
Label4: TLabel;
Image2: TImage;
Label5: TLabel;
Image3: TImage;
Label6: TLabel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
BalloonHint1: TBalloonHint;
TrayIcon1: TTrayIcon;
ActionManager1: TActionManager;
ImageList1: TImageList;
ActionToolBar1: TActionToolBar;
Action1: TAction;
Action2: TAction;
ADOQueryenc_aju: TADOQuery;
ADOQueryenc_ajuajue_num: TIntegerField;
ADOQueryenc_ajufecha: TDateTimeField;
ADOQueryenc_ajumotivo: TStringField;
ADOQueryenc_ajutotal: TFMTBCDField;
ADOQueryenc_ajuseriales: TIntegerField;
ADOQueryenc_ajufeccom: TDateTimeField;
ADOQueryenc_ajunumcom: TIntegerField;
ADOQueryenc_ajutasa: TFMTBCDField;
ADOQueryenc_ajumoneda: TStringField;
ADOQueryenc_ajudis_cen: TMemoField;
ADOQueryenc_ajucampo1: TStringField;
ADOQueryenc_ajucampo2: TStringField;
ADOQueryenc_ajucampo3: TStringField;
ADOQueryenc_ajucampo4: TStringField;
ADOQueryenc_ajucampo5: TStringField;
ADOQueryenc_ajucampo6: TStringField;
ADOQueryenc_ajucampo7: TStringField;
ADOQueryenc_ajucampo8: TStringField;
ADOQueryenc_ajuco_us_in: TStringField;
ADOQueryenc_ajufe_us_in: TDateTimeField;
ADOQueryenc_ajuco_us_mo: TStringField;
ADOQueryenc_ajufe_us_mo: TDateTimeField;
ADOQueryenc_ajuco_us_el: TStringField;
ADOQueryenc_ajufe_us_el: TDateTimeField;
ADOQueryenc_ajurevisado: TStringField;
ADOQueryenc_ajutrasnfe: TStringField;
ADOQueryenc_ajuco_sucu: TStringField;
ADOQueryenc_ajurowguid: TGuidField;
ADOQueryenc_ajuanulada: TBooleanField;
ADOQueryenc_ajuaux01: TFMTBCDField;
ADOQueryenc_ajuaux02: TStringField;
ADOQueryenc_ajuproduccion: TBooleanField;
ADOQueryenc_ajuimp_num: TIntegerField;
ADOQueryenc_ajufact_num: TIntegerField;
StatusBar1: TStatusBar;
PopupMenu1: TPopupMenu;
ADOQuery1: TADOQuery;
ADOQuery1co_art: TStringField;
ADOQuery1art_des: TStringField;
ADOQuery1fecha_reg: TDateTimeField;
ADOQuery1manj_ser: TBooleanField;
ADOQuery1co_lin: TStringField;
ADOQuery1co_cat: TStringField;
ADOQuery1co_subl: TStringField;
ADOQuery1co_color: TStringField;
ADOQuery1item: TStringField;
ADOQuery1ref: TStringField;
ADOQuery1modelo: TStringField;
ADOQuery1procedenci: TStringField;
ADOQuery1comentario: TMemoField;
ADOQuery1co_prov: TStringField;
ADOQuery1ubicacion: TStringField;
ADOQuery1uni_venta: TStringField;
ADOQuery1uni_compra: TStringField;
ADOQuery1uni_relac: TFMTBCDField;
ADOQuery1relac_aut: TIntegerField;
ADOQuery1stock_act: TFMTBCDField;
ADOQuery1stock_com: TFMTBCDField;
ADOQuery1sstock_com: TFMTBCDField;
ADOQuery1stock_lle: TFMTBCDField;
ADOQuery1sstock_lle: TFMTBCDField;
ADOQuery1stock_des: TFMTBCDField;
ADOQuery1sstock_des: TFMTBCDField;
ADOQuery1suni_venta: TStringField;
ADOQuery1suni_compr: TStringField;
ADOQuery1suni_relac: TBCDField;
ADOQuery1sstock_act: TFMTBCDField;
ADOQuery1relac_comp: TFMTBCDField;
ADOQuery1relac_vent: TFMTBCDField;
ADOQuery1pto_pedido: TFMTBCDField;
ADOQuery1stock_max: TFMTBCDField;
ADOQuery1stock_min: TFMTBCDField;
ADOQuery1prec_om: TBooleanField;
ADOQuery1prec_vta1: TFMTBCDField;
ADOQuery1fec_prec_v: TDateTimeField;
ADOQuery1fec_prec_2: TDateTimeField;
ADOQuery1prec_vta2: TFMTBCDField;
ADOQuery1fec_prec_3: TDateTimeField;
ADOQuery1prec_vta3: TFMTBCDField;
ADOQuery1fec_prec_4: TDateTimeField;
ADOQuery1prec_vta4: TFMTBCDField;
ADOQuery1fec_prec_5: TDateTimeField;
ADOQuery1prec_vta5: TFMTBCDField;
ADOQuery1prec_agr1: TFMTBCDField;
ADOQuery1prec_agr2: TFMTBCDField;
ADOQuery1prec_agr3: TFMTBCDField;
ADOQuery1prec_agr4: TFMTBCDField;
ADOQuery1prec_agr5: TFMTBCDField;
ADOQuery1can_agr: TFMTBCDField;
ADOQuery1fec_des_p5: TDateTimeField;
ADOQuery1fec_has_p5: TDateTimeField;
ADOQuery1co_imp: TStringField;
ADOQuery1margen_max: TBCDField;
ADOQuery1ult_cos_un: TFMTBCDField;
ADOQuery1fec_ult_co: TDateTimeField;
ADOQuery1cos_pro_un: TFMTBCDField;
ADOQuery1fec_cos_pr: TDateTimeField;
ADOQuery1cos_merc: TFMTBCDField;
ADOQuery1fec_cos_me: TDateTimeField;
ADOQuery1cos_prov: TFMTBCDField;
ADOQuery1fec_cos_p2: TDateTimeField;
ADOQuery1ult_cos_do: TFMTBCDField;
ADOQuery1fec_cos_do: TDateTimeField;
ADOQuery1cos_un_an: TFMTBCDField;
ADOQuery1fec_cos_an: TDateTimeField;
ADOQuery1ult_cos_om: TFMTBCDField;
ADOQuery1fec_ult_om: TDateTimeField;
ADOQuery1cos_pro_om: TFMTBCDField;
ADOQuery1fec_pro_om: TDateTimeField;
ADOQuery1tipo_cos: TStringField;
ADOQuery1mont_comi: TBCDField;
ADOQuery1porc_cos: TBCDField;
ADOQuery1mont_cos: TBCDField;
ADOQuery1porc_gas: TBCDField;
ADOQuery1mont_gas: TBCDField;
ADOQuery1f_cost: TDateTimeField;
ADOQuery1fisico: TBooleanField;
ADOQuery1punt_cli: TBCDField;
ADOQuery1punt_pro: TBCDField;
ADOQuery1dias_repos: TIntegerField;
ADOQuery1tipo: TStringField;
ADOQuery1alm_prin: TStringField;
ADOQuery1anulado: TBooleanField;
ADOQuery1tipo_imp: TStringField;
ADOQuery1dis_cen: TMemoField;
ADOQuery1mon_ilc: TFMTBCDField;
ADOQuery1capacidad: TBCDField;
ADOQuery1grado_al: TBCDField;
ADOQuery1tipo_licor: TStringField;
ADOQuery1compuesto: TBooleanField;
ADOQuery1picture: TBlobField;
ADOQuery1campo1: TStringField;
ADOQuery1campo2: TStringField;
ADOQuery1campo3: TStringField;
ADOQuery1campo4: TStringField;
ADOQuery1campo5: TStringField;
ADOQuery1campo6: TStringField;
ADOQuery1campo7: TStringField;
ADOQuery1campo8: TStringField;
ADOQuery1co_us_in: TStringField;
ADOQuery1fe_us_in: TDateTimeField;
ADOQuery1co_us_mo: TStringField;
ADOQuery1fe_us_mo: TDateTimeField;
ADOQuery1co_us_el: TStringField;
ADOQuery1fe_us_el: TDateTimeField;
ADOQuery1revisado: TStringField;
ADOQuery1trasnfe: TStringField;
ADOQuery1co_sucu: TStringField;
ADOQuery1rowguid: TGuidField;
ADOQuery1tuni_venta: TStringField;
ADOQuery1equi_uni1: TFMTBCDField;
ADOQuery1equi_uni2: TFMTBCDField;
ADOQuery1equi_uni3: TFMTBCDField;
ADOQuery1lote: TBooleanField;
ADOQuery1serialp: TStringField;
ADOQuery1valido: TBooleanField;
ADOQuery1atributo1: TBooleanField;
ADOQuery1vatributo1: TStringField;
ADOQuery1atributo2: TBooleanField;
ADOQuery1vatributo2: TStringField;
ADOQuery1atributo3: TBooleanField;
ADOQuery1vatributo3: TStringField;
ADOQuery1atributo4: TBooleanField;
ADOQuery1vatributo4: TStringField;
ADOQuery1atributo5: TBooleanField;
ADOQuery1vatributo5: TStringField;
ADOQuery1atributo6: TBooleanField;
ADOQuery1vatributo6: TStringField;
ADOQuery1garantia: TStringField;
ADOQuery1peso: TFMTBCDField;
ADOQuery1pie: TFMTBCDField;
ADOQuery1margen1: TBCDField;
ADOQuery1margen2: TBCDField;
ADOQuery1margen3: TBCDField;
ADOQuery1margen4: TBCDField;
ADOQuery1margen5: TBCDField;
ADOQuery1row_id: TBytesField;
ADOQuery1imagen1: TStringField;
ADOQuery1imagen2: TStringField;
ADOQuery1i_art_des: TStringField;
ADOQuery1uni_emp: TStringField;
ADOQuery1rel_emp: TFMTBCDField;
ADOQuery1movil: TBooleanField;
ADOQuery1tot_costo: TFMTBCDField;
ADOQuerytipo: TADOQuery;
ADOQuerycodigo: TADOQuery;
DataSourcecodigo: TDataSource;
ADOTable1ajue_num: TIntegerField;
ADOTable1reng_num: TIntegerField;
ADOTable1art_desc: TMemoField;
ADOTable1tipo: TStringField;
ADOTable1co_art: TStringField;
ADOTable1total_art: TFMTBCDField;
ADOTable1uni_compra: TStringField;
ADOTable1stotal_art: TFMTBCDField;
ADOTable1suni_compr: TStringField;
ADOTable1co_alma: TStringField;
ADOTable1cost_unit_om: TFMTBCDField;
ADOTable1cost_unit: TFMTBCDField;
ADOTable1feccom: TDateTimeField;
ADOTable1numcom: TIntegerField;
ADOTable1uni_venta: TStringField;
ADOTable1suni_venta: TStringField;
ADOTable1cos_pro_un: TFMTBCDField;
ADOTable1ult_cos_om: TFMTBCDField;
ADOTable1cos_pro_om: TFMTBCDField;
ADOTable1rowguid: TGuidField;
ADOTable1total_uni: TFMTBCDField;
ADOTable1nro_lote: TStringField;
ADOTable1fec_lote: TDateTimeField;
ADOTable1pendiente2: TFMTBCDField;
ADOTable1tipo_doc2: TStringField;
ADOTable1reng_doc2: TIntegerField;
ADOTable1num_doc2: TIntegerField;
ADOTable1aux01: TFMTBCDField;
ADOTable1aux02: TStringField;
ADOTable1mo_cant: TFMTBCDField;
ADOTable1gf_cant: TFMTBCDField;
ADOTable1mo_cant_om: TFMTBCDField;
ADOTable1gf_cant_om: TFMTBCDField;
ADOTable1produccion: TBooleanField;
ADOTable1Total: TFMTBCDField;
ClientDataSet1ajue_num: TIntegerField;
ClientDataSet1reng_num: TIntegerField;
ClientDataSet1art_desc: TMemoField;
ClientDataSet1tipo: TStringField;
ClientDataSet1co_art: TStringField;
ClientDataSet1total_art: TFMTBCDField;
ClientDataSet1uni_compra: TStringField;
ClientDataSet1stotal_art: TFMTBCDField;
ClientDataSet1suni_compr: TStringField;
ClientDataSet1co_alma: TStringField;
ClientDataSet1cost_unit_om: TFMTBCDField;
ClientDataSet1cost_unit: TFMTBCDField;
ClientDataSet1feccom: TDateTimeField;
ClientDataSet1numcom: TIntegerField;
ClientDataSet1uni_venta: TStringField;
ClientDataSet1suni_venta: TStringField;
ClientDataSet1cos_pro_un: TFMTBCDField;
ClientDataSet1ult_cos_om: TFMTBCDField;
ClientDataSet1cos_pro_om: TFMTBCDField;
ClientDataSet1rowguid: TGuidField;
ClientDataSet1total_uni: TFMTBCDField;
ClientDataSet1nro_lote: TStringField;
ClientDataSet1fec_lote: TDateTimeField;
ClientDataSet1pendiente2: TFMTBCDField;
ClientDataSet1tipo_doc2: TStringField;
ClientDataSet1reng_doc2: TIntegerField;
ClientDataSet1num_doc2: TIntegerField;
ClientDataSet1aux01: TFMTBCDField;
ClientDataSet1aux02: TStringField;
ClientDataSet1mo_cant: TFMTBCDField;
ClientDataSet1gf_cant: TFMTBCDField;
ClientDataSet1mo_cant_om: TFMTBCDField;
ClientDataSet1gf_cant_om: TFMTBCDField;
ClientDataSet1produccion: TBooleanField;
ClientDataSet1Total: TFMTBCDField;
SpeedButton4: TSpeedButton;
ADOQuerytipoco_tipo: TStringField;
ADOQuerytipodes_tipo: TStringField;
procedure Edit2DblClick(Sender: TObject);
procedure Action2Execute(Sender: TObject);
procedure FormShow(Sender: TObject);
private
FFIeldName: string;
{ Private declarations }
public
{ Public declarations }
end;
Const
coma = #39;
var
FormAjuste: TFormAjuste;
implementation
Uses unit1,unitlistajuste;
{$R *.dfm}
procedure TFormAjuste.Action2Execute(Sender: TObject);
begin
FormLISTAJUSTE.Show;
end;
procedure TFormAjuste.Edit2DblClick(Sender: TObject);
begin
edit2.ReadOnly := False;
end;
procedure TFormAjuste.FormShow(Sender: TObject);
begin
AdoQuerytipo.SQL.Text := 'Select co_tipo || des_tipo || From tipo_aju '; // selecciono el nombre de la tabla usuarios
AdoQuerytipo.Active := True; // activo el sql
While not AdoQuerytipo.Eof do // recorro la tabla hasta el final
begin
DBGrid1.Columns[1].PickList.add(AdoQuerytipo.Fields[0].Text); // INSERTO EN EL PICKLISI DEL DBGRID LOS DATOS
AdoQuerytipo.Next; // sigo insertando hasta que encuentre el ultimo
end;
AdoQuerytipo.Active := False; // cierro la consulta
if ClientDataSet1.State in [dsEdit, dsInsert] then
end;
end.
Caral
13-02-2012, 22:23:02
Hola
Dos campos en el combobox del dbgrid:
Columna 1, que es en realidad la segunda columna del dbgrid.
Ejemplo 1: Datos seguidos:
AdoQuerytipo.SQL.Text := 'Select co_tipo, des_tipo From tipo_aju ';
AdoQuerytipo.Active := True;
While not AdoQuerytipo.Eof do
begin
DBGrid1.Columns[1].PickList.add(AdoQuerytipo.Fields[0].Text+' '+AdoQuerytipo.Fields[1].Text);
AdoQuerytipo.Next;
end;
AdoQuerytipo.Active := False;
Ejemplo 2: Uno arriba del otro:
AdoQuerytipo.SQL.Text := 'Select co_tipo, des_tipo From tipo_aju ';
AdoQuerytipo.Active := True;
While not AdoQuerytipo.Eof do
begin
DBGrid1.Columns[1].PickList.add(AdoQuerytipo.Fields[0].Text);
DBGrid1.Columns[1].PickList.add(AdoQuerytipo.Fields[1].Text);
AdoQuerytipo.Next;
end;
AdoQuerytipo.Active := False;
Es eso ?.
Saludos
gianfranco_tont
13-02-2012, 23:37:54
finalmente desisti estoy utilizando cbsEllipsis y un oneditbutooclick le estoy colocando un ShowModal = mrOk then en el otro from y perfecto al selecionar una linea en el grid donde hago la consulta me trae la informacion que quiero y en donde la quiero y hasta alli todo perfecto:
pero como hago si tengo varias celdas donde colocar el cbsEllipsis y cada una de ella debe llamarme un from diferente?
Caral
14-02-2012, 01:00:18
Hola
No entiendo.
Creo que, a mi modo de ver, lo mejor seria que te olvidaras del dbgrid e hicieras todo con un stringgrid, es mucho mas manejable para lo que tiene que ver con introducir datos por linea, osea, una factura.
Saludos
gianfranco_tont
14-02-2012, 01:15:14
debe haber algo que pueda solucionar esta situacion, de verdad veo muchos programas que hacen lo mismo, ahora no se como utilizar este componente voy a investigar a ver si puedo solucionarlo.
oye de verdad gracias por tu ayuda de verdad te quite mucho tiempo.
Caral
14-02-2012, 01:24:33
Hola
No te preocupes por el tiempo, si no me apeteciera no lo daría.
Lastima que cuando empezáis a programar os liéis con BD que no son fáciles de transportar.
Por eso siempre recomiendo empezar con access y luego hacer el cambio a otra bd, es mas fácil ayudar si se puede tener el programa y ver lo que se necesita hacer.
Saludos
Caral
15-02-2012, 02:23:24
Hola
Bueno, pensando en esto creo entender lo que quieres hacer.
1- Tienes un dbgrid vacío.
2- Tienes un botón o combobox (el que sea) el que contiene la información de uno o varios campos de una tabla.
3- Quieres que cuando se seleccione un dato de los mostrados (en los anteriores) te llene otros datos en la fila correspondiente en ese mismo dbgrid.
4- hacer de todo esto una especie de lista que se vera en el dbgrid.
Si es asi, me dices y lo vemos.
Saludos
vBulletin v3.6.8, Derechos ©2000-2013, Jelsoft Enterprises Ltd.