Archive for December, 2009

Linq sobre un datatable

Recientemente he comenzado a jugar con esta nueva herramienta de programación, que la verdad me parece muy util.

Mi primer tropiezo surgió cuando quice utilizar linq sobre un datatable que mantenía en memoria. Lo que deseaba hacer era filtrar el contenido del datatable y luego pasarlo a un datagridview.

Este fue el resultado final:

Dim dt As New DataTable

Dim qsql As String
qsql = “select * from clientes where clie_id=’330′”
dt = fngnl.obtener_datasource(qsql)   ‘fngnl es una clase interna que me permite ejecutar un query y me devuelve un datatable

Dim clientes = From clie In dt.AsEnumerable _
Where clie.Item(“clie_ban”) = i_ban.Text _
Select clie

drg_data.DataSource = clientes.AsDataView

Esto me permitió filtrar el contenido del datatable sin tener que acceder nuevamente a la base de datos.

Como crear un nuevo correo en outlook desde vb.net

Estoy desarrollando una aplicación para aseguradores y mi cliente me pide que pueda enviar correos pero utilizando MS Outlook ya que quiere que le quede una constancia en el outlook del envio.

Encontré una rutina que me funciona muy bien con el único inconveniente que Outlook me pide autorización para crear el correo, aparte de esto todo muy bien.

Esta es la rutina.

Imports Microsoft.Office.Interop  ‘aqui debes hacer una referencia al com de outlook

Private moApp As Outlook.Application
Private mbKillMe As Boolean = True
Private cabecera, estilo, cuerpo, footer As String

Private Sub enviar_mail()
‘primero verifico que tenga el outlook instalado
If verificar_outlook() Then
crear_email()
cerrar_email()
End If
End Sub
Private Function verificar_outlook() As Boolean
Try
moApp = CType(GetObject(, “Outlook.Application”), Outlook.Application)
mbKillMe = False
Catch ex As Exception
If moApp Is Nothing Then
moApp = New Outlook.Application
mbKillMe = True
End If
End Try
If moApp Is Nothing Then
MessageBox.Show(“Outlook no está instalado”, “CASSA”, MessageBoxButtons.OK)
Return False
End If
Return True
End Function
Private Sub crear_email()
Dim oEmail As Outlook.MailItem
Me.Cursor = Cursors.WaitCursor
oEmail = DirectCast(moApp.CreateItem(Outlook.OlItemType.olMailItem), Outlook.MailItem)
With oEmail
.To = “”
.CC = “”
.Subject = “Seguros Cassa”
.BodyFormat = Outlook.OlBodyFormat.olFormatHTML
.HTMLBody = estilo & cuerpo
.Importance = Outlook.OlImportance.olImportanceNormal
.ReadReceiptRequested = False
‘.Attachments.Add(“C:\archivo.jpg”, Outlook.OlAttachmentType.olByValue)
.Recipients.ResolveAll()
.Save()
.Display() ‘Muestra el mensaje para que se pueda editar
‘.Send() ‘Si lo activas se envia automaticamente sin editar
End With
Me.Cursor = Cursors.Default
End Sub
Private Sub cerrar_email()
If mbKillMe = True Then
If Not moApp Is Nothing Then
moApp.Quit()
moApp = Nothing
End If
End If
End Sub

Archivo de recursos no valido

Al utilizar una aplicación de Contabilidad llamada Monica 8.5 me tope con este error al tratar de iniciarlo. Ya que este programa utiliza Foxpro como base de datos.

La solucion: Eliminar los archivos FOXUSER.DBF Y FOXUSER.FPT de la carpeta del Monica.