Files
Nuvolar/Nuvolar.Module/Controllers/DBV_Dashboard_VC.vb
T
2017-03-08 11:21:27 +01:00

240 lines
12 KiB
VB.net

Imports System.Linq
Imports DevExpress.ExpressApp
Imports DevExpress.Data.Filtering
Imports DevExpress.ExpressApp.Editors
Imports DevExpress.Xpo
' For more typical usage scenarios, be sure to check out https://documentation.devexpress.com/eXpressAppFramework/clsDevExpressExpressAppViewControllertopic.aspx.
Partial Public Class DBV_Dashboard_VC
Inherits ViewController(Of DashboardView)
Private _DBV_CustomersOrder_ListView As DashboardViewItem
Private _DBV_Customers_ListView As DashboardViewItem
Private _DBV_OfferOutRows_ListView As DashboardViewItem
Private _DBV_OrderInRows_ListView As DashboardViewItem
Private _DBV_Products_ListView As DashboardViewItem
Private _CustomersOrder As CustomersOrder
Private _Customers As Customers
Public Sub New()
InitializeComponent()
' Target required Views (via the TargetXXX properties) and create their Actions.
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
' Perform various tasks depending on the target View.
If View.Id = "DVB_Dashboard" Then
_DBV_CustomersOrder_ListView = CType(View.FindItem("DBV_CustomersOrder_ListView"), DashboardViewItem)
_DBV_Customers_ListView = CType(View.FindItem("DBV_Customers_ListView"), DashboardViewItem)
_DBV_OfferOutRows_ListView = CType(View.FindItem("DBV_OfferOutRows_ListView"), DashboardViewItem)
_DBV_OrderInRows_ListView = CType(View.FindItem("DBV_OrderInRows_ListView"), DashboardViewItem)
_DBV_Products_ListView = CType(View.FindItem("DBV_Products_ListView"), DashboardViewItem)
If _DBV_CustomersOrder_ListView IsNot Nothing Then
AddHandler _DBV_CustomersOrder_ListView.ControlCreated, AddressOf DBV_CustomersOrder_ListView_ControlCreated
End If
If _DBV_Customers_ListView IsNot Nothing Then
AddHandler _DBV_Customers_ListView.ControlCreated, AddressOf DBV_Customers_ListView_ControlCreated
End If
End If
End Sub
Protected Overrides Sub OnViewControlsCreated()
MyBase.OnViewControlsCreated()
' Access and customize the target View control.
End Sub
Protected Overrides Sub OnDeactivated()
' Unsubscribe from previously subscribed events and release other references and resources.
MyBase.OnDeactivated()
End Sub
Private Sub DBV_CustomersOrder_ListView_ControlCreated(sender As Object, e As EventArgs)
Dim _DashboardViewItem As DashboardViewItem = DirectCast(sender, DashboardViewItem)
Dim _DBV_CustomersOrder_ListView As ListView = TryCast(_DashboardViewItem.InnerView, ListView)
If _DBV_CustomersOrder_ListView IsNot Nothing Then
RemoveHandler _DBV_CustomersOrder_ListView.SelectionChanged, AddressOf DBV_CustomersOrder_ListView_SelectionChanged
AddHandler _DBV_CustomersOrder_ListView.SelectionChanged, AddressOf DBV_CustomersOrder_ListView_SelectionChanged
End If
End Sub
Private Sub DBV_CustomersOrder_ListView_SelectionChanged(sender As Object, e As EventArgs)
Dim _ocur As Xpo.XPObjectSpace = TryCast(TryCast(_DBV_CustomersOrder_ListView.InnerView, ListView).ObjectSpace, Xpo.XPObjectSpace)
Dim _Criteria As String = ""
Dim _Criteria2 As String = ""
Dim _Criteria3 As String = ""
If TryCast(_DBV_CustomersOrder_ListView.InnerView, ListView).SelectedObjects.Count > 0 Then
_CustomersOrder = TryCast(_DBV_CustomersOrder_ListView.InnerView, ListView).SelectedObjects(0)
Dim _Exists As Boolean = False
Dim _CustomersOrderPriority_Collection As New XPCollection(Of CustomersOrderPriority)(_ocur.Session, CriteriaOperator.Parse("CustomersOrder.Oid=?", _CustomersOrder.Oid))
For Each _CustomersOrderPriority As CustomersOrderPriority In _CustomersOrderPriority_Collection
If _Criteria3 = "" Then
_Criteria3 = String.Format("Oid in ('{0}'", _CustomersOrderPriority.Products.Oid)
Else
_Criteria3 += String.Format(",'{0}'", _CustomersOrderPriority.Products.Oid)
End If
_Exists = True
Next
If _Exists Then
_Criteria3 += ")"
Else
_Criteria3 = "1=2"
End If
_Exists = False
For Each _CustomersOrderPriority As CustomersOrderPriority In _CustomersOrderPriority_Collection
Dim _OrderInRows_Collection As New XPCollection(Of OrderInRows)(_ocur.Session, CriteriaOperator.Parse("Products=?", _CustomersOrderPriority.Products))
For Each _OrderInRows As OrderInRows In _OrderInRows_Collection
If _Criteria = "" Then
_Criteria = String.Format("Oid in ('{0}'", _OrderInRows.OrderInHeader.Customers.Oid)
Else
_Criteria += String.Format(",'{0}'", _OrderInRows.OrderInHeader.Customers.Oid)
End If
_Exists = True
Next
Next
If _Exists Then
_Criteria += ")"
Else
_Criteria = "1=2"
End If
_Exists = False
For Each _CustomersOrderPriority As CustomersOrderPriority In _CustomersOrderPriority_Collection
Dim _OfferOutRows_Collection As New XPCollection(Of OfferOutRows)(_ocur.Session, CriteriaOperator.Parse("Product=?", _CustomersOrderPriority.Products))
For Each _OfferOutRows As OfferOutRows In _OfferOutRows_Collection
If _Criteria2 = "" Then
_Criteria2 = String.Format("Oid in ('{0}'", _OfferOutRows.OfferOutHeader.Customers.Oid)
Else
_Criteria2 += String.Format(",'{0}'", _OfferOutRows.OfferOutHeader.Customers.Oid)
End If
_Exists = True
Next
Next
If _Exists Then
_Criteria2 += ")"
Else
_Criteria2 = "1=2"
End If
_Criteria = String.Format("({0}) OR ({1})", _Criteria, _Criteria2)
Else
_CustomersOrder = Nothing
_Criteria = "1=2"
End If
TryCast(_DBV_Customers_ListView.InnerView, ListView).CollectionSource.Criteria.Clear()
TryCast(_DBV_Customers_ListView.InnerView, ListView).CollectionSource.BeginUpdateCriteria()
TryCast(_DBV_Customers_ListView.InnerView, ListView).CollectionSource.Criteria("Criteria") = CriteriaOperator.Parse(_Criteria)
TryCast(_DBV_Customers_ListView.InnerView, ListView).CollectionSource.EndUpdateCriteria()
TryCast(_DBV_Products_ListView.InnerView, ListView).CollectionSource.Criteria.Clear()
TryCast(_DBV_Products_ListView.InnerView, ListView).CollectionSource.BeginUpdateCriteria()
TryCast(_DBV_Products_ListView.InnerView, ListView).CollectionSource.Criteria("Criteria") = CriteriaOperator.Parse(_Criteria3)
TryCast(_DBV_Products_ListView.InnerView, ListView).CollectionSource.EndUpdateCriteria()
End Sub
Private Sub DBV_Customers_ListView_ControlCreated(sender As Object, e As EventArgs)
Dim _DashboardViewItem As DashboardViewItem = DirectCast(sender, DashboardViewItem)
Dim _DBV_Customers_ListView As ListView = TryCast(_DashboardViewItem.InnerView, ListView)
If _DBV_Customers_ListView IsNot Nothing Then
RemoveHandler _DBV_Customers_ListView.SelectionChanged, AddressOf DBV_Customers_ListView_SelectionChanged
AddHandler _DBV_Customers_ListView.SelectionChanged, AddressOf DBV_Customers_ListView_SelectionChanged
End If
End Sub
Private Sub DBV_Customers_ListView_SelectionChanged(sender As Object, e As EventArgs)
If _CustomersOrder Is Nothing Then Exit Sub
Dim _ocur As Xpo.XPObjectSpace = TryCast(TryCast(_DBV_Customers_ListView.InnerView, ListView).ObjectSpace, Xpo.XPObjectSpace)
Dim _Criteria As String = ""
Dim _Criteria2 As String = ""
Dim _Exists As Boolean = False
If TryCast(_DBV_Customers_ListView.InnerView, ListView).SelectedObjects.Count > 0 Then
_Customers = TryCast(_DBV_Customers_ListView.InnerView, ListView).SelectedObjects(0)
Else
_Customers = Nothing
End If
If _Customers IsNot Nothing Then
Dim _CustomersOrderPriority_Collection As New XPCollection(Of CustomersOrderPriority)(_ocur.Session, CriteriaOperator.Parse("CustomersOrder.Oid=?", _CustomersOrder.Oid))
For Each _CustomersOrderPriority As CustomersOrderPriority In _CustomersOrderPriority_Collection
Dim _OrderInRows_Collection As New XPCollection(Of OrderInRows)(_ocur.Session, CriteriaOperator.Parse("Products=?", _CustomersOrderPriority.Products))
For Each _OrderInRows As OrderInRows In _OrderInRows_Collection
If _Criteria = "" Then
_Criteria = String.Format("Oid in ('{0}'", _OrderInRows.Oid)
Else
_Criteria += String.Format(",'{0}'", _OrderInRows.Oid)
End If
_Exists = True
Next
Next
If _Exists Then
_Criteria += ")"
Else
_Criteria = "1=2"
End If
Else
_Criteria = "1=2"
End If
TryCast(_DBV_OrderInRows_ListView.InnerView, ListView).CollectionSource.Criteria.Clear()
TryCast(_DBV_OrderInRows_ListView.InnerView, ListView).CollectionSource.BeginUpdateCriteria()
TryCast(_DBV_OrderInRows_ListView.InnerView, ListView).CollectionSource.Criteria("Products") = CriteriaOperator.Parse(_Criteria)
If _Customers IsNot Nothing Then TryCast(_DBV_OrderInRows_ListView.InnerView, ListView).CollectionSource.Criteria("Customers") = CriteriaOperator.Parse("OrderInHeader.Customers.Oid=?", _Customers.Oid)
TryCast(_DBV_OrderInRows_ListView.InnerView, ListView).CollectionSource.EndUpdateCriteria()
_Exists = False
If _Customers IsNot Nothing Then
Dim _CustomersOrderPriority_Collection As New XPCollection(Of CustomersOrderPriority)(_ocur.Session, CriteriaOperator.Parse("CustomersOrder.Oid=?", _CustomersOrder.Oid))
For Each _CustomersOrderPriority As CustomersOrderPriority In _CustomersOrderPriority_Collection
Dim _OfferOutRows_Collection As New XPCollection(Of OfferOutRows)(_ocur.Session, CriteriaOperator.Parse("Product=?", _CustomersOrderPriority.Products))
For Each _OfferOutRows As OfferOutRows In _OfferOutRows_Collection
If _Criteria2 = "" Then
_Criteria2 = String.Format("Oid in ('{0}'", _OfferOutRows.Oid)
Else
_Criteria2 += String.Format(",'{0}'", _OfferOutRows.Oid)
End If
_Exists = True
Next
Next
If _Exists Then
_Criteria2 += ")"
Else
_Criteria2 = "1=2"
End If
Else
_Criteria2 = "1=2"
End If
TryCast(_DBV_OfferOutRows_ListView.InnerView, ListView).CollectionSource.Criteria.Clear()
TryCast(_DBV_OfferOutRows_ListView.InnerView, ListView).CollectionSource.BeginUpdateCriteria()
TryCast(_DBV_OfferOutRows_ListView.InnerView, ListView).CollectionSource.Criteria("Products") = CriteriaOperator.Parse(_Criteria2)
If _Customers IsNot Nothing Then TryCast(_DBV_OfferOutRows_ListView.InnerView, ListView).CollectionSource.Criteria("Customers") = CriteriaOperator.Parse("OfferOutHeader.Customers.Oid=?", _Customers.Oid)
TryCast(_DBV_OfferOutRows_ListView.InnerView, ListView).CollectionSource.EndUpdateCriteria()
End Sub
End Class