viernes, 18 de mayo de 2012


Paso a paso Graficas dentro de un reporte
Creamos un nuevo proyecto,  le damos el nombre para que vaya asignado a nuestro formulario de trabajo

Luego le damos clic derecho a nuestro proyecto y le damos le damos un nuevo elemento

Buscamos en el lado izquierdo de nuestra ventana la pestaña datos y le damos conjunto de datos

Clic derecho y le damos agregar tabla de datos:
Y agregamos un titulo y le vamos agregando las columnas (ctrl + L) a modo que quedara su tabla asignada
Volvemos a darle clic derecho a nuestro proyecto y le damos en nuevo elemento, en la parte izquierda de nuestro proyecto elegimos Reporte y seleccionamos Informe y le damos de nombre rptGrafica. Pegamos de las propiedades de herramientas pegamos una Grafica.
Nos saldra que tipo de grafica queremos escoger:
Escogemos una de barra y la aceptamos y luego saldra nuestro origen de datos y seleccionaremos nuestra base de datos (DataSet) luego de haberlo seleccionado le damos aceptar.Al tener seleccionada nuestra grafica saldra nuestro campos de datos.



 De dicha pestaña azul que aparece seleccionamos nuestros datos, al seleccionar los campos asignados a la tabla nuestras barra de grafica cambiaran se iran añadiendo según los campos que asignemos. Luego cambiamos nuestras propiedades despues de verlas añadido asi:















Nos vamos a las propiedades de la serie  y en la opcion de campo de valor,
en la expresion que aparece le damos clic y nos aparecera asi:
Borramos los parentesis y el count para que deje de contar los campos al final debe de quedar asi:



 Y asi con los demas en los campos de abajo en los campos de abajo asignamos nombre para asignar valor a cada una de las graficas seleccionamos una barra y en las propiedades nos vamos a label y validamos las propiedades: Visible= True y Use ValueasLabel = True. Al final de todo nuestra grafica nos quedara asi:
Guardamos nuestro reporte. Y nos  vamos a nuestro proyecto a hacer el formulario nos vamos a nuestros origenes de datos(Mayus.+ALT+D)
Y arrastramos nuestros datos de Farmacia al formulario y se mostrara asi:

 Pegamos un combo button y le damos el nombre de Agregar y el name CmdAgregar luego en nuestro cuadro de herramientas buscamos la propiedad reporte y arrastramos nuestro reportViewer y le damos doble clic en nuestro boton de agregar y pegamos nuestro codigo:
Dim fila As DataRow = DsGrafica.Farmacia.NewFarmaciaRow
        fila("Nombre") = "Vicky"
        fila("SantaRita") = "10"
        fila("Galo") = "7"
        fila("Ahorro") = "15"
        fila("Descuento") = "9"
        DsGrafica.Farmacia.Rows.Add(fila)
        Dim fila2 As DataRow = DsGrafica.Farmacia.NewFarmaciaRow
        fila2("Nombre") = "Jorge"
        fila2("Galo") = "5"
        fila2("SantaRita") = "3"
        fila2("Ahorro") = "7"
        fila2("Descuento") = "2"
        DsGrafica.Farmacia.Rows.Add(fila2)
        Dim fila3 As DataRow = DsGrafica.Farmacia.NewFarmaciaRow
        fila3("Nombre") = "Celeste"
        fila3("Ahorro") = "3"
        fila3("SantaRita") = "8"
        fila3("Galo") = "7"
        DsGrafica.Farmacia.Rows.Add(fila3)

Ejecutamos y se mostrara asi nuestro resultado final:
Luego para agregar una grafica circular creamos un nuevo reporte le damos de nombre RptCircular arrastramos un grafico de las herramientas y seleccionamos nuestra grafica circular agregamos nuestros campos,y teniendo seleccionado nuestro campo le damos clic derecho y seleccionamos las propiedades y quitamos el count como la vez anterior, luego en las graficas en los campos seleccionados nos vamos a las propiedades label teniendo seleccionado cada una de los campos de arriba de nuestra grafica y cambiamos en label nuestro Visible= True y Use ValueasLabel = True. Asi con los demas campos al terminar agregamos nuestro campo de Nombre sobre los vendedores que debe parecer abajo asi:


