//--------------------------------------------------------------------------- #include #include #pragma hdrstop #include "TAlarcon.h" #include "AcercaDe.h" #include "TAlarconBusc1.h" #include "TAlarconFichas.h" #include "TAlarconProductos.h" #include "TAlarconRegLlamadas.h" #include "TAlarconProductos2.h" #include "TAlarconRegLlamadasSIMPLE.h" #include "LSPrecios1.h" #include "LSPrecios2.h" //--------------------------------------------------------------------------- #pragma link "Grids" #pragma link "ElastFrm" #pragma resource "*.dfm" TAplicacion *Aplicacion; //--------------------------------------------------------------------------- __fastcall TAplicacion::TAplicacion(TComponent* Owner) : TForm(Owner) { /* TbRegVehiculos -> Active = true; TbVehiculos -> Active = true; TbCltProv -> Active = true; TbClientes -> Active = true; TbBuscarCltProv -> Active = true; TbProductos1 -> Active = true; TbProductos2 -> Active = true; */ } //--------------------------------------------------------------------------- void __fastcall TAplicacion::ComboBox2Change(TObject *Sender) { FechaCombosL = TDateTime( ComboBox1 -> ItemIndex == -1 ? 98 : ComboBox1 -> ItemIndex + 98, ComboBox2 -> ItemIndex == -1 ? 1 : ComboBox2 -> ItemIndex + 1, 1 ); // Ajusta Filtros ReajustaFiltros(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::ComboBox3Change(TObject *Sender) { FechaCombosH = TDateTime( ComboBox1 -> ItemIndex == -1 ? 98 : ComboBox1 -> ItemIndex + 98, ComboBox3 -> ItemIndex == -1 ? 12 : ComboBox3 -> ItemIndex + 1, UltimoDiaPara(ComboBox1 -> ItemIndex == -1 ? 98 : ComboBox1 -> ItemIndex + 1, ComboBox3 -> ItemIndex == -1 ? 12 : ComboBox3 -> ItemIndex + 1) ); // Ajusta Filtros ReajustaFiltros(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::ComboBox1Change(TObject *Sender) { FechaCombosL = TDateTime( ComboBox1 -> ItemIndex == -1 ? 98 : ComboBox1 -> ItemIndex + 98, ComboBox2 -> ItemIndex == -1 ? 1 : ComboBox2 -> ItemIndex + 1, 1 ); FechaCombosH = TDateTime( ComboBox1 -> ItemIndex == -1 ? 98 : ComboBox1 -> ItemIndex + 98, ComboBox3 -> ItemIndex == -1 ? 12 : ComboBox3 -> ItemIndex + 1, UltimoDiaPara(ComboBox1 -> ItemIndex == -1 ? 98 : ComboBox1 -> ItemIndex + 98, ComboBox3 -> ItemIndex == -1 ? 12 : ComboBox3 -> ItemIndex + 1) ); // Ajusta Filtros ReajustaFiltros(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::ReajustaFiltros(void) { // MessageBox( 0, AnsiString( DateToStr(FechaCombosL ) + " y " + DateToStr( FechaCombosH ) ).c_str(), "Aplicando Filtros", MB_OK ); TbRegVehiculos->FilterOptions = TbRegVehiculos->FilterOptions << foCaseInsensitive; TbRegVehiculos->Filter = "([Fecha] >= '" + DateToStr(FechaCombosL) + "') AND [Fecha] < '" + DateToStr(FechaCombosH) + "'"; if ( TbRegVehiculos -> RecordCount != 0 ) { TbRegVehiculos->Filtered = true; /* } else { MessageBox( 0, "No existen registros\nen ese rango:\nANULANDO FILTRO", "Alerta de filtro", MB_OK ); TbRegVehiculos->Filtered = false; */ } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::DBGrid4Enter(TObject *Sender) { if ( TbProductos1 -> RecordCount == 0 ) TbProductos1 -> Insert(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbProductos1NewRecord(TDataSet *DataSet) { TbProductos1 -> FieldByName( "Fecha" ) -> AsDateTime = TDateTime::CurrentDate(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbProductos2NewRecord(TDataSet *DataSet) { TbProductos2 -> FieldByName( "Fecha" ) -> AsDateTime = TDateTime::CurrentDate(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::SpeedButton1Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::Salir1Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::Acercade1Click(TObject *Sender) { TAboutBox * fmAboutBox; fmAboutBox = new TAboutBox(this); fmAboutBox->ShowModal(); delete fmAboutBox; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbRegVehiculosNewRecord(TDataSet *DataSet) { // El registro actual, tendrá como fecha y hora, las actuales TbRegVehiculos -> FieldByName( "Fecha" ) -> AsDateTime = TDateTime::CurrentDate(); TbRegVehiculos -> FieldByName( "Hora" ) -> AsDateTime = TDateTime::CurrentTime(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::FormCreate(TObject *Sender) { unsigned short AActual, M, D; TDateTime FActual; FActual = FActual . CurrentDate(); FActual . DecodeDate( &AActual, &M, &D ); FechaCombosL = TDateTime( ComboBox1 -> ItemIndex == -1 ? AActual : ComboBox1 -> ItemIndex + 98, ComboBox2 -> ItemIndex == -1 ? 1 : ComboBox2 -> ItemIndex + 1, 1 ); FechaCombosH = TDateTime( ComboBox1 -> ItemIndex == -1 ? AActual : ComboBox1 -> ItemIndex + 98, ComboBox3 -> ItemIndex == -1 ? 12 : ComboBox3 -> ItemIndex + 1, UltimoDiaPara(ComboBox1 -> ItemIndex == -1 ? AActual : ComboBox1 -> ItemIndex + 98, ComboBox3 -> ItemIndex == -1 ? 12 : ComboBox3 -> ItemIndex + 1) ); } //--------------------------------------------------------------------------- /**************************************************************************\ |* *| |* CalculaAjusteDia *| |* *| |* Descripci¢n: *| |* Calcula el ajuste necesario para el comienzo de los dias *| |* y el n£mero de dias que tiene el mes en curso. *| |* *| |* Entradas: Retorno del Ajuste, y Dias del Mes *| |* Mes para iniciar c lculos *| |* *| |* Salidas: OK Todo ha ido bien *| |* ERROR *| |* *| \**************************************************************************/ //int CalculaAjusteDias( char *Ajuste, char *DiasMes, char Mes, int Anyo ) short int __fastcall TAplicacion::UltimoDiaPara( int Anyo, int Mes ) { short int Ajuste, DiasMes; int dev, n, b, dsem, dia; // Dias de los meses, si el a¤o no es bisiesto char DiasMeses[12] = { 31, 00, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; // Ajusta febrero si es bisiesto el a¤o DiasMeses[1] = (Anyo%4 == 0) ? 29 : 28; // dev = ERROR; // Solo si la entrada es correcta if ( Mes >= 1 && Mes <=12 ) { // dev = OK; // Obtenemos que dia, ( 0 - 365 ), es el 1§ del mes dia = 0; for ( n = 0; n < 12 && n < (Mes-1); n++ ) dia += DiasMeses[n]; n = Anyo-1988; // a¤os para bisiesto b = (n+3)/4; // a¤os bisies. pasados dsem = 4; // 1o. Ene 1988: Viernes dsem += (n*365+b); // 1o. Ene actual dsem = (dsem+dia)%7; // d¡a seleccionado /***/Ajuste = dsem; /***/DiasMes = DiasMeses[ Mes - 1 ]; } // return dev; return DiasMes; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::BusqAntClick(TObject *Sender) { TbCltProv->Filtered = false; if ( TbBuscarCltProv -> FindPrior() == true ) { TbCltProv -> GotoCurrent(TbBuscarCltProv); BusqSig -> Enabled = true; } else { BusqAnt -> Enabled = false; MessageBox( 0, "Coincidencia no hayada", "¡ Buscar Anterior !", MB_OK ); } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::BusqSigClick(TObject *Sender) { TbCltProv->Filtered = false; if ( TbBuscarCltProv -> FindNext() == true ) { TbCltProv -> GotoCurrent(TbBuscarCltProv); BusqAnt -> Enabled = true; } else { BusqSig -> Enabled = false; MessageBox( 0, "Coincidencia no hayada", "¡ Buscar Anterior !", MB_OK ); } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::BuscarFichaClick(TObject *Sender) { TDlgBuscProd *DlgBuscProd; TbCltProv->Filtered = false; DlgBuscProd = new TDlgBuscProd(this); DlgBuscProd -> ShowModal(); if ( DlgBuscProd -> ModalResult == mrOk ) { BusqSig -> Enabled = true; BusqAnt -> Enabled = true; TbCltProv -> GotoCurrent(TbBuscarCltProv); } delete DlgBuscProd; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbCltProvBeforeDelete(TDataSet *DataSet) { switch( MessageDlg( "Atención, está apunto de eliminar\na un cliente...\n¿Realmente desea continuar?", mtWarning, TMsgDlgButtons() << mbNo << mbYes, 0 ) ) { case mrNo: Abort(); break; default: // Borramos todos los registros asociados... if ( TbCltProv -> FieldByName( "CltProv" ) -> AsInteger == 1 ) { TbClientes -> GotoCurrent(TbCltProv); while( TbProductos1 -> RecordCount != 0 ) TbProductos1 -> Delete(); while( TbProductos2 -> RecordCount != 0 ) TbProductos2 -> Delete(); } break; } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TabSheet1Enter(TObject *Sender) { TbClientes -> Refresh(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::BitBtn2Click(TObject *Sender) { TbVehiculos -> Delete(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbVehiculosBeforeDelete(TDataSet *DataSet) { switch( MessageDlg( "Atención, está apunto de eliminar\nel registro completo para: " + TbVehiculos->FieldByName("MatriculaVehiculo")->AsString + "\n¿Realmente desea continuar?", mtWarning, TMsgDlgButtons() << mbNo << mbYes, 0 ) ) { case mrNo: Abort(); break; default: // Borramos todos los registros asociados... while( TbRegVehiculos -> RecordCount != 0 ) TbRegVehiculos -> Delete(); break; }; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::FichadeClientes1Click(TObject *Sender) { TLAgendaCltProv *QRListForm; // Creamos una ficha del tipo TProductos // Guardando la referencia en la variable TProductos QRListForm = new TLAgendaCltProv(this); // Mostrarla como modal y según el valor devuelto //InformeProductosS->ShowModal(); QRListForm -> QuickReport -> Print();//Preview();//;//-> Print(); // Destruimos la ficha delete QRListForm; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::BitBtn3Click(TObject *Sender) { PageControl1 -> ActivePage = TabSheet1; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::BitBtn5Click(TObject *Sender) { PageControl1 -> ActivePage = TabSheet2; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::BitBtn6Click(TObject *Sender) { PageControl1 -> ActivePage = TabSheet3; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::BitBtn4Click(TObject *Sender) { PageControl1 -> ActivePage = TabSheet4; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::ListadodePrecios11Click(TObject *Sender) { PageControl1 -> ActivePage = TabSheet1; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::ListadodePrecios21Click(TObject *Sender) { PageControl1 -> ActivePage = TabSheet4; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::AgendadeTelfono1Click(TObject *Sender) { PageControl1 -> ActivePage = TabSheet2; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::Controldellamadas1Click(TObject *Sender) { PageControl1 -> ActivePage = TabSheet3; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::Button2Click(TObject *Sender) { TDateTime FechaL, FechaH; try { FechaL = DpFechaL2 -> Date; FechaH = DpFechaH2 -> Date; /* FechaL = TDateTime( Edit1 -> Text . ToInt(), 1, 1 ); FechaH = TDateTime( Edit2 -> Text . ToInt(), 12, 31 ); */ TbProductos2->FilterOptions = TbProductos2->FilterOptions << foCaseInsensitive; TbProductos2->Filter = "([Fecha] >= '" + DateToStr(FechaL) + "') AND [Fecha] <= '" + DateToStr(FechaH) + "'"; if ( TbProductos2 -> RecordCount != 0 ) TbProductos2->Filtered = true; } catch(...) { // Nothing... MessageBox( 0, "Imposible aplicar filtro en ese rango.", "¡ Alerta !", MB_OK ); } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::Button1Click(TObject *Sender) { TDateTime FechaL, FechaH; try { FechaL = DpFechaL1 -> Date; FechaH = DpFechaH1 -> Date; /* FechaL = TDateTime( Edit3 -> Text . ToInt(), 1, 1 ); FechaH = TDateTime( Edit4 -> Text . ToInt(), 12, 31 ); */ TbProductos1->FilterOptions = TbProductos1->FilterOptions << foCaseInsensitive; TbProductos1->Filter = "([Fecha] >= '" + FechaL + "') AND [Fecha] <= '" + FechaH + "'"; if ( TbProductos1 -> RecordCount != 0 ) TbProductos1->Filtered = true; } catch(...) { // Nothing... MessageBox( 0, "Imposible aplicar filtro en ese rango.", "¡ Alerta !", MB_OK ); } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::FormShow(TObject *Sender) { unsigned short AActual, M, D; DpFechaL1 -> Date = TDateTime::CurrentDate(); DpFechaL2 -> Date = TDateTime::CurrentDate(); DpFechaH1 -> Date = TDateTime::CurrentDate(); DpFechaH2 -> Date = TDateTime::CurrentDate(); // TDateTime FActual; // FActual = FActual . CurrentDate(); // FActual . DecodeDate( &AActual, &M, &D ); PageControl1 -> ActivePage = TabSheet1; // Edit1 -> Text = AnsiString( AActual ); // Edit2 -> Text = AnsiString( AActual ); PageControl1 -> ActivePage = TabSheet2; PageControl1 -> ActivePage = TabSheet3; PageControl1 -> ActivePage = TabSheet4; // Edit3 -> Text = AnsiString( AActual ); // Edit4 -> Text = AnsiString( AActual ); PageControl1 -> ActivePage = TabSheet2; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::BitBtn1Click(TObject *Sender) { TbVehiculos -> Insert(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbVehiculosNewRecord(TDataSet *DataSet) { // Pedimos el nº de matricula, el cual no puede ser modificado mas tarde... try { TbVehiculos -> FieldByName( "MatriculaVehiculo" ) -> AsString = InputBox( "Generando nuevo vehiculo", "Introduzca la nueva matricula:", "" ); } catch(...) { Abort(); } if ( TbVehiculos -> FieldByName( "MatriculaVehiculo" ) -> AsString . IsEmpty() ) Abort(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbCltProvNewRecord(TDataSet *DataSet) { /* try { TbCltProv -> FieldByName( "EnlacePrecios" ) -> AsDateTime = TDateTime::CurrentDateTime(); } catch(...) { Abort(); } */ } //--------------------------------------------------------------------------- void __fastcall TAplicacion::Button3Click(TObject *Sender) { if ( Edit5 -> Text . IsEmpty() ) { TbCltProv->Filtered = false; } else { TbCltProv->FilterOptions = TbCltProv->FilterOptions << foCaseInsensitive; TbCltProv->Filter = "([Empresa] >= '" + Edit5 -> Text + "') AND [Empresa] <= '" + Edit6 -> Text + "'"; if ( TbCltProv -> RecordCount != 0 ) TbCltProv->Filtered = true; } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::MatriculaSeleccionada1Click(TObject *Sender) { TQRListForm1 *QRListForm; // Creamos una ficha del tipo TProductos // Guardando la referencia en la variable TProductos QRListForm = new TQRListForm1(this); // Mostrarla como modal y según el valor devuelto //InformeProductosS->ShowModal(); QRListForm -> QuickReport1 -> Print();//Preview();//;//-> Print(); // Destruimos la ficha delete QRListForm; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::Completo1Click(TObject *Sender) { TQRMDForm *QRListForm; // Creamos una ficha del tipo TProductos // Guardando la referencia en la variable TProductos QRListForm = new TQRMDForm(this); // Mostrarla como modal y según el valor devuelto //InformeProductosS->ShowModal(); QRListForm -> QuickRep1 -> Print();//Preview();//;//-> Print(); // Destruimos la ficha delete QRListForm; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::ListadoCompleto1Click(TObject *Sender) { TQRMDForm2 *QRListForm; // Creamos una ficha del tipo TProductos // Guardando la referencia en la variable TProductos QRListForm = new TQRMDForm2(this); // Mostrarla como modal y según el valor devuelto //InformeProductosS->ShowModal(); QRListForm -> QuickRep1 -> Print();//Preview();//;//-> Print(); // Destruimos la ficha delete QRListForm; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TODASlasllamadas1Click(TObject *Sender) { TQRMDForm1 *QRListForm; // Creamos una ficha del tipo TProductos // Guardando la referencia en la variable TProductos QRListForm = new TQRMDForm1(this); // Mostrarla como modal y según el valor devuelto //InformeProductosS->ShowModal(); QRListForm -> QuickReport -> Print();//Preview();//;//-> Print(); // Destruimos la ficha delete QRListForm; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::FichaActual1Click(TObject *Sender) { TQRListForm2 *QRListForm; // Creamos una ficha del tipo TProductos // Guardando la referencia en la variable TProductos QRListForm = new TQRListForm2(this); // Mostrarla como modal y según el valor devuelto //InformeProductosS->ShowModal(); QRListForm -> QuickReport -> Print();//Preview();//;//-> Print(); // Destruimos la ficha delete QRListForm; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::ClienteSeleccionado1Click(TObject *Sender) { TQRListForm3 *QRListForm; // Creamos una ficha del tipo TProductos // Guardando la referencia en la variable TProductos QRListForm = new TQRListForm3(this); // Mostrarla como modal y según el valor devuelto //InformeProductosS->ShowModal(); QRListForm -> QuickReport -> Print();//Preview();//;//-> Print(); // Destruimos la ficha delete QRListForm; } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbProductos1BeforeInsert(TDataSet *DataSet) { if ( !( TbClientes -> RecNo > 0 && TbClientes -> RecordCount > 0 ) ) { MessageBox( 0, "¿ No cree que debería crear,\no seleccionar un cliente,\nantes de agregar datos a NADIE?.", "¡ Atención !", MB_OK ); Abort(); } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbProductos2BeforeInsert(TDataSet *DataSet) { if ( !( TbClientes -> RecNo > 0 && TbClientes -> RecordCount > 0 ) ) { MessageBox( 0, "¿ No cree que debería crear,\no seleccionar un cliente,\nantes de agregar datos a NADIE?.", "¡ Atención !", MB_OK ); Abort(); } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbVehiculosBeforeOpen(TDataSet *DataSet) { if ( access(TbVehiculos->TableName.c_str(),0) != 0 ) TbVehiculos -> CreateTable(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbRegVehiculosBeforeOpen(TDataSet *DataSet) { if ( access(TbRegVehiculos->TableName.c_str(),0) != 0 ) TbRegVehiculos -> CreateTable(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbBuscarCltProvBeforeOpen(TDataSet *DataSet) { if ( access(TbCltProv->TableName.c_str(),0) != 0 ) { TbCltProv -> Active = false; TbCltProv -> CreateTable(); TbCltProv -> Active = true; } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbClientesBeforeOpen(TDataSet *DataSet) { if ( access(TbClientes->TableName.c_str(),0) != 0 ) { TbCltProv -> Active = false; TbCltProv -> CreateTable(); TbCltProv -> Active = true; } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbCltProvBeforeOpen(TDataSet *DataSet) { if ( access(TbCltProv->TableName.c_str(),0) != 0 ) TbCltProv -> CreateTable(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbProductos1BeforeOpen(TDataSet *DataSet) { if ( access(TbProductos1->TableName.c_str(),0) != 0 ) TbProductos1 -> CreateTable(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::TbProductos2BeforeOpen(TDataSet *DataSet) { if ( access(TbProductos2->TableName.c_str(),0) != 0 ) TbProductos2 -> CreateTable(); } //--------------------------------------------------------------------------- void __fastcall TAplicacion::DBGrid3TitleClick(TColumn *Column) { switch( Column->ID ) { case 1: TbCltProv -> IndexFieldNames = "CodCliente"; break; case 3: TbCltProv -> IndexFieldNames = "Localidad;Empresa;PersonaContacto"; break; case 4: TbCltProv -> IndexFieldNames = "PersonaContacto;Localidad;Empresa"; break; default: TbCltProv -> IndexFieldNames = "Empresa;PersonaContacto"; break; } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::DBGrid6TitleClick(TColumn *Column) { switch( Column->ID ) { case 0: TbClientes -> IndexFieldNames = "CodCliente"; break; /* case 2: TbClientes -> IndexFieldNames = "Localidad;Empresa;PersonaContacto"; break; */ case 2: TbClientes -> IndexFieldNames = "PersonaContacto;Localidad;Empresa"; break; default: TbClientes -> IndexFieldNames = "Empresa;PersonaContacto"; break; } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::DBGrid5TitleClick(TColumn *Column) { switch( Column->ID ) { case 0: TbClientes -> IndexFieldNames = "CodCliente"; break; /* case 1: TbClientes -> IndexFieldNames = "Localidad;Empresa;PersonaContacto"; break; */ case 2: TbClientes -> IndexFieldNames = "PersonaContacto;Localidad;Empresa"; break; default: TbClientes -> IndexFieldNames = "Empresa;PersonaContacto"; break; } } //--------------------------------------------------------------------------- void __fastcall TAplicacion::FormClose(TObject *Sender, TCloseAction &Action) { if ( TbVehiculos -> State == dsEdit || TbVehiculos -> State == dsInsert ) TbVehiculos -> Post(); if ( TbRegVehiculos -> State == dsEdit || TbRegVehiculos -> State == dsInsert ) TbRegVehiculos -> Post(); if ( TbClientes -> State == dsEdit || TbClientes -> State == dsInsert ) TbClientes -> Post(); if ( TbCltProv -> State == dsEdit || TbCltProv -> State == dsInsert ) TbCltProv -> Post(); if ( TbProductos1 -> State == dsEdit || TbProductos1 -> State == dsInsert ) TbProductos1 -> Post(); if ( TbProductos2 -> State == dsEdit || TbProductos2 -> State == dsInsert ) TbProductos2 -> Post(); } //---------------------------------------------------------------------------