Created
June 21, 2013 13:15
-
-
Save anonymous/5831048 to your computer and use it in GitHub Desktop.
Gestión de empleados 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 UEmpleados; | |
{$R BOTONERA.RES} | |
interface | |
uses | |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, IBDatabase, | |
MMSystem, //Para la botonera | |
NewPanelDB, //Para usar el NEwPanelDB | |
SPBBC, //Para TSpeedButtonBC | |
Lapelpanel, //Para paneles con solapa | |
MyDbIbMemo, //Para DbiMemo | |
TDbIbchkbox, //Para campos boolean en Firebird | |
Mask, DbEditDefault, //PAra usar los DbeditDefault en vez de los Dbedit normal | |
DBCBEXT, //Para usar el DbCombobox Extendido | |
GroupboxJL, //Para usar el CgoupBox especial | |
Dialogs, ComCtrls, ExtCtrls, Grids, DBGrids, StdCtrls, Spin, Buttons, DB, DBCtrls, | |
DBneweditjl; | |
//[ 1]----------------[ Para poder tener tabs del page control en color]-------- | |
Type | |
TTabSheet = class(ComCtrls.TTabSheet) | |
private | |
FColor: TColor; | |
procedure SetColor(Value: TColor); | |
procedure WMEraseBkGnd(var Msg: TWMEraseBkGnd);message WM_ERASEBKGND; | |
public | |
constructor Create(aOwner: TComponent); override; | |
property Color: TColor read FColor write SetColor; | |
end; | |
//[ 1]--FIN SECCIÓN---[ Para poder tener tabs del page control en color]-------- | |
type | |
TFEmpleados = class(TForm) | |
PanelBotonera: TNewPanelDB; | |
SBBarraStatus: TStatusBar; | |
Panel1: TPanel; | |
Panel2: TPanel; | |
PanelDatos: TNewPanelDB; | |
Panel3: TPanel; | |
DBGNoEnable: TDBGrid; | |
PanelConfirmar: TNewPanelDB; | |
DsPrincipal: TDataSource; | |
SBPrimero: TSpeedButtonBC; | |
SBMenosx: TSpeedButtonBC; | |
SBMenos1: TSpeedButtonBC; | |
SBMas1: TSpeedButtonBC; | |
SBMasX: TSpeedButtonBC; | |
SBUltimo: TSpeedButtonBC; | |
SbNuevo: TSpeedButtonBC; | |
SbModificar: TSpeedButtonBC; | |
SbBorrar: TSpeedButtonBC; | |
SB_Salir: TSpeedButtonBC; | |
SBBuscar: TSpeedButtonBC; | |
SBImprimir: TSpeedButtonBC; | |
SBConfirmar: TSpeedButtonBC; | |
SBCancelar: TSpeedButtonBC; | |
Label14: TLabel; | |
SEMobeByX: TSpinEdit; | |
GBBuscar: TGroupBoxJL; | |
Ebusqueda: TEdit; | |
BLimpiar: TButton; | |
BBuscar: TButton; | |
BCerrar: TButton; | |
GBImprimir: TGroupBoxJL; | |
CBVistaPrevia: TCheckBox; | |
CBVerDialogo: TCheckBox; | |
BCerrarIMP: TButton; | |
Timer1: TTimer; | |
PC: TPageControl; | |
Datos: TTabSheet; | |
Persona: TTabSheet; | |
Notas: TTabSheet; | |
Label1: TLabel; | |
Label3: TLabel; | |
Label4: TLabel; | |
Label5: TLabel; | |
Label6: TLabel; | |
Label7: TLabel; | |
Label8: TLabel; | |
Label9: TLabel; | |
Label10: TLabel; | |
Label11: TLabel; | |
Label12: TLabel; | |
Label13: TLabel; | |
Label15: TLabel; | |
Label16: TLabel; | |
DBNCODIGO: TDBNewEditJL; | |
DBNMedia: TDBNewEditJL; | |
DBNFechaAlta: TDBNewEditJL; | |
DBNFechaBaja: TDBNewEditJL; | |
DBNNSS: TDBNewEditJL; | |
DBNDTO1: TDBNewEditJL; | |
DBNDTO2: TDBNewEditJL; | |
DBNCIF: TDBNewEditJL; | |
DBIBChecBoxAgente: TDBIBCheckbox; | |
DBNDTO3: TDBNewEditJL; | |
DBNDTO4: TDBNewEditJL; | |
DBNDTO5: TDBNewEditJL; | |
DBNNombre: TDBNewEditJL; | |
DBNSalario: TDBNewEditJL; | |
DBNPuesto: TDBNewEditJL; | |
Label2: TLabel; | |
DBIBMemo1: TDBIBMemo; | |
Label17: TLabel; | |
DBImage2: TDBImage; | |
DBGrid1: TDBGrid; | |
Label18: TLabel; | |
DBNewEditJL1: TDBNewEditJL; | |
Label19: TLabel; | |
DBNewEditJL2: TDBNewEditJL; | |
Label20: TLabel; | |
DBNewEditJL3: TDBNewEditJL; | |
Label21: TLabel; | |
DBIBMemo2: TDBIBMemo; | |
DBGrid2: TDBGrid; | |
DBNewEditJL4: TDBNewEditJL; | |
DBNewEditJL5: TDBNewEditJL; | |
SpeedButtonBC1: TSpeedButtonBC; | |
NewPanelDB1: TNewPanelDB; | |
SBBCDatos: TSpeedButtonBC; | |
SPBCNOtas: TSpeedButtonBC; | |
SPBCPersonaContacto: TSpeedButtonBC; | |
DBNavigator1: TDBNavigator; | |
PanelAuxiliar: TNewPanelDB; | |
Panel4: TPanel; | |
SPBCModificaPC: TSpeedButtonBC; | |
SPBCNuevaPC: TSpeedButtonBC; | |
Panel5: TPanel; | |
Image1: TImage; | |
Panel6: TPanel; | |
SPBCModificarNota: TSpeedButtonBC; | |
SPBCNuevaNota: TSpeedButtonBC; | |
Panel7: TPanel; | |
Image2: TImage; | |
DBImage1: TDBImage; | |
Memo1: TMemo; | |
DsNotas2: TDataSource; | |
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 PCDrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); | |
procedure CambiarPagina(index: Integer; Sender: TObject); | |
procedure CargaDatos(Tipo:Integer;Nuevo:Boolean;Nombre:string;Sender: TObject); | |
procedure SpeedButtonBC1Click(Sender: TObject); | |
procedure SPBCNOtasClick(Sender: TObject); | |
procedure SPBCPersonaContactoClick(Sender: TObject); | |
procedure SPBCNuevaNotaClick(Sender: TObject); | |
procedure SPBCNuevaPCClick(Sender: TObject); | |
procedure SPBCModificaPCClick(Sender: TObject); | |
procedure SPBCModificarNotaClick(Sender: TObject); | |
procedure AddCabeceraMemo(Tipo:Integer); | |
procedure DSPrincipalDataChange(Sender: TObject; Field: TField); | |
procedure FormShow(Sender: TObject); | |
procedure SBBCDatosClick(Sender: TObject); | |
procedure FormPaint(Sender: TObject); | |
procedure DBNDTO1Exit(Sender: TObject); | |
procedure DBNFechaAltaExit(Sender: TObject); | |
procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect; | |
DataCol: Integer; Column: TColumn; State: TGridDrawState); | |
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; | |
DataCol: Integer; Column: TColumn; State: TGridDrawState); | |
procedure DBGNoEnableDrawColumnCell(Sender: TObject; const Rect: TRect; | |
DataCol: Integer; Column: TColumn; State: TGridDrawState); | |
private | |
{ Private declarations } | |
public | |
{ Public declarations } | |
end; | |
var | |
FEmpleados: TFEmpleados; | |
IBT:TIBTransaction; | |
//Variables para el historico (H) sólo las usaremos para este módulo | |
VarSHCodigo,VarSHNombre, VarsHNSS, VarSHCIF, VarSHPuesto, VarSAgente:String; | |
VarFHSalario, VarFHMEdia, VarFHDto1, VarFHDto2, VarFHDto3, VarFHDto4, VarFHDto5:Double; | |
VarDHFAalta, VarDHFBaja: TDate; | |
implementation | |
{$R *.dfm} | |
uses UDM, Fun, FUN_DBGRID, UMENU, UNotas,UPC; | |
//[ 2]----------------[ Para poder tener tabs del page control en color]-------- | |
constructor TTabSheet.Create(aOwner: TComponent); | |
//------------------------------------------------------------------------------ | |
//*************************************[ Crear nueva propiedad tabsheet ]******* | |
//------------------------------------------------------------------------------ | |
begin | |
inherited; | |
FColor := clBtnFace; | |
end; | |
//[ 2]--FIN SECCIÓN---[ Para poder tener tabs del page control en color]-------- | |
//[ 3]----------------[ Para poder tener tabs del page control en color]-------- | |
procedure TTabSheet.SetColor(Value: TColor); | |
//------------------------------------------------------------------------------ | |
//**************************************************[ Seleción de color ]******* | |
//------------------------------------------------------------------------------ | |
begin | |
if FColor <> Value then | |
begin | |
FColor := Value; | |
Invalidate; | |
end; | |
end; | |
//[ 3]--FIN SECCIÓN---[ Para poder tener tabs del page control en color]-------- | |
//[ 4]----------------[ Para poder tener tabs del page control en color]-------- | |
procedure TTabSheet.WMEraseBkGnd(var Msg: TWMEraseBkGnd); | |
//------------------------------------------------------------------------------ | |
//******************************************[ Dibujar en el pagecontrol ]******* | |
//------------------------------------------------------------------------------ | |
begin | |
if FColor = clBtnFace then | |
inherited | |
else | |
begin | |
Brush.Color := FColor; | |
Windows.FillRect(Msg.dc, ClientRect, Brush.Handle); | |
Msg.Result := 1; | |
end; | |
end; | |
//[ 4]--FIN SECCIÓN---[ Para poder tener tabs del page control en color]-------- | |
procedure TFEmpleados.CambiarPagina(index: Integer; Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//********************************************************[ Cambiar Página ]**** | |
// Al pulsar los botones para acceder a las pestañas | |
//------------------------------------------------------------------------------ | |
var VarBActivar:Boolean; | |
VarISegundoPageControlIndex:Integer; | |
VarSModulo, VarSCodigo:string; | |
begin | |
VarBActivar:=true; | |
VarISegundoPageControlIndex:=0; | |
VarSNomMod:='EMPLEADOS'; | |
VarSModulo:='EMPLEADOS'; | |
VarSCodigo:=DBNCodigo.Text; | |
case index of | |
0:begin //Datos | |
VarBActivar:=False; | |
end; | |
1:begin //personas de contacto | |
ActQuery(DM.IBQPersonasContacto,'SELECT * FROM PC WHERE (PC.MODULO = '+QuotedStr(VarSModulo)+') AND (PC.CODIGO = '+QuotedStr(VarSCodigo)+')'); | |
if not DM.IBQPersonasContacto.IsEmpty then | |
begin | |
DBNavigator1.DataSource:=DM.DSIBQPersonasContacto; | |
end else DM.IBQPersonasContacto.Active:=False; | |
VarISegundoPageControlIndex:=1; | |
end; | |
2:begin //Notas | |
ActQuery(DM.IBQNOTAS,'SELECT * FROM NOTAS WHERE (NOTAS.NOMBREMODULO = '+QuotedStr(VarSModulo)+') AND (NOTAS.CODIGO = '+QuotedStr(VarSCodigo)+')'); | |
if not DM.IBQNOTAS.IsEmpty then | |
begin | |
DBNavigator1.DataSource:=DM.DSNotas; | |
//Gride de notas | |
TStringGrid(DBGrid2).DefaultRowHeight :=30; //Debe cambiarse el Grid | |
TStringGrid(DBGrid2).RowHeights[0]:=20; //Debe cambiarse el Grid | |
end else DM.IBQNOTAS.Active:=False; | |
end; | |
end; | |
DBNavigator1.Enabled:=VarBActivar; | |
PC.ActivePageIndex:=index; | |
end; | |
procedure TFEmpleados.CargaDatos(Tipo:Integer;Nuevo:Boolean;Nombre:string;Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//***********************************************************[ Carga datos ]**** | |
// Datos Comunes (la idea es la carga de datos comunes | |
//------------------------------------------------------------------------------ | |
var VarSModulo, VarSModulo2, VarSCodigo:string; | |
begin | |
VarSModulo:='EMPLEADOS'; | |
VarSNomMod:='EMPLEADOS'; | |
VarSCodigo:=DBNCodigo.Text; | |
VarSModulo2:='el proveedor'; //Como reutilizamos el código para sólo tener que cambiar aquí el módulo | |
if DBNCodigo.Text<>'' then | |
begin | |
VarSNomMod:=VarSModulo; | |
VarsCod:=DBNCodigo.Field.Value; | |
case Tipo of | |
0:begin //Notas | |
SPBCNOtasClick(sender); | |
FNotas.Show; | |
if Nuevo=false then | |
begin | |
ActIbdataset(DM.IBDNOTAS,'SELECT * FROM NOTAS WHERE (NOTAS.NOMBREMODULO = '+QuotedStr(VarSModulo)+') AND (NOTAS.CODIGO = '+QuotedStr(VarSCodigo)+')'); | |
end else | |
begin | |
Fnotas.SbNuevoClick(Sender); | |
Fnotas.DBNewEditJL3.SetFocus; | |
end; | |
end; | |
1:begin //Personas de Contacto | |
SPBCPersonaContactoClick(sender); | |
FPC.Show; | |
if Nuevo=false then | |
begin | |
ActIbdataset(DM.IBDPC,'SELECT * FROM PC WHERE (PC.MODULO = '+QuotedStr(VarSModulo)+') AND (PC.CODIGO = '+QuotedStr(VarSCodigo)+')'); | |
end else | |
begin | |
FPC.SbNuevoClick(Sender); | |
FPC.DBEdit3.SetFocus; | |
end; | |
end; | |
end; | |
end else | |
begin | |
if Nuevo then ShowMessage('Debe crear y seleccionar '+VarSModulo2+' para poder crearle una nuevo/a '+Nombre) | |
else ShowMessage('Debe crear y seleccionar '+VarSModulo2+' para poder modificar/borrar el/la '+Nombre); | |
end; | |
end; | |
procedure TFEmpleados.DBGNoEnableDrawColumnCell(Sender: TObject; | |
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); | |
//------------------------------------------------------------------------------ | |
//*******************************************************[ ZEbaro del Grid ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
Zebrado(DsPrincipal,DBGNoEnable, Rect, Column, State, COLOR1GRID,COLOR2GRID); | |
end; | |
procedure TFEmpleados.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; | |
DataCol: Integer; Column: TColumn; State: TGridDrawState); | |
//------------------------------------------------------------------------------ | |
//*******************************************************[ ZEbaro del Grid ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
Zebrado(DM.DSIBQPersonasContacto,DBGrid1, Rect, Column, State, COLOR1GRID,COLOR2GRID); | |
end; | |
procedure TFEmpleados.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect; | |
DataCol: Integer; Column: TColumn; State: TGridDrawState); | |
//------------------------------------------------------------------------------ | |
//*******************************************************[ ZEbaro del Grid ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
Zebrado(DM.DSNotas,DBGrid2, Rect, Column, State, COLOR1GRID,COLOR2GRID); | |
MemoGridB(DBGrid2,DM.DSNotas.DataSet.FieldByName('NOTAS'), Rect, Column, State); | |
end; | |
procedure TFEmpleados.DBNDTO1Exit(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*******************************************************[ Saliir de Dto 1 ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
if DBNDTO2.Text='' then DBNDTO2.Field.Value:=DBNDTO1.Field.Value; | |
if DBNDTO3.Text='' then DBNDTO3.Field.Value:=DBNDTO1.Field.Value; | |
if DBNDTO4.Text='' then DBNDTO4.Field.Value:=DBNDTO1.Field.Value; | |
if DBNDTO5.Text='' then DBNDTO5.Field.Value:=DBNDTO1.Field.Value; | |
end; | |
procedure TFEmpleados.DBNFechaAltaExit(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//************************************************[ Salir de fecha de Alta ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
if DBNFechaBaja.Text='' then DBNFechaBaja.Text:=DBNFechaAlta.Text; | |
end; | |
procedure TFEmpleados.DSPrincipalDataChange(Sender: TObject; Field: TField); | |
//------------------------------------------------------------------------------ | |
//****************************************************[ DsPrincipal Change ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
if FEmpleados.Active then //Prmero comprobamos que la página esta activa | |
begin | |
if not (DsPrincipal.DataSet.State in [dsEdit,dsInsert]) then //Si no estamos editando o insertando | |
begin | |
if DBNCODIGO.Text<>'' then | |
begin | |
ActQuery(DM.IBQPersonasContacto,' SELECT * FROM PC WHERE (PC.MODULO = '+QuotedStr('EMPLEADOS')+ | |
') AND (PC.CODIGO = '+QuotedStr(DsPrincipal.DataSet.FieldByName('CODIGO').value)+')'); | |
ActQuery(DM.IBQNOTAS,'SELECT * FROM NOTAS WHERE (NOTAS.NOMBREMODULO = '+QuotedStr('EMPLEADOS')+ | |
') AND (NOTAS.CODIGO = '+QuotedStr(DsPrincipal.DataSet.FieldByName('CODIGO').value)+')'); | |
end; | |
end; | |
end; | |
end; | |
procedure TFEmpleados.BBuscarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//**************************************************************[ Buscar ]****** | |
//------------------------------------------------------------------------------ | |
var Campo:string; | |
begin | |
Campo:='NOMBRE'; {Dato a rellenar por el progrmador con el nombre del campo en la busqueda} | |
DSPrincipal.DataSet.Locate(Campo,Ebusqueda.Text,[loCaseInsensitive,loPartialKey]); | |
end; | |
procedure TFEmpleados.BCerrarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*****************************************************[ Cerrar Busqueda ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
BLimpiarClick(Sender); | |
GBBuscar.Visible:=False; | |
end; | |
procedure TFEmpleados.BCerrarIMPClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//****************************************************[ Cerrar Imrprimir ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
GBImprimir.Visible:=False; | |
end; | |
procedure TFEmpleados.BLimpiarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//**************************************************[ Limpia la busqueda ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
Ebusqueda.Text:=''; | |
BBuscarClick(Sender); | |
Ebusqueda.SetFocus; | |
end; | |
procedure TFEmpleados.EbusquedaChange(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*************************************[ Mientras se escribe en busqueda ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
BBuscarClick(sender); | |
end; | |
procedure TFEmpleados.FormActivate(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//********************************************[ Cuando se activa El form ]****** | |
// Lo que queremos que haga nuestro Form Cuando se Actiba | |
//------------------------------------------------------------------------------ | |
begin | |
//Carganmos las imagenes de los botones | |
SBPrimero.Glyph.Handle:=Loadbitmap(HInstance,'FIRST'); | |
SBMenosx.Glyph.Handle:=Loadbitmap(HInstance,'RETROCEDER'); | |
SBMenos1.Glyph.Handle:=Loadbitmap(HInstance,'PRIOR'); | |
SBMas1.Glyph.Handle:=Loadbitmap(HInstance,'NEXT'); | |
SBMasX.Glyph.Handle:=Loadbitmap(HInstance,'AVANZAR'); | |
SBUltimo.Glyph.Handle:=Loadbitmap(HInstance,'LAST'); | |
SbNuevo.Glyph.Handle:=Loadbitmap(HInstance,'NUEVO'); | |
SbModificar.Glyph.Handle:=Loadbitmap(HInstance,'EDIT'); | |
SbBorrar.Glyph.Handle:=Loadbitmap(HInstance,'BORRAR'); | |
SB_Salir.Glyph.Handle:=Loadbitmap(HInstance,'SALIR'); | |
SBBuscar.Glyph.Handle:=Loadbitmap(HInstance,'BUSCAR'); | |
SBImprimir.Glyph.Handle:=Loadbitmap(HInstance,'IMPRIMIR'); | |
SBConfirmar.Glyph.Handle:=Loadbitmap(HInstance,'CHECKROUND'); | |
SBCancelar.Glyph.Handle:=Loadbitmap(HInstance,'CANCEL'); | |
if Timer1.Enabled=false then Timer1.Enabled:=True; | |
//Ponemos el Juego de colores de mis NewPanelDB | |
PanelBotonera.ColorNotActive:=COLORPANELACT; | |
PanelBotonera.ActiveColor:=COLORPANELNOACT; | |
PanelDatos.ActiveColor:=COLORPANELACT; | |
PanelDatos.ColorNotActive:=COLORPANELNOACT; | |
PanelConfirmar.ActiveColor:=COLORPANELACT; | |
PanelConfirmar.ColorNotActive:=COLORPANELNOACT; | |
//El siguiente código tendria que ponerse en los módulo anteriores ya que al pulsar, un botón de los auxiliares, se nos iria, ahora | |
// Al controlarlo mediante un NewPAnelDB unido al DSPrincipal y inverseAction a true, evitamos que cuando estemos en inserción o en | |
//edición, sean piulsables estos botones, evitando posibles errores | |
PanelAuxiliar.ColorNotActive:=COLORPANELACT; | |
PanelAuxiliar.ActiveColor:=COLORPANELNOACT; | |
end; | |
procedure TFEmpleados.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; | |
end; | |
procedure TFEmpleados.FormCreate(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//***************************************************[ Al Crearse el Fom ]****** | |
// Cosas que queremos que haga según se inicie el Form | |
//------------------------------------------------------------------------------ | |
begin | |
IBT:=DM.IBTransaction1; // Aquí especificar el modulo y el IBTransaction a usar | |
//[ 5]----------------------------[ Tabs de page control en color ]------------- | |
Datos.Color:=clMoneyGreen; //verde pastel | |
Persona.Color:=clSkyBlue; //Azul Pastel | |
Notas.Color:=clInfoBk; //Amarillo pastel | |
//[ 5]----------------------------[ Tabs de page control en color ]------------- | |
{Cosas que queremos que haga según se inicie el Form} | |
PC.ActivePageIndex:=0; | |
end; | |
procedure TFEmpleados.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 TDBIBCheckbox) | |
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 TFEmpleados.FormPaint(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//***************************************************************[ OnPaint ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
if DBIBChecBoxAgente.Font.Style=[] then DBIBChecBoxAgente.Font.Style:=[fsBold]; | |
end; | |
procedure TFEmpleados.FormShow(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//****************************************************************[ OnShow ]**** | |
// Al mostrarse | |
//------------------------------------------------------------------------------ | |
begin | |
if DBNCODIGO.Text<>'' then | |
begin | |
ActQuery(DM.IBQPersonasContacto,' SELECT * FROM PC WHERE (PC.MODULO = '+QuotedStr('EMPLEADOS')+ | |
') AND (PC.CODIGO = '+QuotedStr(DsPrincipal.DataSet.FieldByName('CODIGO').value)+')'); | |
ActQuery(DM.IBQNOTAS,'SELECT * FROM NOTAS WHERE (NOTAS.NOMBREMODULO = '+QuotedStr('EMPLEADOS')+ | |
') AND (NOTAS.CODIGO = '+QuotedStr(DsPrincipal.DataSet.FieldByName('CODIGO').value)+')'); | |
end; | |
if Nivel>=8 then //Si es un usario de nivel 8 o superios | |
begin | |
Label16.Visible:=True; | |
DBNSalario.Visible:=True; | |
end else | |
begin //en este caso si es usuario nivel 7 que es con el que más bajo podemos entrar | |
Label16.Visible:=False; | |
DBNSalario.Visible:=False; | |
end | |
end; | |
procedure TFEmpleados.PCDrawTab(Control: TCustomTabControl; TabIndex: Integer; | |
const Rect: TRect; Active: Boolean); | |
//------------------------------------------------------------------------------ | |
//************************************************[ COLORES PAGECONTROL ]******* | |
//------------------------------------------------------------------------------ | |
var | |
//[ 6]----------------[ Para poder tener tabs del page control en color]-------- | |
AText: string; | |
APoint: TPoint; | |
//[ 6]--FIN SECCIÓN---[ Para poder tener tabs del page control en color]-------- | |
begin | |
//[ 7]----------------[ Para poder tener tabs del page control en color]-------- | |
with (Control as TPageControl).Canvas do | |
begin | |
case TabIndex of | |
0: brush.Color:=clMoneyGreen; | |
1: brush.Color:=clSkyBlue; | |
2: brush.Color:=clInfoBk; | |
end; | |
PC.Canvas.Rectangle(Rect); | |
PC.Canvas.Brush.Color:=Control.Canvas.Brush.Color; | |
PC.Pages[TabIndex].brush.Color := Control.Canvas.brush.Color; | |
PC.Pages[TabIndex].Repaint; | |
FillRect(Rect); | |
AText := TPageControl(Control).Pages[TabIndex].Caption; | |
with Control.Canvas do | |
begin | |
APoint.x := (Rect.Right - Rect.Left) div 2 - TextWidth(AText) div 2; | |
APoint.y := (Rect.Bottom - Rect.Top) div 2 - TextHeight(AText) div 2; | |
TextRect(Rect, Rect.Left + APoint.x, Rect.Top + APoint.y, AText); | |
end; | |
end; | |
//[ 7]--FIN SECCIÓN---[ Para poder tener tabs del page control en color]-------- | |
end; | |
procedure TFEmpleados.SBBCDatosClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*****************************************************************[ Datos ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
CambiarPagina(0,Sender); | |
end; | |
procedure TFEmpleados.SbBorrarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*******************************************[ Borrar el Actual Registro ]****** | |
//------------------------------------------------------------------------------ | |
begin //Cambiar por el mensaje elegido | |
if (MessageBox(0, '¿Esta seguro de eliminar el registro actual?', | |
'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'); | |
IBT.CommitRetaining; | |
end; | |
end; | |
procedure TFEmpleados.SBBuscarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//******************************************************[ Abrir Busqueda ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
GBBuscar.Visible:=True; | |
Ebusqueda.SetFocus; | |
end; | |
procedure TFEmpleados.SBCancelarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*****************************************************[ Cancelar Proceso]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.Cancel; | |
IBT.RollbackRetaining; //Donde IBT es el nombre de su Ibtrasaction, con ruta | |
end; | |
procedure TFEmpleados.AddCabeceraMemo(Tipo: Integer); | |
//------------------------------------------------------------------------------ | |
//*******************************************************[ AddCabeceraMemo ]**** | |
// Crea las cabeceras de nuestro memo invisible | |
//------------------------------------------------------------------------------ | |
begin | |
case Tipo of | |
0:begin | |
Memo1.Lines.Add('-----------------------------------------------------------------------------------------------------------------------------------'); | |
Memo1.Lines.Add(' NUEVO REGISTRO Fecha: [ '+DateToStr(Now)+' ] Hora: [ '+TimeToStr(Now)+' ] Empleado: [ '+Usuario+' ]'); | |
Memo1.Lines.Add('-----------------------------------------------------------------------------------------------------------------------------------'); | |
end; | |
1:begin | |
Memo1.Lines.Add('-----------------------------------------------------------------------------------------------------------------------------------'); | |
Memo1.Lines.Add(' NUEVO REGISTRO * Fecha: [ '+DateToStr(Now)+' ] Hora: [ '+TimeToStr(Now)+' ] Empleado: [ '+Usuario+' ]'); | |
Memo1.Lines.Add('-----------------------------------------------------------------------------------------------------------------------------------'); | |
end; | |
2:begin | |
Memo1.Lines.Add(''); //Linea en blanco | |
Memo1.Lines.Add('-----------------------------------------------------------------------------------------------------------------------------------'); | |
Memo1.Lines.Add(' Modificación del registro Fecha: [ '+DateToStr(Now)+' ] Hora: [ '+TimeToStr(Now)+' ] Empleado: [ '+Usuario+' ]'); | |
Memo1.Lines.Add(''); //Linea en blanco | |
end; | |
end; | |
end; | |
procedure TFEmpleados.SBConfirmarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//********************************************************[ Grabar datos ]****** | |
//------------------------------------------------------------------------------ | |
var VarBNuevo, VarBModi:Boolean; | |
VarSModulo, VarsAgente2:string; | |
begin | |
VarSModulo:='EMPLEADOS'; | |
VarBModi:=False; | |
try | |
if DsPrincipal.DataSet.State in [dsInsert] then VarBNuevo:=True | |
else VarBNuevo:=false; | |
if (DBNCODIGO.Text<>'') and (DBNNombre.Text<>'') and (DBNFechaAlta.Text<>'') and (DBNPuesto.Text<>'') then | |
begin | |
DSPrincipal.DataSet.Post; | |
Memo1.Lines.Clear; //Este memo tiene el visible:=False; por lo que no se vera en la imagen del módulo | |
//Empesamos con algo nuevo el control de l historico, al crearse y cada vez que se modifique un dato, lo registrara | |
if VarBNuevo then //Si es nuevo | |
begin | |
AddCabeceraMemo(0); | |
DSNotas2.DataSet.Insert; //creamos directamente el campo historico | |
//No me explico por que pero si pongo sólo un umodo no se graba el dato | |
DSNotas2.DataSet.FieldByName('CODIGO').Value:=DBNCODIGO.Text; | |
DSNotas2.DataSet.FieldByName('NOMBREMODULO').Value:='EMPLEADOS'; | |
DSNotas2.DataSet.FieldByName('DESCRIPCION').Value:='Historico'; | |
DSNotas2.DataSet.FieldByName('NOTAS').Value:=Memo1.Lines.Text; | |
DSNotas2.DataSet.Post; | |
end else | |
begin //Si es una modificación | |
if DSNotas2.DataSet.locate('NOMBREMODULO;CODIGO;DESCRIPCION', | |
VarArrayOf([VarSNomMod,DBNCODIGO.Text,'Historico']),[loCaseInsensitive,loPartialKey])=false then | |
begin //Si no lo encuntra, por que ha sido borrado, o se ha modificado el código, lo crea nuevamente con un * | |
//para diferenciarlo del original | |
AddCabeceraMemo(1); | |
DSNotas2.DataSet.Edit; | |
DSNotas2.DataSet.FieldByName('CODIGO').Value:=DBNCODIGO.Text; | |
DSNotas2.DataSet.FieldByName('NOMBREMODULO').Value:='EMPLEADOS'; | |
DSNotas2.DataSet.FieldByName('DESCRIPCION').Value:='Historico'; | |
DSNotas2.DataSet.FieldByName('NOTAS').Value:=Memo1.Lines.Text; | |
DSNotas2.DataSet.Post; | |
Memo1.Lines.Clear; | |
//Volvemos a poscionar el registro | |
DSNotas2.DataSet.locate('NOMBREMODULO;CODIGO;DESCRIPCION',VarArrayOf([VarSNomMod,DBNCODIGO.Text,'Historico']),[loCaseInsensitive,loPartialKey]); | |
end; | |
Memo1.Lines.Text:=DSNotas2.DataSet.FieldByName('NOTAS').AsString; //Cargamos todo el texto | |
//Comprobamos las modificaciones | |
if VarSHCodigo<>DBNCODIGO.Field.Value then //El código | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
Memo1.Lines.Add('Campo Código, se modifico '+VarSHCodigo+' por '+ DBNCODIGO.Text); | |
End; | |
if VarSHNombre<>DBNNombre.Field.Value then //Nombre | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Nombre, se modifico '+VarSHNombre+' por '+ DBNNombre.Text); | |
End; | |
if VarSHCIF<>DBNCIF.Field.Value then //Número de documento identificativo | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Documento identidficativo, se modifico '+VarSHCIF+' por '+ DBNCIF.Text); | |
End; | |
if VarsHNSS<>DBNNSS.Field.Value then //Número de Seguridad Social | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Número Seguridad Social, se modifico '+VarsHNSS+' por '+ DBNNSS.Text); | |
End; | |
if VarSHPuesto<>DBNPuesto.Field.Value then //Puesto de trabajo | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Puesto, se modifico '+VarSHPuesto+' por '+ DBNPuesto.Text); | |
End; | |
if DBIBChecBoxAgente.Checked then VarSAgente2:='S' //Comprovamos si sigue igual | |
else VarSAgente2:='N'; | |
if VarSAgente<>VarsAgente2 then //Es agente o comercial | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Agente, se modifico '+VarSAgente+' por '+ VarsAgente2); | |
End; | |
if VarFHSalario<>DBNSalario.Field.Value then //Salario | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Salario, se modifico '+FloatToStr(VarFHSalario)+' por '+ DBNSalario.Text); | |
End; | |
if VarFHMEdia<>DBNMedia.Field.Value then //MEdia | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Media, se modifico '+FloatToStr(VarFHMEdia)+' por '+ DBNMedia.Text); | |
End; | |
if VarFHDto1<>DBNDTO1.Field.Value then //Dto Comision 1 | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Dto Comision 1, se modifico '+FloatToStr(VarFHDto1)+' por '+ DBNDTO1.Text); | |
End; | |
if VarFHDto2<>DBNDTO1.Field.Value then //Dto Comision 2 | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Dto Comision 2, se modifico '+FloatToStr(VarFHDto2)+' por '+ DBNDTO2.Text); | |
End; | |
if VarFHDto3<>DBNDTO1.Field.Value then //Dto Comision 3 | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Dto Comision 3, se modifico '+FloatToStr(VarFHDto3)+' por '+ DBNDTO3.Text); | |
End; | |
if VarFHDto4<>DBNDTO1.Field.Value then //Dto Comision 4 | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Dto Comision 4, se modifico '+FloatToStr(VarFHDto4)+' por '+ DBNDTO4.Text); | |
End; | |
if VarFHDto5<>DBNDTO1.Field.Value then //Dto Comision 5 | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Dto Comision 5, se modifico '+FloatToStr(VarFHDto5)+' por '+ DBNDTO5.Text); | |
End; | |
if VarDHFAalta<>DBNFechaAlta.Field.Value then //Fecha de alta | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Fecha de alta, se modifico '+DateToStr(VarDHFAalta)+' por '+ DBNFechaAlta.Text); | |
End; | |
if VarDHFBaja<>DBNFechaBaja.Field.Value then //Fecha de baja | |
begin | |
if VarBModi=false then | |
begin | |
VarBModi:=true; | |
AddCabeceraMemo(2); | |
end; | |
Memo1.Lines.Add('Campo Fecha de baja, se modifico '+DateToStr(VarDHFBaja)+' por '+ DBNFechaBaja.Text); | |
End; | |
if VarBModi then | |
begin | |
Memo1.Lines.Add('-----------------------------------------------------------------------------------------------------------------------------------'); | |
DSNotas2.DataSet.Edit; //YA esta pocionado por el locate | |
DSNotas2.DataSet.FieldByName('NOTAS').Value:=Memo1.Lines.Text; | |
DSNotas2.DataSet.Post; | |
end; | |
end; | |
IBT.CommitRetaining; | |
end else ShowMessage('Debe rellenar ComObject mínimo los campos Código, Nombre, Fecha de alta y Puesto, para poder grabar los datos'); | |
except | |
on E: Exception do | |
begin | |
MessageBeep(1000); | |
ShowMessage('Se ha producido un error y el proceso no se ha podido terminar Unidad:[ UEmpleados ] 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'); | |
DSPrincipal.DataSet.Cancel; | |
IBT.RollbackRetaining; //Donde IBT es el nombre de su Ibtrasaction, con ruta | |
end; | |
end; | |
end; | |
procedure TFEmpleados.SBImprimirClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//******************************************************[ Abrir Imprimir ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
GBImprimir.Visible:=True; | |
end; | |
procedure TFEmpleados.SBMas1Click(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*************************************************[ Avanzar un registro ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.Next; | |
end; | |
procedure TFEmpleados.SBMasXClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*************************************************[ Avanzar x Registros ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.MoveBy(SEMobeByX.Value); | |
end; | |
procedure TFEmpleados.SBMenos1Click(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//***********************************************[ Retroceder 1 registro ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.Prior; | |
end; | |
procedure TFEmpleados.SBMenosxClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//**********************************************[ Retroceder x Registros ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.MoveBy(-SEMobeByX.Value); | |
end; | |
procedure TFEmpleados.SbModificarClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*******************************************[ Editar el actual registro ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
if DsPrincipal.DataSet.IsEmpty<>true then | |
begin | |
DSPrincipal.DataSet.Edit; | |
PC.ActivePageIndex:=0; | |
//Cargamos los datos para controloar el historico | |
VarSHCodigo:=DBNCODIGO.Field.Value; | |
VarSHNombre:=DBNNombre.Field.Value; | |
VarsHNSS:=DBNNSS.Field.Value; | |
VarSHCIF:=DBNCIF.Field.Value; | |
VarSHPuesto:=DBNPuesto.Field.Value; | |
if DBIBChecBoxAgente.Checked then VarSAgente:='S' | |
else VarSAgente:='N'; | |
VarFHSalario:=DBNSalario.Field.Value; | |
VarFHMEdia:=DBNMedia.Field.Value; | |
VarFHDto1:=DBNDTO1.Field.Value; | |
VarFHDto2:=DBNDTO2.Field.Value; | |
VarFHDto3:=DBNDTO3.Field.Value; | |
VarFHDto4:=DBNDTO4.Field.Value; | |
VarFHDto5:=DBNDTO5.Field.Value; | |
VarDHFAalta:=DBNFechaAlta.Field.Value; | |
VarDHFBaja:=DBNFechaBaja.Field.Value; | |
DBNCODIGO.setfocus; | |
end else ShowMessage('No hay tregistros disponibles para editar') | |
end; | |
procedure TFEmpleados.SbNuevoClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*******************************************[ Creamos un nuevo registro ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.Insert; | |
PC.ActivePageIndex:=0; | |
DBNCODIGO.SetFocus; | |
end; | |
procedure TFEmpleados.SBPrimeroClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//***********************************************[ Ir al Primer Registro ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.First; | |
end; | |
procedure TFEmpleados.SBUltimoClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//***********************************************[ Ir al último registro ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
DSPrincipal.DataSet.Last; | |
end; | |
procedure TFEmpleados.SB_SalirClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//******************************************************[ Salir Del Form ]****** | |
//------------------------------------------------------------------------------ | |
begin | |
FEmpleados.Close; | |
end; | |
procedure TFEmpleados.SPBCModificaPCClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//**********************************************************[ Modificar PC ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
CargaDatos(1,false,'Persona de contacto',Sender); | |
end; | |
procedure TFEmpleados.SPBCModificarNotaClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//********************************************************[ Modificar Nota ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
CargaDatos(0,False,'Nota',Sender); | |
end; | |
procedure TFEmpleados.SPBCNOtasClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//*****************************************************************[ Notas ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
CambiarPagina(2,Sender); | |
end; | |
procedure TFEmpleados.SPBCNuevaNotaClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//************************************************************[ Nueva Nota ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
CargaDatos(0,True,'Nota',Sender); | |
end; | |
procedure TFEmpleados.SPBCNuevaPCClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//**************************************************************[ Nueva PC ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
CargaDatos(1,True,'Persona de contacto',Sender); | |
end; | |
procedure TFEmpleados.SPBCPersonaContactoClick(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//***************************************************[ Persona de contacto ]**** | |
//------------------------------------------------------------------------------ | |
begin | |
CambiarPagina(1,Sender); | |
end; | |
procedure TFEmpleados.SpeedButtonBC1Click(Sender: TObject); | |
//------------------------------------------------------------------------------ | |
//********************************************************[ Ver Comisiones ]**** | |
// A falta de la tabla comisiones | |
//------------------------------------------------------------------------------ | |
begin | |
if DBIBChecBoxAgente.Checked then | |
begin | |
//Si es agente abrimos el módulo de comisiones, para ver las comisiones de este agente o comercial | |
//Tenemos que poner un ACtIBDataSet para asegurarnos de que sólo se vea las de este empleado | |
end; | |
end; | |
procedure TFEmpleados.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