Created
August 10, 2013 15:20
-
-
Save anonymous/6200819 to your computer and use it in GitHub Desktop.
Gestor de datos de la ruta 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 UGesRutas; | |
interface | |
uses | |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, IBDatabase, | |
NewPanelDB, //Para usar el NEwPanelDB | |
Dialogs, ComCtrls, ExtCtrls, Grids, DBGrids, StdCtrls, Spin, Buttons, DB, DBCtrls, | |
Mask, IBCustomDataSet, IBQuery, rpcompobase, rpvclreport, SPBBC; | |
type | |
TFGesRutas = class(TForm) | |
PanelBotonera: TNewPanelDB; | |
SBBarraStatus: TStatusBar; | |
Panel1: TPanel; | |
Panel2: TPanel; | |
PanelDatos: TNewPanelDB; | |
Panel3: TPanel; | |
DBGNoEnable: TDBGrid; | |
PanelConfirmar: TNewPanelDB; | |
DsPrincipal: TDataSource; | |
SBPrimero: TSpeedButton; | |
SBMenosx: TSpeedButton; | |
SBMenos1: TSpeedButton; | |
SBMas1: TSpeedButton; | |
SBMasX: TSpeedButton; | |
SBUltimo: TSpeedButton; | |
SbNuevo: TSpeedButton; | |
SbModificar: TSpeedButton; | |
SbBorrar: TSpeedButton; | |
SB_Salir: TSpeedButton; | |
SBBuscar: TSpeedButton; | |
SBImprimir: TSpeedButton; | |
SBConfirmar: TSpeedButton; | |
SBCancelar: TSpeedButton; | |
Label14: TLabel; | |
SEMobeByX: TSpinEdit; | |
GBBuscar: TGroupBox; | |
Ebusqueda: TEdit; | |
BLimpiar: TButton; | |
BBuscar: TButton; | |
BCerrar: TButton; | |
Timer1: TTimer; | |
GBImprimir: TGroupBox; | |
CBVistaPrevia: TCheckBox; | |
BCerrarIMP: TButton; | |
Label1: TLabel; | |
DBEdit1: TDBEdit; | |
Label2: TLabel; | |
DBEdit2: TDBEdit; | |
Label3: TLabel; | |
DBEdit3: TDBEdit; | |
Label4: TLabel; | |
DBEdit4: TDBEdit; | |
Label5: TLabel; | |
DBEdit5: TDBEdit; | |
Label6: TLabel; | |
DBEdit6: TDBEdit; | |
Panel4: TPanel; | |
IBQRUTAS: TIBQuery; | |
Label7: TLabel; | |
DBNavigator1: TDBNavigator; | |
DsIBQRutas: TDataSource; | |
SpeedButton1: TSpeedButton; | |
Label8: TLabel; | |
DBEdit7: TDBEdit; | |
Label9: TLabel; | |
DBEdit8: TDBEdit; | |
Label10: TLabel; | |
DBEdit9: TDBEdit; | |
Label11: TLabel; | |
DBEdit10: TDBEdit; | |
IBQRUTASNUMERORUTA: TIBStringField; | |
DBGrid1: TDBGrid; | |
SpeedButtonBC1: TSpeedButtonBC; | |
procedure FormKeyPress(Sender: TObject; var Key: Char); | |
procedure SBPrimeroClick(Sender: TObject); | |
procedure SBMenosxClick(Sender: TObject); | |
procedure SBMenos1Click(Sender: TObject); | |
procedure SBMas1Click(Sender: TObject); | |
procedure SBMasXClick(Sender: TObject); | |
procedure SBUltimoClick(Sender: TObject); | |
procedure SbNuevoClick(Sender: TObject); | |
procedure SbModificarClick(Sender: TObject); | |
procedure SbBorrarClick(Sender: TObject); | |
procedure SBBuscarClick(Sender: TObject); | |
procedure BLimpiarClick(Sender: TObject); | |
procedure BBuscarClick(Sender: TObject); | |
procedure BCerrarClick(Sender: TObject); | |
procedure EbusquedaChange(Sender: TObject); | |
procedure SBImprimirClick(Sender: TObject); | |
procedure BCerrarIMPClick(Sender: TObject); | |
procedure SB_SalirClick(Sender: TObject); | |
procedure FormCreate(Sender: TObject); | |
procedure Timer1Timer(Sender: TObject); | |
procedure FormActivate(Sender: TObject); | |
procedure SBCancelarClick(Sender: TObject); | |
procedure SBConfirmarClick(Sender: TObject); | |
procedure FormClose(Sender: TObject; var Action: TCloseAction); | |
procedure SpeedButton1Click(Sender: TObject); | |
procedure DBGrid1CellClick(Column: TColumn); | |
procedure DsIBQRutasDataChange(Sender: TObject; Field: TField); | |
procedure DBGNoEnableDrawColumnCell(Sender: TObject; const Rect: TRect; | |
DataCol: Integer; Column: TColumn; State: TGridDrawState); | |
procedure SpeedButtonBC1Click(Sender: TObject); | |
private | |
{ Private declarations } | |
public | |
{ Public declarations } | |
end; | |
var | |
FGesRutas: TFGesRutas; | |
IBT:TIBTransaction; | |
implementation | |
{$R *.dfm} | |
uses UDM, Fun, FUN_DBGRID, umenu; | |
procedure TFGesRutas.BBuscarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//**************************************************************[ Buscar ]****** | |
//------------------------------------------------------------------------------ | |
var Campo:string; | |
begin | |
Campo:='NUMERORUTA'; {Dato a rellenar por el progrmador con el nombre del campo en la busqueda} | |
DSPrincipal.DataSet.Locate(Campo,Ebusqueda.Text,[loCaseInsensitive,loPartialKey]); | |
end; | |
procedure TFGesRutas.BCerrarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*****************************************************[ Cerrar Busqueda ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
BLimpiarClick(Sender); | |
GBBuscar.Visible:=False; | |
end; | |
procedure TFGesRutas.BCerrarIMPClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//****************************************************[ Cerrar Imrprimir ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
GBImprimir.Visible:=False; | |
end; | |
procedure TFGesRutas.BLimpiarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//**************************************************[ Limpia la busqueda ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
Ebusqueda.Text:=''; | |
BBuscarClick(Sender); | |
Ebusqueda.SetFocus; | |
end; | |
procedure TFGesRutas.DBGNoEnableDrawColumnCell(Sender: TObject; | |
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); | |
//------------------------------------------------------------------------------ | |
//********************************************************[ Grid Agenda ]******* | |
// Dibujamos el zebrado | |
//------------------------------------------------------------------------------ | |
begin | |
Zebrado(DsPrincipal,DBGNoEnable,Rect, Column, State, COLOR1GRID,COLOR2GRID); | |
end; | |
procedure TFGesRutas.DBGrid1CellClick(Column: TColumn); | |
//------------------------------------------------------------------------------ | |
//************************************************************[ Posicionar ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
ActIbdataset(DM.IBDRUTAS, 'select * from RUTAS where RUTAS.NUMERORUTA='+QuotedStr(IBQRUTASNUMERORUTA.AsString)); | |
end; | |
procedure TFGesRutas.DsIBQRutasDataChange(Sender: TObject; Field: TField); | |
//------------------------------------------------------------------------------ | |
//**********************************************************[ OnDateChange ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
if FGesRutas.Active then DSPrincipal.DataSet.Locate('NUMERORUTA',IBQRUTASNUMERORUTA.AsString,[loCaseInsensitive,loPartialKey]); | |
end; | |
procedure TFGesRutas.EbusquedaChange(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*************************************[ Mientras se escribe en busqueda ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
BBuscarClick(sender); | |
end; | |
procedure TFGesRutas.FormActivate(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//********************************************[ Cuando se activa El form ]****** | |
// Lo que queremos que haga nuestro Form Cuando se Actiba | |
//------------------------------------------------------------------------------ | |
begin | |
if Timer1.Enabled=false then Timer1.Enabled:=True; | |
QuerryOC(IBQRUTAS,True); | |
end; | |
procedure TFGesRutas.FormClose(Sender: TObject; var Action: TCloseAction); | |
//------------------------------------------------------------------------------ | |
//*************************************************[ Al Cerrarse El Form ]****** | |
// Cerramos todos los procesos para que no consuman memoria y posibles errores | |
//------------------------------------------------------------------------------ | |
begin | |
if Timer1.Enabled=true then Timer1.Enabled:=False; | |
QuerryOC(IBQRUTAS); | |
SpeedButtonBC1Click(Sender); | |
end; | |
procedure TFGesRutas.FormCreate(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//***************************************************[ Al Crearse el Fom ]****** | |
// Cosas que queremos que haga según se inicie el Form | |
//------------------------------------------------------------------------------ | |
begin | |
{Cosas que queremos que haga según se inicie el Form} | |
end; | |
procedure TFGesRutas.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 TFGesRutas.SbBorrarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*******************************************[ Borrar el Actual Registro ]****** | |
//------------------------------------------------------------------------------ | |
begin //Cambiar por el mensaje elegido | |
if DsPrincipal.DataSet.IsEmpty<>true then | |
begin | |
if (MessageBox(0, '¿Esta seguro de eliminar el registro actual?', //Aqui no se porque me manda la última comilla simple y la coma a la linea de abajo, por favor subir al final de la linea anterior | |
'Eliminar Registro', MB_ICONSTOP or MB_YESNO or MB_DEFBUTTON2) = ID_No) then abort | |
else begin | |
DSPrincipal.DataSet.Delete; | |
ShowMessage('El registro ha sido eliminado'); | |
end; | |
end else ShowMessage('No existen datos para eliminar'); | |
end; | |
procedure TFGesRutas.SBBuscarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//******************************************************[ Abrir Busqueda ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
GBBuscar.Visible:=True; | |
Ebusqueda.SetFocus; | |
end; | |
procedure TFGesRutas.SBCancelarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*****************************************************[ Cancelar Proceso]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.Cancel; | |
DM.IBTransaction1.RollbackRetaining; //Donde IBT es el nombre de su Ibtrasaction, con ruta | |
end; | |
procedure TFGesRutas.SBConfirmarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//********************************************************[ Grabar datos ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
try | |
if DSPrincipal.DataSet.State in [dsInsert, dsEdit] then DSPrincipal.DataSet.Post; | |
if DBEdit1.Field.Value>DM.IBDCONFINUMERORUTA.value then | |
begin | |
DM.IBDCONFI.Edit; | |
DM.IBDCONFINUMERORUTA.value:=DBEdit1.Field.Value; | |
if DM.IBDCONFI.State in [dsInsert, dsEdit] then DM.IBDCONFI.Post; | |
end; | |
DM.IBTransaction1.CommitRetaining; //Donde IBT es el nombre de su Ibtrasaction, con ruta | |
except | |
on E: Exception do | |
begin | |
MessageBeep(1000); | |
ShowMessage('Se ha producido un error y el proceso no se ha podido terminar Unidad:[ UGesRutas ] Modulo:[ Grabar ]' + 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) | |
+ 'El proceso ha quedado interrumpido'); | |
if DSPrincipal.DataSet.State in [dsInsert, dsEdit] then DSPrincipal.DataSet.Cancel; | |
DM.IBTransaction1.RollbackRetaining; //Donde IBT es el nombre de su Ibtrasaction, con ruta | |
end; | |
end; | |
end; | |
procedure TFGesRutas.SBImprimirClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//******************************************************[ Abrir Imprimir ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
GBImprimir.Visible:=True; | |
end; | |
procedure TFGesRutas.SBMas1Click(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*************************************************[ Avanzar un registro ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.Next; | |
end; | |
procedure TFGesRutas.SBMasXClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*************************************************[ Avanzar x Registros ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.MoveBy(SEMobeByX.Value); | |
end; | |
procedure TFGesRutas.SBMenos1Click(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//***********************************************[ Retroceder 1 registro ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.Prior; | |
end; | |
procedure TFGesRutas.SBMenosxClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//**********************************************[ Retroceder x Registros ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.MoveBy(-SEMobeByX.Value); | |
end; | |
procedure TFGesRutas.SbModificarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*******************************************[ Editar el actual registro ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
if DsPrincipal.DataSet.IsEmpty<>true then | |
begin | |
DSPrincipal.DataSet.Edit; | |
DBEdit1.SetFocus; | |
end else ShowMessage('No hay tregistros disponibles para editar') | |
end; | |
procedure TFGesRutas.SbNuevoClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*******************************************[ Creamos un nuevo registro ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.Insert; | |
if DM.IBDCONFINUMERORUTA.IsNull then DBEdit1.Field.Value:=IntToStr(1) | |
else DBEdit1.Field.Value:= IntToStr(SoloInteger(DM.IBDCONFINUMERORUTA.Value)+1); | |
DBEdit1.SetFocus; | |
end; | |
procedure TFGesRutas.SBPrimeroClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//***********************************************[ Ir al Primer Registro ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.First; | |
end; | |
procedure TFGesRutas.SBUltimoClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//***********************************************[ Ir al último registro ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.Last; | |
end; | |
procedure TFGesRutas.SB_SalirClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//******************************************************[ Salir Del Form ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
FGesRutas.Close; | |
end; | |
procedure TFGesRutas.SpeedButton1Click(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//************************************************************[ IMPRIME ]******* | |
// Muestra directamente este reporte | |
//------------------------------------------------------------------------------ | |
begin | |
//Imprimir reporte | |
end; | |
procedure TFGesRutas.SpeedButtonBC1Click(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//***************************************************[ Ver todas las rutas ]**** | |
// Ver nuevamente todas las rutas | |
//------------------------------------------------------------------------------ | |
begin | |
ActIbdataset(DM.IBDRUTAS, 'select * from RUTAS'); | |
end; | |
procedure TFGesRutas.Timer1Timer(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*************************************************[ El evento del Timer ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
SBBarraStatus.Panels[2].Text:=TimeToStr(now); | |
if SBBarraStatus.Panels[1].Text<>DateToStr(Now) then SBBarraStatus.Panels[1].Text:=DateToStr(Now); | |
end; | |
end. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment