AgendaLlamadas/Agenda.cpp
2021-09-12 21:55:41 +02:00

954 lines
35 KiB
C++
Raw Permalink Blame History

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Agenda.h"
#include <stdio.h>
#include <math.h>
#include "DlgQueImprimir.h"
#define Digito(Num, Dig) ( (Num-( (Num/(int)pow10(Dig)) * (int)pow10(Dig) )) / ( Dig==1 ? 1 : (int)pow10(Dig-1) ) )
// Comprobamos que la CC sea correcta
bool CorrectaCC( int Banco, int Oficina, int DC, AnsiString NumCuenta )
{
int Suma1, Suma2, R1, R2;
bool dev;
char *NumCC;
dev = false;
if ( NumCuenta.Length() == 10 )
{
NumCC = NumCuenta.c_str();
Suma1 = Digito(Oficina, 1)* 6 +
Digito(Oficina, 2)* 3 +
Digito(Oficina, 3)* 7 +
Digito(Oficina, 4)* 9 +
Digito(Banco, 1)*10 +
Digito(Banco, 2)* 5 +
Digito(Banco, 3)* 8 +
Digito(Banco, 4)* 4 ;
Suma2 = (NumCC[9]-'0')*6 +
(NumCC[8]-'0')*3 +
(NumCC[7]-'0')*7 +
(NumCC[6]-'0')*9 +
(NumCC[5]-'0')*10 +
(NumCC[4]-'0')*5 +
(NumCC[3]-'0')*8 +
(NumCC[2]-'0')*4 +
(NumCC[1]-'0')*2 +
(NumCC[0]-'0')*1 ;
R1 = 11-(Suma1%11); if ( R1==11 ) R1 = 0; if ( R1==10 ) R1 = 1;
R2 = 11-(Suma2%11); if ( R2==11 ) R2 = 0; if ( R2==10 ) R2 = 1;
if ( Digito(DC,2)== R1 && Digito(DC,1)== R2 )
dev = true;
}
return dev;
};
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "ElastFrm"
#pragma link "ElastFrm"
#pragma resource "*.dfm"
TListadoClientes *ListadoClientes;
//---------------------------------------------------------------------------
__fastcall TListadoClientes::TListadoClientes(TComponent* Owner)
: TForm(Owner)
{
DB_Path = "datos\\";
Session1->Active = true;
// Cargamos el DB_Path...
{
FILE *iFileHandle;
int iFileLength;
char pszBuffer[180];
if ( (iFileHandle = fopen( "Path.cfg", "r" )) != NULL )
{
fgets( pszBuffer, 180, iFileHandle );
DB_Path = pszBuffer;
fclose( iFileHandle );
try {
Image1->Picture->LoadFromFile( "logo.bmp" );
} catch(...) {
Image1->Visible = false;
}
} else {
ShowMessage( "TRABAJANDO EN MODO PRIVADO" );
}
}
InfoBar->SimpleText = "Inicializando programa..." ;
MinFecha->Date = TDateTime::CurrentDate();
MaxFecha->Date = TDateTime::CurrentDate();
OnDataChanged = false;
SelIndex->ItemIndex = 0;
if ( FileExists( DB_Path + "correos\\poblacion.db" ) )
{
DBcorreos = true;
TbCorreos->ReadOnly = true;
TbCorreos->TableType = ttParadox;
TbCorreos->TableName = DB_Path + "correos\\poblacion.db";
TbCorreos->Active = true;
} else {
DBcorreos = false;
}
TbCarpetas->TableName = DB_Path + "carpetas.DB";
TbLlamadas->TableName = DB_Path + "llamadas.DB";
TbListado->TableName = DB_Path + "personas.DB";
TbNotas->TableName = DB_Path + "misnotas.DB";
TbListado->Active = true;
TbLlamadas->Active = true;
TbCarpetas->Active = true;
TbNotas->Active = true;
InfoBar->SimpleText = "www.infdj.com" ;
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::TbCarpetasBeforeOpen(TDataSet *DataSet)
{
if ( !FileExists( TbCarpetas->TableName ) )
{
InfoBar->SimpleText= "Creando carpetas..." ;
TbCarpetas -> TableType = ttParadox;
TbCarpetas -> FieldDefs -> Clear();
/********************\
|* Datos B<>sicos *|
\********************/
TbCarpetas -> FieldDefs -> Add("IDcarpeta", ftAutoInc, 0, false );
TbCarpetas -> FieldDefs -> Add("carpeta", ftString, 15, false );
TbCarpetas -> IndexDefs-> Clear();
// Creamos la base...
TbCarpetas -> CreateTable();
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::TbListadoBeforeOpen(TDataSet *DataSet)
{
if ( !FileExists( TbListado->TableName ) )
{
InfoBar->SimpleText= "Creando personas..." ;
TbListado -> TableType = ttParadox;
TbListado -> FieldDefs -> Clear();
/********************\
|* Datos B<>sicos *|
\********************/
TbListado -> FieldDefs -> Add("CodCliente1", ftAutoInc, 0, false );
TbListado -> FieldDefs -> Add("CodCliente2", ftString, 15, false );
TbListado -> FieldDefs -> Add("FAlta", ftDateTime, 0, false );
TbListado -> FieldDefs -> Add("FModif", ftDateTime, 0, false );
TbListado -> FieldDefs -> Add("Empresa", ftString, 30, false );
TbListado -> FieldDefs -> Add("Actividad", ftString, 25, false );
TbListado -> FieldDefs -> Add("Nombre", ftString, 15, false );
TbListado -> FieldDefs -> Add("Apellidos", ftString, 30, false );
TbListado -> FieldDefs -> Add("Dni Nif Pasaporte", ftSmallint, 0, false );
TbListado -> FieldDefs -> Add("DocumentoDNP", ftString, 20, false );
TbListado -> FieldDefs -> Add("Telefono 1", ftString, 15, false );
TbListado -> FieldDefs -> Add("Telefono 2", ftString, 15, false );
TbListado -> FieldDefs -> Add("Telefono 3", ftString, 15, false );
TbListado -> FieldDefs -> Add("Telefono 4", ftString, 15, false );
TbListado -> FieldDefs -> Add("e-Mail", ftString, 30, false );
TbListado -> FieldDefs -> Add("url", ftString, 50, false );
TbListado -> FieldDefs -> Add("Calle", ftString, 25, false );
TbListado -> FieldDefs -> Add("Calle2", ftString, 25, false );
TbListado -> FieldDefs -> Add("Num", ftString, 4, false );
TbListado -> FieldDefs -> Add("Piso", ftString, 2, false );
TbListado -> FieldDefs -> Add("Letra", ftString, 2, false );
TbListado -> FieldDefs -> Add("Poblaci<EFBFBD>n", ftString, 20, false );
TbListado -> FieldDefs -> Add("Provincia", ftString, 15, false );
TbListado -> FieldDefs -> Add("CP", ftInteger, 0, false );
TbListado -> FieldDefs -> Add("Deposito", ftCurrency, 0, false );
TbListado -> FieldDefs -> Add("Credito", ftCurrency, 0, false );
TbListado -> FieldDefs -> Add("TiempoH", ftInteger, 0, false );
TbListado -> FieldDefs -> Add("TiempoM", ftInteger, 0, false );
/************************\
|* Domiciliaci<63>n Bancaria *|
\************************/
TbListado -> FieldDefs -> Add("Titular de la cuenta", ftString, 30, false );
TbListado -> FieldDefs -> Add("Nif del Titular", ftString, 15, false );
TbListado -> FieldDefs -> Add("Entidad Bancaria", ftString, 30, false );
TbListado -> FieldDefs -> Add("Banco_Calle", ftString, 20, false );
TbListado -> FieldDefs -> Add("Banco_Num", ftString, 4, false );
TbListado -> FieldDefs -> Add("Banco_Poblaci<EFBFBD>n", ftString, 20, false );
TbListado -> FieldDefs -> Add("Banco_Provincia", ftString, 15, false );
TbListado -> FieldDefs -> Add("Banco_CP", ftInteger, 0, false );
TbListado -> FieldDefs -> Add("Banco_Entidad", ftSmallint, 0, false );
TbListado -> FieldDefs -> Add("Banco_Sucursal", ftSmallint, 0, false );
TbListado -> FieldDefs -> Add("Banco_DC", ftSmallint, 0, false );
TbListado -> FieldDefs -> Add("Banco_NumCuenta", ftString, 10, false );
/************************\
|* Informaci<63>n Extra *|
\************************/
TbListado -> FieldDefs -> Add("Estado Civil", ftSmallint, 0, false );
TbListado -> FieldDefs -> Add("Fecha de Nacimiento", ftDate, 0, false );
TbListado -> FieldDefs -> Add("Profesi<EFBFBD>n", ftString, 15, false );
TbListado -> FieldDefs -> Add("A<EFBFBD>os en la empresa",ftSmallint, 0, false );
TbListado -> FieldDefs -> Add("Personas en la familia", ftSmallint, 0, false );
TbListado -> FieldDefs -> Add("Estudios", ftSmallint, 0, false );
TbListado -> FieldDefs -> Add("Tipo vivienda", ftSmallint, 0, false );
TbListado -> FieldDefs -> Add("A<EFBFBD>os vivienda", ftSmallint, 0, false );
TbListado -> FieldDefs -> Add("Extras1", ftString, 15, false );
TbListado -> FieldDefs -> Add("Extras2", ftString, 15, false );
TbListado -> FieldDefs -> Add("Extras3", ftString, 15, false );
TbListado -> FieldDefs -> Add("Extras4", ftString, 15, false );
TbListado -> FieldDefs -> Add("Notas", ftMemo, 200, false );
TbListado -> FieldDefs -> Add("Imagen", ftString, 80, false );
TbListado -> FieldDefs -> Add("Proveedor", ftInteger, 0, false );
TbListado -> FieldDefs -> Add("Empleado", ftInteger, 0, false );
TbListado -> FieldDefs -> Add("Cliente", ftInteger, 0, false );
TbListado -> FieldDefs -> Add("Amigo", ftInteger, 0, false );
TbListado -> FieldDefs -> Add("IDcarpeta", ftInteger, 0, false );
TbListado -> IndexDefs-> Clear();
TIndexOptions MyIndexOptions;
MyIndexOptions << ixPrimary << ixUnique;
TbListado->IndexDefs->Add("Primary", "CodCliente1", MyIndexOptions);
TbListado->IndexDefs->Add("Nombre", "Nombre", TIndexOptions() << ixCaseInsensitive);
TbListado->IndexDefs->Add("Apellidos", "Apellidos", TIndexOptions() << ixCaseInsensitive);
TbListado->IndexDefs->Add("Empresa", "Empresa", TIndexOptions() << ixCaseInsensitive);
TbListado->IndexDefs->Add("Actividad", "Actividad", TIndexOptions() << ixCaseInsensitive);
TbListado->IndexDefs->Add("Telefono 1", "Telefono 1", TIndexOptions() << ixCaseInsensitive);
TbListado->IndexDefs->Add("Telefono 2", "Telefono 2", TIndexOptions() << ixCaseInsensitive);
// Creamos la base...
TbListado -> CreateTable();
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::TbLlamadasBeforeOpen(TDataSet *DataSet)
{
if ( !FileExists( TbLlamadas->TableName ) )
{
InfoBar->SimpleText= "Creando control de llamadas..." ;
TbLlamadas -> TableType = ttParadox;
TbLlamadas -> FieldDefs -> Clear();
/********************\
|* Datos B<>sicos *|
\********************/
TbLlamadas -> FieldDefs -> Add("IDllamada", ftAutoInc, 0, false );
TbLlamadas -> FieldDefs -> Add("IDcliente", ftInteger, 0, false );
TbLlamadas -> FieldDefs -> Add("fecha", ftDate, 0, false );
TbLlamadas -> FieldDefs -> Add("hora", ftTime, 0, false );
TbLlamadas -> FieldDefs -> Add("asunto", ftString, 30, false );
TbLlamadas -> FieldDefs -> Add("notas", ftMemo, 160, false );
TbLlamadas -> IndexDefs-> Clear();
TbLlamadas->IndexDefs->Add("Primary", "IDllamada", TIndexOptions() << ixPrimary << ixUnique);
TbLlamadas->IndexDefs->Add("EnlaceCliente", "IDcliente", TIndexOptions() << ixCaseInsensitive);
// Creamos la base...
TbLlamadas -> CreateTable();
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::FiltrarCategoriasClick(TObject *Sender)
{
FiltraCriterios();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::FiltrarCarpetasClick(TObject *Sender)
{
FiltraCriterios();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::FiltraCriterios(void)
{
AnsiString CadenaFiltro;
TbListado->FilterOptions = TbListado->FilterOptions << foCaseInsensitive;
if ( FiltrarCarpetas->Checked && !TbCarpetas->FieldByName( "IDcarpeta" )->AsString.IsEmpty() )
CadenaFiltro = "( [IDcarpeta] = '" + TbCarpetas->FieldByName( "IDcarpeta" )->AsString + "') ";
switch( FiltrarCategorias->ItemIndex )
{
// Proveedores
case 0:
if ( FiltrarCarpetas->Checked ) CadenaFiltro += " AND ";
CadenaFiltro += "[Proveedor] >= 1";
break;
// Empleados
case 1:
if ( FiltrarCarpetas->Checked ) CadenaFiltro += " AND ";
CadenaFiltro += "[Empleado] >= 1";
break;
// Clientes
case 2:
if ( FiltrarCarpetas->Checked ) CadenaFiltro += " AND ";
CadenaFiltro += "[Cliente] >= 1";
break;
// Amigos
case 3:
if ( FiltrarCarpetas->Checked ) CadenaFiltro += " AND ";
CadenaFiltro += "[Amigo] >= 1";
break;
}
if ( CadenaFiltro.IsEmpty() )
{
TbListado->Filtered = false;
} else {
TbListado->Filter = CadenaFiltro;
TbListado->Filtered = true;
}
// AlfabetoChange(0);
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::BitBtn1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::AlfabetoChange(TObject *Sender)
{
// Posici<63>n dentro de la lista...
switch ( Alfabeto->TabIndex )
{
case 0:
if ( ! ( TbListado->Locate( "Nombre", "a", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
TbListado->Locate( "Nombre", "b", TLocateOptions() << loCaseInsensitive << loPartialKey ) ;
break;
case 1:
if ( ! ( TbListado->Locate( "Nombre", "c", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
TbListado->Locate( "Nombre", "d", TLocateOptions() << loCaseInsensitive << loPartialKey ) ;
break;
case 2:
if ( ! ( TbListado->Locate( "Nombre", "e", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
TbListado->Locate( "Nombre", "f", TLocateOptions() << loCaseInsensitive << loPartialKey ) ;
break;
case 3:
if ( ! ( TbListado->Locate( "Nombre", "g", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
TbListado->Locate( "Nombre", "h", TLocateOptions() << loCaseInsensitive << loPartialKey ) ;
break;
case 4:
if ( ! ( TbListado->Locate( "Nombre", "i", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
if ( ! ( TbListado->Locate( "Nombre", "j", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
TbListado->Locate( "Nombre", "k", TLocateOptions() << loCaseInsensitive << loPartialKey ) ;
break;
case 5:
if ( ! ( TbListado->Locate( "Nombre", "l", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
TbListado->Locate( "Nombre", "m", TLocateOptions() << loCaseInsensitive << loPartialKey ) ;
break;
case 6:
if ( ! ( TbListado->Locate( "Nombre", "n", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
TbListado->Locate( "Nombre", "o", TLocateOptions() << loCaseInsensitive << loPartialKey ) ;
break;
case 7:
if ( ! ( TbListado->Locate( "Nombre", "p", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
if ( ! ( TbListado->Locate( "Nombre", "q", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
TbListado->Locate( "Nombre", "r", TLocateOptions() << loCaseInsensitive << loPartialKey ) ;
break;
case 8:
TbListado->Locate( "Nombre", "s", TLocateOptions() << loCaseInsensitive << loPartialKey );
break;
case 9:
if ( ! ( TbListado->Locate( "Nombre", "t", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
TbListado->Locate( "Nombre", "u", TLocateOptions() << loCaseInsensitive << loPartialKey ) ;
break;
case 10:
if ( ! ( TbListado->Locate( "Nombre", "v", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
TbListado->Locate( "Nombre", "w", TLocateOptions() << loCaseInsensitive << loPartialKey ) ;
break;
case 11:
if ( ! ( TbListado->Locate( "Nombre", "x", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
if ( ! ( TbListado->Locate( "Nombre", "y", TLocateOptions() << loCaseInsensitive << loPartialKey ) ) )
TbListado->Locate( "Nombre", "z", TLocateOptions() << loCaseInsensitive << loPartialKey ) ;
break;
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::DsCarpetasDataChange(TObject *Sender,
TField *Field)
{
if ( !( TbCarpetas->State == dsEdit || TbCarpetas->State == dsInsert) )
FiltraCriterios();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::DsListadoDataChange(TObject *Sender,
TField *Field)
{
OnDataChanged = true;
if ( TbListado->State == dsEdit || TbListado->State == dsInsert )
return;
// Cargamos la imagen
AnsiString PathToImage = DB_Path + "pictures\\"+ TbListado->FieldByName( "Imagen" )->AsString;
SetCurrentDir( ExtractFilePath( Application->ExeName ) );
try {
Foto->Picture->LoadFromFile( PathToImage );
} catch(...) {
try {
Foto->Picture->LoadFromFile( DB_Path + "pictures\\iError.bmp" );
} catch(...) {
// nothing
};
};
if ( CorrectaCC( TbListado->FieldByName("Banco_Entidad")->AsInteger,
TbListado->FieldByName("Banco_Sucursal")->AsInteger,
TbListado->FieldByName("Banco_DC")->AsInteger,
TbListado->FieldByName("Banco_NumCuenta")->AsString )
)
{
DBEdit28->Color = clWindow;
DBEdit29->Color = clWindow;
DBEdit30->Color = clWindow;
DBEdit31->Color = clWindow;
}else{
DBEdit28->Color = clRed;
DBEdit29->Color = clRed;
DBEdit30->Color = clRed;
DBEdit31->Color = clRed;
}
CheckBox1->Checked = TbListado->FieldByName( "Proveedor" ) ->AsInteger;
CheckBox3->Checked = TbListado->FieldByName( "Empleado" ) ->AsInteger;
CheckBox2->Checked = TbListado->FieldByName( "Cliente" ) ->AsInteger;
CheckBox4->Checked = TbListado->FieldByName( "Amigo" ) ->AsInteger;
OnDataChanged = false;
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::FotoDblClick(TObject *Sender)
{
OpenPictureDialog1->InitialDir = DB_Path + "pictures\\";
if (OpenPictureDialog1->Execute())
{
TbListado -> Edit();
TbListado -> FieldByName( "Imagen" ) -> AsString = ExtractFileName(OpenPictureDialog1->FileName);
TbListado -> Post();
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::SpeedButton6Click(TObject *Sender)
{
ShowMessage( "No se puede validar la cuenta bancaria\nListado de bancos no accesible..." );
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::SpeedButton5Click(TObject *Sender)
{
InfoBar->SimpleText = "Localizando C<>digo Postal..." ;
if ( !DBcorreos )
{
ShowMessage( "No se puede validar el c<>digo postal.\nBase Postal no disponible..." );
} else {
if ( TbCorreos->Locate( "CODIGO", TbListado->FieldByName("CP")->AsString, TLocateOptions() << loCaseInsensitive ) )
{
AnsiString Provincias[] = { "###desconocido###",
"Alava",
"Albacete",
"Alicante",
"Almeria",
"Avila",
"Badajoz",
"Illes Balears",
"Barcelona",
"Burgos",
"Caceres",
"Cadiz",
"Castellon de la Plana",
"Ciudad Real",
"Cordoba",
"Coru<EFBFBD>a, A",
"Cuenca",
"Girona",
"Granada",
"Guadalajara",
"Guippuzcoa",
"Huelva",
"Huesca",
"Jaen",
"Leon",
"Lleida",
"Rioja, La",
"Lugo",
"Madrid",
"Malaga",
"Murcia",
"Navarra",
"Ourense",
"Asturias",
"Palencia",
"Palmas, Las",
"Pontevedra",
"Salamanca",
"Santa Cruz de Tenerife",
"Cantabria",
"Segovia",
"Sevilla",
"Soria",
"Tarragona",
"Teruel",
"Toledo",
"Valencia",
"Valladolid",
"Vizcaya",
"Vizcaya",
"Zamora",
"Zaragoza",
"Ceuta",
"Melilla" };
TbListado->Edit();
TbListado->FieldByName("Poblaci<EFBFBD>n")->AsString = TbCorreos->FieldByName("Descripcion")->AsString;
if ( TbCorreos->FieldByName("ID_Provincia")->AsInteger <= 50 &&
TbCorreos->FieldByName("ID_Provincia")->AsInteger > 0
)
TbListado->FieldByName("Provincia")->AsString = Provincias[TbCorreos->FieldByName("ID_Provincia")->AsInteger];
TbListado->Post();
}
}
InfoBar->SimpleText = "www.infdj.com";
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::SpeedButton1Click(TObject *Sender)
{
InfoBar->SimpleText = "Inicializando marcador Telef<65>nico" ;
// Marcar tel<65>fono 1...
PageControl1->ActivePage = TabSheet2;
PageControl2->ActivePage = TabSheet6;
TbLlamadas->Insert();
InfoBar->SimpleText = "www.infdj.com" ;
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::SpeedButton2Click(TObject *Sender)
{
InfoBar->SimpleText = "Inicializando marcador Telef<65>nico" ;
// Marcar tel<65>fono 2
PageControl1->ActivePage = TabSheet2;
PageControl2->ActivePage = TabSheet6;
TbLlamadas->Insert();
InfoBar->SimpleText = "www.infdj.com" ;
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::SpeedButton4Click(TObject *Sender)
{
InfoBar->SimpleText = "Enganchando con el Explorador" ;
char zFileName[80], zParams[80], zDir[80];
AnsiString URL = "http://" + TbListado->FieldByName("url")->AsString;
ShellExecute(Application->MainForm->Handle, 0, StrPCopy(zFileName, URL),
StrPCopy(zParams, ""), StrPCopy(zDir, ""), SW_SHOWNOACTIVATE > 32);
/*
URL1->URL = TbListado->FieldByName("url")->AsString;
URL1->URLType = utHttp;
URL1->Execute();
*/
// Abrir i-explorer con esta p<>gina
InfoBar->SimpleText = "www.infdj.com" ;
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::SpeedButton3Click(TObject *Sender)
{
InfoBar->SimpleText = "Preparando nuevo correo..." ;
char zFileName[80], zParams[80], zDir[80];
AnsiString URL = "mailto:" + TbListado->FieldByName("e-Mail")->AsString;
ShellExecute(Application->MainForm->Handle, 0, StrPCopy(zFileName, URL),
StrPCopy(zParams, ""), StrPCopy(zDir, ""), SW_SHOWNOACTIVATE > 32);
/*
URL1->URL = TbListado->FieldByName("e-Mail")->AsString;
URL1->URLType = utMailto;
URL1->Execute();
*/
// Abrir outlook express con este correo...
InfoBar->SimpleText = "www.infdj.com" ;
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::SpeedButton8Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::SpeedButton7Click(TObject *Sender)
{
if ( PageControl1->ActivePage == TabSheet7 )
{
PageControl1->ActivePage = TabSheet7;
PageControl3->ActivePage = TabSheet9;
DBEdit32->SetFocus();
TbNotas->Insert();
} else {
PageControl1->ActivePage = TabSheet2;
PageControl2->ActivePage = TabSheet3;
DBEdit1->SetFocus();
TbListado->Insert();
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::SpeedButton11Click(TObject *Sender)
{
TDlgImprimir *DlgImp;
DlgImp = new TDlgImprimir(this);
DlgImp->ShowModal();
delete DlgImp;
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::BuscarFichaClick(TObject *Sender)
{
PageControl1->ActivePage = TabSheet7;
PageControl3->ActivePage = TabSheet9;
DBEdit32->SetFocus();
TbNotas->Insert();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::SpeedButton9Click(TObject *Sender)
{
if ( PageControl1->ActivePage == TabSheet7 )
{
TbNotas -> Delete();
} else {
if ( PageControl2->ActivePage == TabSheet6 )
TbLlamadas -> Delete();
else
TbListado -> Delete();
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::TbListadoBeforeDelete(TDataSet *DataSet)
{
if ( MessageDlg( "<EFBFBD>Esta seguro que desea eliminar el REGISTRO actual?", mtWarning, TMsgDlgButtons() << mbNo << mbYes, 0 ) == mrNo )
Abort();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::SelIndexChange(TObject *Sender)
{
TbListado->IndexFieldNames = SelIndex->Items->Strings[SelIndex->ItemIndex];
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::BuscadorKeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
TbListado->Locate( SelIndex->Items->Strings[SelIndex->ItemIndex], Buscador->Text, TLocateOptions() << loCaseInsensitive << loPartialKey );
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::TbLlamadasNewRecord(TDataSet *DataSet)
{
TbLlamadas->FieldByName( "fecha" )->AsDateTime = TDateTime::CurrentDate();
TbLlamadas->FieldByName( "hora" )->AsDateTime = TDateTime::CurrentTime();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::FormClose(TObject *Sender,
TCloseAction &Action)
{
if ( TbListado->State == dsEdit || TbListado->State == dsInsert )
TbListado->Post();
if ( TbLlamadas->State == dsEdit || TbLlamadas->State == dsInsert )
TbLlamadas->Post();
if ( TbCarpetas->State == dsEdit || TbCarpetas->State == dsInsert )
TbCarpetas->Post();
if ( TbNotas->State == dsEdit || TbNotas->State == dsInsert )
TbNotas->Post();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::MinFechaChange(TObject *Sender)
{
FiltraLlamadas();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::FiltraLlamadas( void )
{
if ( FiltroLlamadas->Checked )
{
TbLlamadas->FilterOptions = TbLlamadas->FilterOptions << foCaseInsensitive;
TbLlamadas->Filter = "([fecha] >= '" + MinFecha->Date + "' AND [fecha] <= '" + MaxFecha->Date +"')";
TbLlamadas->Filtered = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::FiltroLlamadasClick(TObject *Sender)
{
if ( FiltroLlamadas->Checked )
{
FiltraLlamadas();
} else {
TbLlamadas->Filtered = false;
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::DBText1DblClick(TObject *Sender)
{
PageControl1->ActivePage = TabSheet2;
PageControl2->ActivePage = TabSheet3;
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::TbListadoNewRecord(TDataSet *DataSet)
{
TbListado->FieldByName( "FAlta" ) -> AsDateTime = TDateTime::CurrentDateTime();
TbListado->FieldByName( "Proveedor" ) -> AsInteger = 0;
TbListado->FieldByName( "Empleado" ) -> AsInteger = 0;
TbListado->FieldByName( "Cliente" ) -> AsInteger = 1;
TbListado->FieldByName( "Amigo" ) -> AsInteger = 0;
CheckBox1->Checked = false;
CheckBox3->Checked = false;
CheckBox2->Checked = true;
CheckBox4->Checked = false;
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::SpeedButton10Click(TObject *Sender)
{
// Traemos esta ficha a la carpeta seleccionada...
TbListado->Edit();
try {
TbListado->FieldByName( "IDcarpeta" )->AsInteger = TbCarpetas->FieldByName( "IDcarpeta" )->AsInteger;
TbListado->Post();
}catch (...) {
ShowMessage( "No hay carpetas disponibles o se<73>aladas.\nPruebe a seleccionar o crear una nueva...");
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::CheckBox1Click(TObject *Sender)
{
try {
if ( OnDataChanged ) return;
TbListado->Edit();
TbListado->FieldByName( "Proveedor" ) ->AsInteger = (int)( CheckBox1->Checked );
TbListado->Post();
} catch(...) {
// nothing
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::CheckBox3Click(TObject *Sender)
{
try {
if ( OnDataChanged ) return;
TbListado->Edit();
TbListado->FieldByName( "Empleado" ) ->AsInteger = (int)( CheckBox3->Checked );
TbListado->Post();
} catch(...) {
// nothing
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::CheckBox2Click(TObject *Sender)
{
try {
if ( OnDataChanged ) return;
TbListado->Edit();
TbListado->FieldByName( "Cliente" ) ->AsInteger = (int)( CheckBox2->Checked );
TbListado->Post();
} catch(...) {
// nothing
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::CheckBox4Click(TObject *Sender)
{
try {
if ( OnDataChanged ) return;
TbListado->Edit();
TbListado->FieldByName( "Amigo" ) ->AsInteger = (int)( CheckBox4->Checked );
TbListado->Post();
} catch(...) {
// nothing
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::TbNotasBeforeOpen(TDataSet *DataSet)
{
if ( !FileExists( TbNotas->TableName ) )
{
InfoBar->SimpleText= "Creando << mis notas >>..." ;
TbNotas -> TableType = ttParadox;
TbNotas -> FieldDefs -> Clear();
/********************\
|* Datos B<>sicos *|
\********************/
TbNotas -> FieldDefs -> Add("IDnota", ftAutoInc, 0, false );
TbNotas -> FieldDefs -> Add("fecha", ftDate, 0, false );
TbNotas -> FieldDefs -> Add("hora", ftTime, 0, false );
TbNotas -> FieldDefs -> Add("asunto", ftString, 30, false );
TbNotas -> FieldDefs -> Add("notas", ftMemo, 160, false );
TbNotas -> IndexDefs-> Clear();
TbNotas->IndexDefs->Add("Primary", "IDnota", TIndexOptions() << ixPrimary << ixUnique);
// Creamos la base...
TbNotas -> CreateTable();
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::TbNotasNewRecord(TDataSet *DataSet)
{
TbNotas->FieldByName( "fecha" )->AsDateTime = TDateTime::CurrentDate();
TbNotas->FieldByName( "hora" )->AsDateTime = TDateTime::CurrentTime();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::DBMemo3DblClick(TObject *Sender)
{
PageControl1->ActivePage = TabSheet7;
PageControl3->ActivePage = TabSheet9;
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::PageControl1Change(TObject *Sender)
{
if ( PageControl1->ActivePage == TabSheet7 )
{
DBNavigator1->DataSource = DsNotas;
} else {
DBNavigator1->DataSource = DsListado;
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::DBEdit32KeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if ( Key == VK_RETURN )
TbNotas->Post();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::TbNotasBeforeDelete(TDataSet *DataSet)
{
if ( MessageDlg( "<EFBFBD>Confirma que desea eliminar la ANOTACION actual?", mtWarning, TMsgDlgButtons() << mbNo << mbYes, 0 ) == mrNo )
Abort();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::NextField(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
TDBEdit *Siguiente[] = { DBEdit1, DBEdit2, DBEdit3, DBEdit4, DBEdit5,
DBEdit6, DBEdit7, DBEdit17, DBEdit18, DBEdit8,
DBEdit9, DBEdit10, DBEdit11, DBEdit12, DBEdit13,
DBEdit19, DBEdit14, DBEdit15, DBEdit16, DBEdit1 };
for ( int i=0; i < 20; i++ )
{
if ( Sender == Siguiente[i] )
{
if ( TbListado->State == dsEdit || TbListado->State == dsInsert )
TbListado->Post();
Siguiente[i+1]->SetFocus();
break;
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::NextField2(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
TDBEdit *Siguiente[] = { DBEdit20, DBEdit21, DBEdit22, DBEdit23, DBEdit24,
DBEdit25, DBEdit26, DBEdit27, DBEdit28, DBEdit29,
DBEdit30, DBEdit31, DBEdit20 };
for ( int i=0; i < 12; i++ )
{
if ( Sender == Siguiente[i] )
{
if ( TbListado->State == dsEdit || TbListado->State == dsInsert )
TbListado->Post();
Siguiente[i+1]->SetFocus();
break;
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::TbListadoBeforePost(TDataSet *DataSet)
{
TbListado->FieldByName( "FModif" ) -> AsDateTime = TDateTime::CurrentDateTime();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::DBMemo1Exit(TObject *Sender)
{
if ( TbLlamadas->State == dsEdit || TbLlamadas->State == dsInsert )
TbLlamadas->Post();
}
//---------------------------------------------------------------------------
void __fastcall TListadoClientes::TbLlamadasBeforeDelete(TDataSet *DataSet)
{
if ( MessageDlg( "<EFBFBD>Esta seguro que desea eliminar la LLAMADA actual?", mtWarning, TMsgDlgButtons() << mbNo << mbYes, 0 ) == mrNo )
Abort();
}
//---------------------------------------------------------------------------