VeneHosting.com :: Tu Hosting en Venezuela

Autor Tema: Crear tablas en un PDF desde una BD mssql  (Leído 646 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado walastre

  • Novato
  • *
  • Mensajes: 42
  • Puntuación: 0
    • Ver Perfil
Crear tablas en un PDF desde una BD mssql
« : 19 de mayo de 2008, 09:49:28 am »
buenas amigos ...

nuevamente yo por aquí


tengo una aplicación PHP - mssql a la cual quiero crearle unos reportes que deben tener ciertos y determinados parámetros como filtro de una tabla en mi base de datos,para asi reflejarlo en forma de rejillas... pero de verdad he buscado en mi amigo google y he encontrado solo pequeños fragmentos por lo q me remito a uds..


de antemano gracias

Desconectado homergarcia

  • Usuario Junior
  • **
  • Mensajes: 77
  • Puntuación: 0
  • Sexo: Masculino
    • Ver Perfil
    • SERVINTEC
Re: Crear tablas en un PDF desde una BD mssql
« Respuesta #1 : 19 de mayo de 2008, 12:03:31 pm »
Buenos días, si quieres usar un reporte en pdf puedes crearlo con fpdf y para crear las rejillas debes de usar las funciones de crear linea te adjunto un ejemplo de un reporte creado me imagino que asi querras formular el tuyo, espero te sirva de ejemplo.

Debes descargar la libreria, la puedes ubicar acá: http://www.fpdf.org/

<?php
include("fpdf.php");
class PDF extends FPDF
{
//Cabecera de página
function Header()
{
//Logo
//$this->Image('../../img/ba_reporte_envio3.jpg',6,3,200);
//Arial bold 15
$this->SetFont('Arial','B',12);
//Movernos a la derecha
$this->Cell(80);
//Título
$this->Cell(30,7,'Envio De Documentos al '.$_SESSION['arch'],0,0,'C');
//Salto de línea
$this->Ln(20);
}

//Pie de página
function Footer()
{
//Posición: a 1,5 cm del final
$this->SetY(-15);
//Arial italic 8
$this->SetFont('Arial','',7);
//Número de página
$this->Cell(20,-10,'SG-002 (27-04-2005)',0,0,'C');
//$this->Cell(0,-10,'Instituto de educación',0,0,'C');
$this->Cell(320,-10,'Página'.$this->PageNo().'/',0,0,'C');

}
}
/***************************************************************************************/
//Conexion con la base de datos
/*$conex= mysql_connect("localhost", "root", "");
if (!$conex){
die ("No se pudo conectar a la Base de Datos:".mysql_error());
}
$db_sel = mysql_select_db("empleados", $conex);
if (!$db_sel){
die ("No se pudo conectar a la Tabla:".mysql_error());
}
$query = "select cedula, nombres from empleados";
$busqueda = mysql_query($query,$conex);


while($row = mysql_fetch_array($busqueda))
{
$code = number_format($row["cedula"],',','.','.');
$name = $row["nombres"];

$column_code = $column_code.$code."\n";
$column_name = $column_name.$name."\n";
}
mysql_close();

   

/***************************************************************************************/
//Creación del objeto de la clase heredada

$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',12);
/**************************************************************************************/

//Encabezado de la Tabla
$Y_Fields_Name_position = 60;
//Archivos que se colocaran debajo de la cabecera
$Y_Table_Position = 66;

//Primero se crea el encabezado de la tabla
//Se coloca color gris al encabezado
/********************************************************************/
//Lineas del Formulario
$pdf->SetFillColor(232,232,232);
// Primera Fila
$pdf->Line(6,27,204,27);// Linea horizontal
$pdf->Line(80,27,80,37);// Linea Vertical
$pdf->Line(6,37,204,37); // Linea Horizontal
$pdf->Line(107,27,107,37);// Linea Vertical
$pdf->Line(137,27,137,37);// Linea Vertical
$pdf->Line(175,27,175,37);// Linea Vertical
$pdf->Line(6,274,202,274);// Linea horizontal  Final
// Segunda Fila
$pdf->Line(30,43,30,50); // Linea Vertical
$pdf->Line(49,43,49,50); // Linea Vertical
$pdf->Line(65,47,65,50); // Linea Vertical
$pdf->Line(81,43,81,50); // Linea Vertical
$pdf->Line(94,43,94,50); // Linea Vertical
$pdf->Line(105,43,105,50); // Linea Vertical
$pdf->Line(182,43,182,50); // Linea Vertical
$pdf->Line(6,50,204,50); // Linea Horizontal
// Cuerpo Bucle para hacer repetitivo
$posy=58;
$posyv=50;
for($i=0;$i<20;$i++)
{
   $pdf->Line(6,$posy,204,$posy); // Linea Horizontal
   $pdf->Line(30,$posyv,30,$posyv+8); // Linea Vertical
   $pdf->Line(49,$posyv,49,$posyv+8); // Linea Vertical
   $pdf->Line(65,$posyv,65,$posyv+8); // Linea Vertical
   $pdf->Line(81,$posyv,81,$posyv+8); // Linea Vertical
   $pdf->Line(94,$posyv,94,$posyv+8); // Linea Vertical
   $pdf->Line(105,$posyv,105,$posyv+8); // Linea Vertical
   $pdf->Line(182,$posyv,182,$posyv+8); // Linea Vertical
   $posy=$posy+8;
   $posyv=$posyv+8;
}
// Lineas inferior
$pdf->Line(105,213,105,219); // Linea Vertical
$pdf->Line(105,251,105,274); // Linea Vertical
$posicion=219;
for($j=0;$j<5;$j++)
{   
   $pdf->Line(6,$posicion,204,$posicion); // Linea Horizontal
   $posicion=$posicion+8;
}

//Texto Titulos
// Principal
$pdf->SetFont('Arial','B',8);
$pdf->Text(7,30,'Unidad Emisora');
$pdf->Text(81,30,'Fecha de Envío');
$pdf->Text(108,30,'Centro de Costo');
$pdf->Text(138,30,'Archicómodo nro.');
$pdf->Text(176,30,'Extensión');
// Secundario
$pdf->Text(7,40,'Para su custodia estamos enviando los siguientes documentos');
$pdf->Text(7,46,'Código');
$pdf->Text(31,46,'Cantidad');
$pdf->Text(31,49,'de Carpetas');
$pdf->Text(50,46,'Fecha del Documento');
$pdf->Text(52,49,'Inicio');
$pdf->Text(67,49,'Termino');
$pdf->Text(82,46,'Original');
$pdf->Text(95,46,'Copia');
$pdf->Text(108,46,'Descripción');
$pdf->Text(183,46,'Período de');
$pdf->Text(183,49,'Retención');
// Parte Inferior
$pdf->SetFont('Arial','B',8);
$pdf->Text(7,213,'Cantidad de Carpetas');
$pdf->Text(7,216,'Enviadas');
$pdf->Text(108,216,'Recibidas');
$pdf->Text(7,226,'Observaciones');
$pdf->Text(7,256,'Enviado');
$pdf->Text(7,259,'Nombre');
$pdf->Text(108,256,'Recibido');
$pdf->Text(108,259,'Nombre');
$posy=272;
$posx=8;
$posx2=60;
for($j=0;$j<2;$j++)
{
   $pdf->Text($posx,$posy,'Firma');
   $pdf->Text($posx2,$posy,'Fecha');
   $posx=$posx+100;
   $posx2=$posx2+100;
}
/********************************************************************/
//Texto encabezado principal

$pdf->SetFont('Arial','',9);
$pdf->Text(138,25,"Nro de Envio:".$nenvio);
$pdf->Text(11,34,$uemite);
$pdf->Text(83,34,$date);
$pdf->Text(110,34,"");
$pdf->Text(140,34,'01');
$pdf->Text(/*178*/-10,/*34*/70,""/*$_SESSION['sql']*/);


/*******************************************************************/
//Texto parte central (Carpetas y Documentos)
$pdf->SetFont('Arial','',7);
$filas    = 0;
for ($i=0;$i<$cantidad;$i++)
{
   $columnas = 0; $salto =0;
   for ($j=0;$j<$ncampos;$j++)
   {
      $pdf->Text(8+$columnas,55+$filas,$arreglod[$i][$j]);
      if (($j==0) || ($j==2))
         $salto = 22;
      else
         $salto = 0;
      
      $columnas = $columnas + $salto + 19;
      //$pdf->Text(31,55,'cosa');
   }
   $filas = $filas + 9;
}
$pdf->Text(25,216,$cantidad);
/*******************************************************************/
//Texto Parte Inferior
$pdf->Text(11,262,$realizado);
$pdf->Text(70,272,$date);

$pdf->Output();
?>

Desconectado destrudo

  • Novato
  • *
  • Mensajes: 20
  • Puntuación: 0
  • Sexo: Masculino
    • Ver Perfil
Re: Crear tablas en un PDF desde una BD mssql
« Respuesta #2 : 05 de julio de 2008, 06:43:44 pm »
hola yo para mi sistema use la libreria dompdf es muy buena y cuenta con unos ejemplos muy buenos

yo la encontre aqui

http://www.inventa-design.com/blog/2007/07/18/creacion-de-archivos-pdf-en-php-con-dompdf/
es muy buena te la recomiendo

PHP de Venezuela

Re: Crear tablas en un PDF desde una BD mssql
« Respuesta #2 : 05 de julio de 2008, 06:43:44 pm »

 

PHP de Venezuela on Facebook