240 lines
12 KiB
VB.net
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
|