First commit 11/12/1999
This commit is contained in:
589
DViewer.cpp
Normal file
589
DViewer.cpp
Normal file
@ -0,0 +1,589 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#include <io.h>
|
||||
#include <vcl.h>
|
||||
#pragma hdrstop
|
||||
|
||||
#include <winuser.h>
|
||||
|
||||
#include "DViewer.h"
|
||||
#include "DViewer_Print.h"
|
||||
#include "DViewer_PrintHistoric.h"
|
||||
#include "DViewer_PrintBonos.h"
|
||||
#include "DViewer_PrintClientes.h"
|
||||
//---------------------------------------------------------------------------
|
||||
#pragma package(smart_init)
|
||||
#pragma link "ElastFrm"
|
||||
#pragma link "ElastFrm"
|
||||
#pragma resource "*.dfm"
|
||||
TDViewerF *DViewerF;
|
||||
//---------------------------------------------------------------------------
|
||||
#define TIPO_CONEXION 1
|
||||
#define CAMBIO_PERIODO 2
|
||||
|
||||
__fastcall TDViewerF::TDViewerF(TComponent* Owner)
|
||||
: TForm(Owner)
|
||||
{
|
||||
MargenRuptura->ItemIndex = 1;
|
||||
SelIndex->ItemIndex = 1;
|
||||
MinFecha->Date = TDateTime::CurrentDate();
|
||||
MaxFecha->Date = TDateTime::CurrentDate();
|
||||
TerminalFiltered = false;
|
||||
RefiltraDatos();
|
||||
StatusBar1->Panels->Items[0]->Text = "Visualizador listo...";
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TDViewerF::TbHistoricoBeforeOpen(TDataSet *DataSet)
|
||||
{
|
||||
// Si la tabla no existe, la creamos
|
||||
if ( access( (TbHistorico -> TableName).c_str(), 0 ) != 0 )
|
||||
{
|
||||
ShowMessage( "Esta aplicaci<63>n es un complemento de visualizaci<63>n a CtrlMstr\nY no puede se ejecutada por separado\n(Primero a de activar el control maestro)" );
|
||||
Abort();
|
||||
Close();
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TDViewerF::TbHistoricoCalcFields(TDataSet *DataSet)
|
||||
{
|
||||
switch ( TbHistorico->FieldByName("idtc")->AsInteger )
|
||||
{
|
||||
// Internet
|
||||
case 0: TbHistorico->FieldByName("TipoConexion")->AsString="Internet"; break;
|
||||
// Juegos
|
||||
case 1: TbHistorico->FieldByName("TipoConexion")->AsString="Juegos"; break;
|
||||
// Otros
|
||||
case 2: TbHistorico->FieldByName("TipoConexion")->AsString="Otros..."; break;
|
||||
// Envio de Listas
|
||||
case 3: TbHistorico->FieldByName("TipoConexion")->AsString="Clases"; break;
|
||||
// Envio de Listas
|
||||
case 997: TbHistorico->FieldByName("TipoConexion")->AsString="ENVIO LISTAS"; break;
|
||||
// Tiempo Anulado
|
||||
case 998: TbHistorico->FieldByName("TipoConexion")->AsString="TIEMPO ANULADO"; break;
|
||||
// Cierre de Windows
|
||||
case 999: TbHistorico->FieldByName("TipoConexion")->AsString="Cerrar Windows"; break;
|
||||
default: TbHistorico->FieldByName("TipoConexion")->AsString="DESCONOCIDA"; break;
|
||||
}
|
||||
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int __fastcall TDViewerF::Obten_idtc(void)
|
||||
{
|
||||
int dev;
|
||||
switch( (idtConexion->ItemIndex-1) )
|
||||
{
|
||||
case 0:
|
||||
dev = 0;
|
||||
break;
|
||||
case 1:
|
||||
dev = 1;
|
||||
break;
|
||||
case 2:
|
||||
dev = 3;
|
||||
break;
|
||||
case 3:
|
||||
dev = 2;
|
||||
break;
|
||||
case 4:
|
||||
dev = 997;
|
||||
break;
|
||||
case 5:
|
||||
dev = 998;
|
||||
break;
|
||||
case 6:
|
||||
dev = 999;
|
||||
break;
|
||||
default:
|
||||
dev = 0;
|
||||
break;
|
||||
}
|
||||
return dev;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TDViewerF::RefiltraDatos(void)
|
||||
{
|
||||
StatusBar1->Panels->Items[0]->Text = "Evaluando filtro...";
|
||||
|
||||
TDateTime FechaMin, FechaMax;
|
||||
TbHistorico->FilterOptions = TbHistorico->FilterOptions << foCaseInsensitive;
|
||||
|
||||
MaxFecha->Time = 36544.9999891088;//EncodeTime( 23, 59, 59, 59 );
|
||||
FechaMax = MaxFecha->Date;
|
||||
MinFecha->Time = 0;
|
||||
FechaMin = MinFecha->Date;
|
||||
|
||||
TbHistorico->Filter = "[FComienzo] >= '" + FechaMin + "' AND [FComienzo] <= '" + FechaMax +"'";
|
||||
TbHistorico->Filtered = true;
|
||||
|
||||
// Refiltramos los bonos
|
||||
TbBonos->FilterOptions = TbBonos->FilterOptions << foCaseInsensitive;
|
||||
TbBonos->Filter = "[FechaCompra] >= '" + FechaMin + "' AND [FechaCompra] <= '" + FechaMax +"'";
|
||||
TbBonos->Filtered = true;
|
||||
|
||||
StatusBar1->Panels->Items[0]->Text = "Rellenando gr<67>ficas...";
|
||||
CalculaGraficas();
|
||||
StatusBar1->Panels->Items[0]->Text = "";
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TDViewerF::CalculaGraficas(void)
|
||||
{
|
||||
unsigned short hh, mm, ss, mss;
|
||||
Currency TotalF, TotalR;
|
||||
int NConF, NConR, NumBonos;
|
||||
|
||||
TDateTime HoraFinAnterior; // Hora a la que deb<65>o acabar el elto. anterior
|
||||
int EltoAnterior; // Elemento anterior
|
||||
TDateTime Ruptura; // Tiempo Maximo para admitir que la conexion actual
|
||||
// es continuacion de la anterior (<28>Reinicia la m<>quina?)
|
||||
|
||||
TbHistorico->DisableControls(); // Deshabilitamos los controles asociados
|
||||
|
||||
NumBonos = 0;
|
||||
NConF = 0; NConR = 0;
|
||||
TotalF = 0; TotalR = 0;
|
||||
ProgressBar1->Min = 0;
|
||||
ProgressBar1->Max = TbElementos->RecordCount;
|
||||
HoraFinAnterior = 0;
|
||||
EltoAnterior = 0;
|
||||
if ( MargenRuptura->ItemIndex == -1 )
|
||||
Ruptura = EncodeTime( 0, 0, 0, 0 );
|
||||
else
|
||||
Ruptura = EncodeTime( 0, (MargenRuptura->ItemIndex + 1)*5, 0, 0 );
|
||||
|
||||
// Vaciamos las conexiones / hora
|
||||
for ( int i = 0; i<48; i++ )
|
||||
{
|
||||
ConexionesHoraR[ i ] = 0;
|
||||
ConexionesHoraF[ i ] = 0;
|
||||
}
|
||||
// Vaciamos los tipos de conexiones
|
||||
for ( int i=0; i < 8; i++ )
|
||||
NConexionesTipo[i] = 0;
|
||||
// Vaciamos la parrilla de datos
|
||||
for ( int i=0; i < Equipos->Items->Count; i++ )
|
||||
{
|
||||
Parrilla[i].ConF = 0;
|
||||
Parrilla[i].TotalF = 0;
|
||||
Parrilla[i].ConR = 0;
|
||||
Parrilla[i].TotalR = 0;
|
||||
Parrilla[i].horasF = 0;
|
||||
Parrilla[i].horasR = 0;
|
||||
Parrilla[i].minF = 0;
|
||||
Parrilla[i].minR = 0;
|
||||
}
|
||||
|
||||
TbHistorico->First();
|
||||
while ( ! TbHistorico->Eof )
|
||||
{
|
||||
// Si se trata de una conexion
|
||||
if ( TbHistorico->FieldByName("idtc")->AsInteger < 50 )
|
||||
{
|
||||
NConF ++;
|
||||
TotalF += TbHistorico->FieldByName("Precio")->AsCurrency;
|
||||
TbHistorico->FieldByName("FComienzo")->AsDateTime. DecodeTime( &hh, &mm, &ss, &mss );
|
||||
ConexionesHoraF[hh*2+ ((mm<30)?0:1)] ++;
|
||||
|
||||
// Si el elemento que estamos estudiando:
|
||||
// -- Termina su tiempo "justo" <20> ANTES que cuando deb<65>a hacerlo su ultima conexion
|
||||
if ( TbHistorico->FieldByName( "NumElement" )->AsInteger == EltoAnterior &&
|
||||
(TbHistorico->FieldByName("FComienzo")->AsDateTime +
|
||||
TbHistorico->FieldByName("Tiempo")->AsDateTime ) <= HoraFinAnterior
|
||||
)
|
||||
{
|
||||
// Estamos ante una conexi<78>n REAL
|
||||
InsertaEnParrilla( TbHistorico->FieldByName("NumElement")->AsInteger,
|
||||
TbHistorico->FieldByName("Precio" ) ->AsCurrency,
|
||||
TbHistorico->FieldByName("Tiempo" ) ->AsDateTime,
|
||||
false
|
||||
);
|
||||
} else {
|
||||
NConR++;
|
||||
TotalR += TbHistorico->FieldByName("Precio")->AsCurrency;
|
||||
ConexionesHoraR[hh*2+ ((mm<30)?0:1)] ++;
|
||||
|
||||
InsertaEnParrilla( TbHistorico->FieldByName("NumElement")->AsInteger,
|
||||
TbHistorico->FieldByName("Precio" ) ->AsCurrency,
|
||||
TbHistorico->FieldByName("Tiempo" ) ->AsDateTime,
|
||||
true
|
||||
);
|
||||
|
||||
switch ( TbHistorico->FieldByName("idtc")->AsInteger )
|
||||
{
|
||||
case 0: NConexionesTipo[0]++; break; // Internet
|
||||
case 1: NConexionesTipo[1]++; break; // Juegos
|
||||
case 2: NConexionesTipo[2]++; break; // Otros
|
||||
case 3: NConexionesTipo[3]++; break; // Clases
|
||||
default: NConexionesTipo[7]++; break; // -- DECONOCIDO --
|
||||
}
|
||||
}
|
||||
EltoAnterior = TbHistorico->FieldByName("NumElement")->AsInteger;
|
||||
HoraFinAnterior = TbHistorico->FieldByName("FComienzo")->AsDateTime +
|
||||
TbHistorico->FieldByName("Tiempo")->AsDateTime +
|
||||
Ruptura;
|
||||
} else {
|
||||
switch ( TbHistorico->FieldByName("idtc")->AsInteger )
|
||||
{
|
||||
case 997: NConexionesTipo[4]++; break; // Envio de Listas
|
||||
case 998: NConexionesTipo[5]++; break; // Tiempo Anulado
|
||||
case 999: NConexionesTipo[6]++; break; // Cierre de Windows
|
||||
default: NConexionesTipo[7]++; break; // -- DECONOCIDO --
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Cuando se usa bonos
|
||||
if ( TbHistorico->FieldByName("idc")->AsInteger > 0 &&
|
||||
TbHistorico->FieldByName("precio")->AsCurrency == 0
|
||||
)
|
||||
{
|
||||
NumBonos++;
|
||||
}
|
||||
|
||||
ProgressBar1->Position++;
|
||||
try { TbHistorico->Next(); } catch( ... ) { break; }
|
||||
}
|
||||
|
||||
TbHistorico->EnableControls(); // Habilitamos de nuevo los controles
|
||||
|
||||
|
||||
ConexionesHora -> Series[0] -> Clear();
|
||||
ConexionesHora -> Series[1] -> Clear();
|
||||
for ( int i = 0; i < 24; i++ )
|
||||
{
|
||||
ConexionesHora -> Series[0] -> AddXY(i*2, ConexionesHoraF[i*2], i, clTeeColor);
|
||||
ConexionesHora -> Series[0] -> AddXY(i*2+1, ConexionesHoraF[i*2+1], "<EFBFBD>", clTeeColor);
|
||||
|
||||
ConexionesHora -> Series[1] -> AddXY(i*2, ConexionesHoraR[i*2], i, clTeeColor);
|
||||
ConexionesHora -> Series[1] -> AddXY(i*2+1, ConexionesHoraR[i*2+1], "<EFBFBD>", clTeeColor);
|
||||
}
|
||||
|
||||
|
||||
// StatusBar1->Panels->Items[1]->Text = TotalF;
|
||||
ConexionesEquipos -> Series[0] -> Clear();
|
||||
ConexionesEquipos -> Series[1] -> Clear();
|
||||
for ( int i=0; i < Equipos->Items->Count; i++ )
|
||||
{
|
||||
StringGrid1->Cells[2][1+i] = Parrilla[i].ConF ;
|
||||
StringGrid1->Cells[4][1+i] = Parrilla[i].TotalF ;
|
||||
StringGrid1->Cells[3][1+i] = Parrilla[i].ConR ;
|
||||
StringGrid1->Cells[5][1+i] = Parrilla[i].TotalR ;
|
||||
StringGrid1->Cells[6][1+i] = AnsiString( Parrilla[i].horasF )+ " : " + AnsiString( Parrilla[i].minF );
|
||||
StringGrid1->Cells[7][1+i] = AnsiString( Parrilla[i].horasR )+ " : " + AnsiString( Parrilla[i].minR );
|
||||
ConexionesEquipos -> Series[0] -> Add( Parrilla[i].TotalF, Equipos->Items->Strings[i], clGreen );
|
||||
ConexionesEquipos -> Series[1] -> Add( Parrilla[i].TotalR, "", clRed );
|
||||
}
|
||||
|
||||
// Etiquetas globales
|
||||
Label4->Caption = NConR;
|
||||
Label6->Caption = NConF;
|
||||
Label8->Caption = TotalR;
|
||||
Label9->Caption = TotalF;
|
||||
NBonos->Caption = NumBonos;
|
||||
|
||||
|
||||
// Rellenamos la gr<67>fica TIPO de Conexion
|
||||
TipoConexion->Series[0]->Clear();
|
||||
TipoConexion->Series[0]->Add( NConexionesTipo[0], "Internet", clTeeColor );
|
||||
TipoConexion->Series[0]->Add( NConexionesTipo[1], "Juegos", clTeeColor );
|
||||
TipoConexion->Series[0]->Add( NConexionesTipo[2], "Otros", clTeeColor );
|
||||
TipoConexion->Series[0]->Add( NConexionesTipo[3], "Clases", clTeeColor );
|
||||
TipoConexion->Series[0]->Add( NConexionesTipo[4], "Env.Listas", clTeeColor );
|
||||
TipoConexion->Series[0]->Add( NConexionesTipo[5], "Anulaciones", clTeeColor );
|
||||
TipoConexion->Series[0]->Add( NConexionesTipo[6], "Cierres", clTeeColor );
|
||||
TipoConexion->Series[0]->Add( NConexionesTipo[7], "## NID ##", clTeeColor );
|
||||
|
||||
TbBonos->DisableControls(); // Deshabilitamos los controles asociados
|
||||
NBonosVendidos = 0;
|
||||
TotalBonos = 0;
|
||||
TbBonos->First();
|
||||
while ( ! TbBonos->Eof )
|
||||
{
|
||||
NBonosVendidos++;
|
||||
TotalBonos += TbBonos->FieldByName("coste")->AsCurrency;
|
||||
TbBonos->Next();
|
||||
}
|
||||
TbBonos->EnableControls(); // Deshabilitamos los controles asociados
|
||||
BonosVendidos->Caption = AnsiString( NBonosVendidos ) + " ( " + TotalBonos + " )";
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TDViewerF::InsertaEnParrilla( int Elto, Currency CantidadF, TDateTime Tiempo, bool Repetido )
|
||||
{
|
||||
unsigned short Hour, Min, Sec, MSec;
|
||||
Tiempo.DecodeTime( &Hour, &Min, &Sec, &MSec );
|
||||
|
||||
// Localizamos la casilla del elemento
|
||||
for ( int i=0; i < Equipos->Items->Count; i++ )
|
||||
if ( Parrilla[i].Elto == Elto )
|
||||
{
|
||||
Parrilla[i].ConF ++;
|
||||
Parrilla[i].TotalF = Parrilla[i].TotalF + CantidadF;
|
||||
|
||||
Parrilla[i].horasF += Hour + ( ( Parrilla[i].minF + Min ) / 60 );
|
||||
Parrilla[i].minF = ( Parrilla[i].minF + Min ) % 60;
|
||||
|
||||
if ( Repetido )
|
||||
{
|
||||
Parrilla[i].ConR ++;
|
||||
Parrilla[i].TotalR = Parrilla[i].TotalR + CantidadF;
|
||||
|
||||
Parrilla[i].horasR += Hour + ( ( Parrilla[i].minR + Min ) / 60 );
|
||||
Parrilla[i].minR = ( Parrilla[i].minR + Min ) % 60;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TDViewerF::MinFechaChange(TObject *Sender)
|
||||
{
|
||||
RefiltraDatos();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TDViewerF::DBGrid1DrawColumnCell(TObject *Sender,
|
||||
const TRect &Rect, int DataCol, TColumn *Column,
|
||||
TGridDrawState State)
|
||||
{
|
||||
if ( TbHistorico->FieldByName("idtc")->AsInteger > 900 )
|
||||
{
|
||||
if ( TbHistorico->FieldByName("idtc")->AsInteger == 998 )
|
||||
DBGrid1->Canvas -> Font -> Color = clGreen;
|
||||
else
|
||||
DBGrid1->Canvas -> Font -> Color = clRed;
|
||||
DBGrid1->DefaultDrawColumnCell( Rect, DataCol, Column, State );
|
||||
}
|
||||
if ( TbHistorico->FieldByName("idc")->AsInteger > 0 &&
|
||||
TbHistorico->FieldByName("precio")->AsCurrency == 0
|
||||
)
|
||||
{
|
||||
DBGrid1->Canvas -> Font -> Color = clPurple;
|
||||
DBGrid1->DefaultDrawColumnCell( Rect, DataCol, Column, State );
|
||||
}
|
||||
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void __fastcall TDViewerF::TbElementosAfterOpen(TDataSet *DataSet)
|
||||
{
|
||||
ProgressBar1->Min = 0;
|
||||
ProgressBar1->Max = TbElementos->RecordCount;
|
||||
StringGrid1->RowCount = TbElementos->RecordCount + 1;
|
||||
|
||||
Parrilla = new DatosEltos[(TbElementos->RecordCount)];
|
||||
TbElementos->First();
|
||||
for (int i = ProgressBar1->Min; i < ProgressBar1->Max; i++)
|
||||
{
|
||||
ProgressBar1->Position = i;
|
||||
Equipos->Items->Add(TbElementos->FieldByName("Name")->AsString);
|
||||
|
||||
Parrilla[i].Elto = TbElementos->FieldByName("NumElement")->AsInteger;
|
||||
StringGrid1->Cells[0][i+1] = TbElementos->FieldByName("NumElement")->AsInteger;
|
||||
StringGrid1->Cells[1][i+1] = TbElementos->FieldByName("Name")->AsString;
|
||||
|
||||
TbElementos->Next();
|
||||
// do something with record...
|
||||
}
|
||||
|
||||
StringGrid1->Cells[2][0] = "ConexF";
|
||||
StringGrid1->Cells[3][0] = "ConexR";
|
||||
StringGrid1->Cells[4][0] = "TotalF";
|
||||
StringGrid1->Cells[5][0] = "TotalR";
|
||||
StringGrid1->Cells[6][0] = "TiempoF";
|
||||
StringGrid1->Cells[7][0] = "TiempoR";
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
void __fastcall TDViewerF::FormDestroy(TObject *Sender)
|
||||
{
|
||||
delete[] Parrilla;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::idtConexionChange(TObject *Sender)
|
||||
{
|
||||
TDateTime FechaMin, FechaMax;
|
||||
TbHistorico->FilterOptions = TbHistorico->FilterOptions << foCaseInsensitive;
|
||||
|
||||
MaxFecha->Time = 36544.9999891088;//EncodeTime( 23, 59, 59, 59 );
|
||||
FechaMax = MaxFecha->Date;
|
||||
MinFecha->Time = 0;
|
||||
FechaMin = MinFecha->Date;
|
||||
|
||||
if ( idtConexion->ItemIndex > 0 )
|
||||
{
|
||||
AnsiString CadenaFiltro = "([FComienzo] >= '" + FechaMin + "' AND [FComienzo] <= '" + FechaMax +"' AND [idtc] = '" + AnsiString( Obten_idtc() ) + "' )";
|
||||
TbHistorico->Filter = CadenaFiltro;
|
||||
TbHistorico->Filtered = true;
|
||||
} else {
|
||||
TbHistorico->Filter = "[FComienzo] >= '" + FechaMin + "' AND [FComienzo] <= '" + FechaMax +"'";
|
||||
TbHistorico->Filtered = true;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::Button1Click(TObject *Sender)
|
||||
{
|
||||
TQuickReport1 *QR;
|
||||
|
||||
StatusBar1->Panels->Items[0]->Text = "Preparando documento para imprimir...";
|
||||
QR = new TQuickReport1(this);
|
||||
QR->Preview();
|
||||
StatusBar1->Panels->Items[0]->Text = "";
|
||||
delete QR;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::Button2Click(TObject *Sender)
|
||||
{
|
||||
TQRHistoric *QR;
|
||||
|
||||
QR = new TQRHistoric(this);
|
||||
StatusBar1->Panels->Items[0]->Text = "Preparando documento para imprimir...";
|
||||
QR->QuickRep1->Print();
|
||||
StatusBar1->Panels->Items[0]->Text = "";
|
||||
delete QR;
|
||||
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::Edit1KeyUp(TObject *Sender, WORD &Key,
|
||||
TShiftState Shift)
|
||||
{
|
||||
if ( !Edit1->Text.IsEmpty() )
|
||||
TbPersonas->Locate( SelIndex->Items->Strings[SelIndex->ItemIndex], Edit1->Text, TLocateOptions() << loCaseInsensitive << loPartialKey );
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::DBEdit1KeyUp(TObject *Sender, WORD &Key,
|
||||
TShiftState Shift)
|
||||
{
|
||||
if ( Key == VK_RETURN )
|
||||
{
|
||||
if(TbPersonas->State == dsInsert || TbPersonas->State == dsEdit)
|
||||
TbPersonas->Post();
|
||||
DBEdit2->SetFocus();
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::DBEdit2KeyUp(TObject *Sender, WORD &Key,
|
||||
TShiftState Shift)
|
||||
{
|
||||
if ( Key == VK_RETURN )
|
||||
{
|
||||
if(TbPersonas->State == dsInsert || TbPersonas->State == dsEdit)
|
||||
TbPersonas->Post();
|
||||
DBEdit3->SetFocus();
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::DBEdit3KeyUp(TObject *Sender, WORD &Key,
|
||||
TShiftState Shift)
|
||||
{
|
||||
if ( Key == VK_RETURN )
|
||||
{
|
||||
if(TbPersonas->State == dsInsert || TbPersonas->State == dsEdit)
|
||||
TbPersonas->Post();
|
||||
DBEdit4->SetFocus();
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::DBEdit4KeyUp(TObject *Sender, WORD &Key,
|
||||
TShiftState Shift)
|
||||
{
|
||||
if ( Key == VK_RETURN )
|
||||
{
|
||||
if(TbPersonas->State == dsInsert || TbPersonas->State == dsEdit)
|
||||
TbPersonas->Post();
|
||||
DBEdit5->SetFocus();
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::DBEdit5KeyUp(TObject *Sender, WORD &Key,
|
||||
TShiftState Shift)
|
||||
{
|
||||
if ( Key == VK_RETURN )
|
||||
{
|
||||
if(TbPersonas->State == dsInsert || TbPersonas->State == dsEdit)
|
||||
TbPersonas->Post();
|
||||
DBEdit6->SetFocus();
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::DBEdit6KeyUp(TObject *Sender, WORD &Key,
|
||||
TShiftState Shift)
|
||||
{
|
||||
if ( Key == VK_RETURN )
|
||||
{
|
||||
if(TbPersonas->State == dsInsert || TbPersonas->State == dsEdit)
|
||||
TbPersonas->Post();
|
||||
DBEdit1->SetFocus();
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::TbPersonasBeforeDelete(TDataSet *DataSet)
|
||||
{
|
||||
switch( MessageDlg( "Atenci<EFBFBD>n, est<73> apunto de eliminar\na un cliente...\n<EFBFBD><EFBFBD><EFBFBD> Su historico TAMBIEN ser<65> ELIMINADO\n<EFBFBD>Realmente desea continuar?", mtWarning, TMsgDlgButtons() << mbNo << mbYes, 0 ) )
|
||||
{
|
||||
case mrNo:
|
||||
Abort();
|
||||
break;
|
||||
default:
|
||||
// Borramos todos los registros asociados...
|
||||
while( TbBonosCliente -> RecordCount != 0 )
|
||||
TbBonosCliente -> Delete();
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::TbPersonasNewRecord(TDataSet *DataSet)
|
||||
{
|
||||
TbPersonas->FieldByName("FAlta")->AsDateTime = TDateTime::CurrentDateTime();
|
||||
TbPersonas->FieldByName("FModif")->AsDateTime = TDateTime::CurrentDateTime();
|
||||
TbPersonas->FieldByName("TiempoH")->AsInteger = 0;
|
||||
TbPersonas->FieldByName("TiempoM")->AsInteger = 0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TDViewerF::Button4Click(TObject *Sender)
|
||||
{
|
||||
TQRBonos *QR;
|
||||
|
||||
QR = new TQRBonos(this);
|
||||
StatusBar1->Panels->Items[0]->Text = "Preparando documento para imprimir...";
|
||||
QR->QuickRep1->Print();
|
||||
StatusBar1->Panels->Items[0]->Text = "";
|
||||
delete QR;
|
||||
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
void __fastcall TDViewerF::Button3Click(TObject *Sender)
|
||||
{
|
||||
TQRClt *QR;
|
||||
|
||||
QR = new TQRClt(this);
|
||||
StatusBar1->Panels->Items[0]->Text = "Preparando documento para imprimir...";
|
||||
QR->QuickRep1->Print();
|
||||
StatusBar1->Panels->Items[0]->Text = "";
|
||||
delete QR;
|
||||
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
void __fastcall TDViewerF::EquiposClick(TObject *Sender)
|
||||
{
|
||||
|
||||
if ( TbElementos->Locate( "Name", Equipos->Items->Strings[Equipos->ItemIndex], TLocateOptions() << loCaseInsensitive << loPartialKey ) )
|
||||
// Localizamos el primer registro del terminal seleccionado...
|
||||
TbHistorico->Locate( "NumElement", TbElementos->FieldByName("NumElement")->AsInteger, TLocateOptions() << loCaseInsensitive << loPartialKey );
|
||||
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user