cancel
Showing results for 
Search instead for 
Did you mean: 

child value is not updated?

Former Member
0 Kudos

Private Sub SBO_Application_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.ItemEvent

Dim i As Integer

Dim sumdepth As Decimal = 0

Dim oForm As SAPbouiCOM.Form

Dim Matrix As SAPbouiCOM.Matrix

oForm = SBO_Application.Forms.Item(FormUID)

Select Case pVal.EventType

Case SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED

'//************************************************************

'// Check if the event was raised by one of the Folder items

'// and change the form's pane level

'//************************************************************

Case SAPbouiCOM.BoEventTypes.et_CLICK

If pVal.ItemUID = "1" And pVal.BeforeAction = True Then

If oForm.Mode = SAPbouiCOM.BoFormMode.fm_ADD_MODE Or oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE Then

'If Validation() = False Then

If oForm.Items.Item("OrdrVal").Specific().Value = "" Then

BubbleEvent = False

'SBO_Application.MessageBox(" Please Enter The Order No ")

SBO_Application.StatusBar.SetText("Enter The Order No- 3029 Item Is Not Selectable ", SAPbouiCOM.BoMessageTime.bmt_Long, SAPbouiCOM.BoStatusBarMessageType.smt_Error)

oForm.Items.Item("OrdrVal").Click(SAPbouiCOM.BoCellClickType.ct_Regular)

Exit Sub

End If

If oForm.Items.Item("LocVal").Specific().Value = "" Then

BubbleEvent = False

' SBO_Application.MessageBox(" Please Enter The Location ")

SBO_Application.StatusBar.SetText("Enter The Location - 3029 Item Is Not Selectable ", SAPbouiCOM.BoMessageTime.bmt_Long, SAPbouiCOM.BoStatusBarMessageType.smt_Error)

oForm.Items.Item("LocVal").Click(SAPbouiCOM.BoCellClickType.ct_Regular)

Exit Sub

End If

If oForm.Items.Item("SupVal").Specific().Value = "" Then

BubbleEvent = False

' SBO_Application.MessageBox(" Please Enter The Location ")

SBO_Application.StatusBar.SetText("Enter The Supervisor - 3029 Item Is Not Selectable ", SAPbouiCOM.BoMessageTime.bmt_Long, SAPbouiCOM.BoStatusBarMessageType.smt_Error)

oForm.Items.Item("SupVal").Click(SAPbouiCOM.BoCellClickType.ct_Regular)

Exit Sub

End If

Matrix = oForm.Items.Item("Matrix1").Specific

If Matrix.Columns.Item("Depth").Cells.Item(1).Specific.Value = "" Then

BubbleEvent = False

' SBO_Application.MessageBox(" Please Enter The Location ")

SBO_Application.StatusBar.SetText("Enter The Depth - 3029 Item Is Not Selectable ", SAPbouiCOM.BoMessageTime.bmt_Long, SAPbouiCOM.BoStatusBarMessageType.smt_Error)

' oForm.Items.Item("Depth").Click(SAPbouiCOM.BoCellClickType.ct_Regular)

Exit Sub

End If

'Dim sSQL As String

'Dim logno As Integer

''sSQL = "SELECT COUNT(DocEntry)AS count FROM [@OOBR]"

'sSQL = "SELECT Max(DocEntry)AS count FROM [@OOBR]"

'oLineRec = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)

'oLineRec.DoQuery(sSQL)

'logno = CInt(oLineRec.Fields.Item(0).Value) + 1

'oForm.Items.Item("LogVal").Specific().Value = logno

End If

End If

End Select

If pVal.EventType = SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST Then

Dim oCFLEvento As SAPbouiCOM.IChooseFromListEvent

oCFLEvento = pVal

Dim sCFL_ID As String

sCFL_ID = oCFLEvento.ChooseFromListUID

Dim oCFL As SAPbouiCOM.ChooseFromList

oCFL = oForm.ChooseFromLists.Item(sCFL_ID)

'SBO_Application.MessageBox(oCFL)

If oCFLEvento.BeforeAction = False Then

Dim oDataTable As SAPbouiCOM.DataTable

oDataTable = oCFLEvento.SelectedObjects

ShowValue(pVal, oDataTable, oForm)

End If

End If

Matrix = oForm.Items.Item("Matrix1").Specific

If ((pVal.ItemUID = "Matrix1") And (pVal.Row = Matrix.RowCount) And (pVal.EventType = SAPbouiCOM.BoEventTypes.et_KEY_DOWN)) Then

Matrix.AddRow(1, -1)

Matrix.Columns.Item("#").Cells.Item(Matrix.RowCount).Specific.Value = Matrix.RowCount

End If

If ((pVal.FormUID = "SM_OBRFM") And (pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED) Or (pVal.EventType = SAPbouiCOM.BoEventTypes.et_KEY_DOWN)) Then

For i = 1 To Matrix.RowCount

sumdepth += Matrix.Columns.Item("Depth").Cells.Item(i).Specific.Value

oForm.Items.Item("DepthVal").Specific().value = sumdepth

Dim oDocRec As SAPbobsCOM.Recordset

Dim sSQL As String

If oDocRec.RecordCount > 0 Then

sSQL = ""

Dim UpdateRec As SAPbobsCOM.Recordset

UpdateRec = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)

UpdateRec.DoQuery(sSQL)

End If

Next

End If

If (FormUID = "SM_OBRFM") And (pVal.EventType = SAPbouiCOM.BoEventTypes.et_FORM_UNLOAD) Then

Windows.Forms.Application.Exit()

End If

End Sub

Private Sub SalesOrdrCFL(ByVal oForm As SAPbouiCOM.Form)

Try

Dim oCFLs As SAPbouiCOM.ChooseFromListCollection

'Dim oCons As SAPbouiCOM.Conditions

'Dim oCon As SAPbouiCOM.Condition

oCFLs = oForm.ChooseFromLists

Dim oCFL As SAPbouiCOM.ChooseFromList

Dim oCFLCreationParams As SAPbouiCOM.ChooseFromListCreationParams

oCFLCreationParams = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams)

' Adding 2 CFL, one for the button and one for the edit text.

oCFLCreationParams.MultiSelection = False

oCFLCreationParams.ObjectType = "17"

oCFLCreationParams.UniqueID = "CFL1"

oCFL = oCFLs.Add(oCFLCreationParams)

oCFLCreationParams.UniqueID = "CFL2"

oCFL = oCFLs.Add(oCFLCreationParams)

Catch

MsgBox(Err.Description)

End Try

End Sub

error data already exist in child table

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

If ur dealing with a UDO this error pops up.. i use the folowing code to overcome this.

Case SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED
                    If pVal.FormMode = 2 And pVal.ItemUID = "1" Then 'In UPDATE Mode
                        strDocNum = objForm.Items.Item("txtCode").Specific.String
                        objMatrix = objForm.Items.Item("matMand").Specific
                        objForm.Freeze(True)
                        UpdateMatrixRowsDel(objForm)
                        objMatrix.FlushToDataSource()
                        For Count = 1 To objMatrix.RowCount
                            'oDataSrc.SetValue("LineId", Count - 1, oDataSrc.GetValue("DocEntry", Count - 1))
                        Next
                        objMatrix.LoadFromDataSource()
                        objForm.Freeze(False)
                    End If

            End Select

and the following is the code for the procedure updateMatrixRowsDel

Private Sub UpdateMatrixRowsDel(ByVal objForm As SAPbouiCOM.Form)
        Dim oUserTable As SAPbobsCOM.UserTable = Nothing
        Try
            oDataSrc = objForm.DataSources.DBDataSources.Item("@EMR_MAND_DET")
            oDataSrc.Clear()
            oDataSrc.Query()

            objMatrix = objForm.Items.Item("matMand").Specific
            objMatrix.FlushToDataSource()
            oUserTable = objSBOAPI.oCompany.UserTables.Item("EMR_MAND_DET")
            Dim strDocEntry As String = ""
            If objMatrix.RowCount > 0 Then
                '  MsgBox(objMatrix.RowCount)
                If oDataSrc.GetValue("U_ItemUID", objMatrix.RowCount - 1) = "" Then
                    If blnMenuDel = True Then
                        objMatrix.DeleteRow(objMatrix.RowCount - 1)
                    Else
                        objMatrix.DeleteRow(objMatrix.RowCount)
                    End If
                    blnMenuDel = False
                    objMatrix.FlushToDataSource()
                End If
                Dim i As Integer
                i = 1
                For Count = 0 To oDataSrc.Size - 1
                    If oUserTable.GetByKey(oDataSrc.GetValue("Code", Count)) Then
                        strDocEntry = oDataSrc.GetValue("Code", Count)
                    End If
                Next
                oDataSrc.Query()
                oDataSrc.Clear()
            End If
            strSQL = "Delete FROM [@EMR_MAND_DET] WHERE Code = '" & strDocEntry & "'"
            objRecSet = objSBOAPI.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
            objRecSet.DoQuery(strSQL)
            blnFrmUpdate = True
            'objMatrix.AddRow()
        Catch ex As Exception
            Throw ex
        Finally
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserTable)
            oUserTable = Nothing
            GC.WaitForPendingFinalizers()
            GC.Collect()
        End Try
    End Sub

Hope this Helps u..

Regards,

Vasu Natari.

Former Member
0 Kudos

thanks for reply.....

please help me its very urgent

Private Sub SBO_Application_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.ItemEvent

Dim oForm As SAPbouiCOM.Form

oForm = SBO_Application.Forms.Item(FormUID)

'Dim oMatrix As SAPbouiCOM.Matrix

'Dim count As Integer

'Dim oDataSrc As SAPbouiCOM.DataSource

Select Case pVal.EventType

Case SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED

If pVal.FormMode = 2 And pVal.ItemUID = "1" Then

'In UPDATE Mode

' strDocNum = oForm.Items.Item("txtCode").Specific.String

If oForm.Mode = SAPbouiCOM.BoFormMode.fm_ADD_MODE Or oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE Then

oMatrix = oForm.Items.Item("Matrix1").Specific

oForm.Freeze(True)

' UpdateMatrixRowsDel(oForm)

oMatrix.FlushToDataSource()

For count = 1 To oMatrix.RowCount

oDataSrc.SetValue("LineId", count - 1, oDataSrc.GetValue("DocEntry", count - 1))

Next

oMatrix.LoadFromDataSource()

oForm.Freeze(False)

End If

End If

'//************************************************************

'// Check if the event was raised by one of the Folder items

'// and change the form's pane level

'//************************************************************

Case SAPbouiCOM.BoEventTypes.et_CLICK

If pVal.ItemUID = "1" And pVal.BeforeAction = True Then

If oForm.Mode = SAPbouiCOM.BoFormMode.fm_ADD_MODE Or oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE Then

'If Validation() = False Then

If oForm.Items.Item("OrdrVal").Specific().Value = "" Then

BubbleEvent = False

' SBO_Application.MessageBox(" Please Enter The Order No ")

SBO_Application.StatusBar.SetText("Enter The Order No - 3029 Item Is Not Selectable ", SAPbouiCOM.BoMessageTime.bmt_Long, SAPbouiCOM.BoStatusBarMessageType.smt_Error)

oForm.Items.Item("OrdrVal").Click(SAPbouiCOM.BoCellClickType.ct_Regular)

Exit Sub

End If

If oForm.Items.Item("SupVal").Specific().Value = "" Then

BubbleEvent = False

' SBO_Application.MessageBox(" Please Enter The Order No ")

SBO_Application.StatusBar.SetText("Enter The Supervisor - 3029 Item Is Not Selectable ", SAPbouiCOM.BoMessageTime.bmt_Long, SAPbouiCOM.BoStatusBarMessageType.smt_Error)

oForm.Items.Item("SupVal").Click(SAPbouiCOM.BoCellClickType.ct_Regular)

Exit Sub

End If

End If

End If

End Select

If pVal.EventType = SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST Then

Dim oCFLEvento As SAPbouiCOM.IChooseFromListEvent

oCFLEvento = pVal

Dim sCFL_ID As String

sCFL_ID = oCFLEvento.ChooseFromListUID

Dim oCFL As SAPbouiCOM.ChooseFromList

oCFL = oForm.ChooseFromLists.Item(sCFL_ID)

If oCFLEvento.BeforeAction = False Then

Dim oDataTable As SAPbouiCOM.DataTable

oDataTable = oCFLEvento.SelectedObjects

''//Function to show values in EditBoxes and Matrix after pressing TAB button.

ShowAllData(pVal, oDataTable, oForm)

End If

End If

Dim Matrix As SAPbouiCOM.Matrix

Matrix = oForm.Items.Item("Matrix1").Specific

'If ((pVal.ItemUID = "Matrix1") And (pVal.Row = Matrix.RowCount) And (pVal.EventType = SAPbouiCOM.BoEventTypes.et_KEY_DOWN)) Then

' ' Matrix.AddRow(1, -1)

' Matrix.AddRow(1, -1)

' Matrix.Columns.Item("#").Cells.Item(Matrix.RowCount).Specific.Value = Matrix.RowCount

'End If

If (FormUID = "SM_DPSFM") And (pVal.EventType = SAPbouiCOM.BoEventTypes.et_FORM_UNLOAD) Then

Windows.Forms.Application.Exit()

End If

'ShowTripTotal(pVal, oForm)

Dim i As Integer

Dim tripsm As Integer = 0

Dim triplat As Integer = 0

Dim tripbax As Integer = 0

Dim tripitm4 As Integer = 0

Dim tripitm5 As Integer = 0

If ((pVal.FormUID = "SM_DPSFM") And (pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED) Or (pVal.EventType = SAPbouiCOM.BoEventTypes.et_KEY_DOWN)) Then

For i = 1 To Matrix.RowCount

tripsm += Matrix.Columns.Item(3).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip1Val").Specific().value = tripsm

triplat += Matrix.Columns.Item(4).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip2Val").Specific().value = triplat

tripbax += Matrix.Columns.Item(5).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip3Val").Specific().value = tripbax

tripitm4 += Matrix.Columns.Item(6).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip4Val").Specific().value = tripitm4

tripitm5 += Matrix.Columns.Item(7).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip5Val").Specific().value = tripitm5

Next

End If

End Sub

please where code changes required? plz help me

Edited by: Animesh Sinha on Sep 10, 2008 1:02 PM

Former Member
0 Kudos

I already sent u the code.. did u try it..?? what was the problem..??

Vasu Natari

Former Member
0 Kudos

same error is showing.

do you have e-mail address that i send this cocde...... please help me

Former Member
0 Kudos

Plz post the above code in readable format cause its a problem to check the code like this Please make use of the HTML tags provided.

Dont worry it will be solved.

PLz post he code in readable format so that i can point out where we need to change. Plz understand as its time consuming to check the code like this.

Vasu Natari.

Former Member
0 Kudos

Imports System

Imports System.web

Imports System.Windows.Forms.Form

Public Class SM_DPSFM

'//*****************************************************************

'// At the begining of every UI API project we should first

'// establish connection with a running SBO application.

'*******************************************************************

Private WithEvents SBO_Application As SAPbouiCOM.Application

Private oForm As SAPbouiCOM.Form

Dim oButton As SAPbouiCOM.Button

Dim oOptionBtn As SAPbouiCOM.OptionBtn

Dim oCheckBox As SAPbouiCOM.CheckBox

Dim oComboBox As SAPbouiCOM.ComboBox

Dim oItem As SAPbouiCOM.Item

Dim oStatic As SAPbouiCOM.StaticText

Dim oEdittext As SAPbouiCOM.EditText

Dim oEditItem As SAPbouiCOM.EditText

Private oMatrix As SAPbouiCOM.Matrix

Private Matrix2 As SAPbouiCOM.Matrix

Private oLink As SAPbouiCOM.LinkedButton

Private oColumns As SAPbouiCOM.Columns

Private oColumn As SAPbouiCOM.Column

Private sPath As String

Private oDBDataSource As SAPbouiCOM.DBDataSource

Private oCompany As SAPbobsCOM.Company

Private rs As SAPbobsCOM.Recordset

Private oLineRec As SAPbobsCOM.Recordset

Private rs1 As SAPbobsCOM.Recordset

'// declaring a User data source for the "Remarks" Column

Private oUserDataSource As SAPbouiCOM.UserDataSource

Public sErrMsg As String

Public lErrCode As Long

Public lRetCode As Long

Private Sub SetApplication()

'*******************************************************************

'// Use an SboGuiApi object to establish the connection

'// with the application and return an initialized appliction object

'*******************************************************************

Dim SboGuiApi As SAPbouiCOM.SboGuiApi

Dim sConnectionString As String

SboGuiApi = New SAPbouiCOM.SboGuiApi

'// by following the steps specified above, the following

'// statment should be suficient for either development or run mode

sConnectionString = Environment.GetCommandLineArgs.GetValue(1)

'// connect to a running SBO Application

SboGuiApi.Connect(sConnectionString)

'// get an initialized application object

SBO_Application = SboGuiApi.GetApplication()

End Sub

Private Sub AddMenuItems()

'//******************************************************************

'// Let's add a pop-up menu item and 2 sub menu items

'//******************************************************************

Dim oMenus As SAPbouiCOM.Menus '// use the following object to add menu

Dim oMenuItem As SAPbouiCOM.MenuItem

'// Get the menus collection from the application

oMenus = SBO_Application.Menus

Dim oCreationPackage As SAPbouiCOM.MenuCreationParams

oCreationPackage = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_MenuCreationParams)

oMenuItem = SBO_Application.Menus.Item("43520") 'moudles'

sPath = System.Windows.Forms.Application.StartupPath()

sPath = sPath.Remove(sPath.Length - 3, 3)

'' Creation parameters

oCreationPackage.Type = SAPbouiCOM.BoMenuType.mt_POPUP

oCreationPackage.UniqueID = "SM_DMID"

oCreationPackage.String = "Dealer Mgmt."

'oCreationPackage.Image = sPath & "dealermg.gif"

oCreationPackage.Image = IO.Directory.GetParent(Application.StartupPath).ToString & "\CFL.BMP"

'' we add our menu at the buttom of the list

oCreationPackage.Position = oMenuItem.SubMenus.Count + 1

oMenus = oMenuItem.SubMenus

Try ' If the menu already exists this code will fail

oMenus.AddEx(oCreationPackage)

'' Get the menu collection of the newly added pop-up item

oMenuItem = SBO_Application.Menus.Item("SM_DMID")

oMenus = oMenuItem.SubMenus

'' Add Sub Menu Items

oCreationPackage.Type = SAPbouiCOM.BoMenuType.mt_STRING

oCreationPackage.UniqueID = "SM_DPSMENU" ''Unique ID of 1st Sub Menu item

oCreationPackage.String = "Dumper Performance Sheet"

oMenus.AddEx(oCreationPackage)

Catch er As Exception ' Error Handling

SBO_Application.MessageBox(er.Message)

End Try

End Sub

'Private Sub AddMenuItems()

' '//******************************************************************

' '// Let's add a pop-up menu item and 2 sub menu items

' '//******************************************************************

' Dim oMenus As SAPbouiCOM.Menus '// use the following object to add menu

' Dim oMenuItem As SAPbouiCOM.MenuItem

' '// Get the menus collection from the application

' oMenus = SBO_Application.Menus

' Dim oCreationPackage As SAPbouiCOM.MenuCreationParams

' oMenuItem = SBO_Application.Menus.Item("SM_DMID")

' sPath = System.Windows.Forms.Application.StartupPath()

' sPath = sPath.Remove(sPath.Length - 3, 3)

' oMenus = oMenuItem.SubMenus

' Try ' If the menu already exists this code will fail

' '' Add Sub Menu Items

' oCreationPackage = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_MenuCreationParams)

' oCreationPackage.UniqueID = "SM_DPSMENU"

' oCreationPackage.String = "Dumper Performance Sheet"

' oCreationPackage.Position = 1

' oCreationPackage.Type = SAPbouiCOM.BoMenuType.mt_STRING

' oMenuItem = oMenus.AddEx(oCreationPackage)

' Catch er As Exception ' Error Handling

' SBO_Application.MessageBox(er.Message)

' End Try

'End Sub

Private Sub SBO_Application_MenuEvent(ByRef pVal As SAPbouiCOM.MenuEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.MenuEvent

If pVal.BeforeAction = False Then

Select Case pVal.MenuUID

Case "SM_DPSMENU"

diplay_DPSform() ''Function to display 1st Sub Menu item (D.P.S.) form.

End Select

End If

End Sub

''/////////////////////////////////////////////////////////////

'Function to draw the Dumper Performance Sheet.

'////////////////////////////////////////////////////////////

Private Sub diplay_DPSform()

Dim oForm As SAPbouiCOM.Form

Dim val1 As String

Try

oForm = SBO_Application.Forms.Item("SM_DPSFM")

SBO_Application.MessageBox("Form Already Open")

Catch ex As Exception

Dim fcp As SAPbouiCOM.FormCreationParams

fcp = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams)

fcp.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Fixed

fcp.FormType = "SM_DPSFM"

fcp.ObjectType = "SM_DPS"

fcp.UniqueID = "SM_DPSFM"

fcp.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Sizable

oForm = SBO_Application.Forms.AddEx(fcp)

oForm.AutoManaged = False

SalesOrdrCFL(oForm) ''Function to see the list of Sales Orders.

'OBRCFL(oForm)

itemlist(oForm)

DrawDPSForm(oForm)

''Function to Draw the form for 1st Sub Menu

End Try

oForm.DataBrowser.BrowseBy = "DpsVal"

oForm.Visible = True

End Sub

''Function to Draw the form for Sub Menu

Private Sub DrawDPSForm(ByVal oForm As SAPbouiCOM.Form)

Dim oItem As SAPbouiCOM.Item

Dim oButton As SAPbouiCOM.Button

Dim oEdittext As SAPbouiCOM.EditText

Dim val As String

''Form specifications

oForm.Title = "Dumper Performance Sheet"

oForm.Left = 320 '340

oForm.ClientWidth = 550 '350

oForm.Top = 100

oForm.ClientHeight = 422 '393

'Adding a datasource to the form

oDBDataSource = oForm.DataSources.DBDataSources.Add("@ODPS")

''Order Text

oItem = oForm.Items.Add("OrdrTxt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 5

oItem.Width = 100

oItem.Top = 10

' oItem.AffectsFormMode = False

oItem.LinkTo = "OrdrVal"

oStatic = oItem.Specific

oStatic.Caption = "Order No."

''Order Date Text

oItem = oForm.Items.Add("OrdrdtTxt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 5

oItem.Width = 100

oItem.Top = 27

oItem.AffectsFormMode = False

oItem.LinkTo = "OrdrdtVal"

oStatic = oItem.Specific

oStatic.Caption = "Order Date"

''Customer Text Box

oItem = oForm.Items.Add("CustTxt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 5

oItem.Width = 100

oItem.Top = 44

oItem.AffectsFormMode = False

oItem.LinkTo = "CustVal"

oStatic = oItem.Specific

oStatic.Caption = "Customer Name"

''DPS Text

oItem = oForm.Items.Add("DpsTxt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 290 '271

oItem.Width = 50 '100

oItem.Top = 10

oItem.AffectsFormMode = False

oItem.LinkTo = "DpsVal"

oStatic = oItem.Specific

oStatic.Caption = "DPS No."

''DPS Date

oItem = oForm.Items.Add("DateTxt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 290

oItem.Width = 50 '100

oItem.Top = 27

oItem.AffectsFormMode = False

oItem.LinkTo = "DateVal"

oStatic = oItem.Specific

oStatic.Caption = "DPS Date"

''Log No. Text

oItem = oForm.Items.Add("LogTxt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 5 '290

oItem.Width = 100 '50 '100

oItem.Top = 61

oItem.AffectsFormMode = False

oItem.LinkTo = "LogVal"

oStatic = oItem.Specific

oStatic.Caption = "Log No."

''SuperVisor Text

oItem = oForm.Items.Add("SupTxt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 5

oItem.Width = 100

oItem.Top = 300

oItem.AffectsFormMode = False

oItem.LinkTo = "SupVal"

oStatic = oItem.Specific

oStatic.Caption = "Supervisor"

''Total Trip for S/M Text

oItem = oForm.Items.Add("Trip1Txt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 290

oItem.Width = 140 '100

oItem.Top = 300

oItem.AffectsFormMode = False

oItem.LinkTo = "Trip1Val"

oStatic = oItem.Specific

oStatic.Caption = "Total Trips Made For S/M"

''Remarks Text

oItem = oForm.Items.Add("RmksTxt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 5

oItem.Width = 50 '100

oItem.Top = 320

oItem.AffectsFormMode = False

oItem.LinkTo = "RmksVal"

oStatic = oItem.Specific

oStatic.Caption = "Remarks"

''Total Trip for LATERITE Text

oItem = oForm.Items.Add("Trip2Txt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 290

oItem.Width = 140 '100

oItem.Top = 320

oItem.AffectsFormMode = False

oItem.LinkTo = "Trip2Val"

oStatic = oItem.Specific

oStatic.Caption = "Total Trips Made For LAT"

''Total Trip for BAUXITE Text

oItem = oForm.Items.Add("Trip3Txt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 290

oItem.Width = 140 '100

oItem.Top = 340

oItem.AffectsFormMode = False

oItem.LinkTo = "Trip3Val"

oStatic = oItem.Specific

oStatic.Caption = "Total Trips Made For BAUX "

''Total Trip for Item4 Text

oItem = oForm.Items.Add("Trip4Txt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 290

oItem.Width = 140 '100

oItem.Top = 360

oItem.AffectsFormMode = False

oItem.LinkTo = "Trip4Val"

oStatic = oItem.Specific

oStatic.Caption = "Total Trips Made For Itm4"

''Total Trip for Item5 Text

oItem = oForm.Items.Add("Trip5Txt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

oItem.Left = 290

oItem.Width = 140 '100

oItem.Top = 380

oItem.AffectsFormMode = False

oItem.LinkTo = "Trip5Val"

oStatic = oItem.Specific

oStatic.Caption = "Total Trips Made For Itm5"

''///////////////////////////////////////

'oItem = oForm.Items.Add("Txt", SAPbouiCOM.BoFormItemTypes.it_STATIC)

'oItem.Left = 106

'oItem.Width = 4

'oItem.Top = 10

'' oItem.AffectsFormMode = False

''oItem.LinkTo = "OrdrVal" '"Vndval"

'oStatic = oItem.Specific

''oStatic.Caption = "Order No."

'oLink = oItem.ExtendedObject '// new property

'oLink.LinkedObject = SAPbouiCOM.BoLinkedObject.lf_Order

''//////////////////////////////////

Dim oEditlogdt As SAPbouiCOM.EditText

' Dim oEdittype As SAPbouiCOM.EditText

'Dim oEditloc As SAPbouiCOM.EditText

Dim oEditordr As SAPbouiCOM.EditText

Dim oEditorddt As SAPbouiCOM.EditText

Dim oEditcust As SAPbouiCOM.EditText

Dim oEditdep As SAPbouiCOM.EditText

Dim oEditsup As SAPbouiCOM.EditText

Dim oEditrmrk As SAPbouiCOM.EditText

Dim val1 As String

Dim sSQL As String

Dim logno As Integer

sSQL = "SELECT Max(DocEntry)AS count FROM [@ODPS]"

oLineRec = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)

oLineRec.DoQuery(sSQL)

logno = CInt(oLineRec.Fields.Item(0).Value) + 1

''DPS No. Edit Box

oItem = oForm.Items.Add("DpsVal", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oItem.Left = 376

oItem.Width = 160

oItem.Top = 10

oItem.AffectsFormMode = True

oItem.LinkTo = "DpsTxt"

oItem.Enabled = False

oEdittext = oItem.Specific

oEdittext.DataBind.SetBound(True, "@ODPS", "DocEntry")

oEdittext.Value = logno

''Order Edit Text Box

oItem = oForm.Items.Add("OrdrVal", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oItem.Left = 110

oItem.Width = 160

oItem.Top = 10

oItem.LinkTo = "OrdrTxt"

oItem.AffectsFormMode = True

oEditordr = oItem.Specific

'' Adding Choose From List

oEditordr.DataBind.SetBound(True, "@ODPS", "U_ordrno")

' Adding 2 Choose From List Object, ONE FOR EDIT TEXT AND ONE FOR BUTTON.

oEditordr.ChooseFromListUID = "CFL1"

''We set the alias only after the UID is set, the alias is the field in the database

''It compares the value in the edit text and narrows the CFL accrodingly

oEditordr.ChooseFromListAlias = "DocEntry" '"CardCode"

''Order Date Edit Box

oItem = oForm.Items.Add("OrdrdtVal", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oItem.Left = 110

oItem.Width = 160

oItem.Top = 27

oItem.AffectsFormMode = True

oItem.LinkTo = "OrdrdtTxt"

oItem.Enabled = False

oEditorddt = oItem.Specific

oEditorddt.DataBind.SetBound(True, "@ODPS", "U_ordrdt")

' oEditorddt.String = Format(DateTime.Today, "ddMMyy")

''Customer Edit Box

oItem = oForm.Items.Add("CustVal", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oItem.Left = 110

oItem.Width = 160

oItem.Top = 44

oItem.AffectsFormMode = True

oItem.LinkTo = "CustTxt"

oItem.Enabled = False

oEditcust = oItem.Specific

oEditcust.DataBind.SetBound(True, "@ODPS", "U_customer")

''DPS Date Edit Box

oItem = oForm.Items.Add("DateVal", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oItem.Left = 376

oItem.Width = 160

oItem.Top = 27

oItem.AffectsFormMode = True

oItem.LinkTo = "DateTxt"

oEditlogdt = oItem.Specific

oEditlogdt.DataBind.SetBound(True, "@ODPS", "U_dpsdt")

oEditlogdt.String = Format(DateTime.Today, "ddMMyy")

''Log No. Edit

oItem = oForm.Items.Add("LogVal", SAPbouiCOM.BoFormItemTypes.it_COMBO_BOX)

oItem.Left = 110

oItem.Width = 160

oItem.Top = 61

oItem.AffectsFormMode = True

oItem.LinkTo = "LogTxt"

oComboBox = oItem.Specific

AddLogCodeCombo(oForm, val1)

'AddLogCodeCombo(oComboBox)

oComboBox.DataBind.SetBound(True, "@ODPS", "U_logno")

'oComboBox.ValidValues.Add("", "")

'oComboBox.Select(0, SAPbouiCOM.BoSearchKey.psk_Index)

''Total Trip for S/M Edit Box

oItem = oForm.Items.Add("Trip1Val", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oItem.Left = 430 '376

oItem.Width = 105 '80

oItem.Top = 300

oItem.AffectsFormMode = True

oItem.LinkTo = "Trip1Txt"

oItem.Enabled = False

oEditdep = oItem.Specific

oEditdep.DataBind.SetBound(True, "@ODPS", "U_ttaltripsm")

''SuperVisor Edit Box

oItem = oForm.Items.Add("SupVal", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oItem.Left = 110

oItem.Width = 160

oItem.Top = 300

oItem.AffectsFormMode = True

oItem.LinkTo = "SupTxt"

oEditsup = oItem.Specific

oEditsup.DataBind.SetBound(True, "@ODPS", "U_suprvsr")

''Remarks Edit Box

oItem = oForm.Items.Add("RmksVal", SAPbouiCOM.BoFormItemTypes.it_EXTEDIT)

oItem.Left = 110

oItem.Width = 160

oItem.Top = 320

oItem.AffectsFormMode = True

oItem.LinkTo = "RmksTxt"

oEditrmrk = oItem.Specific

oEditrmrk.DataBind.SetBound(True, "@ODPS", "U_remark")

''Total Trip for Laterite Edit Box

oItem = oForm.Items.Add("Trip2Val", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oItem.Left = 430 '376

oItem.Width = 105 '80

oItem.Top = 320

oItem.AffectsFormMode = True

oItem.LinkTo = "Trip2Txt"

oItem.Enabled = False

oEditdep = oItem.Specific

oEditdep.DataBind.SetBound(True, "@ODPS", "U_ttaltriplat")

''Total Trip for Bauxite Edit Box

oItem = oForm.Items.Add("Trip3Val", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oItem.Left = 430 '376

oItem.Width = 105 '80

oItem.Top = 340

oItem.AffectsFormMode = True

oItem.LinkTo = "Trip3Txt"

oItem.Enabled = False

oEditdep = oItem.Specific

oEditdep.DataBind.SetBound(True, "@ODPS", "U_ttaltripbx")

''Total Trip for Item4 Edit Box

oItem = oForm.Items.Add("Trip4Val", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oItem.Left = 430 '376

oItem.Width = 105 '80

oItem.Top = 360

oItem.AffectsFormMode = True

oItem.LinkTo = "Trip4Txt"

oItem.Enabled = False

oEditdep = oItem.Specific

oEditdep.DataBind.SetBound(True, "@ODPS", "U_ttaltripitm4")

''Total Trip for Item 5 Edit Box

oItem = oForm.Items.Add("Trip5Val", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oItem.Left = 430 '376

oItem.Width = 105 '160

oItem.Top = 380

oItem.AffectsFormMode = True

oItem.LinkTo = "Trip5Txt"

oItem.Enabled = False

oEditdep = oItem.Specific

oEditdep.DataBind.SetBound(True, "@ODPS", "U_ttaltripitm5")

'//*****************************

'// Adding a OrderCFL button

'//*****************************

oItem = oForm.Items.Add("Button1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)

oItem.Left = 269 '271

oItem.Top = 8

oButton = oItem.Specific

oButton.Type = SAPbouiCOM.BoButtonTypes.bt_Image

oItem.Width = 20

oItem.Height = 20

oButton.Image = IO.Directory.GetParent(Application.StartupPath).ToString & "\CFL.BMP"

'SBO_Application.MessageBox(oButton.Image)

'oButton.Image = "C:\Documents and Settings\subratac\My Documents\Visual Studio 2005\Projects\TestAddonApplication\TestAddonApplication\bin\CFL.BMP"

'' Adding Choose From List Object FOR BUTTON.

oButton.ChooseFromListUID = "CFL2"

'Adding a datasource to the form

oDBDataSource = oForm.DataSources.DBDataSources.Add("@DPS1")

'//***************************

'// Adding a Matrix item

'//***************************

oItem = oForm.Items.Add("Matrix1", SAPbouiCOM.BoFormItemTypes.it_MATRIX)

oItem.Left = 5

oItem.Width = 550 '350

oItem.Top = 95

oItem.Height = 200 '150

oMatrix = oItem.Specific

oColumns = oMatrix.Columns

'//***********************************

'// Adding Culomn items to the matrix

'//***********************************

oColumn = oColumns.Add("#", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oColumn.TitleObject.Caption = "#"

oColumn.Width = 50

oColumn.Editable = False

'oColumn.DataBind.SetBound(True, "@DPS1", "U_holeno")

'// Add a column for Vehicle no.

'oColumn = oColumns.Add("Vhcleno", SAPbouiCOM.BoFormItemTypes.it_EDIT)

'oColumn.TitleObject.Caption = "Vehicle No."

'oColumn.Width = 80

'oColumn.Editable = True

oColumn = oColumns.Add("Vhcleno", SAPbouiCOM.BoFormItemTypes.it_LINKED_BUTTON)

oColumn.TitleObject.Caption = "Vehicle No."

oColumn.Width = 80

oColumn.Editable = True

oLink = oColumn.ExtendedObject

oLink.LinkedObject = SAPbouiCOM.BoLinkedObject.lf_Items

oColumn.DataBind.SetBound(True, "@DPS1", "U_vehcleno")

oColumn.ChooseFromListUID = "CFL5"

oColumn.ChooseFromListAlias = "ItemCode"

'// Add a column for vehicle name

oColumn = oColumns.Add("Vhclenm", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oColumn.TitleObject.Caption = "Vehicle Name"

oColumn.Width = 80

oColumn.Editable = True

oColumn.DataBind.SetBound(True, "@DPS1", "U_vehclenm")

'// Add a column for Trip S/M

oColumn = oColumns.Add("Trpsm", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oColumn.TitleObject.Caption = "Trip(S/M)"

oColumn.Width = 80

oColumn.Editable = True

oColumn.DataBind.SetBound(True, "@DPS1", "U_tripsm")

'// Add a column for Trip Laterite

oColumn = oColumns.Add("Trplat", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oColumn.TitleObject.Caption = "Trip(Laterite)"

oColumn.Width = 80

oColumn.Editable = True

oColumn.DataBind.SetBound(True, "@DPS1", "U_triplat")

'// Add a column for Trip Bauxite

oColumn = oColumns.Add("Trpbax", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oColumn.TitleObject.Caption = "Trip(Bauxite)"

oColumn.Width = 80

oColumn.Editable = True

oColumn.DataBind.SetBound(True, "@DPS1", "U_tripbx")

'// Add a column for Item 4

oColumn = oColumns.Add("Trpitm4", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oColumn.TitleObject.Caption = "Trip(Item 4)"

oColumn.Width = 80

oColumn.Editable = True

oColumn.DataBind.SetBound(True, "@DPS1", "U_tripitm4")

'// Add a column for Item 5

oColumn = oColumns.Add("Trpitm5", SAPbouiCOM.BoFormItemTypes.it_EDIT)

oColumn.TitleObject.Caption = "Trip(Item 5)"

oColumn.Width = 80

oColumn.Editable = True

oColumn.DataBind.SetBound(True, "@DPS1", "U_tripitm5")

''// Link the column to the Stock Transfer master data system form

'oLink = oColumn.ExtendedObject

'oLink.LinkedObject = SAPbouiCOM.BoLinkedObject.lf_StockTransfers

'//************************

'// Adding a OK button

'//************************

oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)

oItem.Left = 5

oItem.Width = 65

oItem.Top = 400 '372

oItem.Height = 20

oButton = oItem.Specific

'//************************

'// Adding a Cancel button

'//***********************

oItem = oForm.Items.Add("2", SAPbouiCOM.BoFormItemTypes.it_BUTTON)

oItem.Left = 75

oItem.Width = 65

oItem.Top = 400 '372

oItem.Height = 20

oButton = oItem.Specific

AddLogCodeCombo(oForm, val)

oForm.DataBrowser.BrowseBy = "DpsVal"

End Sub

Public Sub New()

MyBase.New()

Try

SetApplication()

' Set The Connection Context

If Not SetConnectionContext() = 0 Then

SBO_Application.MessageBox("Failed setting a connection to DI API")

End ' Terminating the Add-On Application

End If

If Not ConnectToCompany() = 0 Then

SBO_Application.MessageBox("Failed connecting to the company's Data Base")

End ' Terminating the Add-On Application

End If

'SBO_Application.MessageBox("DI Connected To: " & oCompany.CompanyName)

Catch

System.Windows.Forms.MessageBox.Show("SBO application not found")

End Try

AddMenuItems()

End Sub

Private Sub SBO_Application_AppEvent(ByVal EventType As SAPbouiCOM.BoAppEventTypes) Handles SBO_Application.AppEvent

Select Case EventType

Case SAPbouiCOM.BoAppEventTypes.aet_ShutDown

SBO_Application.MessageBox("A Shut Down Event has been caught" & _

Environment.NewLine() & "Terminating 'Complex Form' Add On...")

'//**************************************************************

'//

'// Take care of terminating your AddOn application

'//

'//**************************************************************

System.Windows.Forms.Application.Exit()

End Select

End Sub

Private Function SetConnectionContext() As Integer

Dim sCookie As String

Dim sConnectionContext As String

' Dim lRetCode As Integer

'// First initialize the Company object

oCompany = New SAPbobsCOM.Company

'// Acquire the connection context cookie from the DI API.

sCookie = oCompany.GetContextCookie

'// Retrieve the connection context string from the UI API using the

'// acquired cookie.

sConnectionContext = SBO_Application.Company.GetConnectionContext(sCookie)

'// before setting the SBO Login Context make sure the company is not

'// connected

If oCompany.Connected = True Then

oCompany.Disconnect()

End If

'// Set the connection context information to the DI API.

SetConnectionContext = oCompany.SetSboLoginContext(sConnectionContext)

End Function

Private Function ConnectToCompany() As Integer

'// Make sure you're not already connected.

If oCompany.Connected = True Then

oCompany.Disconnect()

End If

'// Establish the connection to the company database.

ConnectToCompany = oCompany.Connect

End Function

Private Sub SBO_Application_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.ItemEvent

Dim oForm As SAPbouiCOM.Form

oForm = SBO_Application.Forms.Item(FormUID)

Dim oMatrix As SAPbouiCOM.Matrix

Dim count As Integer

Dim oDataSrc As SAPbouiCOM.DataSource

Select Case pVal.EventType

Case SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED

'//************************************************************

'// Check if the event was raised by one of the Folder items

'// and change the form's pane level

'//************************************************************

Case SAPbouiCOM.BoEventTypes.et_CLICK

' If pVal.ItemUID = "1" And pVal.BeforeAction = True Then

'If oForm.Mode = SAPbouiCOM.BoFormMode.fm_ADD_MODE Or oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE Then

'If Validation() = False Then

'If oForm.Items.Item("OrdrVal").Specific().Value = "" Then

' BubbleEvent = False

' ' SBO_Application.MessageBox(" Please Enter The Order No ")

' SBO_Application.StatusBar.SetText("Enter The Order No - 3029 Item Is Not Selectable ", SAPbouiCOM.BoMessageTime.bmt_Long, SAPbouiCOM.BoStatusBarMessageType.smt_Error)

' oForm.Items.Item("OrdrVal").Click(SAPbouiCOM.BoCellClickType.ct_Regular)

' Exit Sub

'End If

'If oForm.Items.Item("SupVal").Specific().Value = "" Then

' BubbleEvent = False

' ' SBO_Application.MessageBox(" Please Enter The Order No ")

' SBO_Application.StatusBar.SetText("Enter The Supervisor - 3029 Item Is Not Selectable ", SAPbouiCOM.BoMessageTime.bmt_Long, SAPbouiCOM.BoStatusBarMessageType.smt_Error)

' oForm.Items.Item("SupVal").Click(SAPbouiCOM.BoCellClickType.ct_Regular)

' Exit Sub

'End If

If pVal.FormMode = 2 And pVal.ItemUID = "1" And pVal.BeforeAction = False Then

'In UPDATE Mode

' strDocNum = oForm.Items.Item("txtCode").Specific.String

' If oForm.Mode = SAPbouiCOM.BoFormMode.fm_ADD_MODE And oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE Then

Dim strdocnum As String

strdocnum = oForm.Items.Item("DpsVal").Specific.String

oMatrix = oForm.Items.Item("Matrix1").Specific

oDataSrc = oForm.DataSources.DBDataSources.Add("@DPS1")

oForm.Freeze(True)

UpdateMatrixRowsDel(oForm)

oMatrix.FlushToDataSource()

For count = 1 To oMatrix.RowCount

oDataSrc.SetValue("LineId", count - 1, oDataSrc.GetValue("DocEntry", count - 1))

Next

oMatrix.LoadFromDataSource()

oForm.Freeze(False)

End If

' End If

'End If

'End If

End Select

If pVal.EventType = SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST Then

Dim oCFLEvento As SAPbouiCOM.IChooseFromListEvent

oCFLEvento = pVal

Dim sCFL_ID As String

sCFL_ID = oCFLEvento.ChooseFromListUID

Dim oCFL As SAPbouiCOM.ChooseFromList

oCFL = oForm.ChooseFromLists.Item(sCFL_ID)

If oCFLEvento.BeforeAction = False Then

Dim oDataTable As SAPbouiCOM.DataTable

oDataTable = oCFLEvento.SelectedObjects

''//Function to show values in EditBoxes and Matrix after pressing TAB button.

ShowAllData(pVal, oDataTable, oForm)

End If

End If

Dim Matrix As SAPbouiCOM.Matrix

Matrix = oForm.Items.Item("Matrix1").Specific

'If ((pVal.ItemUID = "Matrix1") And (pVal.Row = Matrix.RowCount) And (pVal.EventType = SAPbouiCOM.BoEventTypes.et_KEY_DOWN)) Then

' ' Matrix.AddRow(1, -1)

' Matrix.AddRow(1, -1)

' Matrix.Columns.Item("#").Cells.Item(Matrix.RowCount).Specific.Value = Matrix.RowCount

'End If

If (FormUID = "SM_DPSFM") And (pVal.EventType = SAPbouiCOM.BoEventTypes.et_FORM_UNLOAD) Then

Windows.Forms.Application.Exit()

End If

'ShowTripTotal(pVal, oForm)

Dim i As Integer

Dim tripsm As Integer = 0

Dim triplat As Integer = 0

Dim tripbax As Integer = 0

Dim tripitm4 As Integer = 0

Dim tripitm5 As Integer = 0

If ((pVal.FormUID = "SM_DPSFM") And (pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED) Or (pVal.EventType = SAPbouiCOM.BoEventTypes.et_KEY_DOWN)) Then

For i = 1 To Matrix.RowCount

tripsm += Matrix.Columns.Item(3).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip1Val").Specific().value = tripsm

triplat += Matrix.Columns.Item(4).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip2Val").Specific().value = triplat

tripbax += Matrix.Columns.Item(5).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip3Val").Specific().value = tripbax

tripitm4 += Matrix.Columns.Item(6).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip4Val").Specific().value = tripitm4

tripitm5 += Matrix.Columns.Item(7).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip5Val").Specific().value = tripitm5

Matrix.LoadFromDataSource()

Next

End If

End Sub

Private Sub SalesOrdrCFL(ByVal oForm As SAPbouiCOM.Form)

Try

Dim oCFLs As SAPbouiCOM.ChooseFromListCollection

'Dim oCons As SAPbouiCOM.Conditions

'Dim oCon As SAPbouiCOM.Condition

oCFLs = oForm.ChooseFromLists

Dim oCFL As SAPbouiCOM.ChooseFromList

Dim oCFLCreationParams As SAPbouiCOM.ChooseFromListCreationParams

oCFLCreationParams = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams)

' Adding 2 CFL, one for the button and one for the edit text.

oCFLCreationParams.MultiSelection = False

oCFLCreationParams.ObjectType = "17"

oCFLCreationParams.UniqueID = "CFL1"

oCFL = oCFLs.Add(oCFLCreationParams)

oCFLCreationParams.UniqueID = "CFL2"

oCFL = oCFLs.Add(oCFLCreationParams)

Catch

MsgBox(Err.Description)

End Try

End Sub

Private Sub OBRCFL(ByVal oForm As SAPbouiCOM.Form)

Try

Dim oCFLs As SAPbouiCOM.ChooseFromListCollection

' Dim oCons As SAPbouiCOM.Conditions

' Dim oCon As SAPbouiCOM.Condition

oCFLs = oForm.ChooseFromLists

Dim oCFL As SAPbouiCOM.ChooseFromList

Dim oCFLCreationParams As SAPbouiCOM.ChooseFromListCreationParams

oCFLCreationParams = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams)

' Adding 2 CFL, one for the button and one for the edit text.

oCFLCreationParams.MultiSelection = False

oCFLCreationParams.ObjectType = "SM_OOBR"

oCFLCreationParams.UniqueID = "CFL3"

oCFL = oCFLs.Add(oCFLCreationParams)

'' Adding Conditions to CFL1

'oCons = oCFL.GetConditions()

'oCon = oCons.Add()

'oCon.Alias = "U_ordrdt" '"Order Date" '"U_ordrdt" '"Balance"

'oCon.Operation = SAPbouiCOM.BoConditionOperation.co_EQUAL

'oCon.CondVal = oForm.Items.Item("OrdrdtVal").Specific().string '"120000"

'oCFL.SetConditions(oCons)

Catch

MsgBox(Err.Description)

End Try

End Sub

Private Sub itemlist(ByVal oForm As SAPbouiCOM.Form)

Try

Dim oCFLs As SAPbouiCOM.ChooseFromListCollection

' Dim oCons As SAPbouiCOM.Conditions

' Dim oCon As SAPbouiCOM.Condition

oCFLs = oForm.ChooseFromLists

Dim oCFL As SAPbouiCOM.ChooseFromList

Dim oCFLCreationParams As SAPbouiCOM.ChooseFromListCreationParams

oCFLCreationParams = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams)

' Adding 2 CFL, one for the button and one for the edit text.

oCFLCreationParams.MultiSelection = False

oCFLCreationParams.ObjectType = "4"

oCFLCreationParams.UniqueID = "CFL5"

'###########

oCFL = oCFLs.Add(oCFLCreationParams)

oCFLCreationParams.UniqueID = "CFL5"

oCFL = oCFLs.Add(oCFLCreationParams)

'###############

'oCFL = oCFLs.Add(oCFLCreationParams)

'oCons = oCFL.GetConditions()

'oCon = oCons.Add()

'oCon.Alias = "ItemCode"

'oCon.Operation = SAPbouiCOM.BoConditionOperation.co_START

'oCon.CondVal = "V"

'oCFL.SetConditions(oCons)

Catch

Exit Sub

MsgBox(Err.Description)

End Try

End Sub

Private Sub ShowAllData(ByRef pVal As SAPbouiCOM.ItemEvent, ByVal oDatatable As SAPbouiCOM.DataTable, ByVal oForm As SAPbouiCOM.Form)

Dim val, val2, val4 As String

Dim val1 As String

Dim i As Integer

Dim oCombo As SAPbouiCOM.ComboBox

oCombo = oForm.Items.Item("LogVal").Specific

Dim Matrix As SAPbouiCOM.Matrix

Matrix = oForm.Items.Item("Matrix1").Specific

Try

val1 = oDatatable.GetValue(10, 0)

val2 = oDatatable.GetValue(13, 0)

'val3 = oDatatable.GetValue(17, 0)

val4 = oDatatable.GetValue(1, 0)

val = oDatatable.GetValue(0, 0)

Catch ex As Exception

End Try

If Matrix.RowCount = 0 Then

Matrix.AddRow(1)

Matrix.Columns.Item("#").Cells.Item(Matrix.RowCount).Specific.Value = Matrix.RowCount

End If

AddLogCodeCombo(oForm, val)

'AddLogCodeCombo(oComboBox)

i = Matrix.RowCount()

If (pVal.ItemUID = "OrdrVal") Or (pVal.ItemUID = "Button1") Then

oForm.Items.Item("OrdrdtVal").Specific.Value = CDate(oDatatable.GetValue("DocDate", 0)).ToString("yyyyMMdd")

oForm.Items.Item("CustVal").Specific.String = val2

oForm.Items.Item("OrdrVal").Specific.String = val

End If

If (pVal.ItemUID = "Matrix1") And (pVal.Row = Matrix.RowCount) Then

Matrix.AddRow(1, -1)

' Matrix.Columns.Item("#").Cells.Item(Matrix.RowCount).Specific.Value = Matrix.RowCount

Matrix.Columns.Item(2).Cells.Item(i).Specific.value() = val4

Matrix.Columns.Item(1).Cells.Item(i).Specific.value() = val

Matrix.FlushToDataSource()

Matrix.Columns.Item("#").Cells.Item(Matrix.RowCount - 1).Specific.Value = Matrix.RowCount() - 1

'Matrix.Columns.Item("#").Cells.Item(Matrix.RowCount).Specific.Value = Matrix.RowCount

End If

End Sub

Private Sub AddLogCodeCombo(ByVal oForm As SAPbouiCOM.Form, ByVal val As String)

Dim RS As SAPbobsCOM.Recordset

Dim sSQL As String

Dim oCombo As SAPbouiCOM.ComboBox

oCombo = oForm.Items.Item("LogVal").Specific

While oCombo.ValidValues.Count > 0

oCombo.ValidValues.Remove(0, SAPbouiCOM.BoSearchKey.psk_Index)

End While

RS = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)

sSQL = "SELECT DocEntry,U_ordrno,U_ordrdt FROM [@OOBR] WHERE (U_ordrno='" & val & "')"

RS.DoQuery(sSQL)

RS.MoveFirst()

While RS.EoF = False

oCombo.ValidValues.Add(RS.Fields.Item("DocEntry").Value, RS.Fields.Item("U_ordrdt").Value)

RS.MoveNext()

End While

End Sub

Private Sub ShowTripTotal(ByRef pVal As SAPbouiCOM.ItemEvent, ByVal oForm As SAPbouiCOM.Form)

Dim Matrix As SAPbouiCOM.Matrix

Matrix = oForm.Items.Item("Matrix1").Specific

Dim i As Integer

Dim tripsm As Integer = 0

Dim triplat As Integer = 0

Dim tripbax As Integer = 0

Dim tripitm4 As Integer = 0

Dim tripitm5 As Integer = 0

If ((pVal.FormUID = "SM_DPSFM") And (pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED) Or (pVal.EventType = SAPbouiCOM.BoEventTypes.et_KEY_DOWN)) Then

For i = 1 To Matrix.RowCount

tripsm += Matrix.Columns.Item(3).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip1Val").Specific().value = tripsm

triplat += Matrix.Columns.Item(4).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip2Val").Specific().value = triplat

tripbax += Matrix.Columns.Item(5).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip3Val").Specific().value = tripbax

tripitm4 += Matrix.Columns.Item(6).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip4Val").Specific().value = tripitm4

tripitm5 += Matrix.Columns.Item(7).Cells.Item(i).Specific.Value

oForm.Items.Item("Trip5Val").Specific().value = tripitm5

Next

End If

End Sub

'Private Sub AddLogCodeCombo(ByVal oForm As SAPbouiCOM.Form, ByVal val As String)

' Dim RS As SAPbobsCOM.Recordset

' Dim sSQL As String

' Dim oCombo As SAPbouiCOM.ComboBox

' oCombo = oForm.Items.Item("LogVal").Specific

' While oCombo.ValidValues.Count > 0

' oCombo.ValidValues.Remove(0, SAPbouiCOM.BoSearchKey.psk_Index)

' End While

' RS = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)

' sSQL = "SELECT DocEntry,U_ordrno,U_ordrdt FROM [@OOBR] WHERE (U_ordrno='" & val & "')"

' RS.DoQuery(sSQL)

' RS.MoveFirst()

' 'oComboBox.ValidValues.Add("None", "None")

' For i As Integer = 0 To RS.RecordCount - 1

' oComboBox.ValidValues.Add(RS.Fields.Item("DocEntry").Value, RS.Fields.Item("U_ordrdt").Value)

' RS.MoveNext()

' Next

'End Sub

Private Sub UpdateMatrixRowsDel(ByVal oForm As SAPbouiCOM.Form)

Dim oUserTable As SAPbobsCOM.UserTable = Nothing

Dim oDataSrc As SAPbouiCOM.DBDataSource

Dim blnMenuDel As Boolean

Dim blnFrmUpdate As Boolean

Dim count As Integer

Dim strSQL As String

Dim strdocnum As String

Dim objRecSet As SAPbobsCOM.Recordset

strdocnum = oForm.Items.Item("DpsVal").Specific.String

oMatrix = oForm.Items.Item("Matrix1").Specific

oDataSrc = oForm.DataSources.DBDataSources.Add("@DPS1")

Try

oDataSrc = oForm.DataSources.DBDataSources.Add("@DPS1")

oDataSrc.Clear()

oDataSrc.Query()

oMatrix = oForm.Items.Item("Matrix1").Specific

oMatrix.FlushToDataSource()

oUserTable = SBO_Application.oCompany.UserTables.Item("@DPS1")

Dim strDocEntry As String = ""

If oMatrix.RowCount > 0 Then

' MsgBox( oMatrix.RowCount)

If oDataSrc.GetValue("U_Vhcleno", oMatrix.RowCount - 1) = "" Then

If blnMenuDel = True Then

oMatrix.DeleteRow(oMatrix.RowCount - 1)

Else

oMatrix.DeleteRow(oMatrix.RowCount)

End If

blnMenuDel = False

oMatrix.FlushToDataSource()

End If

Dim i As Integer

i = 1

For count = 0 To oDataSrc.Size - 1

If oUserTable.GetByKey(oDataSrc.GetValue("DocEntry", count)) Then

strDocEntry = oDataSrc.GetValue("DocEntry", count)

End If

Next

oDataSrc.Query()

oDataSrc.Clear()

End If

strSQL = "Delete FROM [@DPS1] WHERE Code = '" & strdocnum & "'"

objRecSet = SBO_Application.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)

objRecSet.DoQuery(strSQL)

blnFrmUpdate = True

' oMatrix.AddRow()

Catch ex As Exception

Throw ex

Finally

System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserTable)

oUserTable = Nothing

GC.WaitForPendingFinalizers()

GC.Collect()

End Try

End Sub

End Class

Former Member
0 Kudos

thanks for coopreting vasu .

please check this code solve this problem.

thanks & regards

Animesh Sinha

Former Member
0 Kudos

Make the following change and tell the what error u get..

If pVal.FormMode = 2 And pVal.ItemUID = "1" And pVal.BeforeAction = True Then ' Here u need to make the code run in TRUE
'In UPDATE Mode
' strDocNum = oForm.Items.Item("txtCode").Specific.String

Dim strdocnum As String
strdocnum = oForm.Items.Item("DpsVal").Specific.String

oMatrix = oForm.Items.Item("Matrix1").Specific
oDataSrc = oForm.DataSources.DBDataSources.Add("@DPS1")
oForm.Freeze(True)
UpdateMatrixRowsDel(oForm)
oMatrix.FlushToDataSource()
oMatrix.LoadFromDataSource()
oForm.Freeze(False)
End If
' End If

Try this and in future plz post ur code as the way i'm posting as iw will be easy to read..

Vasu Natari.