2021-09-12 22:14:42 +02:00

1290 lines
40 KiB
C++
Raw Blame History

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#include "Principal.h"
#include "Dialogo.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TAutorizacion *Autorizacion;
TPesoEntrada *PesoEntrada;
TPesoSalida *PesoSalida;
TAlbaran *Albaran;
TTransfer *Transfer;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
//Pedimos memoria para la clase Autorizacion
Autorizacion = new TAutorizacion();
//Pedimos memoria para la clase Peso Entrada
PesoEntrada = new TPesoEntrada();
//Pedimos memoria para la clase Peso Salida
PesoSalida = new TPesoSalida();
//Pedimos memoria para la clase de Albaran
Albaran = new TAlbaran();
//Pedimos memoria para la clase de Transfer
Transfer = new TTransfer();
}
//---------------------------------------------------------------------------
__fastcall TForm1::~TForm1()
{
//liberamos las clases
delete Autorizacion;
delete PesoEntrada;
delete PesoSalida;
delete Albaran;
delete Transfer;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Salir1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ConductorClick(TObject *Sender)
{
int nError;
//Mostramos el Label y Edit
Label1->Visible=true;
Edit1->Visible=true;
Edit1->MaxLength=4;
Edit1->SetFocus();
//Asignamos a la opcion la de conductor
byOpcion=OpConductor;
if(strcmp(sDatoTecleado,""))
{
//Comprobamos el Conductor
nError=Autorizacion->ComprobarConductor(sDatoTecleado,hBaseDatos);//"1151"
if(nError!=AUT_CON_CORRECTO)
MuestraError(nError);
else
{
MuestraLista("CONDUCTOR");
ShowMessage("Fue todo correcto");
}
}
}
//---------------------------------------------------------------------------
void TForm1::MuestraError(int Error)
{
char scadena[100];
strcpy(scadena,"Se produjo un Error: ");
switch(Error)
{
case 1:
strcat(scadena,"AUT_CON_VALOR_NO_ENCONTRADO");
break;
case 2:
strcat(scadena,"AUT_CON_BORRADO");
break;
case 3:
strcat(scadena,"AUT_CON_CARNET_CADUCADO");
break;
case 4:
strcat(scadena,"AUT_CON_ADR_CADUCADO");
break;
case 5:
strcat(scadena,"AUT_CON_EN_PROCESO");
break;
case 6:
strcat(scadena,"AUT_CIS_VALOR_NO_ENCONTRADO");
break;
case 7:
strcat(scadena,"AUT_CIS_BORRADO");
break;
case 8:
strcat(scadena,"AUT_CIS_TARJETA_CADUCADA");
break;
case 9:
strcat(scadena,"AUT_CIS_ADR_CADUCADO");
break;
case 10:
strcat(scadena,"AUT_CIS_ITV_CADUCADO");
break;
case 11:
strcat(scadena,"AUT_CIS_SEGURO_CADUCADO");
break;
case 12:
strcat(scadena,"AUT_TRA_VALOR_NO_ENCONTRADO");
break;
case 13:
strcat(scadena,"AUT_TRA_BORRADO");
break;
case 14:
strcat(scadena,"AUT_TRA_TARJETA_CADUCADA");
break;
case 15:
strcat(scadena,"AUT_TRA_ADR_CADUCADO");
break;
case 16:
strcat(scadena,"AUT_TRA_ITV_CADUCADO");
break;
case 17:
strcat(scadena,"AUT_TRA_SEGURO_CADUCADO");
break;
case 18:
strcat(scadena,"AUT_SUM_VALOR_NO_ENCONTRADO");
break;
case 19:
strcat(scadena,"AUT_SUM_BORRADO");
break;
case 20:
strcat(scadena,"AUT_ORC_VALOR_NO_ENCONTRADO");
break;
case 21:
strcat(scadena,"AUT_ORC_BORRADO");
break;
case 22:
strcat(scadena,"AUT_ORC_ESTADO_ACABADO");
break;
case 23:
strcat(scadena,"AUT_ORC_SUM_OTRA_ORDEN");
break;
case 24:
strcat(scadena,"AUT_ORC_CIS_OTRA_ORDEN");
break;
case 25:
strcat(scadena,"AUT_ORC_FECHA_MENOR_QUE_HOY");
break;
case 26:
strcat(scadena,"AUT_ORL_VALOR_NO_ENCONTRADO");
break;
case 27:
strcat(scadena,"AUT_PRO_VALOR_NO_ENCONTRADO");
break;
case 28:
strcat(scadena,"AUT_PRM_PROD_MAYOR_PERMITIDO");
break;
case 29:
strcat(scadena,"AUT_PRM_PROD_MAYOR_CAP_CIS");
break;
case 30:
strcat(scadena,"AUT_PRM_PESO_MAYOR_CAP_TRA");
break;
case 250:
strcat(scadena,"ERROR_INTERNO");
break;
}
ShowMessage(scadena);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ComprobarNomFichError("PruebaError.txt");
//Generamos un Error de prueba en el fichero pruebaError.txt
GenerarError("Prueba de Error");
//Inicializamos el BDE
InicializarBDE("IDAPI.CFG");
//Conectamos al BDE
ConectarBDE("ESERGUI",&hBaseDatos);
//Pedimos memoria para sus variables
Autorizacion->ReservarMemoriaEstructura(hBaseDatos);
//Pedimos memoria para las variables de peso entrada
PesoEntrada->ReservarMemoriaEstructura(hBaseDatos);
//Pedimos memoria para las variables de peso entrada
PesoSalida->ReservarMemoriaEstructura(hBaseDatos);
//Pedimos memoria para las variables de Albaranes
Albaran->ReservarMemoriaEstructura(hBaseDatos);
//Inicializamos variable
Transfer->InicializarEstructuraTransfer();
//Inicializamos el codigo de teclado
strcpy(sDatoTecleado,"");
byOpcion=0;
bTodos=false;
//Inicializamos los HANDLE de los Threads
HDAUT=NULL;
HDPSE=NULL;
HDPSS=NULL;
HDALB=NULL;
HDContadores=NULL;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
//Finalizamos los Threads
TerminarThread(HDAUT);
TerminarThread(HDPSE);
TerminarThread(HDPSS);
TerminarThread(HDALB);
TerminarThread(HDContadores);
//Liberamos la memoria de las variables de la estructura
Autorizacion->LiberarEstructura();
//Liberamos memoria de Peso de entrada
PesoEntrada->LiberarEstructura();
//Liberamos memoria de Peso de salida
PesoSalida->LiberarEstructura();
//Liberamos memoria del Albaran
Albaran->LiberarEstructura();
//Desconectamoel el BDE
DesconectarBDE (hBaseDatos);
//Finalizamos el BDE
FinalizarBDE();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::InformacionEstructura1Click(TObject *Sender)
{
BYTE i;
int POSX,POSY;
char scadena[50];
DatosAutorizacion sDatos;
Autorizacion->LeerEstructura(&sDatos);
//Cargamos Paneles de campo
for(i=0;i<N_TABLA;i++)
{
Panel[i] = new TPanel(this);
Panel[i]->Parent=this;
Panel[i]->Top=0;
Panel[i]->Left=i*100;
Panel[i]->Width=100;
Panel[i]->Height=20;
Panel[i]->Enabled=true;
Panel[i]->Visible=true;
switch(i)
{
case 0: strcpy(scadena,"CONDUCTOR");
break;
case 1: strcpy(scadena,"CISTERNA");
break;
case 2: strcpy(scadena,"TRACTOR");
break;
case 3: strcpy(scadena,"SUMINISTRADOR");
break;
case 4: strcpy(scadena,"PEDIDOS");
break;
}
Panel[i]->Caption=scadena;
}
//Cargamos clases
for(i=i;i<(N_TABLA+N_CAMPO);i++)
{
//Cargamos los paneles y le damos la posicion y el tama<6D>o
Panel[i] = new TPanel(this);
Panel[i]->Parent=this;
if((i-N_TABLA)<N_CON)
{
POSX=0;
POSY=(i-N_TABLA+1)*20;
}
else if( ( i-( N_TABLA+N_CON ) )< N_CIS)
{
POSX=100;
POSY=(((i-N_TABLA+1)-N_CON)*20);
}
else if( ( i-( N_TABLA+N_CON+N_CIS ) )< N_TRA)
{
POSX=200;
POSY=((i-N_TABLA+1)-(N_CON+N_CIS))*20;
}
else if( ( i-( N_TABLA+N_CON+N_CIS+N_TRA ) )< N_SUM)
{
POSX=300;
POSY=(((i-N_TABLA+1)-(N_CON+N_CIS+N_TRA))*20);
}
else if( ( i-( N_TABLA+N_CON+N_CIS+N_TRA+N_SUM ) )< N_PED)
{
POSX=400;
POSY=(((i-N_TABLA+1)-(N_CON+N_CIS+N_TRA+N_SUM))*20);
}
Panel[i]->Left=POSX;
Panel[i]->Top=POSY;
Panel[i]->Width=100;
Panel[i]->Height=20;
Panel[i]->Enabled=true;
Panel[i]->Visible=true;
//Copiamos scadenas en los paneles segun corresponda
switch(i)
{
//Paneles del conductor
case N_TABLA:
strcpy(scadena,sDatos.pszCodigoCon);
break;
case (N_TABLA+1):
strcpy(scadena,sDatos.pszCadCarnetCon);
break;
case (N_TABLA+2):
strcpy(scadena,sDatos.pszCadADRCon);
break;
case (N_TABLA+3):
strcpy(scadena,sDatos.pszNombreCon);
break;
case (N_TABLA+4):
strcpy(scadena,sDatos.pszCarnetCon);
break;
case (N_TABLA+5):
strcpy(scadena,sDatos.pszInternoCon);
break;
case (N_TABLA+6):
BoolACadena(sDatos.bBorradoCon,scadena);
break;
case (N_TABLA+7):
itoa(sDatos.nResultadoCon,scadena,10);
break;
//Paneles de la cisterna
case (N_TABLA+8):
strcpy(scadena,sDatos.pszCodigoCis);
break;
case (N_TABLA+9):
strcpy(scadena,sDatos.pszCadTarjetaCis);
break;
case (N_TABLA+10):
strcpy(scadena,sDatos.pszCadADRCis);
break;
case (N_TABLA+11):
strcpy(scadena,sDatos.pszCadITVCis);
break;
case (N_TABLA+12):
strcpy(scadena,sDatos.pszCadSeguroCis);
break;
case (N_TABLA+13):
strcpy(scadena,sDatos.pszInternoCis);
break;
case (N_TABLA+14):
strcpy(scadena,sDatos.pszTaraCis);
break;
case (N_TABLA+15):
strcpy(scadena,sDatos.pszBrutoCis);
break;
case (N_TABLA+16):
strcpy(scadena,sDatos.pszsVolumenCis[0]);
break;
case (N_TABLA+17):
strcpy(scadena,sDatos.pszsVolumenCis[1]);
break;
case (N_TABLA+18):
strcpy(scadena,sDatos.pszsVolumenCis[2]);
break;
case (N_TABLA+19):
strcpy(scadena,sDatos.pszsVolumenCis[3]);
break;
case (N_TABLA+20):
strcpy(scadena,sDatos.pszsVolumenCis[4]);
break;
case (N_TABLA+21):
strcpy(scadena,sDatos.pszsVolumenCis[5]);
break;
case (N_TABLA+22):
strcpy(scadena,sDatos.pszsVolumenCis[6]);
break;
case (N_TABLA+23):
strcpy(scadena,sDatos.pszsVolumenCis[7]);
break;
case (N_TABLA+24):
strcpy(scadena,sDatos.pszsVolumenCis[8]);
break;
case (N_TABLA+25):
strcpy(scadena,sDatos.pszCamionCis);
break;
case (N_TABLA+26):
BoolACadena(sDatos.bBorradoCon,scadena);
break;
case (N_TABLA+27):
itoa(sDatos.nResultadoCis,scadena,10);
break;
//Paneles del tractor
case (N_TABLA+28):
strcpy(scadena,sDatos.pszMatriculaTra);
break;
case (N_TABLA+29):
strcpy(scadena,sDatos.pszCadTarjetaTra);
break;
case (N_TABLA+30):
strcpy(scadena,sDatos.pszCadADRTra);
break;
case (N_TABLA+31):
strcpy(scadena,sDatos.pszCadITVTra);
break;
case (N_TABLA+32):
strcpy(scadena,sDatos.pszCadSeguroTra);
break;
case (N_TABLA+33):
strcpy(scadena,sDatos.pszInternoTra);
break;
case (N_TABLA+34):
strcpy(scadena,sDatos.pszTaraTra);
break;
case (N_TABLA+35):
strcpy(scadena,sDatos.pszBrutoTra);
break;
case (N_TABLA+36):
BoolACadena(sDatos.bBorradoCon,scadena);
break;
case (N_TABLA+37):
itoa(sDatos.nResultadoTra,scadena,10);
break;
//Paneles del Suministrador
case (N_TABLA+38):
strcpy(scadena,sDatos.pszCodigoSum);
break;
case (N_TABLA+39):
strcpy(scadena,sDatos.pszNombreSum);
break;
case (N_TABLA+40):
BoolACadena(sDatos.bBorradoSum,scadena);
break;
case (N_TABLA+41):
itoa(sDatos.nResultadoSum,scadena,10);
break;
//Paneles de los Pedidos
case (N_TABLA+42):
strcpy(scadena,sDatos.sOrden[0].pszMatriculaCisOrd);
break;
case (N_TABLA+43):
strcpy(scadena,sDatos.sOrden[0].pszCodigoSumOrd);
break;
case (N_TABLA+44):
strcpy(scadena,sDatos.sOrden[0].pszNumeroOrd);
break;
case (N_TABLA+45):
strcpy(scadena,sDatos.sOrden[0].pszNombreDesOrd);
break;
case (N_TABLA+46):
itoa(sDatos.sOrden[0].nResultadoOrd,scadena,10);
break;
}
Panel[i]->Caption=scadena;
}
//liberamos clases
ShowMessage("Estos son los resultados");
for(i=0;i<(N_TABLA+N_CAMPO);i++)
delete Panel[i];
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CisternaClick(TObject *Sender)
{
int nError;
//Mostramos el Label y Edit
Label1->Visible=true;
Edit1->Visible=true;
Edit1->MaxLength=4;
Edit1->SetFocus();
//Asignamos a la opcion la de conductor
byOpcion=OpCisterna;
if(strcmp(sDatoTecleado,""))
{
nError=Autorizacion->ComprobarCisterna(sDatoTecleado,hBaseDatos);//"0602"
if(nError!=AUT_CIS_CORRECTO)
MuestraError(nError);
else
{
MuestraLista("CISTERNA");
ShowMessage("Fue todo correcto");
}
}
}
//---------------------------------------------------------------------------
void TForm1::BoolACadena(bool bVariable,char *pscadena)
{
if(bVariable)
strcpy(pscadena,"true");
else
strcpy(pscadena,"false");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TractorClick(TObject *Sender)
{
int nError;
//Mostramos el Label y Edit
Label1->Visible=true;
Edit1->Visible=true;
Edit1->MaxLength=10;
Edit1->SetFocus();
//Asignamos a la opcion la de conductor
byOpcion=OpTractor;
if(strcmp(sDatoTecleado,""))
{
nError=Autorizacion->ComprobarTractor(sDatoTecleado,NULL,hBaseDatos);//"NA-0664-AL"
if(nError!=AUT_TRA_CORRECTO)
MuestraError(nError);
else
{
MuestraLista("TRACTOR");
ShowMessage("Fue todo correcto");
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SuministradorClick(TObject *Sender)
{
int nError;
//Mostramos el Label y Edit
Label1->Visible=true;
Edit1->Visible=true;
Edit1->MaxLength=1;
Edit1->SetFocus();
//Asignamos a la opcion la de conductor
byOpcion=OpSuministrador;
if(strcmp(sDatoTecleado,""))
{
nError=Autorizacion->ComprobarSuministrador(sDatoTecleado,hBaseDatos);//"1"
if(nError!=AUT_SUM_CORRECTO)
MuestraError(nError);
else
{
MuestraLista("SUMINISTRADOR");
ShowMessage("Fue todo correcto");
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PedidosClick(TObject *Sender)
{
int nError;
//Mostramos el Label y Edit
Label1->Visible=true;
Edit1->Visible=true;
Edit1->MaxLength=5;
Edit1->SetFocus();
//Asignamos a la opcion la de conductor
byOpcion=OpPedidos;
if(strcmp(sDatoTecleado,""))
{
nError=Autorizacion->ComprobarPedidos(sDatoTecleado,hBaseDatos);//"10000"
if(nError!=AUT_ORC_CORRECTO)
MuestraError(nError);
else
{
MuestraLista("PEDIDO");
ShowMessage("Fue todo correcto");
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TodosClick(TObject *Sender)
{
bTodos=true;
if(!byOpcion)
ConductorClick(Sender);
else if(byOpcion==OpConductor)
CisternaClick(Sender);
else if(byOpcion==OpCisterna)
TractorClick(Sender);
else if(byOpcion==OpTractor)
SuministradorClick(Sender);
else if(byOpcion==OpSuministrador)
{
PedidosClick(Sender);
bTodos=false;
}
}
//---------------------------------------------------------------------------
void TForm1::MuestraLista(char *cadena)
{
int i,j;
char scadena[100];
DatosAutorizacion sDatos;
ListBox1->Clear();
Autorizacion->LeerEstructura(&sDatos);
if(!strcmp("CONDUCTOR",cadena))
{
strcpy(scadena,"CONDUCTOR");
ListBox1->Items->Add(scadena);
BoolACadena(sDatos.bBorradoCon,scadena);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCadCarnetCon);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCadADRCon);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszNombreCon);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCarnetCon);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszInternoCon);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCodigoCon);
ListBox1->Items->Add(scadena);
itoa(sDatos.nResultadoCon,scadena,10);
ListBox1->Items->Add(scadena);
}
if(!strcmp("CISTERNA",cadena))
{
strcpy(scadena,"CISTERNA");
ListBox1->Items->Add(scadena);
BoolACadena(sDatos.bBorradoCon,scadena);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszNumeroEjesCis);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCadTarjetaCis);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCadADRCis);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCadITVCis);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCadSeguroCis);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszInternoCis);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszTaraCis);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszBrutoCis);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCamionCis);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszMatriculaCis);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCodigoCis);
ListBox1->Items->Add(scadena);
for(i=0;i<NUM_MAXIMO_COMPARTIMENTO;i++)
{
strcpy(scadena,sDatos.pszsVolumenCis[i]);
ListBox1->Items->Add(scadena);
}
itoa(sDatos.nResultadoCis,scadena,10);
ListBox1->Items->Add(scadena);
}
if(!strcmp("TRACTOR",cadena))
{
strcpy(scadena,"TRACTOR");
ListBox1->Items->Add(scadena);
BoolACadena(sDatos.bBorradoTra,scadena);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszNumeroEjesTra);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCadTarjetaTra);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCadADRTra);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCadITVTra);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCadSeguroTra);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszInternoTra);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszTaraTra);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszBrutoTra);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszMatriculaTra);
ListBox1->Items->Add(scadena);
itoa(sDatos.nResultadoTra,scadena,10);
ListBox1->Items->Add(scadena);
}
if(!strcmp("SUMINISTRADOR",cadena))
{
strcpy(scadena,"SUMINISTRADOR");
ListBox1->Items->Add(scadena);
BoolACadena(sDatos.bBorradoSum,scadena);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszCodigoSum);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.pszNombreSum);
ListBox1->Items->Add(scadena);
itoa(sDatos.nResultadoSum,scadena,10);
ListBox1->Items->Add(scadena);
}
if(!strcmp("PEDIDO",cadena))
{
strcpy(scadena,"PEDIDO");
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.sOrden[0].pszMatriculaCisOrd);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.sOrden[0].pszCodigoSumOrd);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.sOrden[0].pszNumeroOrd);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.sOrden[0].pszNombreDesOrd);
ListBox1->Items->Add(scadena);
itoa(sDatos.sOrden[0].nResultadoOrd,scadena,10);
ListBox1->Items->Add(scadena);
}
if(!strcmp("PESO",cadena))
{
i=0;
j=0;
while(!sDatos.sOrden[i].sLinea[j].nResultadoPesoCarga)
{
strcpy(scadena,"PESO TOTAL DE CARGA");
ListBox1->Items->Add(scadena);
itoa(sDatos.sOrden[i].nPesoOrd,scadena,10);
ListBox1->Items->Add(scadena);
for(j=0;j<NUM_MAXIMO_LINEAS;j++)
{
itoa(sDatos.sOrden[i].sLinea[j].nPesoPro,scadena,10);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.sOrden[i].sLinea[j].pszDensidadPro);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.sOrden[i].sLinea[j].pszNombrePro);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.sOrden[i].sLinea[j].pszCodigoPro);
ListBox1->Items->Add(scadena);
strcpy(scadena,sDatos.sOrden[i].sLinea[j].pszCantidadPro);
ListBox1->Items->Add(scadena);
itoa(sDatos.sOrden[i].sLinea[j].nResultadoPesoCarga,scadena,10);
ListBox1->Items->Add(scadena);
}
i++;
}
}
if(!strcmp("DISTRIBUCION",cadena))
{
strcpy(scadena,"DISTRIBUCION DE LA CARGA EN LOS COMPARTIMENTOS");
ListBox1->Items->Add(scadena);
for(i=0;i<NUM_MAXIMO_COMPARTIMENTO;i++)
{
itoa(sDatos.nProducto_Dep[i],scadena,10);
ListBox1->Items->Add(scadena);
}
}
}
//Comprobamos si el peso de carga es superior al maximos permitido por el camion
void __fastcall TForm1::ComprobarPeso1Click(TObject *Sender)
{
DatosAutorizacion sDatos;
int nError;
nError=Autorizacion->CalcularPesoVolCarga(hBaseDatos);
Autorizacion->LeerEstructura(&sDatos);
if(nError)
MuestraError(nError);
else
{
MuestraLista("PESO");
ShowMessage("Fue todo correcto");
}
if(strcmp(sDatos.sOrden[0].sLinea[0].pszCodigoPro,""))
MuestraLista("PESO");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComprobarPeso2Click(TObject *Sender)
{
int nError;
nError=Autorizacion->ComprobarPesoCarga(hBaseDatos);
if(nError)
MuestraError(nError);
else
{
MuestraLista("PESO");
ShowMessage("Fue todo correcto");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DistribuirCarga1Click(TObject *Sender)
{
if(Autorizacion->ComprobarDistribucionCarga()==0)
{
MuestraLista("DISTRIBUCION");
ShowMessage("Fue todo correcto");
}
else
ShowMessage("No se pudo distribuir la Carga");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComprobarEstado1Click(TObject *Sender)
{
DatosAutorizacion sDatos;
int nError;
//Leemos la Estructura
Autorizacion->LeerEstructura(&sDatos);
//Inicializamos
nError=0;
//Comprobamos el estado del conductor
nError=Autorizacion->ComprobarEstado(hBaseDatos);
if(nError==AUT_EST_CON_YA_DENTRO)
ShowMessage("Conductor en otro estado");
//Comprobamos el estado del cisterna
if(nError==AUT_EST_CIS_YA_DENTRO)
ShowMessage("Cisterna en otro estado");
//Comprobamos el estado del Tractor
if(nError==AUT_EST_TRA_YA_DENTRO)
ShowMessage("Tractor en otro estado");
if(!nError)
ShowMessage("Fue todo correcto");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Autorizacion->BuscarNumeroViaje(hBaseDatos);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComprobarEstado2Click(TObject *Sender)
{
dbiTabla TCar;
int nError;
//Abrimos la tabla TCAR en exclusiva
if(!AbrirTablaBDE(&TCar,"SIMICCAR",NULL,true,hBaseDatos))
{
nError=0;
nError=PesoEntrada->ComprobarEstado("0602",TCar);
if(nError)
ShowMessage("Estado inapropiado");
else
ShowMessage("Todo Correcto");
}
else
ShowMessage("Hubo un Error de TCAR");
//Cerramos la tabla de TCAR
CerrarTablaBDE(&TCar);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PesoEntrada1Click(TObject *Sender)
{
int nError;
nError=PesoEntrada->PesoEntrada("0602",hBaseDatos);
if(!nError)
ShowMessage("Fue todo correcto");
else
ShowMessage("Algo fue mal");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PesodeSalida2Click(TObject *Sender)
{
int nError;
nError=PesoSalida->PesoSalida("0602",hBaseDatos);
if(!nError)
ShowMessage("Fue todo correcto");
else
ShowMessage("Algo fue mal");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Albaran2Click(TObject *Sender)
{
//El "00090" es el correspondiente al conductor asociado
if(Albaran->Albaran("0602",hBaseDatos))
ShowMessage("Hubo un error");
else
ShowMessage("Todo Correcto");
}
//---------------------------------------------------------------------------
/*
bool TForm1::LeerFichero(char *NombreFichero,char *NombreEstructura)
{
bool bCorrecto;
FILE *fichero;
LINDat sLINDat;
ELEDat sELEDat;
DRVDat sDRVDat;
bCorrecto=true;
ListBox1->Clear();
//Abrimos le fichero en modo lectura
if( ( fichero = fopen(NombreFichero, "rb") ) == NULL)
bCorrecto=false;
else
{
if(!strcmp(NombreEstructura,"LINDat"))
{
while (!feof(fichero))
{
//Leemos la estructura
fread(&sLINDat, sizeof(sLINDat), 1, fichero);
//Ponemos el Fin de cadena
sLINDat.cNumeroLineaLIN[2]=0;
sLINDat.cVelocidadLineaLIN[5]=0;
//Mostramos la Estructura
ListBox1->Items->Add("DATOS DE LA LINEA");
ListBox1->Items->Add("=================");
ListBox1->Items->Add(sLINDat.cConcentradorLIN);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sLINDat.cNumeroLineaLIN);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sLINDat.cLineaActivaLIN);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sLINDat.cVelocidadLineaLIN);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sLINDat.cAnchuraDatosLIN);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sLINDat.cParidadLIN);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sLINDat.cBitsDeStopLIN);
ListBox1->Items->Add(" ");
}
}
if(!strcmp(NombreEstructura,"ELEDat"))
{
while (!feof(fichero))
{
//Leemos la estructura
fread(&sELEDat, sizeof(sELEDat), 1, fichero);
//Ponemos el Fin de cadena
sELEDat.cNumeroLineaELE[2]=0;
sELEDat.cTipoELE[3]=0;
sELEDat.cIdentificaELE[3]=0;
sELEDat.cNombreDriverELE[6]=0;
sELEDat.cTimeOutComunicaELE[3]=0;
sELEDat.cDireccionELE[3]=0;
//Mostramos la Estructura
ListBox1->Items->Add("DATOS DE ELEMENTOS");
ListBox1->Items->Add("==================");
ListBox1->Items->Add(sELEDat.cConcentradorELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cNumeroLineaELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cTipoELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cIdentificaELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cElementoActivoELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cNombreDriverELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cTimeOutComunicaELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cDireccionELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cTipoPrioridadELE);
ListBox1->Items->Add(" ");
}
}
if(!strcmp(NombreEstructura,"DRVDat"))
{
while (!feof(fichero))
{
//Leemos la estructura
fread(&sDRVDat, sizeof(sDRVDat)+1, 1, fichero);
//Ponemos el Fin de cadena
sDRVDat.cNombreDriverDRV[6]=0;
sDRVDat.cTamBufferTraDRV[4]=0;
sDRVDat.cTamBufferRecDRV[4]=0;
sDRVDat.cTamPeriodicaDRV[4]=0;
//Mostramos la Estructura
ListBox1->Items->Add("DATOS DE DRIVERS");
ListBox1->Items->Add("================");
ListBox1->Items->Add(sDRVDat.cNombreDriverDRV);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sDRVDat.cTamBufferTraDRV);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sDRVDat.cTamBufferRecDRV);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sDRVDat.cTamPeriodicaDRV);
ListBox1->Items->Add(" ");
}
}
// if(!strcmp(NombreEstructura,"DatosTRADat"))
}
fclose(fichero);
return bCorrecto;
} */
//---------------------------------------------------------------------------
void __fastcall TForm1::Transfer1Click(TObject *Sender)
{
TRAPERDat sTRAPERIODICADat[NUM_MAXIMO_PERIODICA];
TRAOCADat sTRAOCASIONALDat;
BYTE byi;
char sCadena[25];
int nCorrecto;
ListBox1->Clear();
//Leemos de los ficheros y rellenamos la estructura transfer
nCorrecto=Transfer->RellenarEstructuraTransfer();
if(nCorrecto==TRANSFER_CORRECTO)
{
ShowMessage("Lectura del fichero transfer.dat correcta");
Transfer->LeerEstructura(sTRAPERIODICADat,&sTRAOCASIONALDat);
byi=0;
while(sTRAPERIODICADat[byi].lPosicionTRAPER!=-1 && byi<NUM_MAXIMO_ELEMENTOS)
{
//Mostramos los datos
ListBox1->Items->Add("DATOS DE TRANSFER");
ListBox1->Items->Add("=================");
ListBox1->Items->Add(" ");
ListBox1->Items->Add("Posicion: ");
ltoa(sTRAPERIODICADat[byi].lPosicionTRAPER,sCadena,10);
ListBox1->Items->Add(sCadena);
ListBox1->Items->Add(" ");
ListBox1->Items->Add("Tipo: ");
ListBox1->Items->Add(sTRAPERIODICADat[byi].cTipoIDTRAPER);
ListBox1->Items->Add(" ");
ListBox1->Items->Add("Tama<EFBFBD>o: ");
ListBox1->Items->Add(sTRAPERIODICADat[byi].lTamPeriodicaTRAPERDat);
ListBox1->Items->Add(" ");
byi++;
}
}
else
ShowMessage("Error en la lectura del fichero transfer.dat");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Elemento1Click(TObject *Sender)
{
ELEDat sELEDat;
bool bCorrecto;
bCorrecto=Transfer->LeerFichero("elemento.dat","ELEDat");
if(bCorrecto)
{
ShowMessage("Lectura del fichero elementos.dat correcta");
ListBox1->Clear();
while(sELEDat.cConcentradorELE!='0')
{
//Mostramos la Estructura
ListBox1->Items->Add("DATOS DE ELEMENTOS");
ListBox1->Items->Add("==================");
ListBox1->Items->Add(sELEDat.cConcentradorELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cNumeroLineaELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cTipoELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cIdentificaELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cElementoActivoELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cNombreDriverELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cTimeOutComunicaELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cDireccionELE);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sELEDat.cTipoPrioridadELE);
ListBox1->Items->Add(" ");
}
}
else
ShowMessage("Erro en la lectura del fichero elementos.dat");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Linea1Click(TObject *Sender)
{
LINDat sLINDat;
bool bCorrecto;
bCorrecto=Transfer->LeerFichero("lineas.dat","LINDat");
if(bCorrecto)
{
ShowMessage("Lectura del fichero lineas.dat correcta");
ListBox1->Clear();
while(sLINDat.cConcentradorLIN!='0')
{
//Mostramos la Estructura
ListBox1->Items->Add("DATOS DE LA LINEA");
ListBox1->Items->Add("=================");
ListBox1->Items->Add(sLINDat.cConcentradorLIN);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sLINDat.cNumeroLineaLIN);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sLINDat.cLineaActivaLIN);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sLINDat.cVelocidadLineaLIN);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sLINDat.cAnchuraDatosLIN);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sLINDat.cParidadLIN);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sLINDat.cBitsDeStopLIN);
ListBox1->Items->Add(" ");
}
}
else
ShowMessage("Error en la lectura del fichero lineas.dat");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Driver1Click(TObject *Sender)
{
DRVDat sDRVDat;
bool bCorrecto;
bCorrecto=Transfer->LeerFichero("drivers.dat","DRVDat");
if(bCorrecto)
{
ShowMessage("Lectura del fichero drivers.dat correcta");
ListBox1->Clear();
while( !strcmp(sDRVDat.cNombreDriverDRV,"0") )
{
//Mostramos la Estructura
ListBox1->Items->Add("DATOS DE DRIVERS");
ListBox1->Items->Add("================");
ListBox1->Items->Add(sDRVDat.cNombreDriverDRV);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sDRVDat.cTamBufferTraDRV);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sDRVDat.cTamBufferRecDRV);
ListBox1->Items->Add(" ");
ListBox1->Items->Add(sDRVDat.cTamPeriodicaDRV);
ListBox1->Items->Add(" ");
}
}
else
ShowMessage("Error en la lectura del fichero drivers.dat");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::LeerOcasional1Click(TObject *Sender)
{
BYTE byi;
char Texto[128];
int nRespuesta;
memset(Texto,0,sizeof(Texto));
ListBox1->Clear();
for(byi=1;byi<17;byi++)
{
nRespuesta=Transfer->LeerOcasional(Texto,byi);
ListBox1->Items->Add(Texto);
}
if(!nRespuesta)
ShowMessage("Todo fue correcto");
else
ShowMessage("Hubo un error");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EscribirOcasional1Click(TObject *Sender)
{
int nResultado;
char sSentencia[TAM_MAXIMO_OCASIONAL];
Formatea(sSentencia,128,"%c%s%s%c%s%s",'2',"BBRPEN","*12",'A',"13","Teclee Codigo");
nResultado=Transfer->EscribirOcasional(sSentencia,7);
if(!nResultado)
ShowMessage("Todo fue correcto");
else
ShowMessage("Hubo un Error");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
//Si le da al Return cogemos la instruccion
if(Key=='\r')
{
strcpy(sDatoTecleado,Edit1->Text.c_str());
switch(byOpcion)
{
case OpConductor: ConductorClick(Sender);
break;
case OpCisterna: CisternaClick(Sender);
break;
case OpTractor: TractorClick(Sender);
break;
case OpSuministrador: SuministradorClick(Sender);
break;
case OpPedidos: PedidosClick(Sender);
break;
}
Edit1->Text="";
Label1->Visible=false;
Edit1->Visible=false;
//Inicializamos el codigo de teclado
strcpy(sDatoTecleado,"");
if(bTodos)
TodosClick(Sender);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CargarThreads1Click(TObject *Sender)
{
BYTE byResultado;
Transfer1Click(Sender);
byResultado=0;
byResultado=CargarThreads();
if(byResultado)
ShowMessage("Hubo un Error cargando los threads");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FinalizarThreads1Click(TObject *Sender)
{
TerminarThread(HDAUT);
TerminarThread(HDPSE);
TerminarThread(HDPSS);
TerminarThread(HDALB);
TerminarThread(HDContadores);
}
//---------------------------------------------------------------------------