System Form Manipulation under Condition
Dear All,
I want to modify a System Form like (Sales Order) in a specific way (eg add folder), when I trigger a user specific Item Menu (eg Order Requisition).
If I use _ItemEvent... (pVal.FormType = 142) everytime the System form is loaded it will change, but I want this happen ONLY WHEN IS TRIGGERED from Specific Item Menu.
I tried the following code but no luck.
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_PurReq"
DrawPurReqForm()
End Select
End If
End Sub
========
Sub DrawPurReqForm()
SBO_Application.ActivateMenuItem("2305") 'to get Sales Order form
Dim oItem As SAPbouiCOM.Item
Dim f As SAPbouiCOM.Form
f = SBO_Application.Forms.Item("142")
oItem = f.Items.Item("138")
oItem.Visible = False
End Sub
Thanks in Advance,
Vangelis
Edited by: Vangelis Kanellopoulos on Jul 12, 2008 12:54 PM
Hi Vangelis,
I think this would work:
1) Create a global boolean variable. Set its value to false by default.
2) Add code to the load event of the sales order form that will add your item if the global flag is true. The code should set the global flag to false after the item is added.
3) Add code to the menu event that checks for your menu activation and then sets the global flag to true and activates the sales order menu.
This will mean that the code in the sales order form load event will only be triggered if the sales order form is opened via your menu. If the user opens the sales order form by any other means (eg drag-and-relate, menu or link) then your item will not be added.
Kind Regards,
Owen
Similar Messages
-
How to add new fields to the system form (Ex.expenses to a/r invoice form)
hi
can any one tell me how to add new fields to the system form (Ex.expenses to a/r invoice form)
i want to add expenses field to system a/r invoice form and connect data base also.
i used the code of samples\11.system form manipulation(vb.net) but i'm not able to get it....so can any one help with code or concepts.
reply soon plz..
thankQIf I understood you correctly, you are just trying to add new fields to the invoice form and then use them in your form. you should first go and add the field to your tables, which you would do by going to Tool --> User Defined Fields --> Manage User Fields. There are different documents or categories given. For ex. for invoices, Sales Orders you would add your field under the Marketing Documents. If you want the field to be just one per invoice, add it to the Title, otherwise if you want a field per invoice or Sales Order line, add it to the Rows section. Once you have done that then you can just create a edit box or drop down to represent the field and set the datasource for that to your field. If you want example code to do that, let me know.
-
hi kings
i m trying to change the system opportunity forms. i just add one folder the folder contain matrix... i take the example programs(system manipulation)..the folder added.. the matrix also added.. but unfortunately the matrix not allow to enter the data and how to save the data .... here i pasted full codings....please any one help me...
Code....
Public Class SystemForm
Private WithEvents SBO_Application As SAPbouiCOM.Application
Private oOrderForm As SAPbouiCOM.Form
Private oNewItem As SAPbouiCOM.Item
Private oItem As SAPbouiCOM.Item
Private oFolderItem As SAPbouiCOM.Folder
Private oOptionBtn As SAPbouiCOM.OptionBtn
Private oCheckBox As SAPbouiCOM.CheckBox
Private oMatrix As SAPbouiCOM.Matrix
Private oColumns As SAPbouiCOM.Columns
Private oColumn As SAPbouiCOM.Column
Private i As Integer '// to be used as a counter
Private Sub SetApplication()
Dim SboGuiApi As SAPbouiCOM.SboGuiApi
Dim sConnectionString As String
SboGuiApi = New SAPbouiCOM.SboGuiApi()
sConnectionString = Command
SboGuiApi.Connect(sConnectionString)
'// get an initialized application object
SBO_Application = SboGuiApi.GetApplication()
End Sub
Private Sub AddItemsToOrderForm()
oOrderForm.DataSources.UserDataSources.Add("OpBtnDS", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 1)
oOrderForm.DataSources.UserDataSources.Add("CheckDS1", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 1)
oOrderForm.DataSources.UserDataSources.Add("CheckDS2", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 1)
oOrderForm.DataSources.UserDataSources.Add("CheckDS3", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 1)
oItem = oOrderForm.Items.Item("7")
For i = 1 To 3
oNewItem = oOrderForm.Items.Add("CheckBox" & i, SAPbouiCOM.BoFormItemTypes.it_CHECK_BOX)
oNewItem.Left = oItem.Left
oNewItem.Width = 100
oNewItem.Top = oItem.Top + (i - 1) * 19
oNewItem.Height = 19
oNewItem.Visible = False
oNewItem.FromPane = 5
oNewItem.ToPane = 5
oCheckBox = oNewItem.Specific
'// set the caption
oCheckBox.Caption = "Check Box" & i
'// binding the Check box with a data source
oCheckBox.DataBind.SetBound(True, "", "CheckDS" & i)
Next i
'// Adding Option button items
'// use an existing item to place youe item on the form
'oItem = oOrderForm.Items.Item("44")
For i = 1 To 3
oNewItem = oOrderForm.Items.Add("OpBtn" & i, SAPbouiCOM.BoFormItemTypes.it_OPTION_BUTTON)
oNewItem.Left = oItem.Left
oNewItem.Width = 100
oNewItem.Top = oItem.Top + (i - 1) * 25
oNewItem.Height = 19
oNewItem.Visible = False
'// set the Item's Pane Level.
'// this value will determine the Items visibility
'// according to the Form's pane level
oNewItem.FromPane = 9
oNewItem.ToPane = 9
oOptionBtn = oNewItem.Specific
'// set the caption
oOptionBtn.Caption = "Option Button" & i
If i > 1 Then
oOptionBtn.GroupWith("OpBtn" & i - 1)
End If
oOptionBtn.DataBind.SetBound(True, "", "OpBtnDS")
Next i
End Sub
Private Sub AddMatrixToForm()
'// we will use the following object to add items to our form
Dim oItem As SAPbouiCOM.Item
'// we will use the following object to set a linked button
Dim oLink As SAPbouiCOM.LinkedButton
'// Adding a Matrix item
oItem = oOrderForm.Items.Item("7")
oItem = oOrderForm.Items.Add("Matrix1", SAPbouiCOM.BoFormItemTypes.it_MATRIX)
oItem.Left = 35
oItem.Width = 400
oItem.Top = oItem.Top + (i - 1) * 60
oItem.Height = 125
oMatrix = oItem.Specific
oColumns = oMatrix.Columns
oItem.FromPane = 9
oItem.ToPane = 9
'// Adding Culomn items to the matrix
oColumn = oColumns.Add("#", SAPbouiCOM.BoFormItemTypes.it_EDIT)
oColumn.TitleObject.Caption = "#"
oColumn.Width = 30
oColumn.Editable = False
'// Add a column for BP Card Code
oColumn = oColumns.Add("DSCardCode", SAPbouiCOM.BoFormItemTypes.it_LINKED_BUTTON)
oColumn.TitleObject.Caption = "Item Code"
oColumn.Width = 150
oColumn.Editable = True
'// Link the column to the BP master data system form
oLink = oColumn.ExtendedObject
oLink.LinkedObject = SAPbouiCOM.BoLinkedObject.lf_BusinessPartner
'// Add a column for BP Card Name
oColumn = oColumns.Add("DSCardName", SAPbouiCOM.BoFormItemTypes.it_EDIT)
oColumn.TitleObject.Caption = "Description"
oColumn.Width = 150
oColumn.Editable = True
'oColumn.DataBind.SetBound(true, "TableName", "U_ItemNo")
'// Add a column for BP Card Phone
oColumn = oColumns.Add("DSPhone", SAPbouiCOM.BoFormItemTypes.it_EDIT)
oColumn.TitleObject.Caption = "Quantity"
oColumn.Width = 70
oColumn.Editable = True
End Sub
Public Sub New()
MyBase.New()
SetApplication()
End Sub
Private Sub SBO_Application_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.ItemEvent
If ((pVal.FormType = 320 And pVal.EventType <> SAPbouiCOM.BoEventTypes.et_FORM_UNLOAD) And (pVal.Before_Action = True)) Then
'// get the event sending form
oOrderForm = SBO_Application.Forms.GetFormByTypeAndCount(pVal.FormType, pVal.FormTypeCount)
If ((pVal.EventType = SAPbouiCOM.BoEventTypes.et_FORM_LOAD) And (pVal.Before_Action = True)) Then
'// add a new folder item to the form
oNewItem = oOrderForm.Items.Add("UserFolder", SAPbouiCOM.BoFormItemTypes.it_FOLDER)
oItem = oOrderForm.Items.Item("7")
oNewItem.Top = oItem.Top
oNewItem.Height = oItem.Height
oNewItem.Width = oItem.Width
oNewItem.Left = oItem.Left + oItem.Width
oFolderItem = oNewItem.Specific
oFolderItem.Caption = "User Folder"
'// group the folder with the desired folder item
oFolderItem.GroupWith("7")
'// add your own items to the form
AddItemsToOrderForm()
AddMatrixToForm()
oOrderForm.PaneLevel = 1
End If
If pVal.ItemUID = "UserFolder" And pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED And pVal.Before_Action = True Then
oOrderForm.PaneLevel = 9
End If
End If
End Sub
Private Sub SBO_Application_AppEvent(ByVal EventType As SAPbouiCOM.BoAppEventTypes)
Select Case EventType
Case SAPbouiCOM.BoAppEventTypes.aet_ShutDown
'// Take care of terminating your AddOn application
SBO_Application.MessageBox("A Shut Down Event has been caught" & _
vbNewLine & "Terminating 'Order Form Manipulation' Add On...")
End
End Select
End Sub
End Class
Thanks & Best Regards
B.Lakshmi NarayananEvents Part
Private Sub SBO_Application_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.ItemEvent
If ((pVal.FormType = 320 And pVal.EventType <> SAPbouiCOM.BoEventTypes.et_FORM_UNLOAD) And (pVal.Before_Action = True)) Then
'// get the event sending form
oOrderForm = SBO_Application.Forms.GetFormByTypeAndCount(pVal.FormType, pVal.FormTypeCount)
If ((pVal.EventType = SAPbouiCOM.BoEventTypes.et_FORM_LOAD) And (pVal.Before_Action = True)) Then
'// add a new folder item to the form
oNewItem = oOrderForm.Items.Add("UserFolder", SAPbouiCOM.BoFormItemTypes.it_FOLDER)
'// use an existing folder item for grouping and setting the
'// items properties (such as location properties)
'// use the 'Display Debug Information' option (under 'Tools')
'// in the application to acquire the UID of the desired folder
oItem = oOrderForm.Items.Item("7")
oNewItem.Top = oItem.Top
oNewItem.Height = oItem.Height
oNewItem.Width = oItem.Width
oNewItem.Left = oItem.Left + oItem.Width
oFolderItem = oNewItem.Specific
oFolderItem.Caption = "User Folder"
'// group the folder with the desired folder item
oFolderItem.GroupWith("7")
'// add your own items to the form
AddItemsToOrderForm()
AddMatrixToForm()
oOrderForm.PaneLevel = 1
End If
'If pVal.EventType = SAPbouiCOM.BoEventTypes.et_CLICK And pVal.Before_Action = True Then
'oOrderForm.PaneLevel = 5
'End If
If pVal.ItemUID = "UserFolder" And pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED And pVal.Before_Action = True Then
'// when the new folder is clicked change the form's pane level
'// by doing so your items will apear on the new folder
'// assuming they were placed correctly and their pane level
'// was also set accordingly
oOrderForm.PaneLevel = 9
End If
End If
End Sub
Thanks & Best Regards
B.Lakshmi Narayanan -
I have been creating forms in InDesign and pulling into Acrobat XI Pro to do form fields. My client would like to fill in the PDF form using Reader, save under a different name locally on their device, and redistribute. The problem I have is that, sometimes, they want to redistribute the form as Read Only. I know how to flatten the form on a mobile device, but uncertain how they can do that with a PC or Mac using Adobe Reader. I looked at FormsCentral thinking there might be a solution going that route, but don't believe there is. Any advice?
FormsCentral won't help with flattening a form. You could set up the form in Acrobat so that the fields are set to read-only, using JavaScript. Not quite the same as flattening but it's the best Reader can do.
Note that when Reader is used to e-sign a document, it gets flattened, but this won't be possible if you need to Reader-enable the form and under certain other conditions. -
Hi,
I expanded the width of the Sales Quotation system form and move fields to the right to allow space for new fields in the centre.
I used the oForm.Width to adjust this.
If I load the form, expand to full screen, everyhting is in the right place and looks good. However, if i adjust the form dimensions slightly and then expand to full screen the form items, system and user defined, overlap or get lost under the central tab area etc etc. To recover I have to resize the form so both X and Y scroll bars appear, close the form, and then load the form so that it appears with its system minimum dimensions.
Has anyone else experienced this? I also notice that another parameter for forms is oForm.Clientwidth, what is the difference as I can't make this work either???
I can release my addon if someone wishes to try this and see what I am experiencing or I can upload photos.
I think it just that the addon need to take care of dynamic form sizing - cater for resizing events?
Any Ideas???Right, Iam in the middle of my new version but this is the snippet of code that causes the problem, if not clear from this then I'll email code out later.
Private Sub oApp_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles oApp.ItemEvent
If pVal.EventType = SAPbouiCOM.BoEventTypes.et_FORM_LOAD And pVal.FormType = 149 And pVal.Before_Action = True Then
Try
Dim oItem As SAPbouiCOM.Item
Dim oForm As SAPbouiCOM.Form
Dim oCombo As SAPbouiCOM.ComboBox
Dim oEdit As SAPbouiCOM.EditText
Dim oLabel As SAPbouiCOM.StaticText
Dim oXplaneItem As SAPbouiCOM.Item
Dim oYplaneItem As SAPbouiCOM.Item
Dim iUnitMove As Integer
Dim iCentralLocation As Integer
Dim iBottomCentralLoc As Integer
oForm = oApp.Forms.Item(FormUID)
'Constants
iCentralLocation = 75
iBottomCentralLoc = 40
iUnitMove = 350
'Add fields to Table for new Editbox fields
oForm.DataSources.DBDataSources.Add("OQUT")
'Rename "Owner" static text to "FSE"
oItem = oForm.Items.Item("230")
oLabel = oItem.Specific
oLabel.Caption = "FSE"
'Move Top RIght Fields to create space in middle for new date fields
oForm.Width = oForm.Width + iUnitMove
oForm.Items.Item("9").Left = oForm.Items.Item("9").Left + iUnitMove
oForm.Items.Item("88").Left = oForm.Items.Item("88").Left + iUnitMove
oForm.Items.Item("8").Left = oForm.Items.Item("8").Left + iUnitMove
oForm.Items.Item("60").Left = oForm.Items.Item("60").Left + iUnitMove
oForm.Items.Item("81").Left = oForm.Items.Item("81").Left + iUnitMove
oForm.Items.Item("11").Left = oForm.Items.Item("11").Left + iUnitMove
oForm.Items.Item("10").Left = oForm.Items.Item("10").Left + iUnitMove
oForm.Items.Item("86").Left = oForm.Items.Item("86").Left + iUnitMove
oForm.Items.Item("46").Left = oForm.Items.Item("46").Left + iUnitMove
'Move bottom right fields to create space in middle for new fields
oForm.Items.Item("23").Left = oForm.Items.Item("23").Left + iUnitMove
oForm.Items.Item("22").Left = oForm.Items.Item("22").Left + iUnitMove
oForm.Items.Item("25").Left = oForm.Items.Item("25").Left + iUnitMove
oForm.Items.Item("24").Left = oForm.Items.Item("24").Left + iUnitMove
oForm.Items.Item("283").Left = oForm.Items.Item("283").Left + iUnitMove
oForm.Items.Item("42").Left = oForm.Items.Item("42").Left + iUnitMove
oForm.Items.Item("90").Left = oForm.Items.Item("90").Left + iUnitMove
oForm.Items.Item("91").Left = oForm.Items.Item("91").Left + iUnitMove
oForm.Items.Item("89").Left = oForm.Items.Item("89").Left + iUnitMove
oForm.Items.Item("99").Left = oForm.Items.Item("99").Left + iUnitMove
oForm.Items.Item("27").Left = oForm.Items.Item("27").Left + iUnitMove
oForm.Items.Item("30").Left = oForm.Items.Item("30").Left + iUnitMove
oForm.Items.Item("29").Left = oForm.Items.Item("29").Left + iUnitMove
'Move "Copy From" & "Copy To" buttons
oForm.Items.Item("10000330").Left = oForm.Items.Item("10000330").Left + iUnitMove
oForm.Items.Item("10000329").Left = oForm.Items.Item("10000329").Left + iUnitMove
'Expand Grid in Contents Tab to fit form again
oForm.Items.Item("115").Width = oForm.Items.Item("115").Width + iUnitMove
oForm.Items.Item("116").Width = oForm.Items.Item("116").Width + iUnitMove
oForm.Items.Item("38").Width = oForm.Items.Item("38").Width + iUnitMove
oForm.Items.Item("118").Left = oForm.Items.Item("118").Left + iUnitMove
oForm.Items.Item("65").Left = oForm.Items.Item("65").Left + iUnitMove
oForm.Items.Item("75").Left = oForm.Items.Item("75").Left + iUnitMove
'Move Items in Logisitcs Tab
oForm.Items.Item("233").Left = oForm.Items.Item("233").Left + iUnitMove
oForm.Items.Item("223").Left = oForm.Items.Item("223").Left + iUnitMove
oForm.Items.Item("238").Left = oForm.Items.Item("238").Left + iUnitMove
oForm.Items.Item("224").Left = oForm.Items.Item("224").Left + iUnitMove
oForm.Items.Item("234").Left = oForm.Items.Item("234").Left + iUnitMove
oForm.Items.Item("234").LinkTo = "224"
'Move Items in accounting tab
oForm.Items.Item("156").Left = oForm.Items.Item("156").Left + iUnitMove
oForm.Items.Item("157").Left = oForm.Items.Item("157").Left + iUnitMove
oForm.Items.Item("119").Left = oForm.Items.Item("119").Left + iUnitMove
oForm.Items.Item("120").Left = oForm.Items.Item("120").Left + iUnitMove
oForm.Items.Item("124").Left = oForm.Items.Item("124").Left + iUnitMove
oForm.Items.Item("123").Left = oForm.Items.Item("123").Left + iUnitMove
oForm.Items.Item("135").Left = oForm.Items.Item("135").Left + iUnitMove
oForm.Items.Item("134").Left = oForm.Items.Item("134").Left + iUnitMove
'Hide system predicted closing date as picks 1 month later if not completed
oForm.Items.Item("12").Visible = False
oForm.Items.Item("13").Visible = False
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End Sub
If you try this in debug mode, you will still see the system forms items affected in the way I have described.
Edited by: David Alexander on Oct 14, 2008 1:32 PM -
hello to all,
Is it possible to filter the contents of CFL which is in System Form. For Example Project CFL in AR invoice. i.e i need to only show the limited Projects, not all which is in OPRJ Table.
Regards
BikramHi vasu,
the code you have given me is working on Sales Order, but the same code is not working on A/R Invoice CFL for Project Code.
the only difference in mine n urs condition is mine CFL is in Matrix Column and urs in Form.
Here is my Code:
If pVal.FormType = 133 And pVal.EventType = SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST Then
If pVal.ItemUID = "39" And pVal.ColUID="4" Then
If pVal.InnerEvent And pVal.Before_Action Then
BubbleEvent = False
Dim oForm As SAPbouiCOM.Form
oForm = SBO_Application.Forms.Item(FormUID)
Dim oCons As SAPbouiCOM.Conditions
Dim oCFL As SAPbouiCOM.ChooseFromList
'oCFL = oCFLs.Add(oCFLCreationParams)
oCFL = oForm.ChooseFromLists.Item("26")
oCons = oCFL.GetConditions()
'Note: Add the condition only once.
If 0 = oCons.Count Then
Dim oCon As SAPbouiCOM.Condition
oCon = oCons.Add()
oCon.Alias = "PrjCode"
oCon.Operation = SAPbouiCOM.BoConditionOperation.co_EQUAL
oCon.CondVal = "000000"
'Set your own condition here instead of the system conditions
oCFL.SetConditions(oCons)
End If
BubbleEvent = True
End If
End If
End If -
Problem with AddRow() in custom matrix on System Form
Hello all,
I'm trying to add 1 row to a custom matrix on a system form (Sales Quotation).
However I always get a RPC_E_SERVERFAULT exception when calling pMatrix.AddRow() and SBO crashes...
My code is simple:
[B1Listener(BoEventTypes.et_CLICK, false)]
public virtual void OnAfterClick(ItemEvent pVal)
Form pForm = B1Connections.theAppl.Forms.Item(pVal.FormUID);
// Add matrix line
Matrix pMatrix = (Matrix) pForm.Items.Item("MATRIX").Specific;
pMatrix.AddRow();
// Set matrix line data
The matrix shows ok in the system form, inside a new folder.
What is the problem with my code?
Is there any way to add rows to a custom matrix in a system form?
This code runs ok if executed in a custom form...
Thanks!
Manuel Diashi.
R u facing any problem ...
actually add row and del row both are same.
in normal customization form and system form matrx...
Any problem are u facing... -
How to Refresh System Form in Run Time
Dear All,
Please give me idea for Refresh System Document in Run Time using DI,basically I am using system columns for update for some scenarios.
So please give solution that how should refresh system form.
Thanks a lot.
Ashish Singh.Hi,
Please post above discussion in SDK forum.
Thanks & Regards,
Nagarajan -
How to create add-on of a system form in sap b1 9.0?
Hi all,
I have a problem related to the creation of a system form add-on of sap b1 9.0.
I can develop some projects in visual basic, but about sap b1 add-on, I know how to package files of to install (.ard and .exe files) and I also know how to register .ard file in sap b1 9.0, So I tried to register all projects found in SDK sample folder that was correct.
I tried to do an example of project found in SDK Help Center.
But the problem I have to day related to the creation of system form add-on.
The steps I tried to do are:
1. I opened SAP B1 Studio for Microsoft Visual Studio
2. Right click my project and add the system form (Employee Master Data)
3 Connection string I used in Command line arguments 0030002C0030002C00530041005000420044005F00440061007400650076002C0050004C006F006D0056004900490056
4. I added one field (CFL of BPCode) to Employee Master Data. I did n't add any reference because when I add UI API Vission 9.0 to system form or user form of sap b1 it gives errors in Menu.vb. I do know why.
5. I converted in 32 bit and build my project
6. I re_opened new visual studio 2010 for creating new project with SAP B1 AddOnInstaller.NET Wizard
7. From here I did every thing according to the video of Bryan Gomez
Creating and Registering SAP Add-on - YouTube
8. I registered my .ard file
9. But when I start my add-on it gives error (Add-on connection timed out)
The questions I want to ask,
1. If you are creating the add-on of system form Is there any other thing needed to do more than the above I explained?.
2. Is it necessary to go in SDK code when you are using the system form like that?.
3. If it is necessary to add reference of UI API in project, how to handle error occurs when we add that the reference to the project which is using a system form?.
Please anyone who has an idea he/she can help me.Hi pallavi p,
That's good but as I said above when I add the reference of UI API Version 9.0 in the project which has the system form or user form of sap b1 it exactly gives errors in menu.vb of the project.
So let me give you the way you can try.
1. Open new project/ visual basic/ sap business one/ sap business one add-on project. and save it any where
2. Right click on your project
3. Add new item
4. Sap Business One
5. System form (Employee master data) or user form
6. Add
And then if your form is opened
7. Go to add the reference of UI API Version 9.0
8. Check errors found in menu.vb (or in OutPut)
So if it's possible try to solve that problem.
Please anyone can help me. -
Refer to Tabular Form field in Condition of Dynamic Action
I tried to filter on this topic but didn't come up with anything.
Is there a way to refer to a field in a tabular form as a condition of a dynamic action?
For example, I want to pop up a message (javascript 'alert') when the value of one field in a tabular form is changed, but only if another field for that same row meets a certain condition. So let's say the field in the condition is XYZ. So in the condition section, i would have PL/SQL Expression - XYZ IS NULL. Something like that. How would I refer to that XYZ field from my tabular form in the condition section of a dynamic action?
Thanks in advance.
JohnThanks for your help on this. I think going with the action being an 'execute javascript code' is a good approach. So here is my situation - I have a tabular form. I have 2 fields (among others) - SPECIES and WEIGHT. The SPECIES is a select list in the tabular form. The WEIGHT is a text box in the tabular form.
To make this simple, let's say this is for only one species - SNSG. If the person changes the select list to SNSG and the associated WEIGHT field is NULL, I need to pop up a message that says 'Fill in weight field if selecting SNSG'.
So here is what I have:
Event: Change
Selection Type: jQuery Selector
jQuery Selector: :.speciesClass
Condition: In List
Value: SNSG
True Action: Execute JavaScript Code
** Here is where I am stuck: In the JavaScript code I need to this:
If WEIGHT is null THEN:
confirm('Warning: Enter weight if entering SNSG species.');
I am not sure how to write that "If WEIGHT is null THEN" part in javaScript and be able to refer to the WEIGHT field associated with the SPECIES value I just changed in the tabular form.
I hope that makes sense!
I appreciate your help!!
Thanks,
John -
!0.5.8 How do I copy the 'system' form one internal Hard drive to an other (BY CD Packed up) I have tried but it will no show 'live' system folder - do and how can I bless it ? Thank you
Carbon Copy Cloner will allow you to de-select directory trees, so you could use it to copy over everything EXCEPT the /Users directory tree.
Mac OS X is NOT just the System Folder. If you do not copy over the rest of Mac OS X, it will not boot. So better to exclude Users and take everything else, then it is to try and pick and choose.
The other approach is to install a New Mac OS X, and then copy over the stuff you want from the home folder(s) and reinstall any apps you want. -
How to register add-on of edited system form in sap b1 9.0?.
Hi all,
I have a problem in SAP b1 9.0.
Actually I added one field of BPCode to Employee master data, so I want to register an add-on of that system form in SAP b1 9.0.
When I create file of .ard as we watch it in video of
Bryan Gomez
Creating and Registering SAP Add-on - YouTube it will be created correctly, But the problem is when I register that the file of .ard it gives error (Cannot create a file when that file already exists). Again when I create a file of .ard of any other User form it gives the same error (Cannot create a file when that file already exists).
But when I create and register the add-on of Hello World in Sample folder of SDK it will be registered correctly.
How can I solve that problem.
Anyone can help me please.Hi pallavi p,
That's good but as I said above when I add the reference of UI API Version 9.0 in the project which has the system form or user form of sap b1 it exactly gives errors in menu.vb of the project.
So let me give you the way you can try.
1. Open new project/ visual basic/ sap business one/ sap business one add-on project. and save it any where
2. Right click on your project
3. Add new item
4. Sap Business One
5. System form (Employee master data) or user form
6. Add
And then if your form is opened
7. Go to add the reference of UI API Version 9.0
8. Check errors found in menu.vb (or in OutPut)
So if it's possible try to solve that problem.
Please anyone can help me. -
Updating a user text field in sap system form in Find Mode
Dear All,
I created a Edit text field in Sap System form [FormType :149] -Sales Quotation. I want to update a value to the text while clicking OK button in Find Mode. the code is given below.
If pVal.ItemUID = "1" And pVal.FormMode = SAPbouiCOM.BoFormMode.fm_FIND_MODE And (Not pVal.Before_Action) And pVal.EventType = SAPbouiCOM.BoEventTypes.et_CLICK Then
oForm = SBO_App.Forms.Item(FormUID)
oForm.Freeze(True)
oItem = oForm.Items.Item("txtUID")
oEdit = oItem.Specific
oRS = ConSBOdb.Execute("Select * from BG_CAMPAIGNSHDR where CMIDENT ='" & Trim(oEdit.Value) & "'")
oItem = oForm.Items.Item("txtCampgn") ' // User created field
oItem.Enabled = False
oEdit = oItem.Specific
If oRS.EOF = False Then
oEdit.Value = oRS.Fields("CMNAME").Value
Else
oEdit.Value = ""
End If
end if
while clicking the OK button, Based on the value fetched on the screen, I have to open a recordset and get the value. But, the screen loads the value to the system textboxes. I could not get those value to run the Sql in the event. it returns empty. Could any one help please how to solve this ?
Thanks in advance.
Manikandan.Hi,
Try This..
If pVal.FormType = 149 And pVal.ItemUID = "1" Then
If pVal.FormMode = SAPbouiCOM.BoFormMode.fm_FIND_MODE Then
If pVal.Before_Action = False Then
If pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED Then
Try
oForm = SBO_App.Forms.Item(FormUID)
oForm.Freeze(True)
oItem = oForm.Items.Item("txtUID")
oEdit = oItem.Specific
oRS = ConSBOdb.Execute("Select * from BG_CAMPAIGNSHDR where CMIDENT ='" & Trim(oEdit.Value) & "'")
oItem = oForm.Items.Item("txtCampgn") ' // User created field
oItem.Enabled = False
oEdit = oItem.Specific
If oRS.EOF = False Then
oEdit.Value = oRS.Fields("CMNAME").Value
Else
oEdit.Value = ""
End If
Catch ex As Exception
SBO_application.MessageBox(ex.Message)
End Try
End If
End If
End If
End If
Best Regards,
Mahendra -
Form Settings getting cleared for system form
Hi All,
I have added the code for setting editable=false for the following items in Updatemode and Ok mode.Then in add mode,i made the columns to editable = true .First time it is working fine.
the next time, I got the error message as "item is not a user defined item" on ItemCodeCol.editable = true.Then i check the form settings, the Active field for the itemcode cleared.When i set to Active as checked and run my code,it is working fine.How to solve the issue and how to avoid the setting of the fields.
This is my code :
If oSalesQuotationForm.Mode = SAPbouiCOM.BoFormMode.fm_ADD_MODE Then
oSQItemCodeCol.Editable = True
oSQItemNameCol.Editable = True
oSQQtyCol.Editable = True
oSQWhsCodeCol.Editable = True
ElseIf oSalesQuotationForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE Or oSalesQuotationForm.Mode = SAPbouiCOM.BoFormMode.fm_OK_MODE Then
oSQItemCodeCol.Editable = False
oSQItemNameCol.Editable = False
oSQQtyCol.Editable = False
oSQWhsCodeCol.Editable = False
End If
Thanx in advance
Regards
Mohana
Edited by: Mohana Annadurai on Feb 20, 2009 5:28 AMHi,
This is not UDF in system form.That is , the itemcode,itemname,qty,warehouse field in the content tab of the sales quotation form.when i change the field to editable and noneditable,
1)it is allowing to set the editable property to false and true for the first time.
2) After adding the record,i navigate the record to check ,at that time,as per my code,in update mode,it is not allowing to edit.
3)When i click add menu,and i chose customer, at that time it is not allowing to add a itemcode,becoz the itemcode field is disabled.
4)when i check in form settings, in Table format, Active gets unchecked for the above fields.
5)I want to avoid this changing of active in form settings.How to to this...
Regards
Mohana -
Is it possible to get System form Matrix Data in DI API?
HI,
i would like to use DI API to get the System Form Matrix ( like Sale Order ) . Is it possible?
i know that using UI API is most easier way. However, UI API cause extermemly slow perfomance.
no matter i use Form.Freeze or not. Please Advise
Thanks
Gordon
Edited by: Gordon Ho on May 7, 2009 7:03 AMHi,
U can access the Sales Order rows using the DI only if its added to the system. U can use the DOCUMENT object and Document.Lines and access the row data. Please check the SDK help file for more information.
From SDK Help
Document_Lines is a child object of Documents object and represents the line entries of a document in the Marketing Documents and Receipts module and the Inventory and Production module.
Vasu Natari.
Maybe you are looking for
-
HT3669 What about Epson Stylus C42?!
I can't locate a download for my old, but good, Epson Stylus C42. It's not on the Apple List, but also not on the list of drivers not available. Am I missing something or just need to give up and get a new printer? Thanks!
-
Message comming as alert !!
Hi I have a program unit in my form, I am using a cursor for inserting records in a table and displaying a message after each insert with " message (...)" inside the loop. the problem is that the message is comming as an alert for all the records ins
-
My ITunes Library has a Duplicate of every song
Trying to load music on a new IPod. Have discovered that My ITunes Library has a duplicate of every song. Makes it very difficult to transfer albums.
-
Page numbering difficulty!
I have to write a lab report by tomorrow and my professor is very strict about how it should look. He wants the pages to be numbered such as: -1-, -2-, etc. on the bottom of each page (and not the cover sheet). But for some reason (maybe because I ju
-
Before the tab loads and takes you to the website, I now have to click a small arrow at the far right of the location bar for it to load the page. What setting changed in Firefox 4?