//--------------------------------------------------------------------------- #include #include #pragma hdrstop #include "InfoProveedores.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TInfoProv *InfoProv; //--------------------------------------------------------------------------- __fastcall TInfoProv::TInfoProv(TComponent* Owner) : TForm(Owner) { TbProv->Active = true; TbProv2Act->Active = true; TbAct->Active = true; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::DsProvDataChange(TObject *Sender, TField *Field) { char BarraEstado[80]; // Indicador de FichaActual / Num.Fichas if ( DsProv -> DataSet -> RecNo > 0 ) sprintf( BarraEstado, "%d / %d", DsProv -> DataSet -> RecNo, DsProv -> DataSet -> RecordCount ); else sprintf( BarraEstado, "¿Nuevo? / %d", DsProv -> DataSet -> RecordCount ); StatusBar1->Panels->Items[2]->Text = BarraEstado; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::RB1Click(TObject *Sender) { Edit1->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TInfoProv::RB2Click(TObject *Sender) { Edit2->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TInfoProv::RB3Click(TObject *Sender) { Edit3->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TInfoProv::RB4Click(TObject *Sender) { Edit4->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TInfoProv::RB5Click(TObject *Sender) { Edit5->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TInfoProv::Edit1Enter(TObject *Sender) { RB1->Checked = true; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::Edit2Enter(TObject *Sender) { RB2->Checked = true; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::Edit3Enter(TObject *Sender) { RB3->Checked = true; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::Edit4Enter(TObject *Sender) { RB4->Checked = true; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::Edit5Enter(TObject *Sender) { RB5->Checked = true; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::SpeedButton1Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TInfoProv::Edit1KeyPress(TObject *Sender, char &Key) { Edit2->Text = ""; Edit3->Text = ""; Edit4->Text = ""; Edit5->Text = ""; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::Edit2KeyPress(TObject *Sender, char &Key) { Edit1->Text = ""; Edit3->Text = ""; Edit4->Text = ""; Edit5->Text = ""; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::Edit3KeyPress(TObject *Sender, char &Key) { Edit1->Text = ""; Edit2->Text = ""; Edit4->Text = ""; Edit5->Text = ""; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::Edit4KeyPress(TObject *Sender, char &Key) { Edit1->Text = ""; Edit2->Text = ""; Edit3->Text = ""; Edit5->Text = ""; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::Edit5KeyPress(TObject *Sender, char &Key) { Edit1->Text = ""; Edit2->Text = ""; Edit3->Text = ""; Edit4->Text = ""; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::TabSheet2Enter(TObject *Sender) { PageControl2->ActivePage = TabSheet4; } //--------------------------------------------------------------------------- void __fastcall TInfoProv::SpeedButton2Click(TObject *Sender) { // Si no tiene ya esta actividad... if ( ! ( TbProv2Act -> Locate( "ID_ACTIVIDAD", TbAct->FieldByName( "ID_ACTIVIDAD" )->Value, TLocateOptions() << loCaseInsensitive ) ) ) // Añadimos esta actividad al proveedor actualmente señalado... TbProv2Act -> InsertRecord( ARRAYOFCONST( ( TbProv->FieldByName( "ID_PROVEEDOR" )->Value, TbAct->FieldByName( "ID_ACTIVIDAD" )->Value ) ) ); else ShowMessage( "Este proveedor ya tiene asignada, la actividad que intenta agregar" ); } //--------------------------------------------------------------------------- void __fastcall TInfoProv::SpeedButton3Click(TObject *Sender) { AnsiString MSG; MSG = "Seguro que desea eliminar la actividad de: \n"+TbProv2Act->FieldByName("NombreActividad")->AsString+"\n del proveedor actual: \n" + TbProv->FieldByName( "Nombre" )->AsString; switch( MessageDlg( MSG, mtWarning, TMsgDlgButtons() << mbNo << mbYes, 0 ) ) { case mrYes: TbProv2Act->Delete(); break; default: break; } } //--------------------------------------------------------------------------- void __fastcall TInfoProv::RefiltrarDatos(TObject *Sender) { AnsiString Aqui, BuscarEsto; // SI no hay actividades seleccionadas // Tenemos que dejar las propiedades MAESTRO-DETALLE: // // TbProv2Act ---> TbProv // // // Filter contendrá el 'multi-filtro' (Esto puede parecer un poco tosco), pero realmente funciona... ). // ! NOTA: NO LLAMAR A ESTA FUNCION DESDE NINGUN SITIO SIN ASEGURARSE // ! QUE EL OBJETO CONTIENE UN EDIT VALIDO... // ! if ( RB1->Checked ) Aqui = "ID_PROVEEDOR"; if ( RB2->Checked ) Aqui = "Nombre"; if ( RB3->Checked ) Aqui = "CIF"; if ( RB4->Checked ) Aqui = "Direccion"; if ( RB5->Checked ) Aqui = "CP"; // Obtenemos el valor del campo concreto que esta señalado... BuscarEsto = ((TEdit *) Sender )->Text; { // Some non-indexed field. AnsiString BuscarCota; BuscarCota = BuscarEsto + "Z"; TbProv->FilterOptions = TbBusquedas->FilterOptions << foCaseInsensitive; TbProv->Filter = "( ([" + Aqui + "] >= '" + BuscarEsto + "') AND [" + Aqui + "] < '" + BuscarCota + "')"; TbProv->Filtered = true; } TbBusquedas->Refresh(); } //--------------------------------------------------------------------------- void __fastcall TInfoProv::SpeedButton4Click(TObject *Sender) { if ( TbProv->Filtered ) { SpeedButton4->Caption = "Pulse aqui para ACTIVAR FILTRO"; TbProv->Filtered = false; TbProv2Act -> Active = false; TbProv2Act -> MasterSource = DsProv; TbProv2Act -> IndexFieldName = "ID_PROVEEDOR"; TbProv2Act -> MasterFields = "ID_PROVEEDOR"; TbProv2Act -> MasterSource = DsProv; } else { SpeedButton4->Caption = "Pulse aqui para DEJAR de FILTRAR" TbProv->Filtered = true; } } //---------------------------------------------------------------------------