Terminando de seleccionar pegamos en nuestro formulario un nuevo reportViewer y en las pestaña del reporte viewer seleccionamos nuestra reporte rptCircular ejecutamos y Listo.


Asi finalizamos nuestro proyecto gracias...!!





jueves, 17 de mayo de 2012

PHP Mailer
PHPMailer es una clase escrita en PHP que facilita el envió de correo añadiendo facilidad en el envio de correos con adjuntos, en formatos HTML y con diferentes codificaciones, soporte para imagenes embebidas, headers o encabezados personalizados y además funciona con múltiples servidores de correo.

Típicamente para el envio de correo con PHP se utiliza la función mail(), pero esta función tiene varias limitaciones, por ejemplo que no soporta el envió de adjuntos.Entonces PHPMailer nos viene a facilitar este trabajo que de otra forma seria muy engarroso.Viene con un conjunto de métodos que nos ayudaran en el envió de email

¿Porque debemos de usar phpmailer?
Es posible enviar email con la función mail() de php, pero dicha funcion no permite algunas de las mas populares características que proporcionan los clientes de correo usados actualmente. Entre estas características se encuentran el envió  de email con ficheros adjuntos.
PHPMailer hace facil esta difícil tarea de enviar correos con estas características y puedes incluso utilizar tu propio servidos smtp aunque este requiera autenticación (un nombre de usuario y contraseña), con lo que se podrá usar una cuenta gratuita de correo obtenida por ejemplo en hotpop.

Características principales:
*Capacidad de uso de uno o varios servidores SMTP externos.
*Uso de html en el envio
*Adjuntar imagenes y/o archivos en el email.
*Embeber imagenes dentro del correo electronico.
*Buena descripcion de errores.

Cuando enviamos un correo electrónico desde una aplicación en PHP podemos hacer uso de Template Power para generar el correo y de PHP Mailer para enviarlo. Vamos a verlo con un ejemplo:
correo.tpl:
1<p>Sr./Sra.: {nombre}:</p>
2<p>Cuerpo del correo.</p>
envio.php:
01<?php
02include 'class.phpmailer.php';
03include 'class.TemplatePower.inc.php';
04
05$tpl new TemplatePower('correo.tpl');
06$tpl->prepare();
07
08$tpl->assign('nombre'$nombre);
09//Creamos la instancia de la clase PHPMAiler
10$mail new phpmailer();
11
12//El método que usaremos es por SMTP
13$mail->Mailer = "smtp";
14
15// Los datos necesarios para enviar mediante SMTP
16$mail->Host = "smtp.nuestrohost.com";
17$mail->SMTPAuth = true;
18$mail->Username = "cuenta@nuestrohost.com";
19$mail->Password = "password";
20
21// Asignamos el From y el FromName para que el destinatario sepa quien
22// envía el correo
23$mail->From = "cuenta@nuestrohost.com";
24$mail->FromName = "Manuel Carrascosa de la Blanca";
25
26//Añadimos la dirección del destinatario
27$mail->AddAddress("direccion@hostdestino.com");
28
29//Asignamos el subject, el cuerpo del mensaje y el correo alternativo
30$mail->Subject = "Ejemplo de PHPMailer";
31$mail->Body = $tpl->getOutputContent();
32
33//Si al enviar el correo devuelve true es que todo ha ido bien.
34if($mail->Send())
35{
36    //Sacamos un mensaje de que todo ha ido correctamente.
37    echo "Mensaje enviado correctamente.";
38}
39else
40{
41    //Sacamos un mensaje con el error.
42    echo "Ocurrió un error al enviar el correo electrónico.";
43    echo "<br/><strong>Información:</strong><br/>".$mail->ErrorInfo;
44}
45?>
Podemos ver que básicamente lo que se hace es tener por un lado la plantilla. Luego con el método getOutputContent de la clase TemplatePower obtenemos el resultado de la plantilla y lo asignamos a la propiedad Body de nuestra instancia de la clase phpmailer. Luego simplemente enviamos el correo.