Escrito en Septiembre 26, 2009 por Alex
Muchas veces necesitamos pasar el contenido de una variable al reporte de Crystal report sin necesidad de acudir a la base de datos.
En Visual Basic.Net esto es posible con la utilización de parámetros y aquí está un sencillo código de ejemplo:
Dim Ds As DataSet
Dim myReport As New ReportDocument
Dim sNombre as string="Juan Pérez"
Try
Ds = fReporte("SELECT * FROM alumnos")
myReport.Load(My.Application.Info.DirectoryPath & "\MyReport.rpt")
myReport.SetDataSource(Ds)
'AQUI DECLARAMOS UN PARAMETRO
myReport.SetParameterValue("nombre", sNombre)
'CRV1 es el control Report Viewer donde se muestra el reporte
CRv1.ReportSource = myReport
Como podemos ver he declarado un parámetro llamado “nombre” y le estoy pasando la variable sNombre.
Ahora dentro del diseñador de reportes de Crystal, es decir, dentro de MyReport.rpt, vamos a crear un “Campo de parámetro” y le ponemos un nombre y en texto de solicitud le ponemos el mismo nombre identico al que hemos puesto aquí: “nombre”.
Dentro del apartado “Campos de parámetro” ahora existirá nuestro campo el cual agregaremos al reporte y lo situaremos donde creamos conveniente como a cualquier otro campo.


(1 rating, 1 votes)

Loading ...
Posteado en Visual Basic.Net | Comenta Ahora!
Escrito en Julio 16, 2009 por Alex
Les pongo un ejemplo para crear reportes en Crystal reports utilizando una base de datos de Mysql.
Utilizaremos una base de datos llamada “Mibase” con una tabla llamada “alumnos” con tres campos “nombre”, “apellidos” calificacion” .
Para este ejemplo lo primero que necesitamos hacer es crear un archivo XML con la estructura de la tabla. Para esto utilizamos el Dataset con su método WriteXml
'importar espacios de nombres
Imports MySql.Data
Imports MySql.Data.MySqlClient
'dentro de la clase
Dim Ds As New DataSet
Dim Con As New MySqlConnection
Dim Cmd As New MySqlCommand
Dim Da As New MySqlDataAdapter
'Esto puede estar dentro de un botón o dentro del procedimiento Load
Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'variable cadena de conexión
Con.ConnectionString = "server=localhost;uid=root;password=mipass;database=mibase"
cmd.Connection = Con
Con.Open()
'Aquí escribimos la query de la tabla que necesitamos con los datos que necesitamos
Cmd.CommandText = "select * from alumnos"
Da.SelectCommand = cmd
Da.Fill(Ds)
'aqui es donde creamos el archivo XML en la unidad C
Ds.WriteXml("C:\productos.xml", XmlWriteMode.WriteSchema)
End Sub
Ahora ya tenemos un archivo XML en la ruta que escribimos. Lo siguiente que tenemos que hacer es agregar las referencias a crystal Reports.
Para agregar las referencias Crystal reports nos vamos al menu Proyecto-Agregar referencia…
y en la pestaña de .Net seleccionamos las siguientes:
CrystalDecisions.CrystalReports.Engine
CrystalDecisions.ReportSource
CrystalDecisions.Shared
CrystalDecisions.VsDesigner
CrystalDecision.Web
CrystalDesicions.Windows.Forms
Agregamos un segundo formulario llamado form2 donde insertaremos el reporte, despues en el cuadro de herraminetas agregamos el componente CrystalReportViewer. Le ponemos de nombre CRV1
Tambien insertamos un CrystalReportDocument al que llamaremos CR1.
Dentro ya del CrystalReportDocument nos vamos al explorador de campos y damos clic derecho sobre el, dentro del menu que aparece damos clic en el Asistente de Base de datos.
Ya dentro del asistente desplegamos la carpeta “Crear nueva conexión” dentro de esta desplegamos “ADO.Net”. Se abrirá una nueva ventana donde nos pidde la ruta del archivo; es ahi donde le diremos donde se encuentra el archivo que acabamos de crear de tipo XML. Damos clic en finalizar.
Despues seleccionamos la tabla que apareció y la mandamos con el boton “>” a la columna de la derecha para agregarla y damos clic en aceptar.
Como podemos ver ya tenemos agregados los campos a la lista desplegable en el explorador de campos. Solo nos queda arrastrar al contenido del reporte los campos y acomodarlos a nuestro gusto.
Ahora para llamar al reporte escribimos estas lineas en el form2:
mports System.Data
Imports MySql.Data.MySqlClient
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.ReportSource
Imports CrystalDecisions.Shared
Public Class Form2
Dim Ds As New DataSet
Dim Con As New MySqlConnection("server=localhost;uid=root;password=mipass;database=alumnos")
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Cmd As New MySqlCommand(sql, Con)
Dim Da As New MySqlDataAdapter(Cmd)
Dim myReport As New ReportDocument
Da.Fill(Ds)
myReport.Load(My.Application.Info.DirectoryPath & "\CR1.rpt")
myReport.SetDataSource(Ds)
CRV1.ReportSource = myReport
End Sub
Public Function LeerColumna(ByVal nTabla As String, ByVal nColumna As String, ByVal Valores As ComboBox) As Boolean
Dim Sql As String = "SELECT * FROM " & nTabla
Dim DR As MySqlDataReader
Dim Comando As New MySqlCommand("SELECT " & nColumna & " FROM " & nTabla, Con)
Try
If Not Con Is Nothing Then Con.Close()
Con.Open()
DR = Comando.ExecuteReader()
If DR.HasRows = False Then
Return Nothing
Exit Function
End If
While DR.Read()
Valores.Items.Add(DR(nColumna))
End While
Return True
Catch ex As Exception
Return False
Finally
DR = Nothing
Comando = Nothing
Con.Close()
End Try
End Function
End Class
Con esto desde el form1 llamamos al form2 con form2.show() y se mostrara el reporte.


