Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/09/2011, 09:18
Avatar de stuart_david3
stuart_david3
 
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 13 años, 3 meses
Puntos: 1
Información Problema al generar pdf con datepicker y mysql!!!...

Hola a todos, bueno hace tiempo tuve un problema al generar un PDF y gracias a Dios se pudo resolver... era un problema que tenía con al hacer referencia a las fuentes del fpdf, ya que me generaba el pdf pero sin ningun formato y la tabla donde iban los datos de mi consulta aparecía vacía... total me pasaron una carpeta con las fuentes (fonts) la puse en el proyecto y jalo, este fue el codigo que me funciono...

Código PHP:
Ver original
  1. <?php
  2. error_reporting(E_ALL & ~E_NOTICE);
  3. //require('class.pdf.php');
  4. require_once('class.ezpdf.php'); //conexion en la libreria para crear documentos pdf
  5. //require('class.pdf.php');
  6. require("Conexion.php"); //conexion a la base de datos
  7.  
  8.  
  9. $pdf = new Cezpdf('LETTER','landscape');
  10. $pdf->selectFont('../fonts/Helvetica.afm');
  11. $pdf->ezSetCmMargins(1,1,1.5,1.5);
  12. $pdf->ezSetMargins(40,45,30,30);
  13. $pdf->ezStartPageNumbers(750,25,12,'','{PAGENUM} de {TOTALPAGENUM}',1);
  14.  
  15.  
  16. $resultado=mysql_query("SELECT RPEREGASIS, FECREGASIS, MIN( HORREGASIS ) AS entrada, MAX( HORREGASIS ) as salida
  17.            FROM registro GROUP BY RPEREGASIS, FECREGASIS LIMIT 1,10");
  18. $totEmp = mysql_num_rows($resultado);
  19.  
  20. //aqui empieza a revisar los datos q hay en la tabla
  21. $ixx = 0;
  22. while($datatmp = mysql_fetch_assoc($resultado)) {
  23.     $ixx = $ixx+1;
  24.     $data[] = array_merge($datatmp, array('id'=>$ixx));
  25. }
  26. //dar el titulo a los encabezados de las columnas
  27. $titles = array(
  28.                 'id'=>'<b>Id</b>',
  29.                 'RPEREGASIS'=>'<b>RPE del Empleado</b>',
  30.                 'FECREGASIS'=>'<b>Fecha</b>',
  31.                 'entrada'=>'<b>Hora de Entrada</b>',
  32.                 'salida'=>'<b>Hora de Salida</b>'
  33.                
  34. );
  35. //opciones de la tabla en el pdf
  36. $options = array(
  37.                 'shadeCol'=>array(0.9,0.9,0.9),
  38.                 'xOrientation'=>'center',
  39.                 'fontSize'=>8,
  40.                 'width'=>700,
  41.                 'colGap'=>2,
  42.                 'xPos'=>'centre',
  43. );
  44. $pdf->addJpegFromFile('ros.jpg',650,540,100);
  45. $txttit = "<b>Reporte</b>\n";
  46. $txttit.= "Solicitudes de zona \n";
  47. //datos que se agregan a la tabla al final de las paginas, fecha y hora
  48. $pdf->ezText($txttit, 12);
  49. $pdf->ezText($data, 12);
  50. $pdf->ezTable($data, $titles, '', $options);
  51. $pdf->ezText("\n\n\n", 10);
  52. $pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10);
  53. $pdf->ezText("<b>Hora:</b> ".date("H:i:s")."\n\n", 10);
  54. $pdf->ezStream();
  55. ?>

Intenté hacer lo mismo metiendo datos desde un formulario y si funciona, lo intente solo pasando un parametro que era el numero de identificacion de un trabajador y si me lo genero el pdf...

Ahora lo incluí el datepicker y una función para pasar el formato de fecha del mismo al formato en que se guardan las fechas en mysql, y bueno la pagina me arroja un mensaje diciendo que "Se ha producido un error al cargar el PDF" y se me hace extraño ya que la consulta si funciona bien mostrandola en la pagina pero a la hora de generar el pdf me arroja ese mensaje de error :s... aqui les dejo el codigo, espero y como siempre me puedan ayudar =)...

