Estoy haciendo un pequeño programa para la hosteleria para que puedan crear el archivo policial y mandarlo a traves por internet en vez de fax y otros medios.
El programa me funciona todo bien, menos una pequeña parte que no se como hacer para que me salga el resultado que quiero. De todo el archivo del .php os dejo aqui la parte donde me falla.
Código PHP:
function ExportToCSV()
{
global $rs,$nPageSize,$strTableName,$conn,$eventObj;
header("Content-Type: application/csv");
header("Content-Disposition: attachment;Filename=REGISTRE_VIATGERS2.csv");
if($eventObj->exists("ListFetchArray"))
$row = $eventObj->ListFetchArray($rs);
else
$row = db_fetch_array($rs);
// if(!$row)
// return;
$totals=array();
// write header
$outstr1="";
if($outstr1!="")
$outstr1.=",";
$outstr1.= "1";
if($outstr1!="")
$outstr1.=",";
$outstr1.= "CODIHOTEL";
if($outstr1!="")
$outstr1.=",";
$outstr1.= "NOM HOTEL";
if($outstr1!="")
$outstr1.=",";
if($outstr1!="")
$outstr1.=",";
if($outstr1!="")
$outstr1.=",";
if($outstr1!="")
$outstr1.=",";
echo $outstr1;
echo "\r\n";
// write data rows
$iNumberOfRows = 0;
$i=0;
while((!$nPageSize || $iNumberOfRows<$nPageSize) && $row)
{
$values = array();
$format="";
$values["TREG"] = GetData($row,"TREG",$format);
$format="";
$values["DNI"] = GetData($row,"DNI",$format);
$format="";
$values["PASAPORT"] = GetData($row,"PASAPORT",$format);
$format="";
$values["TIPUSDOC"] = GetData($row,"TIPUSDOC",$format);
$format="";
$values["DATA EXP_DNI"] = GetData($row,"DATA EXP_DNI",$format);
$format="";
$values["COGNOM1"] = GetData($row,"COGNOM1",$format);
$format="";
$values["COGNOM2"] = GetData($row,"COGNOM2",$format);
$format="";
$values["NOM"] = GetData($row,"NOM",$format);
$format="";
$values["SEXE"] = GetData($row,"SEXE",$format);
$format="";
$values["DATANATAL"] = GetData($row,"DATANATAL",$format);
$format="";
$values["NACIONALITAT"] = GetData($row,"NACIONALITAT",$format);
$format="";
$values["DATAENTRCLIENT"] = GetData($row,"DATAENTRCLIENT",$format);
$eventRes = true;
if ($eventObj->exists('BeforeOut'))
{
$eventRes = $eventObj->BeforeOut($row,$values);
}
if ($eventRes)
{
$outstr2="";
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["TREG"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["DNI"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["PASAPORT"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["TIPUSDOC"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["DATA EXP_DNI"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["COGNOM1"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["COGNOM2"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["NOM"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["SEXE"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["DATANATAL"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["NACIONALITAT"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["DATAENTRCLIENT"]).'"';
echo $outstr2;
}
$iNumberOfRows++;
if($eventObj->exists("ListFetchArray"))
$row = $eventObj->ListFetchArray($rs);
else
$row = db_fetch_array($rs);
if(((!$nPageSize || $iNumberOfRows<$nPageSize) && $row) && $eventRes)
echo "\r\n";
$i++;
}
echo $i;
}
1.-
Código PHP:
// write header
$outstr1="";
if($outstr1!="")
$outstr1.=",";
$outstr1.= "1";
if($outstr1!="")
$outstr1.=",";
$outstr1.= "CODIHOTEL";
if($outstr1!="")
$outstr1.=",";
$outstr1.= "NOM HOTEL";
if($outstr1!="")
$outstr1.=",";
if($outstr1!="")
$outstr1.=",";
if($outstr1!="")
$outstr1.=",";
if($outstr1!="")
$outstr1.=",";
echo $outstr1;
echo "\r\n";
Dentro de este contenido me falta "1,CODIHOTEL,NOM HOTEL,FECHA,HORA,REGISTO,"
FECHA: 20121112 (la fecha actual)
HORA:1834 (la hora actual)
REGISTRO: 66 (por ejemplo, el numero de registros de clientes que se han escrito a continuacion)
Los que son de color azul son textos fijos y los de color rojo cada vez que se genera el archivo se tendrán que actualizar automáticamente.
2.-
Código PHP:
// write data rows
$iNumberOfRows = 0;
$i=0;
while((!$nPageSize || $iNumberOfRows<$nPageSize) && $row)
{
$values = array();
$format="";
$values["TREG"] = GetData($row,"TREG",$format);
$format="";
$values["DNI"] = GetData($row,"DNI",$format);
$format="";
$values["PASAPORT"] = GetData($row,"PASAPORT",$format);
$format="";
$values["TIPUSDOC"] = GetData($row,"TIPUSDOC",$format);
$format="";
$values["DATA EXP_DNI"] = GetData($row,"DATA EXP_DNI",$format);
$format="";
$values["COGNOM1"] = GetData($row,"COGNOM1",$format);
$format="";
$values["COGNOM2"] = GetData($row,"COGNOM2",$format);
$format="";
$values["NOM"] = GetData($row,"NOM",$format);
$format="";
$values["SEXE"] = GetData($row,"SEXE",$format);
$format="";
$values["DATANATAL"] = GetData($row,"DATANATAL",$format);
$format="";
$values["NACIONALITAT"] = GetData($row,"NACIONALITAT",$format);
$format="";
$values["DATAENTRCLIENT"] = GetData($row,"DATAENTRCLIENT",$format);
$eventRes = true;
if ($eventObj->exists('BeforeOut'))
{
$eventRes = $eventObj->BeforeOut($row,$values);
}
if ($eventRes)
{
$outstr2="";
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["TREG"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["DNI"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["PASAPORT"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["TIPUSDOC"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["DATA EXP_DNI"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["COGNOM1"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["COGNOM2"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["NOM"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["SEXE"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["DATANATAL"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["NACIONALITAT"]).'"';
if($outstr2!="")
$outstr2.=",";
$outstr2.='"'.str_replace('"','""',$values["DATAENTRCLIENT"]).'"';
echo $outstr2;
}
$iNumberOfRows++;
if($eventObj->exists("ListFetchArray"))
$row = $eventObj->ListFetchArray($rs);
else
$row = db_fetch_array($rs);
if(((!$nPageSize || $iNumberOfRows<$nPageSize) && $row) && $eventRes)
echo "\r\n";
$i++;
}
echo $i;
}
Código PHP:
// write header
$outstr1="";
if($outstr1!="")
$outstr1.=",";
$outstr1.= "1";
if($outstr1!="")
$outstr1.=",";
$outstr1.= "CODIHOTEL";
if($outstr1!="")
$outstr1.=",";
$outstr1.= "NOM HOTEL";
if($outstr1!="")
$outstr1.=",";
if($outstr1!="")
$outstr1.=",";
if($outstr1!="")
$outstr1.=",";
$outstr1.= $i; ////aqui esta xD
if($outstr1!="")
$outstr1.=",";
echo $outstr1;
echo "\r\n";
Aqui una muestra hecha a mano de lo que me tendria que salir tal qual os lo e puesto.
Código:
Si alguien me pudiera ayudar con lo de poner el contador de registros para que me lo imprimiera en la primera parte y lo de la fecha y la hora tal cual muestro aqui se lo agradecería muchísimo!!!1,CODIHOTEL,NOM HOTEL,20121112,1853,3, "2","","123456789","P","","PEPA","","JULIA","F","12345678","ALEMANIA","20090804" "2","","321654987","P","","JULIA","","NATALIE","F","14785236","ALEMANIA","20090804" "2","","987654321","P","","ALBERTO","","ROBERT","M","96385214","UK","20090804"3
PD: Perdón por el desorden pero estoy en la tienda (negocio propio) y al estar entrando gente todo el rato me voy perdiendo. Gracias de antemano!