Add linkbutton to Matrix (Screen Painter)
Hi All,
I want to add a link button in a matrix but no success (The form has been developed in Screen Painter).
Any Idea?
Best Regards,
Vangelis
Edited by: Vangelis Kanellopoulos on Dec 31, 2009 10:48 AM
Hello ,
You can have a look a this thread Re: Screen Painter. How to...
this is a way to do it a second way is to specify in screen painter the properties of your colum
-Type = linkedobject
-LinkedobjectType = 20
linked object type takes the BoObjectTypes Enumeration search for it in the sdk
It will give you something like this in your xml file
<column uid="C17" type="116" title="Provision Num" description="" visible="1" AffectsFormMode="1" width="102" disp_desc="0" editable="0" right_just="0" val_on="Y" val_off="N" backcolor="-1" forecolor="-1" text_style="0" font_size="-1">
<databind databound="1" table="" alias="DSProvNum"/>
<ExtendedObject linkedObject="30" LinkedObjectType="30"/>
</column>
BR
Abderrahim BOUKHRIS
Similar Messages
-
How to add new column in screen painter
Hi
I have try to add new column on existing screen and test screen in se51, the column is added in position correctly. But when I run program call this screen, the added column is placed as the last column.
Please help.
ThanksThank for your replied.
I have check the table control, it has fix column. So, I set fix column to 0 at table control but when execution by program call it's still not update what I have changed. (On test screen in se51, it come out correctly and updated)
So, I don't know why I use program call this screen, the screen is not updated what I have try to change but, when execute in test screen it come out correctly
PS. I have check attribute, it's numbered right.
Please help !!
Edited by: VerdamFK on Oct 4, 2010 8:11 AM -
How to put "selection options without intervals" on screen painter?
Hello all,
I need to put a field for pernr(personal number) on screen painter (module program) and user should be able to enter a list of pernr's to process. I know in report program I can do this by:
SELECT-OPTIONS: s_lpernr FOR pa001-pernr NO INTERVALS.
How can I get this work on sccreen painter in module programming? How can I add a field on screen painter with a range without intervals? Please let me know.
Thanks.
Mithun.You can also do this using the function module COMPLEX_SELECTIONS_DIALOG.
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 EQ 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 EQ 0.
READ TABLE R_UNAME INDEX 1.
IF SY-SUBRC = 0.
V_USERNAME = R_UNAME-LOW.
ENDIF.
ENDIF.
ENDFORM. " GET_MULTIPLE -
Adding input box to screen painter
Hi abapers,
my question is...... is it possible to add input box to screen painter though code,
NOT by drag and drop?Well it would probably be technically possible to create a complete dynpro "on the fly" in memory and then save and generate it (i.e. replicate everything SAP does in SE80) and then display it to the user... however the risks are high, and the user might not like the delay while your program does this. The usual practice is to define the field on the screen, and then hide it if it is not required under some circumstances, using the usual "loop at screen. screen-active = '0'. endloop." technique.
-
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 - Matrix CellHeight & TitleHeight
Hi,
In Screen Painter the Matrix CellHeight & TitleHeight change all the time when I open the Form in Screen Painter. It works when I run the Form, but when I change the Form I always have to change the CellHeight & TitleHeight before I close the fom...puh
Any suggestion?
Thank you,
RuneHai Rune,
U r change the .srf file to .xml na. So i can able to modify the xml file. I also have the same issue. But i change in xml so its working fine.
Here is the code
<item uid="m_Dbond" type="127" left="15" tab_order="0" width="526" top="78" height="228" visible="1" enabled="1" from_pane="0" to_pane="0" disp_desc="0" right_just="0" description="" linkto="" forecolor="-1" backcolor="0" text_style="0" font_size="-1" supp_zeros="0" AffectsFormMode="1">
<AutoManagedAttribute />
<specific SelectionMode="0" layout="0" titleHeight="21" cellHeight="17">
<columns>
<action type="add">
<column uid="v" type="16" title="#" description="" visible="1" AffectsFormMode="1" width="20" disp_desc="0" editable="1" right_just="0" val_on="Y" val_off="N" backcolor="-1" forecolor="-1" text_style="0" font_size="-1">
<databind databound="1" table="@DBOND_DETAIL" alias="LineId" />
<ExtendedObject />
</column>
Regards,
Anitha -
Big problems with Matrix and Screen Painter
Hi all !!!
I have a terrible time with my matrix in screen painter. I looked over all the samples in SDK and tried different things. The closest i got to make it work is when my form loads, i can click in each on my cells on the first row of the matrix but when i enter data if i click on another cell i lose the data. My form is fairly simple. I got 4 fields as regular data and a matrix with 8 columns. Can someone help me with this !!! Maybe one of you have an complete example for entering manually data in cells and then save it. I'm using a UDT (not UDO) table and using .net ...
Thanks in advanceHi Alain
It's not necaserry to delete the matrix. Leave it there. Then access your matrix with the following code
Dim oMatrix As SAPbouiCOM.Matrix
Dim oColumn As SAPbouiCOM.Column
Dim oColumns As SAPbouiCOM.Columns
oMatrix = SBO_Application.Forms.Item("FormID").Items.Item("MatrixID").Specific
oColumns = oMatrix.Columns
oMatrix.Clear()
then create datasource and bind
oForm.DataSources.UserDataSources.Add("DataID", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 20)
oColumn = oColumns.Item("ColID")
oColumn.DataBind.SetBound(True, "", "DataID")
Hope this helps -
Issue with Screen Painter Add-On after patch updation
Hi Experts,
We are using 2007 B PL10. We upgraded to PL 11 and now we are getting the following error while trying to start the Screen Painter Add-On.
"Wrong Executable digital signature for Add-on"
Please help!
Thanks in advance
Ajith GHi Ajith,
Check the thread
Installing addons on client
Regards
Jambulingam.P -
Matrix column position problem in screen painter.
hi.
i am facing one problem.
ie.
i am developing one screen.
it is having 3 matrix
each matrix is having some columns
one matrix ok two matrix ok thrid matrix ok.
but
under third matrix i put some columnes
1, 2 ,3, 4,
in screen painter design mode every thing is ok
it is appearing like 1,2,3,4
but at preview mode or through the code if i open
it is appearing like 1, 4,3,2
in preview mode screen painter if i click on the form settings it is showing only..
matrix one columns only it is not showing either 2 or 3
and if i open the form through the code..
i am able to see the columns of matrix 1 n matrix 2 and matrix 3
i am using some code.
If (pVal.FormUID = "WIP2PROCESS" And pVal.ItemUID = "1000007") Then
oForm = SBO_Application.Forms.Item("WIP2PROCESS")
oForm.PaneLevel = 2
oForm.Settings.Enabled = False
oForm.Settings.MatrixUID = "59"
End If
now through the source code i am able to see the each column under matrix.
but if i change the matrix position at form setting it is changing but
if i click other folder and come back to previous folder..
again the column position is 1, 4,3,2
previously i changed to 1,2,3,4
how can i do it..
screen painter can i change it..
Any information plz update me..Hi Srinivas,
Can you do one thing for me ? Open your form in screen painter, set the columns as you want to display. Now change the unique id for the matrix. Then try to open it through code or see in preview mode.
Hope it helps.
Thanks & Regards
Ankit Chauhan -
Screen Painter - Delete a Matrix Column
Hi,
I am trying out Screen Painter. Really nice tool !!!
I added 1 column to much in my Matrix, how do I delete the column?
And how does the Swap button work? (Swap = To trade one thing for another.)
Thank you,
RuneRune,
I don't know if there's an easier way, but I open the XML code (the srf file), find the begining and end of the specific column info and remove it. then Save and the column is gone. You can do this in notepad or any editor. You just have to be careful to remove only the right code, but it's all together in one long section.
Of course make a backup of the srf file first Hope this helps. -
How to add a search help on a screen field from screen painter
Hi,
I would like to add an existing Search Help on a screen field in Screen painter.
Of course it's possible to just click on th screen field and in the property box, I just have to set the name of teh search help.
The problem is that I need the screen field to be grey and user musn't be able to change the field value if he doens't use the search help.
I'm not allowed to modify the existing search help or to built it on my own from source code, I must use the existing one.
Do you have an idea on how to do so?
Regards,
MorganDropdown Box:
In the screen painter for that field goto properties -> Dropdown ->select listbox.
Option 1:
Instead let that field be in change mode and if user enters any wrong entry which is not there in the table give a error messgae.
CHAIN.
FIELD addr1_data-country.
MODULE modify_screenfields1.
ENDCHAIN.
MODULE modify_screenfields1 INPUT.
CASE sy-ucomm.
WHEN 'ENTER' OR 'EXECUTE'.
IF NOT addr1_data-country IS INITIAL.
SELECT SINGLE landx FROM t005t INTO lws_landx WHERE
land1 = addr1_data-country
AND spras = 'EN'.
IF sy-subrc <> 0.
MESSAGE e000(zo_spa) WITH text-022. " Invalid Country code
ELSE.
t005t-landx = lws_landx.
ENDIF.
ELSE.
CLEAR: t005t-landx.
ENDIF.
ENDCASE.
ENDMODULE. " modify_screenfields1 INPUT
Option 2: Other than if u want the way u like, let that field be greyed out. don't attach the search help.
In the PROCESS ON VALUE-REQUEST.
FIELD addr1_data-region MODULE region_pov.
MODULE region_pov INPUT.
Using the F4IF_INT_TABLE_VALUE_REQUEST table value request show the search help.
also make that field input enabled.
ENDMODULE. " region_pov INPUT
I think this will solve ur problem.
Regards,
Prakash.
Message was edited by: Prakash Ramu -
Add functionalities to form created in screen Painter
Hello.
Where I can find information or an example of as
I can add functionalities to form created in screen Painter?
Regards,
JoseHi David,
I want add and modify a field of it_EDIT from my form.
I find on the web this: BoFormItemTypes.it_EDIT.
But same error.
I am using this code:
Private Sub CodeForm()
Dim oitem As SAPbouiCOM.Item
Dim oLabel As SAPbouiCOM.BoFormItemTypes
oForm = SBO_Application.Forms.GetFormByTypeAndCount(60004 '// <<----
this is my form, 0)
oitem = oForm.Items.Item("10")
oLabel = oitem.Specific
oLabel = "Escribir nombre"
End Sub
But don't function.
Regards,
Jose -
How to add record in List Box in Screen Painter(SE51) ?
I am not able to add record in List box in Screen Painter using se51 Transaction code.
Regards,
Nirav DesaiDear All,
I found the solution.
If you are facing same problem , follow the bellow steps.
1. Declare in report.
TYPE-POOLS: VRM.
DATA: NAME TYPE VRM_ID,
LIST TYPE VRM_VALUES,
VALUE LIKE LINE OF LIST.
2. IN PBO Event.
clear: list.
NAME = 'TXT_PERIOD'. " your screen field name
VALUE-KEY = '1'.
VALUE-TEXT = 'LINE 1'.
APPEND VALUE TO LIST.
VALUE-KEY = '2'.
VALUE-TEXT = 'LINE 2'.
APPEND VALUE TO LIST.
VALUE-KEY = '3'.
VALUE-TEXT = 'LINE 3'.
APPEND VALUE TO LIST.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING ID = NAME VALUES = LIST.
Regards,
Nirav Desai -
Screen Painter. How to...
How to use the Matrix with a complex query and beeing able to make some columns with a LinkButton to the document.
Which control should I use. A Matrix, or a Grid
Which one let me get Data from a complex query and by the same time beeing able to set some columns as Link to a document
To date I've been able to use the DBDataSource.Add("BUT IT NEEDS A TABLE") not a query and I face the challenge
of adding all the conditions with the dbDataSource.Query(CONDITIONS) which doesn't work since I have to get
data from other tables....Awesome. Thank you.
Just a last question. When I set the Query in the Screen Painter. Why do I have to provide it again by code ?
I did create the Data Table in Screen Painter and called it dtORDR but in code
but I have to do a ExecuteQuery and provide the query again ?
Since I get it the way you explained, why do I have to ExecuteQuery with the same query again ?
I also get a Table not found when running
MyDataTable is called dtORDR made in the ScreenPainter with a simple SELECT
and by code I do like you said, and the binding are on dtORDR but I get "Table not found..."
Here's my actual code :
string Query = "SELECT ORDR.DocEntry AS OrderEntry, ORDR.DocNum AS OrderNum, ORDR.NumAtCard, ORDR.DocDueDate, ORDR.DocTotal, " +
"ORDR.CardCode AS CustomerCode, ORDR.CardName AS CustomerName, OCRD.FatherCard, OCRD.CreditLine " +
"FROM ORDR INNER JOIN " +
"OCRD ON ORDR.CardCode = OCRD.CardCode";
oApprobationsMatrix = oForm.Items.Item("mOrders").Specific as SAPbouiCOM.Matrix;
SAPbouiCOM.DataTable DBDataTable = oForm.DataSources.DataTables.Item("dtORDR");
DBDataTable.ExecuteQuery(Query);
// Settings the columns...
oApprobationsMatrix.Columns.Item("Indicator").Width = 20;
oApprobationsMatrix.Columns.Item("cDocNum").DataBind.SetBound(true, "dtORDR", "OrderNum");
oApprobationsMatrix.Columns.Item("cDocNum").Editable = false;
oApprobationsMatrix.Columns.Item("cDocNum").Width = 107;
oApprobationsMatrix.Columns.Item("cDocEntry").DataBind.SetBound(true, "dtORDR", "OrderEntry");
oApprobationsMatrix.Columns.Item("cDocEntry").Visible = false;
I also tried to remove the table from the Screen Painter and use the code instead like this
oApprobationsMatrix = oForm.Items.Item("mOrders").Specific as SAPbouiCOM.Matrix;
SAPbouiCOM.DataTable DBDataTable = oForm.DataSources.DataTables.Add("dtORDR");
DBDataTable.ExecuteQuery(Query);
and I stiil get "Table Not Found"
but the table seems to be there all right.
[See this image...|http://pages.videotron.com/gear/problem.jpg] -
Screen Painter how to, manual or flash book
Is there a screen painter manual, how to or flash book?
I started using it but the help is to simple, for now I want to create a form that will ask for an inventory code and bring in description and barcode field. Then the last field will ask for a quantity, that I will read with my add on to print barcode labels.
Regards,
William BurgosHi William Burgos
Screen painter is very basic. It only creates a screen. So all you do is make a new form, drop things on it like a text box, combo box, matrix and so on. But screen painter itself has no logic and you can't set it to do certain actions.
Screen painter only creates the form. Then you through code must load the form that screen painter created, this form is actually a XML form. Through code you must also apply all the logic.
Hope this helps
Maybe you are looking for
-
Mac Book Pro running Mountain Lion OS X 10.8.5 after the notebook sleeps audio and video does work (for example on YouTube). I have been able to temporarily work around this by toggling the settings on Built-in Output in Audio Midi Setup, Audio wind
-
Java FX apps won't run on the browser with Linux
This is my current system configuration: Opensuse 12.3 x64 Nvidia Gefore 9600gt with Proprietary drivers Tried both the Oracle Java 7u45 and 7u51 (Installed according to: SDB:Installing Java - openSUSE) Google Chrome and Firefox (Latest versions for
-
Hide the sidebar in Numbers?
Is there a way to hide the left-hand sidebar in Numbers?
-
Transfer of msg type files from Dell to Mac
good morning - I bought my first Mac yesterday (in reality I had a Apple 2GS 20 years ago) I am transferring the daya from my Dell PC to the Mac - in the documents I want to transfer I have many msg type files from Microsoft Outlook - the Mac does no
-
Cisco PI v2.2 Network Topology Maps
Good afternoon, I have Cisco PI v2.2 installed on a VM and working fine. I want to add my Network Topology Maps to the main dashboard for ALL users, but I can only see them when logged in as root. How can I get a "standard" user to be able to view