Simple SAP B1 Add-on For Beginners
Hello All,
Greetings !!!
I have Created One Simple Form For SAP Business One SDK Freshers. Kindly Find the attached Screens Also For Your Reference. All SAP Business One Standard Functionalities are covered in this Simple Form Application.
1.UI/DI Connection i.e Single sign in SAP Business One
2.Created of Used Defined Table as Table Name = “GOD_ODIN” and Table Description = “GOD Simple Form” of Document Type
3.Created Fields in “GOD_ODIN” as Cardcode,CardName,VenCode,VenName and DocDate
3.Registered “GOD_ODIN” in SAP Business One with UDO Code as “GOD_ODIN” and Changed User Defined Form “Object Type” Property to “GOD_ODIN”.
4.Added User Defined Menus Using XML Operations in Modules Menu at 13th Position
5.Attched Simple Form To User Defined Menu Simple Form
6.User Defined ChooseFromLists are attached to Customer and Vendor
7.Default Document Date will be Todays Date
8.Add/Update/Find and Navigation Functionalities on User Defined Screen.
9.User Defined Choosefrom lists are added on Customer and Vendor Fields.
This Application is Developed in SAP Business One 9.2 PL8.
How To Use This Code ?
1. Creat New Visual Studio Project
2. Add One Module For Startup
3. Add 3 Classes For 1.1) Simple Form 1.2) Main Class 1.3) Utilities Class.
4. Utilities Class – All Common Functions are Defined in Utilities class
4. Add SAPBobosCOM and SAPBouiCOM references in Project
5. Copy and Paste the attached Codes in Corresponding Classes
Project Code will be as Follows – For Simple Form Class
Imports System.Threading Imports System.IO Imports System Public Class clsSimpleForm #Region "Declaration" 'For UI Dim GOD_Form As SAPbouiCOM.Form #End Region #Region "Item Event" Public Sub ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) If pVal.BeforeAction Then Else Select Case pVal.EventType Case SAPbouiCOM.BoEventTypes.et_FORM_LOAD GOD_Form = GOD_Main.GOD_Application.Forms.GetForm("frmSimpleForm", pVal.FormTypeCount) 'To Enable Navigation Menus - MoveFirst/MoveNext/MovePreviouse and MoveLast GOD_Form.EnableMenu("1288", True) GOD_Form.EnableMenu("1289", True) GOD_Form.EnableMenu("1290", True) GOD_Form.EnableMenu("1291", True) GOD_Form.Mode = SAPbouiCOM.BoFormMode.fm_ADD_MODE Case SAPbouiCOM.BoEventTypes.et_KEY_DOWN If pVal.CharPressed = "9" Then GOD_Form = GOD_Main.GOD_Application.Forms.GetForm("frmSimpleForm", pVal.FormTypeCount) If pVal.ItemUID = "edVendorNm" Then ' If GOD_Form.Items.Item("edVendorNm").Specific.value = "" Then GOD_Main.GOD_SourceForm = GOD_Main.GOD_Application.Forms.GetForm("frmSimpleForm", pVal.FormTypeCount) GOD_Main.strColSelectedinCFL = "Vendor Name" GOD_Main.CLFHeader("edVendorNm", FormUID, "CFL_Vendor_SimpleForm", "CFLHeader") 'By Default Current Date Displayed on Document Date GOD_Form.Items.Item("edDocDate").Specific.value = DateTime.Now.ToString("yyyyMMdd") End If ElseIf pVal.ItemUID = "edCustName" Then If GOD_Form.Items.Item("edCustName").Specific.value = "" Then GOD_Main.GOD_SourceForm = GOD_Main.GOD_Application.Forms.GetForm("frmSimpleForm", pVal.FormTypeCount) GOD_Main.strColSelectedinCFL = "Vendor Name" GOD_Main.CLFHeader("edCustName", FormUID, "CFL_Customer_SimpleForm", "CFLHeader") End If End If End If End Select End If End Sub #End Region #Region "Menu Events" Public Sub MenuEvent(ByRef pVal As SAPbouiCOM.MenuEvent, ByRef BubbleEvent As Boolean) Try If pVal.BeforeAction Then Else If (pVal.MenuUID = "1281" Or pVal.MenuUID = "1282" Or pVal.MenuUID = "1289" Or pVal.MenuUID = "1290" Or pVal.MenuUID = "1291" Or pVal.MenuUID = "1288") Then If GOD_Main.GOD_Application.Forms.ActiveForm.TypeEx = "frmSimpleForm" Then GOD_Form = GOD_Main.GOD_Application.Forms.GetForm("frmSimpleForm", 1) GOD_Form.EnableMenu("5890", True) GOD_Form.DataBrowser.BrowseBy = "12" End If End If If pVal.MenuUID = "mnuSimple" Then GOD_Main.objUtilities.LoadForm("Simple Form.xml", "frmSimpleForm", "frmSimpleForm", ResourceType.Embeded) End If End If Catch ex As Exception GOD_Main.GOD_Application.MessageBox(ex.Message) End Try End Sub #End Region End Class
2. Main Class Code
Imports System.Reflection Imports System.Diagnostics Imports System.Net.Mail Imports System.Net Imports System.Text Imports SAPbobsCOM Public Class clsMain #Region "Declaration" Public WithEvents GOD_Application As SAPbouiCOM.Application Public GOD_Company As SAPbobsCOM.Company 'Creating Instances For Each Class Public objUtilities As clsUtilities Public objSimpleForm As clsSimpleForm Public objChooseFromList As clsChooseFromList Public objChoose As clsChooseFromList 'For UI Public GOD_SourceForm As SAPbouiCOM.Form Public strColSelectedinCFL As String Public SourceRowNo1 As Integer 'For DI Public oDBs_Head As SAPbouiCOM.DBDataSource Public oDBs_Detail As SAPbouiCOM.DBDataSource Public GOD_Rec As SAPbobsCOM.Recordset #End Region #Region "New" Public Sub New() objUtilities = New clsUtilities objSimpleForm = New clsSimpleForm objChooseFromList = New clsChooseFromList objChoose = New clsChooseFromList End Sub #End Region #Region "Initialise" Public Function Initialise() As Boolean GOD_Application = objUtilities.GetApplication() objUtilities.ShowSuccessMessage("Please wait for the Simple Form Add-on Icon to appear in menu. It may take few minutes based on Server and Network speed.") GOD_Company = objUtilities.GetCompany(GOD_Application) Call CreateTables() objUtilities.LoadFromXML("Menus.xml", ResourceType.Embeded) Call RegisterUDO() Call CreateObjects() objUtilities.ShowSuccessMessage("Simple Form Add-on Connected. You may now proceed to use add-on.") Return True End Function #End Region #Region "Create Objects" Private Sub CreateObjects() objChooseFromList = New clsChooseFromList End Sub #End Region #Region "Load Choosefrom List" Public Sub CLFHeader(ByVal ItemUID As String, ByVal FormUID As String, ByVal CFLName As String, ByVal FormTypeEx As String) Dim objChooseForm As SAPbouiCOM.Form clsChooseFromList.ItemUID = ItemUID clsChooseFromList.SourceFormUID = FormUID clsChooseFromList.CFLChoice = CFLName If objUtilities.FormExist(FormTypeEx) = False Then GOD_Main.objUtilities.LoadForm("CFLHeader.xml", "CFLHeader", "CFLHeader", ResourceType.Embeded) objChooseForm = GOD_Main.GOD_Application.Forms.ActiveForm objChoose.databound(objChooseForm, GOD_SourceForm, oDBs_Detail, oDBs_Detail, "", SourceRowNo1) End If End Sub Public Sub CFLDetail(ByVal ItemUID As String, ByVal colUID As String, ByVal FormUID As String, ByVal CFLName As String, SourceRow1 As Integer, ByVal FormTypeEx As String) Dim objChooseForm As SAPbouiCOM.Form SourceRowNo1 = SourceRow1 clsChooseFromList.ItemUID = ItemUID clsChooseFromList.SourceFormUID = FormUID clsChooseFromList.CFLChoice = CFLName If objUtilities.FormExist(FormTypeEx) = False Then GOD_Main.objUtilities.LoadForm("CFLDetail.xml", "CFLDetail", "CFLDetail", ResourceType.Embeded) objChooseForm = GOD_Main.GOD_Application.Forms.ActiveForm objChoose.databound(objChooseForm, GOD_SourceForm, oDBs_Detail, oDBs_Detail, "", SourceRowNo1) End If End Sub #End Region #Region "Register UDO" Private Sub RegisterUDO() Dim findAliasNDescription = New String(,) {{"DocEntry", "DocEntry"}} 'For Find in Default Form - DocEntry Column If Not objUtilities.UDOExists("GOD_ODIN") = True Then objUtilities.registerUDO("GOD_ODIN", "GOD Simple Form", SAPbobsCOM.BoUDOObjType.boud_Document, findAliasNDescription, "GOD_ODIN", "", "", "", "", "", "", "", "", SAPbobsCOM.BoYesNoEnum.tNO) End If End Sub #End Region #Region "Create Table" Public Sub CreateTables() Try 'Daily Inward Screen GOD_ODIN objUtilities.CreateTable("GOD_ODIN", "GOD Simple Form", SAPbobsCOM.BoUTBTableType.bott_Document) objUtilities.AddAlphaField("@GOD_ODIN", "CardCode", "Customer Code", 120) objUtilities.AddAlphaField("@GOD_ODIN", "CardName", "Client Name", 150) objUtilities.AddAlphaField("@GOD_ODIN", "VenCode", "Vendor Code", 120) objUtilities.AddAlphaField("@GOD_ODIN", "VenName", "Vendor Name", 150) objUtilities.AddDateField("@GOD_ODIN", "DocDate", "Document Date", BoFldSubTypes.st_None) Catch ex As Exception GOD_Main.GOD_Application.StatusBar.SetText(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning) Finally End Try End Sub #End Region #Region "Item Event" Public Sub ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles GOD_Application.ItemEvent Try Select Case pVal.FormTypeEx Case "frmSimpleForm" objSimpleForm.ItemEvent(FormUID, pVal, BubbleEvent) Case "CFLHeader" objChooseFromList.ItemEvent(FormUID, pVal, BubbleEvent) Case "CFLDetail" objChooseFromList.ItemEvent(FormUID, pVal, BubbleEvent) End Select Catch ex As Exception GOD_Application.MessageBox(ex.Message) End Try End Sub #End Region #Region "Menu Events" Public Sub MenuEvent(ByRef pVal As SAPbouiCOM.MenuEvent, ByRef BubbleEvent As Boolean) Handles GOD_Application.MenuEvent If pVal.BeforeAction = False Then If (pVal.MenuUID = "1293" Or pVal.MenuUID = "1292" Or pVal.MenuUID = "1281" Or pVal.MenuUID = "1282" Or pVal.MenuUID = "1289" Or pVal.MenuUID = "1290" Or pVal.MenuUID = "1291" Or pVal.MenuUID = "1288" Or pVal.MenuUID = "1292") Then If GOD_Application.Forms.ActiveForm.TypeEx = "frmSimpleForm" Then objSimpleForm.MenuEvent(pVal, BubbleEvent) End If ElseIf pVal.MenuUID = "mnuSimple" Then objSimpleForm.MenuEvent(pVal, BubbleEvent) End If End If End Sub #End Region #Region "Application Event" Private Sub ApplicationEvent(ByVal EventType As SAPbouiCOM.BoAppEventTypes) Handles GOD_Application.AppEvent If (EventType = SAPbouiCOM.BoAppEventTypes.aet_CompanyChanged Or EventType = SAPbouiCOM.BoAppEventTypes.aet_ServerTerminition Or EventType = SAPbouiCOM.BoAppEventTypes.aet_ShutDown Or EventType = SAPbouiCOM.BoAppEventTypes.aet_FontChanged Or EventType = SAPbouiCOM.BoAppEventTypes.aet_LanguageChanged) Then CloseApp() End If End Sub #End Region End Class
3. Startup Class Code
Module modStartUp #Region "Declaration" Public GOD_Main As clsMain #End Region #Region "Main" Public Sub Main() GOD_Main = New clsMain If (GOD_Main.Initialise()) Then System.Windows.Forms.Application.Run() Else GOD_Main.GOD_Application.StatusBar.SetText("Error in Connection", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error) End If End Sub #End Region #Region "Close Application" '***************************************************************** 'Type : CloseAPP 'Parameter : 'Return Value : 'Author : Mahendrakumar Phadtare 'Created Date : 'Purpose : To Stop Addon exe and Close All Open SAP Screens on Addon Addon Disconnection 'Addon : GOD Close Application '***************************************************************** Public Sub CloseApp() GOD_Main.GOD_Application.StatusBar.SetText("Simple Application Add-on Being Disconnected [message 10000-03].", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error) GOD_Main.objUtilities.LoadFromXML("RemoveMenus.xml", ResourceType.Embeded) System.Windows.Forms.Application.Exit() End Sub #End Region End Module
4. Utilities Class code
Imports System.Reflection Public Class clsUtilities Public strLastErrorCode As String Public strLastError As String #Region "Field Creations" 'To Add Alphnumeric Field in Table Public Sub AddAlphaField(ByVal TableName As String, ByVal ColumnName As String, ByVal ColDescription As String, ByVal Size As Integer, Optional ByVal DefaultValue As String = "") Try addField(TableName, ColumnName, ColDescription, SAPbobsCOM.BoFieldTypes.db_Alpha, Size, SAPbobsCOM.BoFldSubTypes.st_None, "", "", DefaultValue) Catch ex As Exception GOD_Main.GOD_Application.StatusBar.SetText(ex.Message & " Field Name is " & ColDescription, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning) End Try End Sub #End Region #Region "Add UDO in SAP Business One Application " Private Sub AddUDO(ByVal strUDO As String, ByVal strDesc As String, ByVal strTable As String, _ Optional ByVal sFinCHRG As String = "", Optional ByVal sFind2 As String = "", _ Optional ByVal strChildTbl As String = "", Optional ByVal nObjectType As SAPbobsCOM.BoUDOObjType = SAPbobsCOM.BoUDOObjType.boud_Document) Dim oUserObjectMD As SAPbobsCOM.UserObjectsMD = Nothing Try oUserObjectMD = GOD_Main.GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD) If oUserObjectMD.GetByKey(strUDO) = 0 Then oUserObjectMD.CanCancel = SAPbobsCOM.BoYesNoEnum.tYES oUserObjectMD.CanClose = SAPbobsCOM.BoYesNoEnum.tYES oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tNO oUserObjectMD.CanDelete = SAPbobsCOM.BoYesNoEnum.tNO oUserObjectMD.CanFind = SAPbobsCOM.BoYesNoEnum.tYES If sFinCHRG <> "" And sFind2 <> "" Then oUserObjectMD.FindColumns.ColumnAlias = sFinCHRG oUserObjectMD.FindColumns.Add() oUserObjectMD.FindColumns.SetCurrentLine(1) oUserObjectMD.FindColumns.ColumnAlias = sFind2 oUserObjectMD.FindColumns.Add() End If oUserObjectMD.CanLog = SAPbobsCOM.BoYesNoEnum.tNO oUserObjectMD.LogTableName = "" oUserObjectMD.CanYearTransfer = SAPbobsCOM.BoYesNoEnum.tNO oUserObjectMD.ExtensionName = "" If strChildTbl <> "" Then oUserObjectMD.ChildTables.TableName = strChildTbl End If oUserObjectMD.ManageSeries = SAPbobsCOM.BoYesNoEnum.tNO oUserObjectMD.Code = strUDO oUserObjectMD.Name = strDesc oUserObjectMD.ObjectType = SAPbobsCOM.BoUDOObjType.boud_Document oUserObjectMD.TableName = strTable If oUserObjectMD.Add() <> 0 Then Throw New Exception(GOD_Main.GOD_Company.GetLastErrorDescription) End If End If Catch ex As Exception Throw ex Finally System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserObjectMD) oUserObjectMD = Nothing GC.WaitForPendingFinalizers() GC.Collect() End Try End Sub #End Region #Region "GetApplication" Public Function GetApplication() As SAPbouiCOM.Application Dim objApp As SAPbouiCOM.Application Dim objSboGuiApi As New SAPbouiCOM.SboGuiApi Dim strConnectionString As String = Environment.GetCommandLineArgs.GetValue(1) objSboGuiApi = New SAPbouiCOM.SboGuiApi objSboGuiApi.Connect(strConnectionString) objApp = objSboGuiApi.GetApplication() Return objApp End Function #End Region Public Function ShowSuccessMessage(ByVal Message As String) GOD_Main.GOD_Application.StatusBar.SetText(Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success) Return Nothing End Function #Region "GET COMPANY" Public Function GetCompany(ByVal SBOApplication As SAPbouiCOM.Application) As SAPbobsCOM.Company Dim GOD_Company As SAPbobsCOM.Company Dim strCookie As String Dim strCookieContext As String Try GOD_Company = New SAPbobsCOM.Company strCookie = GOD_Company.GetContextCookie strCookieContext = SBOApplication.Company.GetConnectionContext(strCookie) GOD_Company.SetSboLoginContext(strCookieContext) If GOD_Company.Connect <> 0 Then strLastError = "Connection Error" SBOApplication.StatusBar.SetText("GOD Simple Form Addon Connection Error. Error is " & GOD_Main.GOD_Company.GetLastErrorDescription, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error) Return Nothing End If Return GOD_Company Catch ex As Exception SBOApplication.MessageBox(ex.Message) Return Nothing End Try End Function #End Region #Region "Register UDO In SAP Business One " 'To Register Use Defined Object in SAP Business One Function registerUDO(ByVal UDOCode As String, ByVal UDOName As String, ByVal UDOType As SAPbobsCOM.BoUDOObjType, ByVal findAliasNDescription As String(,), ByVal parentTableName As String, Optional ByVal childTable1 As String = "", Optional ByVal childTable2 As String = "", Optional ByVal childTable3 As String = "", Optional ByVal childTable4 As String = "", Optional ByVal childTable5 As String = "", Optional ByVal childTable6 As String = "", Optional ByVal childTable7 As String = "", Optional ByVal childTable8 As String = "", Optional ByVal LogOption As SAPbobsCOM.BoYesNoEnum = SAPbobsCOM.BoYesNoEnum.tNO, Optional ByVal DefFormOption As SAPbobsCOM.BoYesNoEnum = SAPbobsCOM.BoYesNoEnum.tNO, Optional ByVal MenuItem As SAPbobsCOM.BoYesNoEnum = SAPbobsCOM.BoYesNoEnum.tNO, Optional ByVal MenuCaption As String = "", Optional ByVal FatherMenuId As String = "", Optional ByVal Position As Integer = 0) As Boolean Dim actionSuccess As Boolean = False Try registerUDO = False Dim v_udoMD As SAPbobsCOM.UserObjectsMD v_udoMD = GOD_Main.objUtilities.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD) v_udoMD.CanCancel = SAPbobsCOM.BoYesNoEnum.tNO v_udoMD.CanClose = SAPbobsCOM.BoYesNoEnum.tNO v_udoMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tNO v_udoMD.CanDelete = SAPbobsCOM.BoYesNoEnum.tYES v_udoMD.CanFind = SAPbobsCOM.BoYesNoEnum.tYES v_udoMD.CanLog = LogOption v_udoMD.CanYearTransfer = SAPbobsCOM.BoYesNoEnum.tYES v_udoMD.ManageSeries = SAPbobsCOM.BoYesNoEnum.tYES v_udoMD.Code = UDOCode v_udoMD.Name = UDOName v_udoMD.TableName = parentTableName If LogOption = SAPbobsCOM.BoYesNoEnum.tYES Then v_udoMD.LogTableName = "A" & parentTableName End If If DefFormOption = SAPbobsCOM.BoYesNoEnum.tYES Then v_udoMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES v_udoMD.MenuItem = SAPbobsCOM.BoYesNoEnum.tYES v_udoMD.MenuCaption = MenuCaption v_udoMD.FatherMenuID = FatherMenuId v_udoMD.Position = Position End If v_udoMD.ObjectType = UDOType For i As Int16 = 0 To findAliasNDescription.GetLength(0) - 1 If i > 0 Then v_udoMD.FindColumns.Add() v_udoMD.FindColumns.ColumnAlias = findAliasNDescription(i, 0) v_udoMD.FindColumns.ColumnDescription = findAliasNDescription(i, 1) Next If childTable1 <> "" Then v_udoMD.ChildTables.TableName = childTable1 v_udoMD.ChildTables.Add() End If If childTable2 <> "" Then v_udoMD.ChildTables.TableName = childTable2 v_udoMD.ChildTables.Add() End If If childTable3 <> "" Then v_udoMD.ChildTables.TableName = childTable3 v_udoMD.ChildTables.Add() End If If childTable4 <> "" Then v_udoMD.ChildTables.TableName = childTable4 v_udoMD.ChildTables.Add() End If If v_udoMD.Add() = 0 Then registerUDO = True GOD_Main.GOD_Application.StatusBar.SetText("Successfully Registered UDO >" & UDOCode & ">" & UDOName & ".", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success) Else GOD_Main.GOD_Application.StatusBar.SetText("Failed to Register UDO >" & UDOCode & ">" & UDOName & " >" & GOD_Main.GOD_Company.GetLastErrorDescription, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error) registerUDO = False End If System.Runtime.InteropServices.Marshal.ReleaseComObject(v_udoMD) v_udoMD = Nothing GC.Collect() Catch ex As Exception GOD_Main.GOD_Application.MessageBox(ex.Message) End Try End Function #End Region #Region "Check for UDO Exists" 'To Check If User Defined Object already exists or not Public Function UDOExists(ByVal code As String) As Boolean GC.Collect() Dim v_UDOMD As SAPbobsCOM.UserObjectsMD Dim v_ReturnCode As Boolean v_UDOMD = GOD_Main.objUtilities.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD) v_ReturnCode = v_UDOMD.GetByKey(code) System.Runtime.InteropServices.Marshal.ReleaseComObject(v_UDOMD) v_UDOMD = Nothing Return v_ReturnCode End Function #End Region Public Function GetBusinessObject(ByVal ObjectType As SAPbobsCOM.BoObjectTypes) As Object Return GOD_Main.GOD_Company.GetBusinessObject(ObjectType) End Function #Region "Load Form" 'To Load Form in SAP Business One Sub LoadForm(ByVal XMLFile As String, ByVal FormType As String, ByVal FormUID As String, Optional ByVal FileType As ResourceType = ResourceType.Content) Try Dim xmldoc As New Xml.XmlDocument Dim Streaming As System.IO.Stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Simple_Form." + XMLFile) Dim StreamRead As New System.IO.StreamReader(Streaming, True) xmldoc.LoadXml(StreamRead.ReadToEnd) StreamRead.Close() Dim r As New Random r.Next(1000) If Not xmldoc.SelectSingleNode("//form") Is Nothing Then xmldoc.SelectSingleNode("//form").Attributes.GetNamedItem("uid").Value = xmldoc.SelectSingleNode("//form").Attributes.GetNamedItem("uid").Value & "_" & r.Next GOD_Main.GOD_Application.LoadBatchActions(xmldoc.InnerXml) End If Catch ex As Exception GOD_Main.GOD_Application.MessageBox(ex.Message) End Try End Sub #End Region #Region "LOAD FROM XML" 'To Load Sap Bbusiness One Form in SAP Business One Using XML Operations Public Sub LoadFromXML(ByVal FileName As String, Optional ByVal FileType As ResourceType = ResourceType.Content) Dim oXmlDoc As Xml.XmlDocument Dim oXmlStream As System.IO.Stream oXmlDoc = New Xml.XmlDocument Try If FileType = ResourceType.Content Then oXmlDoc.Load(FileName) Else oXmlStream = System.Reflection.Assembly.LoadFrom(System.Windows.Forms.Application.ExecutablePath).GetManifestResourceStream(GetType(modStartUp).Namespace & "." & FileName) oXmlDoc.Load(oXmlStream) End If GOD_Main.GOD_Application.LoadBatchActions(oXmlDoc.InnerXml) Catch ex As Exception GOD_Main.GOD_Application.StatusBar.SetText(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning) End Try End Sub #End Region Public Function FormExist(ByVal FormTypeEx As String) As Boolean Dim intLoop As Integer For intLoop = GOD_Main.GOD_Application.Forms.Count - 1 To 0 Step -1 If Trim(FormTypeEx) = Trim(GOD_Main.GOD_Application.Forms.Item(intLoop).TypeEx) Then GOD_Main.GOD_Application.Forms.Item(intLoop).Select() Return True End If Next Return False End Function Public Function GetForm(ByVal FormUID As String) As SAPbouiCOM.Form Return GOD_Main.GOD_Application.Forms.Item(FormUID) End Function #Region "Get Error Details" 'To Get Error Description in SAP B1 Private Sub updateLastErrorDetails(ByVal ErrorCode As Integer) strLastErrorCode = ErrorCode strLastError = GOD_Main.GOD_Company.GetLastErrorCode() & ":" & GOD_Main.GOD_Company.GetLastErrorDescription() End Sub #End Region #Region "Add Column" 'Add User Defined Field to Table Private Sub addCol(ByVal strTab As String, ByVal strCol As String, ByVal strDesc As String, ByVal nType As Integer, Optional ByVal nEditSize As Integer = 10, Optional ByVal nSubType As Integer = 0) Dim oUFields As SAPbobsCOM.UserFieldsMD Dim nError As Integer oUFields = GOD_Main.GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields) oUFields.TableName = strTab oUFields.Name = strCol oUFields.Type = nType oUFields.SubType = nSubType oUFields.Description = strDesc oUFields.EditSize = nEditSize nError = oUFields.Add() System.Runtime.InteropServices.Marshal.ReleaseComObject(oUFields) GC.Collect() GC.WaitForPendingFinalizers() End Sub #End Region #Region "Create Table" 'Create New User Defined Table Public Function CreateTable(ByVal TableName As String, ByVal TableDescription As String, ByVal TableType As SAPbobsCOM.BoUTBTableType) As Boolean Dim intRetCode As Integer Dim objUserTableMD As SAPbobsCOM.UserTablesMD objUserTableMD = GOD_Main.GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserTables) Try If (Not objUserTableMD.GetByKey(TableName)) Then objUserTableMD.TableName = TableName objUserTableMD.TableDescription = TableDescription objUserTableMD.TableType = TableType intRetCode = objUserTableMD.Add() If (intRetCode = 0) Then GOD_Main.GOD_Application.StatusBar.SetText(TableName & " Table is Created Successfully.", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_None) Return True End If Else Return False End If Catch ex As Exception GOD_Main.GOD_Application.MessageBox(ex.Message) Finally System.Runtime.InteropServices.Marshal.ReleaseComObject(objUserTableMD) GC.Collect() End Try End Function #End Region #Region "Field Creations" 'Add Alphabet Field to Table Public Sub AddAlphaField(ByVal TableName As String, ByVal ColumnName As String, ByVal ColDescription As String, ByVal Size As Integer, ByVal SubType As SAPbobsCOM.BoFldSubTypes, Optional ByVal DefaultValue As String = "") Try addField(TableName, ColumnName, ColDescription, SAPbobsCOM.BoFieldTypes.db_Alpha, Size, SAPbobsCOM.BoFldSubTypes.st_None, "", "", DefaultValue) Catch ex As Exception GOD_Main.GOD_Application.StatusBar.SetText(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning) End Try End Sub 'Add Alpha Field to Table and add Validvalues and set Default Values Public Sub AddAlphaField(ByVal TableName As String, ByVal ColumnName As String, ByVal ColDescription As String, ByVal Size As Integer, ByVal ValidValues As String, ByVal ValidDescriptions As String, ByVal SetValidValue As String) Try addField(TableName, ColumnName, ColDescription, SAPbobsCOM.BoFieldTypes.db_Alpha, Size, SAPbobsCOM.BoFldSubTypes.st_None, ValidValues, ValidDescriptions, SetValidValue) Catch ex As Exception Throw ex End Try End Sub 'To Add Field In Table Public Sub addField(ByVal TableName As String, ByVal ColumnName As String, ByVal ColDescription As String, ByVal FieldType As SAPbobsCOM.BoFieldTypes, ByVal Size As Integer, ByVal SubType As SAPbobsCOM.BoFldSubTypes, ByVal ValidValues As String, ByVal ValidDescriptions As String, ByVal SetValidValue As String) Dim intLoop As Integer Dim strValue, strDesc As Array Dim objUserFieldMD As SAPbobsCOM.UserFieldsMD objUserFieldMD = GOD_Main.GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields) Try strValue = ValidValues.Split(Convert.ToChar(",")) strDesc = ValidDescriptions.Split(Convert.ToChar(",")) If (strValue.GetLength(0) <> strDesc.GetLength(0)) Then Throw New Exception("Invalid Valid Values") End If If (Not isColumnExist(TableName, ColumnName)) Then objUserFieldMD.TableName = TableName objUserFieldMD.Name = ColumnName objUserFieldMD.Description = ColDescription objUserFieldMD.Type = FieldType If (FieldType <> SAPbobsCOM.BoFieldTypes.db_Numeric) Then objUserFieldMD.Size = Size Else objUserFieldMD.EditSize = Size End If objUserFieldMD.SubType = SubType If strValue.Length > 1 Then For intLoop = 0 To strValue.GetLength(0) - 1 objUserFieldMD.ValidValues.Value = strValue(intLoop) objUserFieldMD.ValidValues.Description = strDesc(intLoop) objUserFieldMD.ValidValues.Add() Next objUserFieldMD.DefaultValue = SetValidValue Else If SetValidValue.Length > 0 Then objUserFieldMD.DefaultValue = SetValidValue End If End If If (objUserFieldMD.Add() <> 0) Then GOD_Main.GOD_Application.StatusBar.SetText(GOD_Main.GOD_Company.GetLastErrorDescription & " For UDF " & ColumnName & " in Table " & TableName) Else GOD_Main.GOD_Application.StatusBar.SetText(ColumnName + "Field Created Successfully in Table ." & TableName, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_None) End If End If Catch ex As Exception GOD_Main.GOD_Application.StatusBar.SetText(ex.Message & " For UDF " & ColumnName & " in Table " & TableName, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning) Finally System.Runtime.InteropServices.Marshal.ReleaseComObject(objUserFieldMD) GC.Collect() End Try End Sub 'To Add Date Field Public Sub AddDateField(ByVal TableName As String, ByVal ColumnName As String, ByVal ColDescription As String, ByVal SubType As SAPbobsCOM.BoFldSubTypes) Try addField(TableName, ColumnName, ColDescription, SAPbobsCOM.BoFieldTypes.db_Date, 0, SubType, "", "", "") Catch ex As Exception GOD_Main.GOD_Application.StatusBar.SetText(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning) End Try End Sub #End Region #Region " Column Exist or Not " 'To Verify the Given Field already Exists or not Private Function isColumnExist(ByVal TableName As String, ByVal ColumnName As String) As Boolean Dim objRecordSet As SAPbobsCOM.Recordset Dim strTemp As String = "" objRecordSet = GOD_Main.GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset) Try strTemp = "SELECT COUNT(*) FROM CUFD WHERE TableID = '" & TableName & "' AND AliasID = '" & ColumnName & "'" objRecordSet.DoQuery(strTemp) If (Convert.ToInt16(objRecordSet.Fields.Item(0).Value) = 0) Then Return False Else Return True End If Catch ex As Exception Throw ex Finally System.Runtime.InteropServices.Marshal.ReleaseComObject(objRecordSet) GC.Collect() End Try End Function #End Region #Region "LOAD MENU" 'To Load Menu Item in SAP Business One Using XML Public Sub LoadMenu(ByVal XMLFile As String) Dim oXML As System.Xml.XmlDocument Dim strXML As String Try oXML = New System.Xml.XmlDocument oXML.Load(XMLFile) strXML = oXML.InnerXml() GOD_Main.GOD_Application.LoadBatchActions(strXML) Catch ex As Exception GOD_Main.GOD_Application.StatusBar.SetText(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning) End Try End Sub #End Region Protected Overrides Sub Finalize() MyBase.Finalize() End Sub End Class Public Enum ResourceType Embeded Content End Enum
5. ChooseFromList Class Code
Imports System.Reflection Public Class clsChooseFromList #Region "Declarations" Public Shared ItemUID As String Public Shared SourceFormUID As String Public Shared CFLChoice As String Private Ouserdatasource As SAPbouiCOM.UserDataSource Private oedit As SAPbouiCOM.EditText Private oForm As SAPbouiCOM.Form Private GOD_Matrix As SAPbouiCOM.Grid Private oItem As SAPbouiCOM.Item Private objGrid As SAPbouiCOM.Grid Private dtTemp As SAPbouiCOM.DataTable Private strSelectedItem1 As String = String.Empty Private strSelectedItem2 As String = String.Empty Public Shared oDBs_DetailCont As SAPbouiCOM.DBDataSource Public Shared oDBs_DetailChrg As SAPbouiCOM.DBDataSource Public SourceMatrixRow As String Private referencedFormUID As String Public oUDS As SAPbouiCOM.UserDataSource Dim oformidTxt As SAPbouiCOM.EditText Public intColSel As Integer = 0 #End Region #Region "New" Public Sub New() End Sub #End Region #Region "Bind Data" Public Sub databound(ByVal GOD_Form As SAPbouiCOM.Form, ByVal SourceForm As SAPbouiCOM.Form, ByVal oDBs_Detail1 As SAPbouiCOM.DBDataSource, ByVal oDBs_Detail2 As SAPbouiCOM.DBDataSource, ByVal Row As String, SourceRowNo1 As Integer) Try Dim GOD_OMQL_RecMenu As SAPbobsCOM.Recordset GOD_OMQL_RecMenu = GOD_Main.GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset) Dim strSQL As String = "" oDBs_DetailCont = oDBs_Detail1 oDBs_DetailChrg = oDBs_Detail2 SourceMatrixRow = Row oUDS = GOD_Form.DataSources.UserDataSources.Add("UDS1", SAPbouiCOM.BoDataType.dt_LONG_TEXT, 20) oformidTxt = GOD_Form.Items.Item("6").Specific oformidTxt.DataBind.SetBound(True, "", "UDS1") oformidTxt.Value = SourceForm.UniqueID referencedFormUID = SourceForm.UniqueID GOD_Form.Freeze(True) GOD_Form.DataSources.DataTables.Add("dtLevel3") Ouserdatasource = GOD_Form.DataSources.UserDataSources.Add("dbFind", SAPbouiCOM.BoDataType.dt_LONG_TEXT, 250) oedit = GOD_Form.Items.Item("etFind").Specific oedit.DataBind.SetBound(True, "", "dbFind") objGrid = GOD_Form.Items.Item("mtchoose").Specific dtTemp = GOD_Form.DataSources.DataTables.Item("dtLevel3") If (CFLChoice = "CFL_Vendor_SimpleForm" Or CFLChoice = "CFL_Customer_SimpleForm") Then If (CFLChoice = "CFL_Customer_SimpleForm") Then strSQL = "Select CardCode as 'SAP Code',CardName 'Vendor Name',CardCode 'Vendor Code',Balance 'Vendor Balance' From OCRD Where CardType = 'C' Order By CardCode" Else strSQL = "Select CardCode as 'SAP Code',CardName 'Vendor Name',CardCode 'Vendor Code',Balance 'Vendor Balance' From OCRD Where CardType = 'S' Order By CardCode" End If GOD_Form.Title = "List Of Business Partners" dtTemp.ExecuteQuery(strSQL) If dtTemp.IsEmpty = True Then GOD_Main.GOD_Application.SetStatusBarMessage("No Matching Business Partners Records Found.", SAPbouiCOM.BoMessageTime.bmt_Short, True) GOD_Form.Close() Exit Sub End If objGrid.DataTable = dtTemp objGrid.Columns.Item(0).TitleObject.Caption = "SAP Code" objGrid.Columns.Item(1).TitleObject.Caption = "BP Code" objGrid.Columns.Item(2).TitleObject.Caption = "BP Name" objGrid.Columns.Item(3).TitleObject.Caption = "BP Balance" End If objGrid.Columns.Item(0).Visible = False objGrid.AutoResizeColumns() objGrid.SelectionMode = SAPbouiCOM.BoMatrixSelect.ms_Single If objGrid.Rows.Count > 0 Then objGrid.Rows.SelectedRows.Add(0) End If GOD_Matrix = GOD_Form.Items.Item("mtchoose").Specific GOD_Form.Freeze(False) GOD_Form.Update() Catch ex As Exception GOD_Main.GOD_Application.MessageBox(ex.Message) Finally End Try End Sub #End Region #Region "LOAD CFL" Public Sub LoadCFLvalues(ByRef pVal As SAPbouiCOM.ItemEvent) oForm = GetForm(pVal.FormUID) oItem = oForm.Items.Item("mtchoose") GOD_Matrix = CType(oItem.Specific, SAPbouiCOM.Grid) Dim inti As Integer inti = 0 Dim sandy As SAPbouiCOM.SelectedRows = GOD_Matrix.Rows.SelectedRows() Dim intRowId As Integer = sandy.Item(0, SAPbouiCOM.BoOrderType.ot_SelectionOrder) If (CFLChoice = "CFL_Vendor_SimpleForm" Or CFLChoice = "CFL_Customer_SimpleForm") Then strSelectedItem1 = Convert.ToString(GOD_Matrix.DataTable.GetValue(2, intRowId)) strSelectedItem2 = Convert.ToString(GOD_Matrix.DataTable.GetValue(1, intRowId)) End If oForm.Close() oForm = GetForm(SourceFormUID) oForm = GOD_Main.objUtilities.GetForm(referencedFormUID) If (CFLChoice = "CFL_Vendor_SimpleForm" Or CFLChoice = "CFL_Customer_SimpleForm") Then oForm.Items.Item("edVendorNm").Specific.value = strSelectedItem1 oForm.Items.Item("edVendorCd").Specific.value = strSelectedItem2 oForm.Items.Item("edVendorNm").Click(SAPbouiCOM.BoCellClickType.ct_Regular) End If strSelectedItem1 = "" strSelectedItem2 = "" End Sub #End Region #Region "Check for UDO Exists" Public Function UDOExists(ByVal code As String) As Boolean GC.Collect() Dim v_UDOMD As SAPbobsCOM.UserObjectsMD Dim v_ReturnCode As Boolean v_UDOMD = GOD_Main.objUtilities.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD) v_ReturnCode = v_UDOMD.GetByKey(code) System.Runtime.InteropServices.Marshal.ReleaseComObject(v_UDOMD) v_UDOMD = Nothing Return v_ReturnCode End Function #End Region #Region "CFL Form" Public Sub CFLForm(ByVal strSQL As String, ByVal dtTemp As SAPbouiCOM.DataTable, ByVal objGrid As SAPbouiCOM.Grid, ByVal strTitle As String, ByVal GOD_Form As SAPbouiCOM.Form) GOD_Form.Title = strTitle dtTemp.ExecuteQuery(strSQL) objGrid.DataTable = dtTemp objGrid.Columns.Item(0).TitleObject.Caption = "SAP No." objGrid.Columns.Item(1).TitleObject.Caption = "Code" objGrid.Columns.Item(2).TitleObject.Caption = "Name" objGrid.Columns.Item(3).TitleObject.Caption = "Test Name" End Sub #End Region #Region "Get Form" Public Function GetForm(ByVal FormUID As String) As SAPbouiCOM.Form Return GOD_Main.GOD_Application.Forms.Item(FormUID) End Function #End Region #Region "Item Event" Public Sub ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) BubbleEvent = True If (pVal.FormTypeEx = "CFLHeader" Or pVal.FormTypeEx = "CFLDetail") Then 'Or pVal.FormTypeEx = "CFL_FLD_FTYPE_HDR" Or pVal.FormTypeEx = "CFL_FLD_CODE_HDR") Then If pVal.Before_Action = True Then If pVal.ItemUID = "mtchoose" Then If pVal.EventType = SAPbouiCOM.BoEventTypes.et_CLICK Then oForm = GetForm(pVal.FormUID) oItem = CType(oForm.Items.Item(pVal.ItemUID), SAPbouiCOM.Item) GOD_Matrix = CType(oItem.Specific, SAPbouiCOM.Grid) For i As Integer = 1 To GOD_Matrix.Rows.Count - 1 If GOD_Matrix.Rows.IsSelected(i) = True Then If pVal.Row > 0 Then GOD_Matrix.Rows.SelectedRows.Add(pVal.Row) End If End If Next End If If pVal.EventType = SAPbouiCOM.BoEventTypes.et_DOUBLE_CLICK Then oForm = GetForm(pVal.FormUID) referencedFormUID = oForm.Items.Item("6").Specific.value oItem = CType(oForm.Items.Item(pVal.ItemUID), SAPbouiCOM.Item) GOD_Matrix = CType(oItem.Specific, SAPbouiCOM.Grid) GOD_Main.strColSelectedinCFL = pVal.ColUID If pVal.Row > 0 Then GOD_Matrix.Rows.SelectedRows.Add(pVal.Row) LoadCFLvalues(pVal) End If End If End If End If End If If pVal.FormTypeEx = "CFLHeader" And pVal.BeforeAction = False And pVal.ItemUID = "btnNew" And pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED Then oForm = GetForm(pVal.FormUID) If oForm.Title = "List Of Clients" Then GOD_Main.GOD_Application.ActivateMenuItem("2561") oForm.Close() Dim GOD_OMQL_ItemForm As SAPbouiCOM.Form GOD_OMQL_ItemForm = GOD_Main.GOD_Application.Forms.GetFormByTypeAndCount("134", pVal.FormTypeCount) GOD_OMQL_ItemForm.Mode = SAPbouiCOM.BoFormMode.fm_ADD_MODE ElseIf oForm.Title = "List Of Matching Numbers." Then Dim GOD_OMQL_RecMenu As SAPbobsCOM.Recordset GOD_OMQL_RecMenu = GOD_Main.GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset) GOD_OMQL_RecMenu.DoQuery("SELECT MenuUid FROM (SELECT (RANK() OVER (ORDER BY TableName)) + 51200 AS MenuUid, TableName, Descr FROM OUTB WHERE ObjectType = 0) T0 WHERE TableName = 'GOD_OMAT'") GOD_Main.GOD_Application.ActivateMenuItem(GOD_OMQL_RecMenu.Fields.Item("MenuUid").Value) oForm.Close() End If End If If pVal.FormTypeEx = "CFLDetail" And pVal.BeforeAction = False And pVal.ItemUID = "btnNew" And pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED Then oForm = GetForm(pVal.FormUID) If oForm.Title = "List Of Items" Then GOD_Main.GOD_Application.ActivateMenuItem("3073") oForm.Close() Dim GOD_OMQL_ItemForm As SAPbouiCOM.Form GOD_OMQL_ItemForm = GOD_Main.GOD_Application.Forms.GetFormByTypeAndCount("150", pVal.FormTypeCount) GOD_OMQL_ItemForm.Mode = SAPbouiCOM.BoFormMode.fm_ADD_MODE ElseIf oForm.Title = "List Of Matching Numbers." Then Dim GOD_OMQL_RecMenu As SAPbobsCOM.Recordset GOD_OMQL_RecMenu = GOD_Main.GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset) GOD_OMQL_RecMenu.DoQuery("SELECT MenuUid FROM (SELECT (RANK() OVER (ORDER BY TableName)) + 51200 AS MenuUid, TableName, Descr FROM OUTB WHERE ObjectType = 0) T0 WHERE TableName = 'GOD_OMAT'") GOD_Main.GOD_Application.ActivateMenuItem(GOD_OMQL_RecMenu.Fields.Item("MenuUid").Value) oForm.Close() End If End If If pVal.ItemUID = "btnChoose" And pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED Then oForm = GetForm(pVal.FormUID) referencedFormUID = oForm.Items.Item("6").Specific.value LoadCFLvalues(pVal) End If If pVal.BeforeAction = False Then If pVal.EventType = SAPbouiCOM.BoEventTypes.et_KEY_DOWN Then 'For selecting the specific row according to search Try oForm = GetForm(pVal.FormUID) Dim objGrid As SAPbouiCOM.Grid Dim oedit As SAPbouiCOM.EditText If pVal.ItemUID = "etFind" Then If Not (pVal.CharPressed = "13" Or pVal.CharPressed = "40" Or pVal.CharPressed = "38") Then Dim i, j As Integer Dim strItem As String objGrid = oForm.Items.Item("mtchoose").Specific oedit = oForm.Items.Item("etFind").Specific For intColSel = 0 To objGrid.Columns.Count - 1 If objGrid.Columns.Item(intColSel).TitleObject.Caption = GOD_Main.strColSelectedinCFL Then Exit For End If Next For i = 0 To objGrid.DataTable.Rows.Count - 1 strItem = "" If intColSel = 0 Then strItem = objGrid.DataTable.GetValue(1, i) Else strItem = objGrid.DataTable.GetValue(intColSel, i) End If If (oedit.String.Length = 0) Then Exit For End If For j = 1 To oedit.String.Length If oedit.String.Length <= strItem.Length Then If strItem.Substring(0, j).ToUpper = oedit.String.ToUpper Then objGrid.Rows.SelectedRows.Add(i) Exit Try End If End If Next Next intColSel = 0 End If End If Catch ex As Exception MessageBox.Show(ex.Message) End Try Try oForm = GetForm(pVal.FormUID) oItem = oForm.Items.Item("mtchoose") GOD_Matrix = oForm.Items.Item("mtchoose").Specific If (pVal.CharPressed = 40) Then Dim currentRow As Integer For intLoop As Integer = 0 To GOD_Matrix.DataTable.Rows.Count - 1 If (GOD_Matrix.Rows.IsSelected(intLoop) = True) Then currentRow = intLoop Exit For End If Next Dim iRowcount As Integer = GOD_Matrix.Rows.Count If currentRow < iRowcount - 1 Then GOD_Matrix.Columns.Item("RowsHeader").Click(currentRow + 1, False) End If End If If (pVal.CharPressed = 38) Then Dim currentRow As Integer For intLoop As Integer = 0 To GOD_Matrix.DataTable.Rows.Count - 1 If (GOD_Matrix.Rows.IsSelected(intLoop) = True) Then currentRow = intLoop Exit For End If Next Dim iRowcount As Integer = GOD_Matrix.Rows.Count If currentRow > 0 Then GOD_Matrix.Columns.Item("RowsHeader").Click(currentRow - 1, False) End If End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End If End If End Sub #End Region End Class
Kindly Find attached “Solution Explorer” Structure for you reference.
I will Upgrade this Blog with Complex Form Application Also.
Revert For Any Clarification.
Thanks and Regards,
Mahendrakumar
New NetWeaver Information at SAP.com
Very Helpfull