Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Factura (https://www.clubdelphi.com/foros/showthread.php?t=36355)

Stravinsky 09-10-2006 18:26:05

Factura
 
Oks señores tengo un pequeño problemas para hacer una factura soy new en la programacion yo nesecito que alguien me ayude con esto Yo tengo una factura que debe cuando escriba el codigo dentro de una celda de un dgrid me llame la descripcion del producto y el precio de este, ademas tengo problema para hacer que ese dbgrid nadamas lea pero que no se vea me explico po ejemplo

cuando ella abra la ventana de factura el dbgrid debe aparecer en blanco para introduccir en en la columana codigo " ejemplo 001" esto llame a descripcion " ejemplo zapatos" y eso llame a la columna precio por unidad " ejemplo 1050"
ademas nesecito que la columna subtotal del dbgrid cuando columna cantida * columna precio por unidad. y nesecito nadamas eso y como hacer que eso se imprima yo en el delphi 6 encuentro QREport pero en el delphi 7 no si tiene otro nombre esa ficha tambien nesecito que me ayuden en eso Gracias porfacor respondame lo mas pronto posible Gracias :o

Caral 09-10-2006 19:16:18

Hola Stravinsky
Normalmente por aqui lo que se hace es consultar una cosa a la vez, con relacion a dudas, sobre todo de codigo, en realidad lo que estas pidiendo es un programa completo y esto sin conocer ni siquiera un poco de codigo o por donde empezar suena un poco dificil.
Creo que deberias enfocar tus preguntas.
1- necesito hacer esto y lo hago asi......
2- Como hago esto......
3- Etc.....
Asi se podra ayudar mejor, inicia con una pregunta a la vez y si es posible incluye un ejemplo de como lo quieres hacer o haces.
Saludos

Stravinsky 10-10-2006 14:39:09

Perdon como soy new no sabia eso bueno voy a dar unas foto a ver si entiendes
oks:)


OK nesecito lo siquiente

1- nesecito que en un dbgrid yo pueda introducir Datos pero que guarde nadamas una sola columna pues tiene 5 columnas que son codigo, cantidad, descripción, precio por unidad, sub total. Ok yo tengo una base de dato de access dentro tiene 2 tabla una factura y otra producto
2- oks en fin nesecito hacer que el dbgrid nadamas lea los codigo descripción precio por unidad. Ya hice que sub total me diera para hacer esto use
Adotable1subtotal.value:= adotable1cantidad.value * adotable1precioporunidad.value;
en fin lo que me falta que codigo haga un tipo de búsqueda y que esta llame a descripción y precio por unidad como en la siquiente foto me escusan porque como veran a ese dbgrid le falta cantidad es porque donde estoy ahora no esta delphi y no le puse ese dbgird

nemesio 10-10-2006 16:29:06

Para hacer lo que dices tienes que en primer lugar conocer los eventos que tiene el Grid que estas utilizando y de las tablas que usas. Te recomiendo que puedes usar un campo calculado para la descripción. En ese campo calculado haces una búsqueda del código que a lo mejor lo tienes en otra tabla y lo mandas a desplegar asi como el precio.
Lee un poco sobre los campos calculados y el evento OnCalcFields, eso te va a ayudar bastante.

Saludos

lucasarts_18 10-10-2006 16:46:59

Hola:

No recomiendo éstas practicas, en realidad programar toda la lógica dentro de un Grid es para que al final ni siquieras tú entiendas tú código, yo te recomiendo que la búsqueda la hagas en otra pantalla, donde pidas el código del producto, luego de esto haces la busqueda para traer la descripción y el precio unitario, también te recomiendo que a parte de buscar por un código específico tengas la opción de buscar en una lista de productos, ya que muchas veces el usuario no sabe el código de producto o bien no tenga a la mano dicho código, por lo tanto es recomendable que tenga la opción de buscar en una lista mediante la descripción de ese producto...

