Imports System Imports System.ComponentModel Imports System.Collections.Generic Imports System.Diagnostics Imports System.Text Imports DevExpress.ExpressApp Imports DevExpress.ExpressApp.Actions Imports DevExpress.Persistent.Base Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.ExpressApp.Editors Imports DevExpress.ExpressApp.Win.Editors Imports DevExpress.Persistent.BaseImpl Imports Microsoft.Office.Interop Imports DevExpress.ExpressApp.Reports Imports System.IO Imports System.Runtime.InteropServices Imports DevExpress.Data.Filtering Public Class InvoiceVC Inherits SISBusiness.Module.InvoiceVC Dim _WaitFormClass As New WaitFormClass Public Sub New() MyBase.New() 'This call is required by the Component Designer. InitializeComponent() RegisterActions(components) End Sub Protected Overrides Sub OnActivated() MyBase.OnActivated() Frame.GetController(Of SISBusiness.Module.InvoiceVC)().Actions.Item("aStornoInvoice").Active.SetItemValue("", False) If View.Id = "InvoiceHeader_ListView" Then AddHandler DoWork, AddressOf _WaitFormClass.DoWork AddHandler InitWork, AddressOf _WaitFormClass.InitWork AddHandler FinalWork, AddressOf _WaitFormClass.Finalwork End If End Sub Protected Overrides Sub OnDeactivated() If View.Id = "InvoiceHeader_ListView" Then RemoveHandler DoWork, AddressOf _WaitFormClass.DoWork RemoveHandler InitWork, AddressOf _WaitFormClass.InitWork RemoveHandler FinalWork, AddressOf _WaitFormClass.Finalwork End If MyBase.OnDeactivated() End Sub Protected Overrides Sub OnViewControlsCreated() MyBase.OnViewControlsCreated() If View.Id = "InvoiceHeader_ListView" Then Dim _editor As ListEditor = (CType(View, ListView)).Editor Dim _gridView As GridView = (CType(_editor, GridListEditor)).GridView AddHandler _gridView.SelectionChanged, AddressOf GridView_SelectionChanged End If End Sub Public Sub GridView_SelectionChanged(ByVal sender As Object, ByVal e As DevExpress.Data.SelectionChangedEventArgs) Dim _GridView As GridView = TryCast(sender, GridView) Dim _InvoiceHeader As InvoiceHeader If View Is Nothing Then Exit Sub If View.SelectedObjects.Count = 1 Then _InvoiceHeader = TryCast(View.SelectedObjects(0), InvoiceHeader) If Not _InvoiceHeader Is Nothing Then If View.Id = "InvoiceHeader_ListView" Then If _InvoiceHeader.IsStorno = False Then Frame.GetController(Of SISBusiness.Module.InvoiceVC)().Actions.Item("aStornoInvoice").Active.SetItemValue("", True) Else Frame.GetController(Of SISBusiness.Module.InvoiceVC)().Actions.Item("aStornoInvoice").Active.SetItemValue("", False) End If If _InvoiceHeader.IsEditable = False Then Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)().Active.SetItemValue("", False) Else Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)().Active.SetItemValue("", True) End If End If End If Else Frame.GetController(Of SISBusiness.Module.InvoiceVC)().Actions.Item("aStornoInvoice").Active.SetItemValue("", False) End If End Sub Private Sub CreatePDFAndSendToDefaultMailClient() Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _InvoiceHeader As InvoiceHeader = TryCast(View.SelectedObjects(0), InvoiceHeader) Dim _ReportData As ReportData = Nothing Dim _OutlookApp As New Microsoft.Office.Interop.Outlook.Application() Dim _OutlookNameSpace As Microsoft.Office.Interop.Outlook.NameSpace Dim _mail As Outlook.MailItem = Nothing Dim _mailRecipients As Outlook.Recipients = Nothing Dim _mailRecipient As Outlook.Recipient = Nothing Dim _mailAttachments As Outlook.Attachments = Nothing Dim _mailAttachment As Outlook.Attachment = Nothing _OutlookNameSpace = _OutlookApp.GetNamespace("MAPI") _OutlookNameSpace.Logon(, , False, True) If _InvoiceHeader IsNot Nothing Then If _InvoiceHeader IsNot Nothing Then If _InvoiceHeader.CurrencyName.ShortName = "HUF" Then _ReportData = _InvoiceHeader.InvoiceType.ReportData Else _ReportData = _InvoiceHeader.InvoiceType.ReportData_DEV End If End If If _ReportData IsNot Nothing Then Dim _XafReport As XafReport = _ReportData.LoadReport(_ocur) Dim _FilterString As String = "[InvoiceHeader.Oid]='" & _InvoiceHeader.Oid.ToString & "'" _XafReport.FilterString = _FilterString Dim _FileName As String = Path.GetTempPath & CorrectFileName(_InvoiceHeader.DocumentNumber) & ".pdf" Dim _StreamFile As New FileStream(_FileName, FileMode.Create) _XafReport.ExportToPdf(_StreamFile) _StreamFile.Close() Try _mail = _OutlookApp.CreateItem(Outlook.OlItemType.olMailItem) _mail.Subject = "SZÁMLA" _mailAttachments = _mail.Attachments _mailAttachment = _mailAttachments.Add(_FileName) _mailRecipients = _mail.Recipients For Each _Address As String In _InvoiceHeader.Customers.EMail_Invoice.Split(";") If LTrim(RTrim(_Address)) <> "" Then _mailRecipient = _mailRecipients.Add(_Address) End If Next _mailRecipient.Resolve() If (_mailRecipient.Resolved) Then '_mail.Send() _mail.Display(True) Else System.Windows.Forms.MessageBox.Show( "There is no such record in your address book.") End If Catch ex As Exception System.Windows.Forms.MessageBox.Show(ex.Message, "An exception is occured in the code of add-in.") Finally If Not IsNothing(_mailRecipient) Then Marshal.ReleaseComObject(_mailRecipient) If Not IsNothing(_mailRecipients) Then Marshal.ReleaseComObject(_mailRecipients) If Not IsNothing(_mail) Then Marshal.ReleaseComObject(_mail) End Try End If End If End Sub Private Sub aGeneratePDFandSendDefaultMailClient_Invoice_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aGeneratePDFandSendDefaultMailClient_Invoice.Execute Me.CreatePDFAndSendToDefaultMailClient() End Sub End Class