//--------------------------------------------------------------------------- #include #pragma hdrstop #include "Agenda.h" #include #include #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ó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ó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ó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ón Extra *| \************************/ TbListado -> FieldDefs -> Add("Estado Civil", ftSmallint, 0, false ); TbListado -> FieldDefs -> Add("Fecha de Nacimiento", ftDate, 0, false ); TbListado -> FieldDefs -> Add("Profesión", ftString, 15, false ); TbListado -> FieldDefs -> Add("Añ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ñ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ó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ñ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ó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ónico" ; // Marcar telé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ónico" ; // Marcar telé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( "¿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ñ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( "¿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( "¿Esta seguro que desea eliminar la LLAMADA actual?", mtWarning, TMsgDlgButtons() << mbNo << mbYes, 0 ) == mrNo ) Abort(); } //---------------------------------------------------------------------------