Parameter handling in screen painter
Hi All,
Hope all are doing fine!!!
I have designed a screen using screen painter ...
in that screen ,, i have 2 parameters and 3 input fields ...
if 1st parameter is ciicked/selected then 1st input field should only be input enabled and other 2 input fields should be input disabled.
if 2nd parameter is clicked/selected ..., the 1st field should be input disabled and the other 2 fields should be input enabled..
am designing all these in a screen painter not in a selection criteria.
pls.. suggest alternatives..
Thanks in advance
Jack
Hi,
Supposu you want to do the disabling and enabling part using radio buttons.
Firstly group the radio buttons in the screen painter, set a function code for them and declare them in the TOP.
Now for the 2nd and 3rd input fields double click on them and set the group name.
In PBO of flow logic
CASE SY-UCOMM.
WHEN 'F_RADIO'.
IF R1 = 'X'.
LOOP AT SCREEN.
IF screen-name = 'field1'.
Screen-Input = 0.
Modify Screen.
ENDIF.
ENDLOOP.
ENDIF.
IF R2 = 'X'.
LOOP AT SCREEN.
IF screen-group1 = G1.
Screen-Input = 0.
Modify Screen.
ENDIF.
ENDLOOP.
ENDIF.
ENDCASE.
Thanks,
Sri.
Similar Messages
-
UI: Event Handling of forms created with the Screen Painter
Hi,
I created a form with the Screen Painter and saved it as XML document. After that, I loaded this form with the following code:
<i>Dim oXMLdoc As MSXML2.DOMDocument
oXMLdoc = New MSXML2.DOMDocument
oXMLdoc.load("C:\form1.xml")
SBO_Application.LoadBatchActions(oXMLdoc.xml)</i>
Then the loaded form appears in the SBO application with all added items.
Now, I would like to know how I could handle an ITEM_PRESSED event for a button of this imported form.
It would be great if someone could help me with this problem and post some example code.
Regards,
DennisDennis,
you have to create a function that will handle all the event receive from B1
<i> Private Sub SBO_Application_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.ItemEvent
If (pVal.FormUid = "YourUIDForm") Then
If ((pVal.itemUID = "YourItemUID") And _
(pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED) And _
(pVal.Before_Action = False)) Then
' Here write the coe you need....
End If
End If
End Sub</i>
Off course, you need your variable SBO_Appliation declared as follow :
Private WithEvents SBO_Application As SAPbouiCOM.Application -
How to create a drop down box and text box in screen painter?
Hi i am totally new to this concept of screen painter..please can any tell me
how to create drop down box in screen painter?
How to create or display default date and time values?
How to create text box for giving comments?
How to store the records that we are entering in a table?
Please can any one send me the procedure for creating all these its very urgent useful information will be surely rewarded.Hi,
Check all these.
1.how to create drop down box in screen painter?
To get Drop Drown Box on screen .
Follow these steps.
1.
Go to T.Code SE51 and Select Laypout for the Screen.
2.
Double click on the field for which u want Dropdown box.
3.
Then U will see Name ,Text ,DROPDOWN.Click on that and select List Box or ListBox with key . Better to to select first one.
4.
Save and Activate ur screen .
5.
Enter the following piece of code in the PBO of the screen.(Change for ur requirement).
6.
The following code should be written under PROCESS BEFORE EVENT in the MODULE.
TYPE-POOLS :vrm.
DATA:
i_natio TYPE vrm_values, "-->Table that is passed through FM vrm_set_values
w_natio LIKE LINE OF i_natio.
DATA:
BEGIN OF i_t005t OCCURS 0,
land1 TYPE t005t-land1,
natio TYPE t005t-natio,
END OF i_t005t.
IF i_t005t[] IS INITIAL.
SELECT land1 natio
FROM t005t
INTO TABLE i_t005t
WHERE spras = sy-langu.
IF sy-subrc = 0.
LOOP AT i_t005t .
w_natio-key = i_t005t-land1.
w_natio-text = i_t005t-natio.
APPEND w_natio TO i_natio.
CLEAR w_natio.
ENDLOOP.
ENDIF.
ENDIF.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'I_IT0002-NATIO' "-->Field for which dropdown is needed.
values = i_natio
EXCEPTIONS
id_illegal_name = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
2.1.How to create or display default date and time values?
1.
create input field for DATE and TIME on screen.ex. DATE1 and TIME1 are screen field names .
2.
Just assign SY-DATUM to DATE1 and SY-UZEIT to TIME1 under PROCESS BEFORE EVENT.
3.How to create text box for giving comments?
1.
Define one variable in the TOP include with type STRING means Global variable.
2.
Create one input field by giving screen field name which u have defined in the above step.
4.How to store the records that we are entering in a table?
For this case.. Create one table control. you can select one record and create record in the Z table by pressing button on Application toolbar..
Check the following steps to handle Table control.
1).
U should take one variable in your internal table or in structure which
is used for table control fields
ex :
data :
begin of itab occurs 0 ,
mark type c , "This is to select the record.
matnr like mara-matnr ,
matkl like mara-matkl,
maktx like makt-maktx,
end of itab .
Controls: TABC types TABLEVIEW using screen 100.
2).
This mark variable should be given in Table control properties.
follow the path
double click on the table control-->attributes .->select
w/SelColumn and in that itab-mark. Check in the figure.
[Table control properties screen|http://bp2.blogger.com/_O5f8iAlgdNQ/R99gOUH8CXI/AAAAAAAAA9I/d3gOum1fJ6s/s1600-h/pic28145-796618.jpg]
3).
After that. Take this example.
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
LOOP AT ITAB WITH CONTROL tabc
ENDLOOP.
PROCESS AFTER INPUT.
MODULE CANCEL AT EXIT-COMMAND.
LOOP AT ITAB.
Module read_table_control.
ENDLOOP.
module user_command_0100.
In this Module read_table_control, You should write the following code
MODULE read_table_control INPUT.
MODIFY itab INDEX tabc-current_line."( This will update the
"ITAB table MARK field with 'X ' whatever we have selected
"on table control.)
ENDMODULE.
4)
If you want to Delete some of the records from Table control
follow this code Create one pushbutton and give Fucnction code to that
and write below code
CASE OKCODE.
WHEN 'CREATE'.
LOOP AT itab WHERE mark = 'X'.
"Use UPDATE statement to create new record.
ENDLOOP.
ENDCASE.
I hope that you will get something.
Regards,
Venkat.O -
How to read the contents of Input Field created via Screen Painter?
Hi All,
I have a module program / dialog program, on my second screen, I created an input/outbox field via screen painter of course,
now in my PAI, how can I read the contents of the input/outbox field?
Let's say the name of my input/outbox field is: P_WEKRS. Note: Get Parameter and Set Parameter is ticked.
PROCESS AFTER INPUT.
LOOP WITH CONTROL TC_DATA.
MODULE MODIFY_DATA.
ENDLOOP.
I want to get the value of the input/outbox field before my loop in table control? I thought that it will work like normal parameter in non-dialog programs.
Any helpful inputs will be appreciated/rewarded.
Thanks.
JaimeHi, Jaime
Do the following Change in you Follow Logic
PROCESS AFTER INPUT.
MODULE read_or_change_value. " Add this
LOOP WITH CONTROL TC_DATA.
MODULE MODIFY_DATA.
ENDLOOP.
Add the Bellow Module code in you Driver Program.
MODULE read_or_change_value.
DATA: P_WEKRS like " the Field on Screen. Must be the same name as on SCREEN. and Type must be same too.
" Here you will find the Value in that Variable or if you will change the Value here you will find it change on Screen
END MODULE.
Please Reply if any Issue..
Best Regards,
Faisal -
Changing fonts in Screen painter
Hi experts,
I have a screen, that displays information. I need to display the information in a different font than usual, e.g. Bold or Italic.
Could you please let me know the ways to change the FONTS in screen painter.
Is it feasible to do so?
Thanks,
AbhayCheck out this code:
create a screen 100, PF-STATUS '0100' and custom container 'CONT'
*& Report ZZ_SOURAV_DYNAMIC_DOCUMENTS
REPORT zz_sourav_dynamic_documents.
TYPE-POOLS: sdydo.
DATA:
container TYPE REF TO cl_gui_docking_container,
doc TYPE REF TO cl_dd_document,
ok_code TYPE syucomm.
DATA form1 TYPE REF TO cl_dd_form_area.
DATA text TYPE sdydo_text_element.
DATA value TYPE sdydo_value.
DATA button1 TYPE REF TO cl_dd_button_element.
DATA input1 TYPE REF TO cl_dd_input_element.
DATA first_display VALUE 'X'.
DATA opt_tab TYPE sdydo_option_tab.
DATA select1 TYPE REF TO cl_dd_select_element.
* CLASS cl_my_event_handler DEFINITION
CLASS cl_my_event_handler DEFINITION.
PUBLIC SECTION.
METHODS:
handle_input FOR EVENT entered OF cl_dd_input_element
IMPORTING sender,
handle_submit_buttons FOR EVENT clicked OF cl_dd_button_element
IMPORTING sender,
use_new_resources FOR EVENT resources_changed OF cl_gui_resources.
ENDCLASS. "cl_my_event_handler DEFINITION
* CLASS cl_my_event_handler IMPLEMENTATION
CLASS cl_my_event_handler IMPLEMENTATION.
METHOD handle_input.
MESSAGE i001(00) WITH input1->value.
ENDMETHOD. "handle_submit_buttons
METHOD handle_submit_buttons.
MESSAGE i001(00) WITH input1->value.
ENDMETHOD. "handle_submit_buttons
METHOD use_new_resources.
IF first_display IS INITIAL.
* initialize documents
CALL METHOD doc->initialize_document.
* merge documents
CALL METHOD doc->merge_document.
* display documents
CALL METHOD doc->display_document
EXPORTING
reuse_control = 'X'
reuse_registration = 'X'.
ENDIF.
ENDMETHOD. "use_new_resources
ENDCLASS. "cl_my_event_handler IMPLEMENTATION
START-OF-SELECTION.
DATA: my_handler TYPE REF TO cl_my_event_handler.
CREATE OBJECT my_handler .
END-OF-SELECTION.
CALL SCREEN 100.
*& Module STATUS_0100 OUTPUT
* text
MODULE status_0100 OUTPUT.
SET PF-STATUS '0100'.
* SET TITLEBAR 'xxx'.
SET HANDLER my_handler->use_new_resources.
CREATE OBJECT doc
EXPORTING
* style =
background_color = cl_dd_area=>col_background_level2
* bds_stylesheet =
* no_margins =
PERFORM add_html_code.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
* text
MODULE user_command_0100 INPUT.
CASE ok_code.
WHEN 'BACK'.
SET SCREEN 00.
LEAVE SCREEN.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Form add_html_code
* text
* --> p1 text
* <-- p2 text
FORM add_html_code .
IF first_display = 'X'.
text = 'Line1'.
CALL METHOD doc->add_text
EXPORTING
text = text
* text_table =
* fix_lines =
sap_style = cl_dd_document=>heading
* sap_color = cl_dd_document=>LIST_POSITIVE_INT
sap_fontsize = cl_dd_document=>medium
* sap_fontstyle = cl_dd_document=>SANS_SERIF
* sap_emphasis = cl_dd_document=>
* style_class = cl_dd_document=>WARNING
* CHANGING
* document =
CALL METHOD doc->new_line
EXPORTING
repeat = 1.
text = 'Line2'.
CALL METHOD doc->add_text
EXPORTING
text = text
* text_table =
* fix_lines =
* sap_style = cl_dd_document=>heading
sap_color = cl_dd_document=>list_key_inv
* sap_fontsize = cl_dd_document=>medium
* sap_fontstyle = cl_dd_document=>SANS_SERIF
* sap_emphasis = cl_dd_document=>
* style_class = cl_dd_document=>WARNING
* CHANGING
* document =
CALL METHOD doc->new_line
EXPORTING
repeat = 1.
text = 'Line3'.
CALL METHOD doc->add_text
EXPORTING
text = text
* text_table =
* fix_lines =
* sap_style = cl_dd_document=>heading
* sap_color = cl_dd_document=>list_key_inv
* sap_fontsize = cl_dd_document=>medium
* sap_fontstyle = cl_dd_document=>SANS_SERIF
* sap_emphasis = cl_dd_document=>
* style_class = cl_dd_document=>WARNING
* CHANGING
* document =
CALL METHOD doc->display_document
EXPORTING
* reuse_control = 'X'
* reuse_registration = 'X'
container = 'CONT'
* parent =
EXCEPTIONS
html_display_error = 1
OTHERS = 2
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR first_display.
ENDIF.
ENDFORM. " add_html_code -
SCreen Painter working not correctly.
Hi,
In se53 when we go to screen painter it's not coming properly..
some line is coming.
and we got EU_SCRP_WN32 : timeout during allocate / CPIC-CALL: 'ThSAPCMRCV' error message.
we have sap gui 710 with patch level 7.
the dumpfile also generated.
Runtime Errors STORAGE_PARAMETERS_WRONG_SET
Date and Time 22.07.2008 12:44:27
Short text
The system is configured incorrectly.
What happened?
The current program had to be terminated because of an
error when installing the R/3 System.
The program had already requested 453411792 bytes from the operating
system with 'malloc' when the operating system reported after a
further memory request that there was no more memory space
available.
What can you do?
Note which actions and input led to the error.
For further help in handling the problem, contact your SAP administrator
You can use the ABAP dump analysis transaction ST22 to view and manage
termination messages, in particular for long term reference.
In the system profile, set the parameters
-abap/heap_area_dia and
-abap/heap_area_nondia
to a maximum of 453411792. To be on the safe side, reduce the value by 10,000,
000.
Then restart the SAP system.
Error analysis
When the program was running, it was established that more
memory was needed than the operating system is able safely
to provide. To avoid a system crash, you must prevent this
situation from occurring.
Last error logged in SAP kernel
Component............ "EM"
Place................ "SAP-Server mtw02sdec01_DE7_00 on host mtw02sdec01 (wp
1)"
Version.............. 37
Error code........... 7
Error text........... "Warning: EM-Memory exhausted: Workprocess gets PRIV "
Description.......... " "
System call.......... " "
Module............... "emxx.c"
Line................. 1881
The error reported by the operating system is:
Error number..... " "
Error text....... " "
How to correct the error
Report the error to the group responsible for installing your
R/3 System.
Please help.
regards
deepakDump is telling you what to do...
Review abap/heap_area_dia and abap/heap_area_nondia
I presume you try that before posting right?...
Whats the issue then?
Regards
Juan -
Setting Folder Pane in Screen Painter
Hi All,
I have a question about setting a value of pane - folder's property. When I set this property in Screen Painter and choose form preview form's pane level changes, but when I save this form in xml file and load in my add on I have to add code that changes pane level after clicking on folder. Also SAPbouiCOM doesn't contain such property like Pane. What is this property for? Why it works in SP and doesn't when load from xml? Is this just for Screen Painter?
Regards
SzymonForm.PaneLevel is a property for form and it changes form panelevel.
I think that comparable property for for Folder.Pane (in Screen Painter) would be val off and val on.
The most important thing for me was to be sure that I have to handle changing of panelevel by myself. I thought that maybe this property wasn't handle by SAP SDK correctly.
Regards
Szymon -
Color of container name in screen painter - problem
Hi, I have written a program to collect records from the database and display them in the ALV Grid using OOP Methods. I have created a screen for this and called it in my program. It is working but in the screen painter the name of the container control is in red color. Does it mean that there is something wrong with it? The program works perfectly all right. And also the 'Back', 'Cancel' and the 'Exit' buttons remain disabled in the toolbar in the final output window. If anybody could tell me how to make them enable then it would be great.
Thanks,
PushpaNow double click the "Main100", system will ask if you want to creat it, say yes. Give descriptin and click green check. Now click the icon next to "Function Keys", enter BACK into the space green arrow, EXIT into the yellow icon, and CANCEL into the red one. Save and activate. Now you need to handle these fcodes in your program. Make sure to put the name of the OK_CODE field in your screen, make it OK_CODE. So now you need a PAI.
MODULE USER_COMMAND_100.
case ok_code.
when 'BACK' or 'EXIT' or 'CANCEL'.
clear ok_code.
set screen 0.
leave screen .
endcase.
ENDMODULE.
Regards,
RIch Heilman -
Cannot load XML file in Screen Painter in SAPB1
Hi All,
i am creating an xml file of existing purchase order through the following code
Public Sub getxml(ByVal FormUID As String)
Dim f As SAPbouiCOM.Form
f = sbo_application.Forms.Item(FormUID)
Dim oXmlDoc As Xml.XmlDocument
Dim sXmlString As String
oXmlDoc = New Xml.XmlDocument
'// get the form as an XML string
sXmlString = f.GetAsXML
oXmlDoc.LoadXml(sXmlString)
Dim sPath As String
sPath = IO.Directory.GetParent(Application.StartupPath).ToString
oXmlDoc.Save((sPath & "\ChangedXml.xml"))
End Sub
i am calling this function getxml in pageload of this form as
Private Sub B1_Application_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles sbo_application.ItemEvent
If pVal.FormType = "142" And pVal.BeforeAction = False Then
Dim oItem As SAPbouiCOM.Item
Dim oFolder As SAPbouiCOM.Folder
Dim oform As SAPbouiCOM.Form
Dim oStaticText As SAPbouiCOM.Button
Dim oEditText As SAPbouiCOM.EditText
Select Case pVal.EventType
Case SAPbouiCOM.BoEventTypes.et_FORM_LOAD
getxml(FormUID)
End Select
End If
End Sub
it will create the xml file ChangedXml.xml in the destination folder, then i will copy that one and paste it and change the extension to .srf.
then i will open screen painter and try to acceess this one it will open the form but it will give an error as Error: Menu - Image Type Not Supported
it will open the screen but it won't open the matrix, the space which consists of matrix in the original form will come as blank.
Please any one help me, it's urjent.
Thanks,
Vaithy
09886807576Hi Vaithy,
Not all the items you have in B1 forms are supported by the UI API and/or the ScreenPainter.
If you need to reproduce a B1 system form you will have to remove all items giving you an error in the ScreenPainter and then have a reduced form.
Why do you need the xml of the Purchase Order form? Please take care if you are trying to reproduce the behavior of the Purchase Order form, there can be some Formatted Searches or other customizations in the B1 form if you are using other addons.
Hope it helps
Trinidad. -
In screen painter I am unable to attach the folder with the respective matrix. Please give the complete method to attach the above mentioned.
Hi Manish,
I am not too sure what you want to know, but if you want a matrix to be displayed only on a specific folder you should do the following. I am going to show you the code, but you can do parts of it in screenpainter as well. In screen painter you cannot display it like you would at runtime.
On your matrix you would set the PaneFrom and PaneTo properties. To only set it visible on the first folder:
Dim oItem As SAPbouiCOM.Item
Dim oForm As SAPbouiCOM.Form
oForm = oApplication.Forms.ActiveForm
oItem = oForm.Items.Item("My_Matrix")
oItem.FromPane = 1
oItem.ToPane = 1
To add the folder you'll have to remember to set the ValOn and ValOff properties:
Dim oFolder As SAPbouiCOM.Folder
oFolder = oForm.Items.Item("My_Folder").Specific
oFolder.Caption = "MyFolder"
oFolder.DataBind.SetBound(True, "", "UDS_1")
oFolder.ValOff = 0
oFolder.ValOn = 1
To invoke the folder's click event you have to code it manually:
Private Sub SBO_Application_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles oApplication.ItemEvent
If pVal.FormTypeEx = "My_Form" Then
If pVal.BeforeAction = True Then
If pVal.ItemUID = "My_Folder" Then
If pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED Then
Dim oForm As SAPbouiCOM.Form
oForm = oApplication.Forms.ActiveForm
oForm.PaneLevel = 1
End If
End If
End If
End If
End Sub
Hope it helps,
Adele -
Screen Painter - eLearning Video
Hi,
I love Screen Painter after 3 month of manually building my forms.
I like to learn more; I read SAP Screen Painter help, but not much there...
Any white paper or eLearning video out there...?
Thank very much for your help and support!
RuneThats not the screen painter, you have to handle the choose from list event and write the value to field.
Dim oCFLEvento As SAPbouiCOM.IChooseFromListEvent
oCFLEvento = pVal
Dim sCFL_ID As String = oCFLEvento.ChooseFromListUID
Dim sVal As String
' exit when nothing had been chosen / found...
If Not oCFLEvento.SelectedObjects Is Nothing Then
Dim oDataTable As SAPbouiCOM.DataTable
oDataTable = oCFLEvento.SelectedObjects
' nothing selected... => exit
If oDataTable.Rows.Count = 0 Then Exit
Try
sVal = oDataTable.GetValue(0, 0)
oEditText.Value = sVal 'Edit text on the form which your CFL is on
Code copied and slightly changed from Re: events surrounding choosefromlist on system form. -
Range options in screen painter
Developed an application in ABAP for employee entitlement. Most of the screens are designed in Screen painter as they has to be run for single Emp. psl no.
But screen for infosystems (2000) is designed using selection-screen as it can be run for single or multiple EMP PSL no.
This infosystems screen is called using " Call selection-screen command'.
Now whenever there is change in program the flow logic of screen 2000 is changed. Now my questions are
- How to call screen 2000 without affecting flow logic.
- How to design screen in screen painter for parameter ranges.
Kindly help as no help is available
thanks
anuHi,
select options in screen check this code..
REPORT ZTEST_SCREEN .
DATA : BEGIN OF IT_DYNPFIELDS OCCURS 3.
INCLUDE STRUCTURE DYNPREAD.
DATA : END OF IT_DYNPFIELDS.
DATA: TEST(10) TYPE C.
RANGES: R_UNAME FOR SY-UNAME.
DATA: V_USERNAME LIKE SY-UNAME.
DATA : V_PROG LIKE D020S-PROG VALUE 'ZTEST_SCREEN',
V_DNUM LIKE D020S-DNUM VALUE '0100'.
CALL SCREEN 100.
*& Module STATUS_0100 OUTPUT
* text
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'TEST'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
* text
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Module GET_CURSOR_USERNAME INPUT
* text
MODULE GET_CURSOR_USERNAME INPUT.
REFRESH IT_DYNPFIELDS.
CLEAR IT_DYNPFIELDS.
MOVE 'V_USERNAME' TO IT_DYNPFIELDS-FIELDNAME.
APPEND IT_DYNPFIELDS.
CLEAR IT_DYNPFIELDS.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = V_PROG
DYNUMB = V_DNUM
TRANSLATE_TO_UPPER = 'X'
TABLES
DYNPFIELDS = IT_DYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 1
INVALID_DYNPROFIELD = 2
INVALID_DYNPRONAME = 3
INVALID_DYNPRONUMMER = 4
INVALID_REQUEST = 5
NO_FIELDDESCRIPTION = 6
INVALID_PARAMETER = 7
UNDEFIND_ERROR = 8
DOUBLE_CONVERSION = 9
STEPL_NOT_FOUND = 10
OTHERS = 11.
IF SY-SUBRC = 0.
READ TABLE IT_DYNPFIELDS WITH KEY FIELDNAME = 'V_USERNAME'.
IF SY-SUBRC = 0.
V_USERNAME = IT_DYNPFIELDS-FIELDVALUE.
ENDIF.
ENDIF.
PERFORM GET_MULTIPLE.
ENDMODULE. " GET_CURSOR_USERNAME INPUT
*& Form GET_MULTIPLE
* text
* --> p1 text
* <-- p2 text
FORM GET_MULTIPLE .
* Dynamically holding Field name
FIELD-SYMBOLS: <FST> TYPE STANDARD TABLE.
IF R_UNAME[] IS INITIAL.
IF NOT V_USERNAME IS INITIAL.
R_UNAME-SIGN = 'I'.
R_UNAME-OPTION = 'EQ'.
R_UNAME-LOW = V_USERNAME.
APPEND R_UNAME.
CLEAR R_UNAME.
ENDIF.
ENDIF.
ASSIGN R_UNAME[] TO <FST>.
CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
EXPORTING
TITLE = 'Select Multiple Value'(059)
TEXT = 'Finish Group'(058)
SIGNED = 'X'
LOWER_CASE = ' '
NO_INTERVAL_CHECK = 'X'
JUST_DISPLAY = ' '
JUST_INCL = 'X'
TABLES
RANGE = <FST>
EXCEPTIONS
NO_RANGE_TAB = 1
CANCELLED = 2
INTERNAL_ERROR = 3
OTHERS = 4.
IF SY-SUBRC = 0.
READ TABLE R_UNAME INDEX 1.
IF SY-SUBRC = 0.
V_USERNAME = R_UNAME-LOW.
ENDIF.
ENDIF.
ENDFORM. " GET_MULTIPLE
Check this thread...
Select option in Dialog program screen
Regards
Vijay -
Design Folder in Screen Painter
Hello,
Where can I find information on Design Folder in Screen Painter?
Because the information on the help is very basic.
Best Regards,
Jose.Hello David,
I have fallowed all the instructions you give me, but i keep having problems.
The first think am doing is make an event from a menu, that loads the application, after these I need to assign the event to the form. I have replicated every step from the sample ComplexForm. I have added the events, the one from the menu and the one for the form in the same class. I dont know if this is how I should do it, or I should follow another step?
Private Sub SBO_Application_MenuEvent(ByRef pVal As SAPbouiCOM.MenuEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.MenuEvent
If (pVal.MenuUID = "Mymenu") And (pVal.BeforeAction = False) Then
//Here call the form but no function
CodigoForm()
End If
End Sub
Regards,
Jose -
Is it me or is screen painter a bit naff in sbo 2004 ?
Hi
Screen painter seems fine for normal text and labels but if you use many other objects it doesn't seem to work properly.
Check box's don't work, it seems to loose datasources, it doesn't seem to handle pains well. I seem to have to edit the xml file and all is well but as soon as you add more fields those changes are lost.
Am I missing something or are most people starting in screen painter and editing xml files ?
I think screen painter is better in 2005 but the eval copy I have loaded doesn't seem to want to load any addons
Any comments warmly received
Regards AndyHi Nick,
Why does SAP try to develop a full GUI development tool, instead of using avaiable tools?
I have tested the BO DE toolkit, and it is really good. Why doesn´t SAP go on with this toolkit and integrate the GUI development tool in VS.Net?
I don´t think it would be too difficult to create a subset of controls that just creates the SBO XML form when generating the forms. This way, developers should develop once, use twice (inside SBO as an AddOn, or outside SBO, as 3rd party application using the DI.).
This will really improve the development time of SBO AddOns, which is nowadays not too good (IMHO). BO DE toolkit is just the start for a really good development platform. But is just the start.
Any comment is wellcome.
Ibai Peñ -
Coding in form created in screen painter
I have created a form in screen painter.How can I do coding in this form.I have added a save button in the form.How can I fire the click event on this button.The file created has extension srf and it can not be opened in asp.net.
Hi Dilip,
Although the file has a srf file extension it is actually an XML file. You can use this file to create an instance of your form through code. In the UI API there is a Application object. This object has a method called LoadBatchActions which takes one parameter which is your srf file (ie the path and filename). Calling this method will create a form in the active UI based on your srf file. You can then create an instance of the Form object in the UI API and use this to manipulate your form through code.
I also recommend you look at the SDK learning material here on the SDN and also look at the samples that come with the SDK.
Kind Regards,
Owen
P.S. Please note that you've posted your question in the application forum for SAP Business One. This forum is for discussions on the application functionality of SBO and not the SDK. Instead, please post queries about screen painter and other development questions here:
SAP Business One SDK
Thanks
Maybe you are looking for
-
HT204053 My iCloud tab is not highlighted on
My iCloud tab is not highlighted on my iPad in settings so I can't click on it to activate. What do I need to do? Thanks
-
Dynamic Screen in Table Control
Hello Guys, I have a problem on screen dynpro. In the screen, i have a table control and i set all the field can be input. But i have 2 t-code where 1 of the t-code can edited the data and another one only display. So in screen status, i insert this
-
My Macbook Pro 13 inch that I purchased Dec. 2010 has been stolen and I went to get the serial number from when I registered to find that for some reason the serial number did not make it to Apple's server, they have my name address and phone # but n
-
Change default colours in quiz template
Hi, I'm using the Flash quiz templates to make some quizzes. Can anyone tell me how to change the colour of the message text AFTER an option has been selected. I can change the colour of the 'Make a selection' text but once the selection has been mad
-
BOMGR 0070 message in a Full Client report from webintelligence
Hi, I have a problem with a FullClient report from Webi. This report run very well in fullClient, but when I try to run it from webintelligence. It sends me the following error message: "System error COM error during call to BusinessObjects server