Creo que esta es la mejor práctica en cuanto a programación y a diseño de interfaces....:rolleyes:


Hasta Luego .-

Caral 10-10-2006 17:25:41

Hola Stravinsky
Si copias este pequeño codigo y cambias los nombres de las tablas tendras un buscador de articulos completo:
Código Delphi [-]
unit UFBuscaArticulos;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls, Buttons, DBCtrls, Grids, DBGrids, ExtCtrls, UDM1;

type
  TFBuscaArticulo = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    CBFiltro: TComboBox;
    DBGrid1: TDBGrid;
    Panel2: TPanel;
    DBText1: TDBText;
    DBText2: TDBText;
    Label3: TLabel;
    DBText3: TDBText;
    Label4: TLabel;
    Label7: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ATArticulos: TADOTable;
    ATArticulosCodParte: TWideStringField;
    ATArticulosDescripcion: TWideStringField;
    ATArticulosCosto: TFloatField;
    ATArticulosUltCosto: TFloatField;
    ATArticulosPrecio1: TFloatField;
    ATArticulosPrecio2: TFloatField;
    ATArticulosPrecio3: TFloatField;
    ATArticulosCategoria: TWideStringField;
    ATArticulosSubCategoria: TWideStringField;
    ATArticulosUbicacion: TWideStringField;
    ATArticulosUnidad: TWideStringField;
    ATArticulosDisponible: TFloatField;
    ATArticulosEnProduccion: TFloatField;
    ATArticulosNotas: TMemoField;
    DSArticulos: TDataSource;
    Label5: TLabel;
    DBText4: TDBText;
    Label6: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    DBText5: TDBText;
    DBText6: TDBText;
    DBText7: TDBText;
    ATArticulosPrecio4: TFloatField;
    ATArticulosPrecio5: TFloatField;
    ATArticulosPrecio6: TFloatField;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    DBText8: TDBText;
    DBText9: TDBText;
    DBText10: TDBText;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Cod_Parte : String;    
  end;

var
  FBuscaArticulo: TFBuscaArticulo;

implementation

{$R *.dfm}

procedure TFBuscaArticulo.FormCreate(Sender: TObject);
begin
   ATArticulos.Open;
end;

procedure TFBuscaArticulo.FormDestroy(Sender: TObject);
begin
   ATArticulos.Close;
end;

procedure TFBuscaArticulo.Edit1Change(Sender: TObject);
var   Filtro : String;
begin
   If (Edit1.Text <> '') then
   begin
      ATArticulos.Filtered := False;
      If CBFiltro.Text = 'Código' then Filtro := 'CodParte Like '''+Edit1.Text + '*'''
         else If CBFiltro.Text = 'Descripción' then Filtro := 'Descripcion Like '''+ Edit1.Text + '*'''
            else If CBFiltro.Text = 'Categoría' then Filtro := 'Categoria Like '''+ Edit1.Text + '*''';
      ATArticulos.Filter := Filtro;
      ATArticulos.Filtered := True
   end
   else ATArticulos.Filtered := False;
end;

procedure TFBuscaArticulo.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   IF Key = VK_DOWN then
   DbGrid1.SetFocus;
end;

procedure TFBuscaArticulo.BitBtn1Click(Sender: TObject);
begin
   CodParte := ATArticulosCodParte.AsString;
   Cod_Parte := ATArticulosCodParte.AsString;
   Close;
end;

procedure TFBuscaArticulo.BitBtn2Click(Sender: TObject);
begin
   CodParte := '';
   Cod_Parte := '';   
   Close;
end;

procedure TFBuscaArticulo.DBGrid1DblClick(Sender: TObject);
begin
   BitBtn1Click(DBGrid1);
end;

end.
Espero que con este pequeño ejemplo puedas hacer lo que quieres.
Saludos


La franja horaria es GMT +2. Ahora son las 17:28:26.

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