diff --git a/app/DD_PM_WINDREAM/frmMassValidator.vb b/app/DD_PM_WINDREAM/frmMassValidator.vb index 0525954..6e7777a 100644 --- a/app/DD_PM_WINDREAM/frmMassValidator.vb +++ b/app/DD_PM_WINDREAM/frmMassValidator.vb @@ -308,24 +308,45 @@ Public Class frmMassValidator oControl = ClassControlCreator.CreateExistingLine(oControlRow, False) Case "LOOKUP" - Dim lookup As LookupControl2 = ClassControlCreator.CreateExistingLookupControl(oControlRow, False) - oControl = lookup - lookup.PreventDuplicates = oControlRow.Item("VKT_PREVENT_MULTIPLE_VALUES") - lookup.AllowAddNewValues = oControlRow.Item("VKT_ADD_ITEM") - lookup.MultiSelect = oControlRow.Item("MULTISELECT") + Dim oMultiselect = oControlRow.Item("MULTISELECT") + Dim oReadonly = oControlRow.Item("READ_ONLY") - 'If NotNull(oControlRow.Item("DEFAULT_VALUE"), "") <> "" Then - ' lookup.SelectedValues = New List(Of String) From {oControlRow.Item("DEFAULT_VALUE")} - 'End If + If oMultiselect = False And oReadonly = True Then + Dim lookupReadonly = ClassControlCreator.CreateExistingTextbox(oControlRow, False) + oControl = lookupReadonly + Else + Dim lookup As LookupControl2 = ClassControlCreator.CreateExistingLookupControl(oControlRow, False) - ''Wenn Multiselect false dann prüfen ob abhängiges Control - If CBool(oControlRow.Item("MULTISELECT")) = False Then - Dim filteredData As DataTable = DTCONTROLS.Clone() - Dim oExpression = $"SQL_UEBERPRUEFUNG like '%#CTRL#{oControl.Name}%'" - DTCONTROLS.Select(oExpression).CopyToDataTable(filteredData, LoadOption.PreserveChanges) - If filteredData.Rows.Count = 1 Then - AddHandler lookup.SelectedValuesChanged, AddressOf onLookUp1 + lookup.PreventDuplicates = oControlRow.Item("VKT_PREVENT_MULTIPLE_VALUES") + lookup.AllowAddNewValues = oControlRow.Item("VKT_ADD_ITEM") + lookup.MultiSelect = oMultiselect + + If NotNull(oControlRow.Item("DEFAULT_VALUE"), "") <> "" Then + lookup.SelectedValues = New List(Of String) From {oControlRow.Item("DEFAULT_VALUE")} End If + + oControl = lookup + 'Wenn Multiselect false dann prüfen ob abhängiges Control + If CBool(oControlRow.Item("MULTISELECT")) = False Then + Dim filteredData As DataTable = DTCONTROLS.Clone() + Dim oExpression = $"SQL_UEBERPRUEFUNG like '%#CTRL#{oControl.Name}%'" + DTCONTROLS.Select(oExpression).CopyToDataTable(filteredData, LoadOption.PreserveChanges) + If filteredData.Rows.Count = 1 Then + 'AddHandler lookup.EditValueChanged, AddressOf onLookUp1 + AddHandler lookup.SelectedValuesChanged, AddressOf onLookUp1 + End If + End If + + AddHandler lookup.GotFocus, Sub(sender As Control, e As EventArgs) + If DirectCast(lookup.Tag, ClassControlCreator.ControlMetadata).ReadOnly = False Then + lookup.BackColor = Color.Lime + End If + End Sub + AddHandler lookup.LostFocus, Sub(sender As Control, e As EventArgs) + If DirectCast(lookup.Tag, ClassControlCreator.ControlMetadata).ReadOnly = False Then + lookup.BackColor = Color.White + End If + End Sub End If Case "TABLE" diff --git a/app/DD_PM_WINDREAM/frmValidator.Designer.vb b/app/DD_PM_WINDREAM/frmValidator.Designer.vb index 15c1c5e..8c102a9 100644 --- a/app/DD_PM_WINDREAM/frmValidator.Designer.vb +++ b/app/DD_PM_WINDREAM/frmValidator.Designer.vb @@ -22,10 +22,11 @@ Partial Class frmValidator 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmValidator)) - Me.BarAndDockingController3 = New DevExpress.XtraBars.BarAndDockingController() - Me.BarAndDockingController2 = New DevExpress.XtraBars.BarAndDockingController() - Me.BarAndDockingController1 = New DevExpress.XtraBars.BarAndDockingController() + Me.BarAndDockingController3 = New DevExpress.XtraBars.BarAndDockingController(Me.components) + Me.BarAndDockingController2 = New DevExpress.XtraBars.BarAndDockingController(Me.components) + Me.BarAndDockingController1 = New DevExpress.XtraBars.BarAndDockingController(Me.components) Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() Me.tstrplblError = New System.Windows.Forms.ToolStripStatusLabel() Me.tstrlbl_Info = New System.Windows.Forms.ToolStripStatusLabel() @@ -43,17 +44,17 @@ Partial Class frmValidator Me.TBPM_PROFILE_CONTROLSTableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_PROFILE_CONTROLSTableAdapter() Me.TBPM_PROFILE_FILESTableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_PROFILE_FILESTableAdapter() Me.TBPM_PROFILETableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_PROFILETableAdapter() - Me.VWPM_CONTROL_INDEXBindingSource = New System.Windows.Forms.BindingSource() + Me.VWPM_CONTROL_INDEXBindingSource = New System.Windows.Forms.BindingSource(Me.components) Me.VWPM_CONTROL_INDEXTableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.VWPM_CONTROL_INDEXTableAdapter() - Me.TBPM_PROFILE_CONTROLSBindingSource = New System.Windows.Forms.BindingSource() - Me.TBDD_CONNECTIONBindingSource = New System.Windows.Forms.BindingSource() - Me.TBPM_PROFILE_FILESBindingSource = New System.Windows.Forms.BindingSource() - Me.TBPM_PROFILEBindingSource = New System.Windows.Forms.BindingSource() - Me.TBPM_KONFIGURATIONBindingSource = New System.Windows.Forms.BindingSource() - Me.TBPM_CONTROL_TABLEBindingSource = New System.Windows.Forms.BindingSource() + Me.TBPM_PROFILE_CONTROLSBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.TBDD_CONNECTIONBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.TBPM_PROFILE_FILESBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.TBPM_PROFILEBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.TBPM_KONFIGURATIONBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.TBPM_CONTROL_TABLEBindingSource = New System.Windows.Forms.BindingSource(Me.components) Me.pnlpdf = New System.Windows.Forms.Panel() Me.PdfViewer1 = New DevExpress.XtraPdfViewer.PdfViewer() - Me.BarManager1 = New DevExpress.XtraBars.BarManager() + Me.BarManager1 = New DevExpress.XtraBars.BarManager(Me.components) Me.barDockControlTop = New DevExpress.XtraBars.BarDockControl() Me.barDockControlBottom = New DevExpress.XtraBars.BarDockControl() Me.barDockControlLeft = New DevExpress.XtraBars.BarDockControl() @@ -130,9 +131,9 @@ Partial Class frmValidator Me.ToolStripButtonDeleteFile = New System.Windows.Forms.ToolStripButton() Me.ToolStripButtonAnnotation = New System.Windows.Forms.ToolStripButton() Me.FinalIndexDataSet = New DD_PM_WINDREAM.FinalIndexDataSet() - Me.TBPM_PROFILE_FINAL_INDEXINGBindingSource = New System.Windows.Forms.BindingSource() + Me.TBPM_PROFILE_FINAL_INDEXINGBindingSource = New System.Windows.Forms.BindingSource(Me.components) Me.TBPM_PROFILE_FINAL_INDEXINGTableAdapter = New DD_PM_WINDREAM.FinalIndexDataSetTableAdapters.TBPM_PROFILE_FINAL_INDEXINGTableAdapter() - Me.ToolTip1 = New System.Windows.Forms.ToolTip() + Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components) CType(Me.BarAndDockingController3, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.BarAndDockingController2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.BarAndDockingController1, System.ComponentModel.ISupportInitialize).BeginInit() diff --git a/app/DD_PM_WINDREAM/frmValidator.resx b/app/DD_PM_WINDREAM/frmValidator.resx index 5e71414..b90aea2 100644 --- a/app/DD_PM_WINDREAM/frmValidator.resx +++ b/app/DD_PM_WINDREAM/frmValidator.resx @@ -435,102 +435,15 @@ 17, 134 - - 690, 134 - Top, Right - - PdfViewer1 - - - DevExpress.XtraPdfViewer.PdfViewer, DevExpress.XtraPdfViewer.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlpdf - - - 0 - - - StatusStrip2 - - - System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - pnlpdf - - - 1 - - - RibbonControl1 - - - DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlpdf - - - 2 - - - 279, 119 - - - 3, 4, 3, 4 - - - 146, 362 - - - 26 - - - False - - - pnlpdf - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SplitContainer1.Panel2 - - - 1 - - - 955, 134 - Fill 0, 141 - - 146, 199 - - - 5 - - - PdfViewer1 - - - DevExpress.XtraPdfViewer.PdfViewer, DevExpress.XtraPdfViewer.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlpdf - - - 0 - 955, 134 @@ -624,15 +537,30 @@ 251 - - 17, 173 - 7, 17 962, 643 + + 17, 173 + + + Segoe UI, 9.75pt + + + 0, 0 + + + 962, 25 + + + 42 + + + ToolStrip1 + ToolStrip1 @@ -645,6 +573,165 @@ 0 + + Top, Bottom, Left, Right + + + 0, 28 + + + SplitContainer1.Panel1 + + + System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SplitContainer1 + + + 0 + + + Fill + + + 3, 21 + + + 20, 20 + + + 194, 54 + + + 2 + + + WebBrowser + + + System.Windows.Forms.WebBrowser, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpbxMailBody + + + 0 + + + 1228, 134 + + + 3, 75 + + + 194, 22 + + + 0 + + + StatusStrip3 + + + StatusStrip3 + + + System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpbxMailBody + + + 1 + + + 249, 13 + + + 200, 100 + + + 33 + + + Body: + + + grpbxMailBody + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SplitContainer1.Panel2 + + + 0 + + + txtBetreff + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpBetreff + + + 0 + + + Segoe UI Semibold, 9.75pt, style=Bold, Italic + + + 26, 19 + + + 200, 57 + + + 31 + + + Betreff + + + False + + + grpBetreff + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SplitContainer1.Panel2 + + + 2 + + + SplitContainer1.Panel2 + + + System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SplitContainer1 + + + 1 + + + 962, 593 + + + 477 + + + 37 + SplitContainer1 @@ -1375,14 +1462,50 @@ BarButtonItem1 + + 345, 199 + + + 5 + + + PdfViewer1 + + + DevExpress.XtraPdfViewer.PdfViewer, DevExpress.XtraPdfViewer.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlpdf + + + 0 + 690, 134 + + Segoe UI Semibold, 9pt, style=Bold, Italic + + + 139, 17 + + + ToolStripStatusLabel1 + + + Magenta + + + 153, 20 + + + Seitenansicht Minimal + 0, 340 - 146, 22 + 345, 22 2 @@ -1402,29 +1525,11 @@ 1 - - Segoe UI Semibold, 9pt, style=Bold, Italic - - - 139, 16 - - - ToolStripStatusLabel1 - - - Magenta - - - 153, 20 - - - Seitenansicht Minimal - 0, 0 - 146, 141 + 345, 141 RibbonControl1 @@ -1438,114 +1543,45 @@ 2 + + 80, 119 + + + 3, 4, 3, 4 + + + 345, 362 + + + 26 + + + False + + + pnlpdf + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SplitContainer1.Panel2 + + + 1 + 807, 134 1080, 134 - - Fill - - - 3, 21 - - - 20, 20 - - - 194, 54 - - - 2 - - - WebBrowser - - - System.Windows.Forms.WebBrowser, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpbxMailBody - - - 0 - - - 1228, 134 - - - 3, 75 - - - 194, 22 - - - 0 - - - StatusStrip3 - - - StatusStrip3 - - - System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpbxMailBody - - - 1 - - 120, 17 + 119, 17 ToolStripStatusLabel1 - - txtBetreff - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpBetreff - - - 0 - - - Segoe UI Semibold, 9.75pt, style=Bold, Italic - - - 26, 19 - - - 200, 57 - - - 31 - - - Betreff - - - False - - - grpBetreff - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SplitContainer1.Panel2 - - - 2 - Fill @@ -1573,138 +1609,6 @@ 0 - - Top, Bottom, Left, Right - - - 0, 28 - - - SplitContainer1.Panel1 - - - System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SplitContainer1 - - - 0 - - - 1228, 134 - - - WebBrowser - - - System.Windows.Forms.WebBrowser, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpbxMailBody - - - 0 - - - StatusStrip3 - - - System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpbxMailBody - - - 1 - - - 29, 102 - - - 200, 100 - - - 33 - - - Body: - - - grpbxMailBody - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SplitContainer1.Panel2 - - - 0 - - - SplitContainer1.Panel2 - - - System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SplitContainer1 - - - 1 - - - 962, 593 - - - 477 - - - 37 - - - SplitContainer1 - - - System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - - - 17, 173 - - - Segoe UI, 9.75pt - - - 0, 0 - - - 962, 25 - - - 42 - - - ToolStrip1 - - - ToolStrip1 - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 0 - Magenta diff --git a/app/DD_PM_WINDREAM/frmValidator.vb b/app/DD_PM_WINDREAM/frmValidator.vb index e32bd77..020a63b 100644 --- a/app/DD_PM_WINDREAM/frmValidator.vb +++ b/app/DD_PM_WINDREAM/frmValidator.vb @@ -308,7 +308,6 @@ Public Class frmValidator me_closing = False pdfxchange = False sumatra = False - RibbonControl1.Minimized = True FormLoaded = False @@ -823,38 +822,49 @@ Public Class frmValidator Case "LOOKUP" LOGGER.Debug("Versuch LOOKUP zu laden") - Dim lookup As LookupControl2 = ClassControlCreator.CreateExistingLookupControl(oControlRow, False) - lookup.PreventDuplicates = oControlRow.Item("VKT_PREVENT_MULTIPLE_VALUES") - lookup.AllowAddNewValues = oControlRow.Item("VKT_ADD_ITEM") - lookup.MultiSelect = oControlRow.Item("MULTISELECT") + Dim oMultiselect = oControlRow.Item("MULTISELECT") + Dim oReadonly = oControlRow.Item("READ_ONLY") - If NotNull(oControlRow.Item("DEFAULT_VALUE"), "") <> "" Then - lookup.SelectedValues = New List(Of String) From {oControlRow.Item("DEFAULT_VALUE")} - End If + If oMultiselect = False And oReadonly = True Then + Dim lookupReadonly = ClassControlCreator.CreateExistingTextbox(oControlRow, False) + oMyControl = lookupReadonly + Else + Dim lookup As LookupControl2 = ClassControlCreator.CreateExistingLookupControl(oControlRow, False) - oMyControl = lookup - 'Wenn Multiselect false dann prüfen ob abhängiges Control - If CBool(oControlRow.Item("MULTISELECT")) = False Then - Dim filteredData As DataTable = DTCONTROLS.Clone() - Dim oExpression = $"SQL_UEBERPRUEFUNG like '%#CTRL#{oMyControl.Name}%'" - DTCONTROLS.Select(oExpression).CopyToDataTable(filteredData, LoadOption.PreserveChanges) - If filteredData.Rows.Count = 1 Then - 'AddHandler lookup.EditValueChanged, AddressOf onLookUp1 - AddHandler lookup.SelectedValuesChanged, AddressOf onLookUp1 + lookup.PreventDuplicates = oControlRow.Item("VKT_PREVENT_MULTIPLE_VALUES") + lookup.AllowAddNewValues = oControlRow.Item("VKT_ADD_ITEM") + lookup.MultiSelect = oMultiselect + + If NotNull(oControlRow.Item("DEFAULT_VALUE"), "") <> "" Then + lookup.SelectedValues = New List(Of String) From {oControlRow.Item("DEFAULT_VALUE")} End If + + oMyControl = lookup + 'Wenn Multiselect false dann prüfen ob abhängiges Control + If CBool(oControlRow.Item("MULTISELECT")) = False Then + Dim filteredData As DataTable = DTCONTROLS.Clone() + Dim oExpression = $"SQL_UEBERPRUEFUNG like '%#CTRL#{oMyControl.Name}%'" + DTCONTROLS.Select(oExpression).CopyToDataTable(filteredData, LoadOption.PreserveChanges) + If filteredData.Rows.Count = 1 Then + 'AddHandler lookup.EditValueChanged, AddressOf onLookUp1 + AddHandler lookup.SelectedValuesChanged, AddressOf onLookUp1 + End If + End If + + AddHandler lookup.GotFocus, Sub(sender As Control, e As EventArgs) + If DirectCast(lookup.Tag, ClassControlCreator.ControlMetadata).ReadOnly = False Then + lookup.BackColor = Color.Lime + End If + End Sub + AddHandler lookup.LostFocus, Sub(sender As Control, e As EventArgs) + If DirectCast(lookup.Tag, ClassControlCreator.ControlMetadata).ReadOnly = False Then + lookup.BackColor = Color.White + End If + End Sub End If - AddHandler lookup.GotFocus, Sub(sender As Control, e As EventArgs) - If DirectCast(lookup.Tag, ClassControlCreator.ControlMetadata).ReadOnly = False Then - lookup.BackColor = Color.Lime - End If - End Sub - AddHandler lookup.LostFocus, Sub(sender As Control, e As EventArgs) - If DirectCast(lookup.Tag, ClassControlCreator.ControlMetadata).ReadOnly = False Then - lookup.BackColor = Color.White - End If - End Sub + 'Return filteredData 'AddHandler lookup.Leave, AddressOf onLookUp0 @@ -870,7 +880,26 @@ Public Class frmValidator Where r.CONTROL_ID = oControlRow.Item("GUID") Select r).ToList() - oMyControl = ClassControlCreator.CreateExistingGridControl(oControlRow, columns, False) + Dim oGrid = ClassControlCreator.CreateExistingGridControl(oControlRow, columns, False) + + + AddHandler oGrid.ProcessGridKey, Sub(ByVal _sender As Object, ByVal e As KeyEventArgs) + + + If e.KeyCode = Keys.Tab Then + Dim gridControl = TryCast(_sender, GridControl) + Dim view = TryCast(gridControl.FocusedView, Views.Base.ColumnView) + + If (e.Modifiers = Keys.None And view.IsNewItemRow(view.FocusedRowHandle) And view.FocusedColumn.VisibleIndex = view.VisibleColumns.Count - 1) Then + If view.IsEditing Then + view.CloseEditor() + Me.SelectNextControl(gridControl, e.Modifiers = Keys.None, True, True, True) + e.Handled = True + End If + End If + End If + End Sub + oMyControl = oGrid Case "LINE" LOGGER.Debug("Versuch Linie zu laden") @@ -3966,13 +3995,6 @@ Public Class frmValidator PdfViewer1.ZoomFactor = 20 End Sub - Private Sub PdfViewer1_ZoomChanged(sender As Object, e As DevExpress.XtraPdfViewer.PdfZoomChangedEventArgs) Handles PdfViewer1.ZoomChanged - 'SaveMySettingsValue("PDFViewer_ZoomMode", PdfViewer1.ZoomFactor) - VIEWER_ZOOM_LEVEL = PdfViewer1.ZoomFactor - CONFIG.Config.PDFViewerZoomLevel = VIEWER_ZOOM_LEVEL - CONFIG.Save() - End Sub - Private Sub ToolStripDropDownButton1_Click(sender As Object, e As EventArgs) Handles ToolStripDropDownButton1.Click PdfViewer1.ZoomFactor = 20 End Sub