(2 rating, 2 votes)

Loading ...
Posteado en Visual Basic.Net | Comenta Ahora!
Escrito en Abril 10, 2009 por Alex
Sólo hay una forma correcta de cargar una batería de litio: cargándola a menudo. De hecho, lo cierto es que la batería durará más cargándola cada poco que haciendo ciclos completos.
El sistema usado por las baterías de litio no es igual que el de las de níquel, la principal diferencia radica en que éstas no necesitan de ningún tipo de preparación previa, la primera carga es exactamente igual que la quinta o la número 50. Asimismo, el pensamiento generalizado de que la primera carga de la batería ha de ser de 8 horas o más es sólo una idea anticuada y equivocada que pertenece a los ya pasados días de las viejas baterías de níquel.
A diferencia de las baterías de níquel y plomo, las actuales de litio no necesitan de ciclos completos de carga y descarga. La preparación previa o “rodaje” que necesitaban las viejas baterías de níquel no será efectiva en las de litio ya que su capacidad máxima está a nuestra disposición desde el principio.Es completamente falso el pensamiento de que estas baterías alcanzan su máximo potencias después de unas cargas. Al igual que tampoco necesitan ser descargadas al completo para mejorar la capacidad, de hecho se debe evitar usar la batería hasta que se agote por completo. Lo recomendado es simplemente descargarlas hasta un 80% y recargarla más a menudo. Sin embargo, la descarga completa y su posterior carga reiniciarán el circuito de la batería y mejorará la precisión del estado de carga de ésta, es decir, el indicador de la batería será más preciso. Sin embargo, una descarga completa de la batería podría dañar los circuitos y dejarla inservible. Es importante aclarar que esta recomendación es sólo válida para aquellas baterías que tienen incorporado un mecanismo de “control de carga”, como pueden ser las baterías de gran tamaño como la de los portátiles. Sólo se ha de proceder de esta forma cuando se detecte que el aparato indica incorrectamente el estado de carga de la batería.
¿Cómo debería preparar mi nueva batería?
Las baterías de litio ya vienen parcialmente cargas por lo que se pueden usar inmediatamente y cargarlas cuando sea necesario. No necesitan de un periodo de “rodaje” ni de de ningún tipo de “ritual” previo.
¿Podría estropear mi batería con una incorrecta preparación previa?
No. No importa que la primera carga sea parcial o completa, y no necesita ningún tipo de preparación previa. Este tipo de baterías tienen su máximo de capacidad desde el primer día, por tanto no necesitan de un periodo de “rodaje”, es un falso mito el que las baterías de litio necesitan de varias cargas para alcanzar su máximo potencial. La batería pierde su capacidad con el tiempo, tanto si se usa como si no, su duración en tiempo ronda sobre los tres años y tiene un aguante máximo de unos 500 ciclos.
¿Cómo ajusto el indicador de carga?
Se debe hacer una descarga y carga completa cada 30, aproximadamente. Esto se debe repetir cuando el indicador se vuelve impreciso.
¿Debería agotar la carga de la batería antes de cargarla?
No. Es mejor recargarla a menudo evitando las descargas completas. Las baterías que incluyen su propio indicador de batería puede realizarse una descarga completa cada mes para reiniciar dicho indicador.
¿Debería cargar la batería al completo o sólo parcialmente?
No importa, se puede cargar por partes. La carga total de la batería se detiene automáticamente cuando se alcanza el nivel máximo del voltaje por lo que cargar la batería al máximo es seguro y no se estropeará.
¿Pierde la batería su carga con el tiempo?
Sí. En esto influyen muchos factores, como la temperatura a la que esté sometida la batería pero, aproximadamente, la batería sufre una descarga diaria de un 0,2%.
¿Debería quitar la batería del cargador cuando se ha terminado de cargar?
Tampoco importa ya que el cargador para de cargar automáticamente cuando la batería está llena. De todas formas no conviene dejarlas siempre en estado “cargando” (como suceden con los portátiles) ya que el transformador podría fallar o algún corte en la corriente podría dañar el cargador o la batería.
¿Cómo debo almacenar mi batería?
Si no vamos a usar nuestra batería debemos guardarla en un lugar seco y a temperatura ambiente, alejada de las fuentes extremas, tanto de calor como de frío. Lo ideal es dejar cargada la batería sobre un 40% de su capacidad, por eso las baterías vienen cargadas de fábrica con una pequeña carga. Una batería con media carga mantendrá mucho mejor su carga que si está cargada al completo. NUNCA se ha de almacenar completamente descargada.
¿Y qué pasa con mi portátil?
En el caso de un ordenador portátil el principal enemigo es la temperatura. Por esta razón no se debe dejar la batería del portátil metida cuando no estamos funcionando con ella. Un portátil debería estar conectado a la red eléctrica cuando no está en uso puesto que el calor que desprenden estos aparatos reduce considerablemente la vida de las baterías. Un caso hipotético: si conserváramos nuestra batería del portátil al 100% a unos 60ºC después de 3 meses conservaría sólo el 60% de su capacidad total. Las baterías de Litio son mucho más sensibles a la temperatura que sus predecesoras de níquel.
Si hablamos de la duración de una carga, entonces dependerá de las características de cada batería y dispositivo, pero aquí tienes siete medidas que nos ayudarán a maximizarla y solo en caso que queramos trabajar con la bateria y no necesitemos de estas funciones:
- Aléjalas del calor: Las baterías de Li-Ion son sumamente susceptibles a las altas temperaturas, por lo que usar tus dispositivos en un ambiente fresco extenderá su funcionalidad.
- Apaga las transmisiones inalámbricas: Los infrarrojos (IrDA), Bluetooth y Wi-Fi son verdaderos vampiros de electricidad, siendo equivalentes a mantener un celular en uso todo el tiempo. Apaga estas funciones cuando no sean necesarias.
- Evita usar tu unidad de CD o DVD: El gasto no sólo corre por cuenta del láser, sino también del motor que hace girar el disco. Y mejor ni hablar de los grabadores…
- Reduce el brillo de la pantalla: Algunos equipos lo hacen en forma automática pues, entre menos luz generen, menos energía demandarán.
- Retira tarjetas de memoria o llaves USB: No dejes que sus dimensiones reducidas te engañen, pues energizarlas requiere un flujo adicional de electricidad. Esto es especialmente válido para dispositivos pequeños, como teléfonos o PDAs.
- Evita usar aplicaciones de audio: Aún con audífonos, la generación de sonido requiere un gasto constante de energía. Peor todavía si se alimentan parlantes externos.
Al final hay que mencionar que debemos evitar ser paranoicos y cuidarlas en exceso de manera obsesiva ya que si tenemos un equipo portátil es para sacarle ventaja a su portabilidad y sin duda lo que más consumimos es la bateria. Así que si una bateria te dura durante dos años es bueno y a comprar otra.
Parte de este artículo esta tomado del blog del francotirador.cl y se recomienda leer el artículo completo ahí publicado Baterías de Litio-Ion: Mitos y Leyendas


