PDA

Ver la Versión Completa : Factura


Stravinsky
09-10-2006, 18:26:05
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:

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