Files
tsWPFCore/dxwDiseñoColumnas.xaml.vb

154 lines
6.6 KiB
VB.net

Imports System.Data.Entity
Imports DevExpress.Xpf.Core.ServerMode
'Imports bdGestionFidas
Imports DevExpress.Mvvm
Imports DevExpress.Xpf.Grid
Imports tsWPFCore
Imports tsUtilidades.Extensiones
Imports DevExpress.Xpf.Core
Imports DevExpress.XtraReports.UI
Imports System.IO
Imports DevExpress.Xpf.Printing
Imports Microsoft.Win32
Imports System.Data.Objects
Imports System.Data.Objects.DataClasses
Imports DevExpress.Data
Public Class dxwDiseñoColumnas
' Private bd As bdGestionFidas.cacoaentities
Private _Codigo As String
Private _Abrir As String
Public _Descripcion As String
Public _TodosLosUsuarios As String
Public _IdDiseño As Integer?
Dim _ld As List(Of DiseñoGuardado)
Public Delegate Sub EliminarDiseño(idDiseño As Integer)
Private _DelegadoEliminarDiseño As EliminarDiseño
Private Sub dxwAgregar_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Try
'bd = bdGestionFidas.FIDASEntities.NuevoContexto
'Dim lc = (From fc In bd.ficherosconfiguracion Where fc.Descripcion IsNot Nothing AndAlso fc.Descripcion <> "" And fc.Codigo = _Codigo And (fc.idUsuario.HasValue = False OrElse fc.idUsuario = bdGestionFidas.Utilidades.dsc.idUsuario) Select New DiseñoGuardado With {.Descripcion = fc.Descripcion, .TodosLosUsuarios = (fc.idUsuario.HasValue = False)}).ToList
'Me.gc.ItemsSource = lc
Me.teDescripcion.EditValue = _Descripcion
Me.cbTodosUsuarios.IsChecked = _TodosLosUsuarios
Me.gc.ItemsSource = _ld
If _Descripcion <> "" AndAlso _ld.Any(Function(x) x.Descripcion = _Descripcion And x.TodosLosUsuarios = _TodosLosUsuarios) Then
Me.gc.CurrentItem = _ld.First(Function(x) x.Descripcion = _Descripcion And x.TodosLosUsuarios = _TodosLosUsuarios)
End If
Catch ex As Exception
DXMessageBox.Show(ex.Message, "Error")
Finally
Try
DXSplashScreen.Close()
Catch
End Try
End Try
End Sub
'Private Sub Aceptar_Click(sender As Object, e As DevExpress.Xpf.Bars.ItemClickEventArgs)
Public Sub New(Codigo As String, Descripcion As String, TodosUsuarios As Boolean, Abrir As Boolean, ld As List(Of DiseñoGuardado), FuncionEliminarDiseño As EliminarDiseño)
' Llamada necesaria para el diseñador.
InitializeComponent()
If Abrir Then
Me.lgOpcionesGuardado.Visibility = System.Windows.Visibility.Hidden
Me.btAceptar.Content = "Abrir Diseño"
End If
_Abrir = Abrir
_Codigo = Codigo
_Descripcion = Descripcion
_TodosLosUsuarios = TodosUsuarios
_ld = ld
_DelegadoEliminarDiseño = FuncionEliminarDiseño
Dim cm As New ContextMenu
Dim mi As New MenuItem()
mi.Tag = "MI_ELIMINAR_DISEÑO"
mi.Header = "Eliminar Diseño"
AddHandler mi.Click, AddressOf _EliminarDiseño
cm.Items.Add(mi)
Me.gc.ContextMenu = cm
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
End Sub
Private Sub btAceptar_Click(sender As Object, e As RoutedEventArgs)
Try
Dim bcancelar As Boolean
If _Abrir Then
Dim dg = DirectCast(Me.gc.CurrentItem, DiseñoGuardado)
_Descripcion = dg.Descripcion
_TodosLosUsuarios = dg.TodosLosUsuarios
_IdDiseño = dg.idDiseño
Else
_Descripcion = teDescripcion.EditValue
If _Descripcion = "" Then Throw New Exception("La descripción es obligatoria")
Dim ld = DirectCast(Me.gc.ItemsSource, List(Of DiseñoGuardado))
If ld.Any(Function(x) x.Descripcion = _Descripcion And x.TodosLosUsuarios = cbTodosUsuarios.IsChecked.Value) Then
bcancelar = (DXMessageBox.Show("¿Desea sobreescribir el diseño de " & _Descripcion & "?", "Atención", MessageBoxButton.YesNo) = MessageBoxResult.No)
If Not bcancelar Then _IdDiseño = ld.First(Function(x) x.Descripcion = _Descripcion And x.TodosLosUsuarios = cbTodosUsuarios.IsChecked.Value).idDiseño
Else
If cbTodosUsuarios.IsChecked.Value Then
If ld.Any(Function(x) x.Descripcion = _Descripcion) Then
bcancelar = (DXMessageBox.Show("¿Desea sobreescribir el diseño de " & _Descripcion & " y establecerlo como público para todos los usuarios?", "Atención", MessageBoxButton.YesNo) = MessageBoxResult.No)
If Not bcancelar Then _IdDiseño = ld.First(Function(x) x.Descripcion = _Descripcion).idDiseño
End If
Else
If ld.Any(Function(x) x.Descripcion = _Descripcion) Then
bcancelar = (DXMessageBox.Show("¿Desea sobreescribir el diseño de " & _Descripcion & " y establecerlo como privado para este usuario?", "Atención", MessageBoxButton.YesNo) = MessageBoxResult.No)
If Not bcancelar Then _IdDiseño = ld.First(Function(x) x.Descripcion = _Descripcion).idDiseño
End If
End If
End If
_TodosLosUsuarios = cbTodosUsuarios.IsChecked
End If
If Not bcancelar Then
Me.DialogResult = True
Me.Close()
End If
Catch ex As Exception
DXMessageBox.Show(ex.Message, "Atención")
End Try
End Sub
Private Sub btCancelar_Click(sender As Object, e As RoutedEventArgs)
Me.DialogResult = False
Me.Close()
End Sub
'Private Sub dxwDiseñoColumnas_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
' bd.Connection.Close()
'End Sub
Private Sub gc_CurrentItemChanged(sender As Object, e As CurrentItemChangedEventArgs) Handles gc.CurrentItemChanged
Dim dg = DirectCast(Me.gc.CurrentItem, DiseñoGuardado)
If dg IsNot Nothing Then
Me.teDescripcion.EditValue = dg.Descripcion
Me.cbTodosUsuarios.IsChecked = dg.TodosLosUsuarios
End If
End Sub
Private Sub _EliminarDiseño(sender As Object, e As RoutedEventArgs)
Dim dg = DirectCast(Me.gc.CurrentItem, DiseñoGuardado)
_DelegadoEliminarDiseño.Invoke(dg.idDiseño)
tv.DeleteRow(Me.tv.FocusedRowHandle)
End Sub
End Class
Public Class DiseñoGuardado
Public Property idDiseño As Integer?
Property Descripcion As String
Property TodosLosUsuarios As Boolean
End Class