(1 rating, 1 votes)

Loading ...
Posteado en PCs y NoteBooks | Comenta Ahora!
Escrito en Marzo 8, 2009 por Alex
Con visual Basic .Net podemos reproducir archivos de audio como mp3 o Wav.
Lo único que necesitamos es agregar el componente Windows Media Player al cuadro de herramientas. Para esto, damos clic derecho sobre el cuadro de herramientas y seleccionamos la opción “Elegir elementos”.
Hacemos clic en la ficha “Componentes COM” y buscamos el componente “Windows Media Player” que en su ruta de acceso apunte hacia: msdxm.ocx.
Continar leyendo! »


(1 rating, 1 votes)

Loading ...
Posteado en Visual Basic.Net | Comenta Ahora!
Escrito en Febrero 26, 2009 por Alex
En .Net podemos trabajar con hebras independientes de ejecución en las aplicaciones es decir, que una o varias hebras en el programa pueden compartir ciclos del procesador.
Al trabajar con hebras podemos también tener control sobre ellas, suspenderlas, cancelarlas y otras funciones.
En el post anterior les explicaba que podemos encontrarnos con un problema que no podíamos solucionar en versiones anteriores de visual basic, que sucedía cuando al presionar un botón (como el ejemplo de enviar un correo con archivos adjuntos), el proceso que iniciaba se tardaba más de los esperado y no podíamos cancelarlo porque acaparaba todos los recursos del sistema y aunque existiera un botón que cancelara el proceso, no podíamos verlo porque el programa parecía estar bloqueado o congelado.
Al situar el proceso dentro de una hebra podemos seguir actuando con el formulario.
Para esto utilizamos la clase Thread dentro del espacio de nombres Threading
Estos son algunos métodos de la clase Thread:
- Start: Hace que se programe un subproceso para su ejecución.
- Sleep: Bloquea el subproceso actual durante el número de milisegundos especificado.
- Abort: Cancela la ejecución de la hebra.Para iniciar un hebra
Primero hay que importar el espacio de nombres System.Threading, después crear el objeto de tipo Thread.
Imports System.Threading
Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviar.Click
'Instanciar la hebra
Dim oHebra As Thread
'crear objeto y asignarlo al sub que queremos ejecutar
oHebra = New Thread(AddressOf EnviarMail)
'ponerla en marcha
oHebra.Start()
End Sub
Para ver mejor este ejemplo, pongo en el siguiente link un ejemplo de un formulario para envío de correo por SMTP que es la parte completa del post anterior y esta programado con hebras, con barra de progreso y con opción de enviar archivos adjuntos y usando autenticación.
Ejemplo Mail desde Visual Basic 2008
Ejemplo Mail desde Visual Basic 2005
Algunas capturas de pantalla:

Mail desde Vb.Net

Envio de correo desde visual basic .net


(1 rating, 1 votes)

Loading ...
Posteado en Visual Basic.Net | Comenta Ahora!
Escrito en Febrero 25, 2009 por Alex
El envio de correo desde Visual Basic .Net se puede llevar a cabo de una manera muy sencilla.
En este ejemplo utilizamos el espacio de nombres System.Net.Mail, un objeto del tipo MailMessage y otro del tipo SmtpClient.
Algunas propiedades del objeto SmtpClient:
- Host: Obtiene o establece el nombre o la dirección IP del host que se utiliza para las transacciones SMTP
- Port: Obtiene o establece el puerto utilizado para las transacciones SMTP.
- EnableSsl: Especifique si el objeto SmtpClient utiliza SSL (Secure Sockets Layer) para cifrar la conexión.
- TimeOut: Obtiene o establece un valor que especifica el intervalo de tiempo a partir del cual se considera que una llamada a Send sincrónica excede el tiempo de espera.
- Credentials: Obtiene o establece las credenciales utilizadas para autenticar al remitente. (Es decir, usuario y password)
Continar leyendo! »


(1 rating, 1 votes)

Loading ...
Posteado en Visual Basic.Net | Comenta Ahora!