Skip to content

Instantly share code, notes, and snippets.

Created August 9, 2013 08:00
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/6191905 to your computer and use it in GitHub Desktop.
Save anonymous/6191905 to your computer and use it in GitHub Desktop.
Carta de portes de programa de Gestión desde 0
unit UCartaPortes;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, ComObj, DB, IBCustomDataSet, DBCtrls,
Grids, DBGrids, Mask, ComCtrls;
type
TFCP = class(TForm)
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
LabeledEdit4: TLabeledEdit;
LabeledEdit5: TLabeledEdit;
LabeledEdit6: TLabeledEdit;
LabeledEdit7: TLabeledEdit;
LabeledEdit8: TLabeledEdit;
LabeledEdit9: TLabeledEdit;
LabeledEdit10: TLabeledEdit;
DataSource1: TDataSource;
PageControl1: TPageControl;
Productos: TTabSheet;
Panel1: TPanel;
Panel2: TPanel;
SpeedButton4: TSpeedButton;
SpeedButton6: TSpeedButton;
DBNavigator1: TDBNavigator;
Panel5: TPanel;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
Panel3: TPanel;
Panel4: TPanel;
Label4: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBGrid1: TDBGrid;
Vehiculos: TTabSheet;
Panel6: TPanel;
Panel7: TPanel;
SpeedButton10: TSpeedButton;
SpeedButton12: TSpeedButton;
DBNavigator2: TDBNavigator;
Panel8: TPanel;
SpeedButton13: TSpeedButton;
SpeedButton14: TSpeedButton;
Panel9: TPanel;
Panel10: TPanel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBGrid2: TDBGrid;
DataSource2: TDataSource;
SpeedButton15: TSpeedButton;
SpeedButton16: TSpeedButton;
SpeedButton17: TSpeedButton;
procedure FormActivate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton12Click(Sender: TObject);
procedure SpeedButton13Click(Sender: TObject);
procedure SpeedButton14Click(Sender: TObject);
procedure SpeedButton16Click(Sender: TObject);
procedure SpeedButton17Click(Sender: TObject);
procedure SpeedButton15Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure LabeledEdit7Exit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FCP: TFCP;
implementation
uses Umenu,Fun, UDM;
{$R *.dfm}
procedure TFCP.FormActivate(Sender: TObject);
//------------------------------------------------------------------------------
//***********************************************[ AL ACTIVARSE EL FORM ]*******
//------------------------------------------------------------------------------
begin
LabeledEdit6.Text:=DateToStr(now);
end;
procedure TFCP.FormCreate(Sender: TObject);
//------------------------------------------------------------------------------
//*********************************************************[ Al crearse ]*******
//------------------------------------------------------------------------------
begin
PageControl1.ActivePage:=Productos;
end;
procedure TFCP.FormKeyPress(Sender: TObject; var Key: Char);
//------------------------------------------------------------------------------
//************************************************[ Al pulsar una tecla ]*******
//------------------------------------------------------------------------------
begin
if (key = #13) then
begin
key:=#0;
perform(wm_nextdlgctl,0,0);
end;
end;
procedure TFCP.LabeledEdit7Exit(Sender: TObject);
//------------------------------------------------------------------------------
//**************************************************[ Salir de Cantidad ]*******
//------------------------------------------------------------------------------
begin
if LabeledEdit7.Text='' then LabeledEdit7.Text:=LabeledEdit3.Text;
end;
procedure TFCP.SpeedButton10Click(Sender: TObject);
//------------------------------------------------------------------------------
//***********************************************[ Modificar REGISTRO V.]*******
//------------------------------------------------------------------------------
begin
Panel10.Enabled:=True;
Panel8.Visible:=True;
DBNavigator2.Enabled:=False;
DataSource2.DataSet.Insert;
DBEdit6.SetFocus;
end;
procedure TFCP.SpeedButton12Click(Sender: TObject);
//------------------------------------------------------------------------------
//*********************************[ Pasamnos los datos del producto V. ]*******
//------------------------------------------------------------------------------
begin
LabeledEdit9.Text:=DBEdit7.Text;
LabeledEdit10.Text:=DBEdit6.Text;
end;
procedure TFCP.SpeedButton13Click(Sender: TObject);
//------------------------------------------------------------------------------
//**********************************************************[ GRABAR V. ]*******
//------------------------------------------------------------------------------
begin
try
Panel10.Enabled:=False;
Panel8.Visible:=False;
DBNavigator2.Enabled:=True;
if DataSource2.DataSet.State in [dsEdit, dsInsert] then DataSource2.DataSet.Post;
DM.IBTransaction1.CommitRetaining;
except
on E: Exception do
begin
ShowMessage('Se ha producido un error al grabar el actual registro: ' + Chr(13) + Chr(13)
+ 'Clase de error: ' + E.ClassName + Chr(13) + Chr(13)
+ 'Mensaje del error: ' + E.Message+Chr(13) + Chr(13)
+ ' '+Chr(13) + Chr(13)
+ 'Se anula la edición del actual registro');
if DataSource2.DataSet.State in [dsEdit, dsInsert] then DataSource2.DataSet.Cancel;
DM.IBTransaction1.RollbackRetaining;
end;
end;
end;
procedure TFCP.SpeedButton14Click(Sender: TObject);
//------------------------------------------------------------------------------
//********************************************************[ CANCELAR V. ]*******
//------------------------------------------------------------------------------
begin
Panel10.Enabled:=False;
Panel8.Visible:=False;
DBNavigator2.Enabled:=True;
if DataSource2.DataSet.State in [dsEdit, dsInsert] then DataSource2.DataSet.Cancel;
end;
procedure TFCP.SpeedButton15Click(Sender: TObject);
//------------------------------------------------------------------------------
//******************************************************[ Nueva entrada ]*******
//------------------------------------------------------------------------------
begin
LabeledEdit1.Text:='';
LabeledEdit2.Text:='';
LabeledEdit3.Text:='';
LabeledEdit4.Text:='';
LabeledEdit5.Text:='';
LabeledEdit6.Text:=DateToStr(now);
LabeledEdit7.Text:='';
LabeledEdit8.Text:='';
LabeledEdit9.Text:='';
LabeledEdit10.Text:='';
PageControl1.ActivePage:=Productos;
end;
procedure TFCP.SpeedButton16Click(Sender: TObject);
//------------------------------------------------------------------------------
//**********************************************************[ Productos ]*******
//------------------------------------------------------------------------------
begin
PageControl1.ActivePage:=Productos;
end;
procedure TFCP.SpeedButton17Click(Sender: TObject);
//------------------------------------------------------------------------------
//**********************************************************[ Vehículos ]*******
//------------------------------------------------------------------------------
begin
PageControl1.ActivePage:=Vehiculos;
end;
procedure TFCP.SpeedButton1Click(Sender: TObject);
//------------------------------------------------------------------------------
//********************************************************[ BOTON SALIR ]*******
//------------------------------------------------------------------------------
begin
Close;
end;
procedure TFCP.SpeedButton2Click(Sender: TObject);
//------------------------------------------------------------------------------
//************************************[ Preparar para documento en word ]*******
// Bajado del Club delphi aportado por Roman.
// Los Campos en el documento Word deben llevar el mismo nombre que en el add
// entre '' en word sería insertar campos tipo docvariable
//------------------------------------------------------------------------------
var
Word: Variant;
Documento: Variant;
begin
(* Creas un objeto Word *)
Word := CreateOleObject('Word.Application');
try
(* Añades un documento basado en la plantilla *)
Word.Documents.Add(ExtractFilePath(Application.ExeName) +'Carta de portes.dot');
Documento := Word.Documents.Item(1);
(* Asignas valores a los campos *)
Documento.Variables.Add('producto',LabeledEdit1.Text);
Documento.Variables.Add('peso',LabeledEdit2.Text);
Documento.Variables.Add('bultos',LabeledEdit3.Text);
Documento.Variables.Add('tipo documento',LabeledEdit4.Text);
Documento.Variables.Add('n_doc',LabeledEdit5.Text);
Documento.Variables.Add('fecha',LabeledEdit6.Text);
Documento.Variables.Add('cantidad',LabeledEdit7.Text);
Documento.Variables.Add('categoria',LabeledEdit8.Text);
Documento.Variables.Add('empresa',LabeledEdit9.Text);
Documento.Variables.Add('matricula',LabeledEdit10.Text);
Documento.Fields.Update;
Word.ActiveWindow.View.ShowFieldCodes := false;
Word.Visible := true;
except
Word.Quit;
end;
end;
procedure TFCP.SpeedButton4Click(Sender: TObject);
//------------------------------------------------------------------------------
//*************************************************[ MODIFICAR REGISTRO ]*******
//------------------------------------------------------------------------------
begin
Panel4.Enabled:=True;
Panel5.Visible:=True;
DBNavigator1.Enabled:=False;
DataSource1.DataSet.Edit;
DBEdit1.SetFocus;
end;
procedure TFCP.SpeedButton6Click(Sender: TObject);
//------------------------------------------------------------------------------
//************************************[ Pasamnos los datos del producto ]*******
//------------------------------------------------------------------------------
begin
LabeledEdit1.Text:=DBEdit1.Text;
LabeledEdit8.Text:=DBEdit2.Text+' - Limite: '+DBEdit3.Text;
end;
procedure TFCP.SpeedButton7Click(Sender: TObject);
//------------------------------------------------------------------------------
//*************************************************************[ GRABAR ]*******
//------------------------------------------------------------------------------
begin
try
Panel4.Enabled:=False;
Panel5.Visible:=False;
DBNavigator1.Enabled:=True;
if DataSource1.DataSet.State in [dsEdit, dsInsert] then DataSource1.DataSet.Post;
DM.IBTransaction1.CommitRetaining;
except
on E: Exception do
begin
ShowMessage('Se ha producido un error al grabar el actual registro: ' + Chr(13) + Chr(13)
+ 'Clase de error: ' + E.ClassName + Chr(13) + Chr(13)
+ 'Mensaje del error: ' + E.Message+Chr(13) + Chr(13)
+ ' '+Chr(13) + Chr(13)
+ 'Se anula la edición del actual registro');
if DataSource1.DataSet.State in [dsEdit, dsInsert] then DataSource1.DataSet.Cancel;
DM.IBTransaction1.RollbackRetaining;
end;
end;
end;
procedure TFCP.SpeedButton8Click(Sender: TObject);
//------------------------------------------------------------------------------
//***********************************************************[ CANCELAR ]*******
//------------------------------------------------------------------------------
begin
Panel4.Enabled:=False;
Panel5.Visible:=False;
DBNavigator1.Enabled:=True;
if DataSource1.DataSet.State in [dsEdit, dsInsert] then DataSource1.DataSet.Cancel;
end;
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment