250 lines
7.1 KiB
C++
250 lines
7.1 KiB
C++
//---------------------------------------------------------------------------
|
|
#include <vcl.h>
|
|
#include <stdio.h>
|
|
#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;
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|