Created
July 23, 2013 10:55
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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