Skip to content

Instantly share code, notes, and snippets.

Created July 23, 2013 10:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/6061538 to your computer and use it in GitHub Desktop.
Save anonymous/6061538 to your computer and use it in GitHub Desktop.
Gestión de muestras para el tutorial de programa de gestión desde 0
unit UMuestrasEntrega;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Buttons, StdCtrls, Spin, Mask, DBCtrls, Grids, DBGrids, DB,
IBCustomDataSet, IBQuery;
type
TFEntrMuestra = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
SpeedButton1: TSpeedButton;
SB_Salir: TSpeedButton;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit1: TEdit;
SpinEdit1: TSpinEdit;
Edit2: TEdit;
Edit3: TEdit;
SpeedButton2: TSpeedButton;
RadioGroup1: TRadioGroup;
Label6: TLabel;
DSFabricables: TDataSource;
Panel2: TPanel;
Panel3: TPanel;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
Label7: TLabel;
Edit4: TEdit;
DSIBQFabricables: TDataSource;
IBQFabricables: TIBQuery;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure SB_SalirClick(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure Edit4Change(Sender: TObject);
procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure DBGrid1CellClick(Column: TColumn);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FEntrMuestra: TFEntrMuestra;
implementation
{$R *.dfm}
uses UXPAF, UDM, Fun, FUN_DBGRID, umenu;
procedure TFEntrMuestra.DBGrid1CellClick(Column: TColumn);
//------------------------------------------------------------------------------
//******************************************************[ Click en el grid ]****
//------------------------------------------------------------------------------
begin
if not (IBQFabricables.IsEmpty) then Edit1.Text:=IBQFabricables.FieldByName('PRODUCTO').Value;
end;
procedure TFEntrMuestra.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
//------------------------------------------------------------------------------
//********************************************************[ Grid Agenda ]*******
// Dibujamos el zebrado
//------------------------------------------------------------------------------
begin
Zebrado(DSIBQFabricables,Dbgrid1,Rect,Column,State,COLOR1GRID,COLOR2GRID);
end;
procedure TFEntrMuestra.DBNavigator1Click(Sender: TObject;
Button: TNavigateBtn);
//------------------------------------------------------------------------------
//*******************************************[ Click butones del navegador ]****
//------------------------------------------------------------------------------
begin
if not (IBQFabricables.IsEmpty) then Edit1.Text:=IBQFabricables.FieldByName('PRODUCTO').Value;
end;
procedure TFEntrMuestra.Edit3Change(Sender: TObject);
//------------------------------------------------------------------------------
//***********************************************************[ Change Lote ]****
//------------------------------------------------------------------------------
begin
Label5.Caption:='['+inttoSTR(SpinEdit1.value)+'] ('+Edit3.Text+')';
end;
procedure TFEntrMuestra.Edit4Change(Sender: TObject);
//------------------------------------------------------------------------------
//****************************************************[ Change la busqueda ]****
//------------------------------------------------------------------------------
begin
if FEntrMuestra.Active then ActQuery(IBQFabricables,'select * from FABRICABLES where upper(PRODUCTO) LIKE '+QuotedStr('%'+Edit4.Text+'%'));
if not (IBQFabricables.IsEmpty) then Edit1.Text:=IBQFabricables.FieldByName('PRODUCTO').Value;
end;
procedure TFEntrMuestra.FormClose(Sender: TObject; var Action: TCloseAction);
//------------------------------------------------------------------------------
//****************************************************************[ Cerrar ]****
//------------------------------------------------------------------------------
begin
QuerryOC(IBQFabricables);
FEntrMuestra.Width:=640;
Panel2.Visible:=False;
FEntrMuestra.Position:=poScreenCenter;
end;
procedure TFEntrMuestra.FormKeyPress(Sender: TObject; var Key: Char);
//------------------------------------------------------------------------------
//************************************************[ Al pulsar una tecla ]******
// Al pulsar la tecla salta al foco del siguiente componente, si esta admitido
//------------------------------------------------------------------------------
begin
if (Key = #13) then {Si se ha pulsado enter }
if (ActiveControl is TEdit)
or (ActiveControl is TDBEdit)
or (ActiveControl is TDBComboBox) then
begin
Key := #0; { anula la puulsación }
Perform(WM_NEXTDLGCTL, 0, 0); { mueve al próximo control }
end
end;
procedure TFEntrMuestra.SB_SalirClick(Sender: TObject);
//------------------------------------------------------------------------------
//****************************************************[ Salir y actualizar ]****
//------------------------------------------------------------------------------
var VarSTipoForm:string;
begin
case RadioGroup1.ItemIndex of
0:VarSTipoForm:='Ml.';
1:VarSTipoForm:='L.';
2:VarSTipoForm:='Gr.';
3:VarSTipoForm:='Kg.';
4:VarSTipoForm:='Ud.';
end;
if Edit1.Text<>'' then
begin
FXPAF.DsDetalle.dataset.insert;
FXPAF.DsDetalle.dataset.FieldByName('IDENTIFICADOR').Value:=FXPAF.DSPrincipal.DataSet.FieldByName('ID').Value;
FXPAF.DsDetalle.dataset.FieldByName('TIPODOCUMENTO').Value:=FXPAF.DSPrincipal.DataSet.FieldByName('TIPODOCUMENTO').Value;
FXPAF.DsDetalle.dataset.FieldByName('NUMERODOCUMENTO').Value:=FXPAF.DSPrincipal.DataSet.FieldByName('NUMERODOCUMENTO').Value;
FXPAF.DsDetalle.dataset.FieldByName('SERIE').Value:=FXPAF.DSPrincipal.DataSet.FieldByName('SERIE').Value;
FXPAF.DsDetalle.dataset.FieldByName('CODIGOARTICULO').Value:='MU';
FXPAF.DsDetalle.dataset.FieldByName('DESCRIPCIONARTICULO').Value:='Muestra de '+Edit1.text+' ['+Edit2.Text+' '+VarSTipoForm+']';
FXPAF.DsDetalle.dataset.FieldByName('CANTIDAD').Value:=SpinEdit1.Value;
FXPAF.DsDetalle.dataset.FieldByName('PESOUNIDAD').Value:=StrToFloat(Edit2.Text);
FXPAF.DsDetalle.DataSet.FieldByName('IMPUESTO').Value:=0;
FXPAF.DsDetalle.DataSet.FieldByName('PRECIOUNIDAD').Value:=0;
FXPAF.DsDetalle.DataSet.FieldByName('DESCUENTO').Value:=0;
FXPAF.DsDetalle.DataSet.FieldByName('COMISION').Value:=0;
FXPAF.DsDetalle.DataSet.FieldByName('MODIFICADO').Value:=0;
FXPAF.DsDetalle.DataSet.FieldByName('SERVICIO').Value:='N';
FXPAF.DSLoteDocumento.DataSet.Insert; // Grabamos los datos del lote
FXPAF.DSLoteDocumento.DataSet.FieldByName('TIPODOCUMENTO').Value:=FXPAF.DSPrincipal.DataSet.FieldByName('TIPODOCUMENTO').Value;
FXPAF.DSLoteDocumento.DataSet.FieldByName('NUMERODOCUMETO').Value:=FXPAF.DSPrincipal.DataSet.FieldByName('NUMERODOCUMENTO').Value;
FXPAF.DSLoteDocumento.DataSet.FieldByName('SERIE').Value:=FXPAF.DSPrincipal.DataSet.FieldByName('SERIE').Value;
FXPAF.DSLoteDocumento.DataSet.FieldByName('LOTE').Value:=Label5.Caption;
FXPAF.DSLoteDocumento.DataSet.FieldByName('CANTIDAD').Value:=SpinEdit1.Value;
FXPAF.DSLoteDocumento.DataSet.FieldByName('CODIGOARTICULO').Value:='MU';
FXPAF.SetFocus;
FEntrMuestra.Close;
end else ShowMessage('Debe rellenar los datos primeramente, si lo que desea es salir, pulse en cancelar');
end;
procedure TFEntrMuestra.SpeedButton1Click(Sender: TObject);
//------------------------------------------------------------------------------
//***************************************************************[ Limpiar ]****
//------------------------------------------------------------------------------
begin
Edit1.Text:='';
Edit2.Text:='0,250';
Edit3.Text:='';
label5.Caption:='';
SpinEdit1.Value:=1;
end;
procedure TFEntrMuestra.SpeedButton2Click(Sender: TObject);
//------------------------------------------------------------------------------
//**************************************************************[ Cancelar ]****
//------------------------------------------------------------------------------
begin
FXPAF.SetFocus;
FEntrMuestra.Close;
end;
procedure TFEntrMuestra.SpeedButton3Click(Sender: TObject);
//------------------------------------------------------------------------------
//****************************************************[ Cierra la busqueda ]****
//------------------------------------------------------------------------------
begin
FEntrMuestra.Width:=640;
Panel2.Visible:=False;
FEntrMuestra.Position:=poScreenCenter;
end;
procedure TFEntrMuestra.SpeedButton4Click(Sender: TObject);
//------------------------------------------------------------------------------
//******************************************************[ Abre la busqueda ]****
//------------------------------------------------------------------------------
begin
FEntrMuestra.Width:=1050;
Panel2.Visible:=True;
FEntrMuestra.Position:=poScreenCenter;
QuerryOC(IBQFabricables,true);
Edit4.Text:='';
Edit4.SetFocus;
end;
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment