on 09-09-2008 10:09 AM
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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.
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
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.
User | Count |
---|---|
107 | |
12 | |
11 | |
6 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.