Código PHP:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3.     <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5.         <link rel="stylesheet" type="text/css" href="FormPagina.css" />
  6.         <title></title>
  7.         <link type="text/css" href="css/sunny/jquery-ui-1.8.13.custom.css" rel="stylesheet" />
  8.         <script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>
  9.         <script type="text/javascript" src="js/jquery-ui-1.8.13.custom.min.js"></script>
  10.         <script type="text/javascript">
  11.  
  12.     $(function() {
  13.         $( ".datepicker" ).datepicker();
  14.     });
  15.     </script>
  16.     <body>
  17.         <h1>CFE</h1>
  18.         <form id="form" name="form" action="TrabaFecha2.php" method="post">
  19.             RPE del Trabajador:
  20.             <input type="text" name="RPEREGASIS">
  21.             <br>
  22.             Fecha Inicio:
  23.             <input type="text" name="fechaIni" class="datepicker">
  24.             <br>
  25.             Fecha Final:
  26.             <input type="text" name="fechaFin" class="datepicker">
  27.             <br>
  28.             <input type="submit" value="Consultar">
  29.         </form>
  30.  
  31.         <?php
  32.        
  33.         function js2PhpTime($jsdate){
  34.   if(preg_match('@(\d+)/(\d+)/(\d+)\s+(\d+):(\d+)@', $jsdate, $matches)==1)
  35.                 {
  36.     $ret = mktime($matches[4], $matches[5], 0, $matches[1], $matches[2], $matches[3]);
  37.   }else if(preg_match('@(\d+)/(\d+)/(\d+)@', $jsdate, $matches)==1){
  38.     $ret = mktime(0, 0, 0, $matches[1], $matches[2], $matches[3]);
  39.   }
  40.   return $ret;
  41. }
  42.         $trabajador=$_POST['RPEREGASIS'];
  43.         $fechaIni=$_POST['fechaIni'];
  44.         $fechaFin=$_POST['fechaFin'];
  45.         $Inicio=date("Y-m-d", js2PhpTime($fechaIni));
  46.         $Final=date("Y-m-d", js2PhpTime($fechaFin));
  47.         $conectar=mysql_connect('localhost','root','');
  48.         if($conectar==NULL)
  49.         {
  50.             printf("Error al conectar a la Base de datos");
  51.         }
  52.  
  53.         mysql_select_db('registro');
  54.         require_once('class.ezpdf.php');
  55.         $pdf = new Cezpdf('LETTER','landscape');
  56. $pdf->selectFont('../fonts/Helvetica.afm');
  57. $pdf->ezSetCmMargins(1,1,1.5,1.5);
  58. $pdf->ezSetMargins(40,45,30,30);
  59. $pdf->ezStartPageNumbers(750,25,12,'','{PAGENUM} de {TOTALPAGENUM}',1);
  60.         $resultado=mysql_query("SELECT RPEREGASIS, FECREGASIS, MIN(HORREGASIS) AS entrada, MAX(HORREGASIS) as salida
  61.            FROM registro WHERE RPEREGASIS='$trabajador' AND FECREGASIS BETWEEN '$Inicio' AND '$Final' GROUP BY RPEREGASIS, FECREGASIS");
  62.  
  63.         $totEmp = mysql_num_rows($resultado);
  64.  
  65. //aqui empieza a revisar los datos q hay en la tabla
  66. $ixx = 0;
  67. while($datatmp = mysql_fetch_assoc($resultado)) {
  68.     $ixx = $ixx+1;
  69.     $data[] = array_merge($datatmp, array('id'=>$ixx));
  70. }
  71. //dar el titulo a los encabezados de las columnas
  72. $titles = array(
  73.                 'id'=>'<b>Id</b>',
  74.                 'RPEREGASIS'=>'<b>RPE del Empleado</b>',
  75.                 'FECREGASIS'=>'<b>Fecha</b>',
  76.                 'entrada'=>'<b>Hora de Entrada</b>',
  77.                 'salida'=>'<b>Hora de Salida</b>'
  78. );
  79. //opciones de la tabla en el pdf
  80. $options = array(
  81.                 'shadeCol'=>array(0.9,0.9,0.9),
  82.                 'xOrientation'=>'center',
  83.                 'fontSize'=>8,
  84.                 'width'=>700,
  85.                 'colGap'=>2,
  86.                 'xPos'=>'centre',
  87. );
  88. $pdf->addJpegFromFile('ros.jpg',650,540,100);
  89. $txttit = "<b>Reporte</b>\n";
  90. $txttit.= "Solicitudes de zona \n";
  91. //datos que se agregan a la tabla al final de las paginas, fecha y hora
  92. $pdf->ezText($txttit, 12);
  93. $pdf->ezText($data, 12);
  94. $pdf->ezTable($data, $titles, '', $options);
  95. $pdf->ezText("\n\n\n", 10);
  96. $pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10);
  97. $pdf->ezText("<b>Hora:</b> ".date("H:i:s")."\n\n", 10);
  98. $pdf->ezStream();
  99.  
  100.  
  101. ?>
  102.  
  103.  
  104.     </body>
  105.             </html>