Matrix Row Click Event
Dear Support Team,
I want to populate another matrix on clicking a row of a matrix. which event should i capture.
Thanking you
Pradnya
Hi Pradnya
Hi you can use after click event on the # column ( or any other column as per your requirement )
<B1Listener(BoEventTypes.et_CLICK, False)> _
Public Overridable Sub OnAfterClick(ByVal pVal As ItemEvent)
Dim ActionSuccess As Boolean = pVal.ActionSuccess
Dim form As Form = B1Connections.theAppl.Forms.Item(pVal.FormUID)
Dim item As Item = form.Items.Item("mtx1")
Dim matrix As Matrix = CType(item.Specific, Matrix)
'ADD YOUR ACTION CODE HERE ...
If pVal.ItemUID = "mtx1" Then
If pVal.ColUID = "V_-1" Then '# clumn id
' Write code for populating the matrix
End If
End If
End Sub
Hope this will help You
Regards
Arun
Similar Messages
-
Row action event on data table does not occur when rows added dynamically
Row action event on data table does not occur (only refreshes the page) when the rows in the data table are added dynamically at run time using button click and java bean.
please tell me a way to catch the row click event when adding rows dynamically to data table. i m using RAD 6.0 to develop Faces jsp pages.
thanks
amiti got the answer
-
Make Double Click event on Row, Matrix
Hi All,
I'm new in SDK and sorry for my English.
Please show me how to make double click event on Row of Matrix, i have created a table contain all Draft which Docstatus is open and order by ObjType(DocType), but i can't using Link Button on DocNum Column to view Object Detail . I think another way to do that is make a double click event on each row of matrix. Can I do like that ? plz show me . Thank for any suggestion.
ThanksHi Shafi,
This is my .srf file
<items><action type="add"><item uid="MTX_Data" type="127" left="15" tab_order="0" width="620" top="41" height="285" visible="1" enabled="1" from_pane="0" to_pane="0" disp_desc="0" right_just="0" description="" linkto="" forecolor="-1" backcolor="-1" text_style="0" font_size="-1" supp_zeros="0" AffectsFormMode="1"><AutoManagedAttribute /><specific SelectionMode="2" layout="0" titleHeight="19" cellHeight="19" TabOrder="0">
This is my code draw a form with matrix
Private Sub DrawForm()
Try
'Read File interface
LoadFromXML("DraftOpen.srf")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
oForm = SBO_Application.Forms.Item("DRFOPEN")
' Add Items
' Add a matrix
oMatrix = oForm.Items.Item("MTX_Data").Specific
oMatrix.SelectionMode = SAPbouiCOM.BoMatrixSelect.ms_Single
This is my event
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 = "DRFOPEN" And pVal.ItemUID = "MTX_Data" And pVal.EventType = SAPbouiCOM.BoEventTypes.et_DOUBLE_CLICK And pVal.BeforeAction = True Then
Try
oForm = SBO_Application.Forms.Item("DRFOPEN")
Dim omatrix As SAPbouiCOM.Matrix
omatrix = oForm.Items.Item("MTX_Data").Specific
If omatrix.RowCount > 0 Then
For i As Integer = 1 To omatrix.RowCount
If omatrix.IsRowSelected(i) = True Then
MessageBox.Show(omatrix.Columns.Item(1).Cells.Item(pVal.Row).Specific.value)
MessageBox.Show(omatrix.Columns.Item(2).Cells.Item(pVal.Row).Specific.value)
End If
Next
End If
Catch ex As Exception
SBO_Application.MessageBox(ex.Message)
End Try
End If
please help me to check this code. i don't know why it's still not working with double click event. sorry to disturb you.
Edited by: PeterHoang on Aug 30, 2011 10:15 AM -
hello expert
i want to create add row functionality by right click event like in SAP B1 when we click on matrix colum it give menu for Remove,copy,add row in matrix how i do it by in my userdefiend form matrixHello,
If you enable the menu on your form Add row (menu id: 1292), Del Row (menu id: 1293 )it will automatically appear in right click .
copy should be added indivudally, and developed the functionality for each
enable them:
oForm.EnableMenu("1292", True)
oForm.EnableMenu("1293", True)
You can use MenuEvent to add/del/copy rows in the matrix or RightClickEvent
Regards,
J. -
Open system form and select a row number on matrix by click on button
Hi experts,
I have to open the purchase order form and select a specific row number from the matrix by clicking a button on sales order form.
is it possible ?
can anyone help me to achieve it?
Thanks in advance.
Best regards
AndreaAndrea,
To Do? Clicking on a Button on Sales Order -> Opens a PO form, and selects the row?
In the eventhandler of a button click if the PO is not linked to SO by SAP B1 standard functionality
step 1. call ActivateMenu ("2305") of Sbo_application , this opens the PO form
step 2. Change the form to Find mode
step 3. enter po number to the Item UID "8" which is the document number.
step 4. Send enter key, or Clikc On button UID "1" which finds the PO
step 5.read the value from SO form, from matrix "38" line where you selected
step 6. use the code above to locate the line in PO (use # column for position numbers which UID is 0)
at step 5, i think you should select a line from SO matrix which you would like to open.
IN sales order, If you used PO chekcbox on logistics tab to create the PO, you can find a direct link between PO and SO (only in docentries are linked not positions) on sales order, Column UID 158 field name: potrgnum. If this connection is exists, you have an easy way:
SO form, when a user clicks on COlumn 158 (po number), you can implement an eventhandler, which
step 1.read the value from SO form, from matrix "38" line where you selected
step 2. use the code above to locate the line in PO (use # column for position numbers which UID is 0)
By processing theses steps, you can build up you solution.
Regards
János -
Good Morning
Experts:
I have added several options(SAP and Custom) to the Right-Click event. It works as designed when Right-Clicking on the Matrix. However, when Right-Clicking anywhere else on the screen, the options are still displayed.
How can I restrict the options to only be displayed when Right-Clicking on a Matrix?
Thanks,
EJDHi Ed,
The right click event is completely separate event (ie it is not an EventType within the ItemEvent).
So to code it (C#):
private void _sboApp_RightClickEvent(ref SAPbouiCOM.ContextMenuInfo EventInfo, out bool BubbleEvent)
BubbleEvent = true;
if(EventInfo.FormUID == "MYFORM")
// Do some stuff
You also need to have defined the event while initialising the application object:
this._sboApp.RightClickEvent += new SAPbouiCOM._IApplicationEvents_RightClickEventEventHandler(this._sboApp_RightClickEvent);
There's an example project in the UI section of the SDK samples (number 22).
Kind Regards,
Owen -
Hi All
I have to capture the right click event on a matrix
here is my code
<B1Listener(BoEventTypes.et_RIGHT_CLICK, True)> _
Public Overridable Function OnBeforeRightClick(ByVal pVal As ContextMenuInfo) As Boolean
Dim form As Form = B1Connections.theAppl.Forms.Item(pVal.FormUID)
'ADD YOUR ACTION CODE HERE ...
If pVal.ItemUID = "matItems" Then
' do something
End If
Return True
End Function
the problem is that pVal.ItemUID always return null.
Can any one help me
Regards
Arun TB
Edited by: aruntb on Jul 14, 2010 9:39 PMSolved
-
Hi Pro,
I created a checkbox in a Matrix on a form and set up a click event for the checkbox. If I click once at a time slowly, the click event triggered as noraml. If I click it twice fast, it only triggered the click event once, not twice. Is it a bug in SAP 2007?
One more thing, put a focus on that checkbox column in a matrix, then press the "UP" or "DOWN" arrow key, the focus goes to previous or next row, it works perfect, except why it triggers the click event as well? Do you think this is wrong?
ChrisHi Chris,
When you click twice (fast), this translates to et_DOUBLE_CLICK event. Of course, et_CLICK is also fired.
When you press the "UP" or "DOWN" arrow key, along with et_CLICK event, other events are also fired e.g. et_GOT_FOCUS, et_LOST_FOCUS etc.
You can use Event Logger tool (part of B1DE) to look at all the events fired when a certain action is performed. This will help you determine which events you want to handle in your code.
Regards
Aravind -
Hello,
I'm trying to select multiple lines of a matrix clicking on any fields of a row. I can capture the event of the click and select the line clicked, but I'm not able to select multiple lines that way. I need to select the lines with modifiers in mind. I can make a click in the first column to select the line too, but I don't know how to perform a click with modifiers.
Thanks in advanceI think this is not what Martin needs, but simulate a click with modifiers.
We have the same problem. The matrix selection mode is BoMatrixSelect.ms_Auto. What we want to do is that when any column is clicked, it will behave as it was clicked on firts column (the one that is able to select rows). The problem is that Shift or Control button could be pressed too, which should select more rows than the clicked one. We know how to handle the click event with modifiers, but we don´t know how to send a click on the first column with them.
We haven´t found any solution to this.
Regards,
Ibai Peñ -
How to delete matrix row using rightclick ?
Hi all ,
I have UDO form .when i right click on a matrix then contextual menu appears only(Copy,Remove,Cancel) not appears (DELETE ROW ) .plz help how to contextual menu appears with (Delete Row) and which event fire when i click delete row.
thanks in advance
SurajitHi,
Menu Event..
If (pVal.MenuUID = "OnlyOnRCDE") And (pVal.BeforeAction = False) Then
Try
Dim oMenuItem As SAPbouiCOM.MenuItem
Dim oMenus As SAPbouiCOM.Menus
Dim omat As SAPbouiCOM.Matrix
Dim GCols As SAPbouiCOM.Columns
Dim i As Integer
pmat = pcFrm.Items.Item("5").Specific
GCols = pmat.Columns
pcFrm.DataSources.DBDataSources.Item(1).Clear()
pmat = pcFrm.Items.Item(selItem).Specific
For i = 1 To pmat.RowCount
If pmat.IsRowSelected(i) = True Then
pmat.DeleteRow(i)
Exit For
End If
Next
Catch ex As Exception
SBO_Application.MessageBox(ex.Message)
End Try
End If
Right Click Event
If eventInfo.FormUID = "AAAAAAAAAAAAAAA" Then
If (eventInfo.BeforeAction = True) Then
Dim omat As SAPbouiCOM.Matrix
Dim GCols As SAPbouiCOM.Columns
pmat = pcFrm.Items.Item("5").Specific
GCols = pmat.Columns
pcFrm.DataSources.DBDataSources.Item(1).Clear()
Try
selItem = eventInfo.ItemUID
Dim oCreationPackage As SAPbouiCOM.MenuCreationParams
oCreationPackage = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_MenuCreationParams)
oCreationPackage.Type = SAPbouiCOM.BoMenuType.mt_STRING
oCreationPackage.UniqueID = "OnlyOnRCDE"
oCreationPackage.String = "Delete Row"
oCreationPackage.Enabled = True
oMenuItem = SBO_Application.Menus.Item("1280") 'Data'
oMenus = oMenuItem.SubMenus
oMenus.AddEx(oCreationPackage)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Else
Try
SBO_Application.Menus.RemoveEx("OnlyOnRCDE")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End If
End If
Regards,
Siva -
Hi,
Is it the right way to use the right click event to delete row in Matrix?
Could you please give me the template method for right click event?
Thank you,
Runeprivate void m_Application_EventRightClick(ref SAPbouiCOM.ContextMenuInfo oContextMenuInfo, out bool BubbleEvent)
BubbleEvent = true;
string vm_Column_ID_string = oContextMenuInfo.ColUID;
string vm_EventType_string = Convert.ToString(oContextMenuInfo.EventType);
string vm_Form_ID_string = oContextMenuInfo.FormUID;
string vm_Item_ID_string = oContextMenuInfo.ItemUID;
Int32 vm_Row_Int32 = oContextMenuInfo.Row; -
Own menu item on matrix righ click
Hi
How can i add my own menu item on mouse right click event on a matrix in a form.
I want my menu to appear when i right click on a row in matrix in sales order form. I want to be able to get the row no of the matrix when i choose my menu.
Thanks
Satish Dwevedi (Dev)What version of SBO are you using? In 2004, there is no right click event, (2005 does have a right_click event) so it can give a little trouble. Mostly a right click triggers a normal click event, but not always.
Adele is right for the menu adding, you can add menuitems directly to the forms own menu.
However, the clicked row is not in the pVal.Row value, because the click on the context menu does fire a menuevent, wich does not have a pVal.Row variable.
You should have a global variable, and when the right clickevent occurs, save the row from pVal.Row. When later the menuclick occurs get the row from your global variable and perform your tasks.
<b>Code (C#):</b>
/* Global variable */
private int myRow;
/* Add the menu */
/* Add a procedure to add your form, see the UI API*/
public override void Handle_ItemEvent(string FormUID, ref ItemEvent pVal, out bool BubblesEvent)
/* Catch the click */
if((pVal.EventType == et_Click) && (FormUID == "MY_FORM_UID") && pVal.beforeAction)
myRow = pVal.Row;
BubblesEvent = false;
public override void Handle_MenuEvent(ref MenuEvent pVal, out bool BubblesEvent)
/* catch the menuclick */
if((pVal.MenuUID == "My_Context_MenuUID") && pVal.BeforeAction)
NiceFunctionToHandleMenuClickEvent();
BubblesEvent = false;
private void NiceFunctionToHandleMenuClickEvent()
/* Add your procedure wath you want to do with the row */
/* The row is stored in myRow */
Hope it helps, Rowdy -
How can I (neatly) control mouse click events in a multi-dimensional array?
Hello everyone!
I have a question regarding the use of mouse clicks events in a multi-dimensional array (or a "2D" array as we refer to them in Java and C++).
Background
I have an array of objects each with a corresponding mouse click event. Each object is stored at a location ranging from [0][0] to [5][8] (hence a 9 x 6 grid) and has the specific column and row number associated with it as well (i.e. tile [2][4] has a row number of 2 and a column number of 4, even though it is on the third row, fifth column). Upon each mouse click, the tile that is selected is stored in a temporary array. The array is cleared if a tile is clicked that does not share a column or row value equal to, minus or plus 1 with the currently targeted tile (i.e. clicking tile [1][1] will clear the array if there aren't any tiles stored that have the row/column number
[0][0], [0][1], [0][2],
[1][0], [1][1], [1][2],
[2][0], [2][1], [2][2]
or any contiguous column/row with another tile stored in the array, meaning that the newly clicked tile only needs to be sharing a border with one of the tiles in the temp array but not necessarily with the last tile stored).
Question
What is a clean, tidy way of programming this in AS3? Here are a couple portions of my code (although the mouse click event isn't finished/working correctly):
public function tileClick(e:MouseEvent):void
var tile:Object = e.currentTarget;
tileSelect.push(uint(tile.currentFrameLabel));
selectArr.push(tile);
if (tile.select.visible == false)
tile.select.visible = true;
else
tile.select.visible = false;
for (var i:uint = 0; i < selectArr.length; i++)
if ((tile.rowN == selectArr[i].rowN - 1) ||
(tile.rowN == selectArr[i].rowN) ||
(tile.rowN == selectArr[i].rowN + 1))
if ((tile.colN == selectArr[i].colN - 1) ||
(tile.colN == selectArr[i].colN) ||
(tile.colN == selectArr[i].colN + 1))
trace("jackpot!" + i);
else
for (var ii:uint = 0; ii < 1; ii++)
for (var iii:uint = 0; iii < selectArr.length; iii++)
selectArr[iii].select.visible = false;
selectArr = [];
trace("Err!");Andrei1,
So are you saying that if I, rather than assigning a uint to the column and row number for each tile, just assigned a string to each one in the form "#_#" then I could actually just assign the "adjacent" array directly to it instead of using a generic object to hold those values? In this case, my click event would simply check the indexes, one at a time, of all tiles currently stored in my "selectArr" array against the column/row string in the currently selected tile. Am I correct so far? If I am then let's say that "selectArr" is currently holding five tile coordinates (the user has clicked on five adjacent tiles thus far) and a sixth one is being evaluated now:
Current "selectArr" values:
1_0
1_1, 2_1, 3_1
2_2
New tile clicked:
1_0
1_1, 2_1, 3_1
2_2
2_3
Coordinate search:
1_-1
0_0, 1_0, 2_0, 3_0
0_1, 1_1, 2_1, 3_1, 4_1
1_2, 2_2, 3_2
2_3
Essentially what is happening here is that the new tile is checking all four coordinates/indexes belonging to each of the five tiles stored in the "selectArr" array as it tries to find a match for one of its own (which it does for the tile at coordinate 2_2). Thus the new tile at coordinate 2_3 would be marked as valid and added to the "selectArr" array as we wait for the next tile to be clicked and validated. Is this correct? -
ALV: Issue with double click event after sorting the ALV
Hello Experts,
I have an internal table that populates an ALV grid. When the user doubleclicks a row, my method HANDLE_DOUBLE_CLICK returns the e_row-index value from the ALV Grid. I use this index value to read the internal table, then retrieve additional data.
My problem is the user may sort the ALV grid before double clicking on a line. If this happens my internal table is not sorted to match the ALV grid, so reading the internal table with the e_row-index value returns the wrong information.
When the double click event occurs, is it possible to capture the value in column 1 instead of a value for e_row-index?
There is one more paramter in HANDLE_DOUBLE_CLICK for row id. It is coming blank in debugging . what is the purpose of this parameter and how i can make use of it ?
Regards
VivekHi,
I am Posting The Code Which Uses Double Click Event.
And This Code will provide the total information to you.
REPORT ZALVGRID_PG.
TABLES: SSCRFIELDS.
DATA: V_BELNR TYPE RBKP-BELNR.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: IRNO FOR V_BELNR.
PARAMETERS: P_GJAHR TYPE RBKP-GJAHR.
SELECTION-SCREEN END OF BLOCK B1.
DATA: WA TYPE ZALVGRID_DISPLAY,
ITAB TYPE STANDARD TABLE OF ZALVGRID_DISPLAY.
DATA: IDENTITY TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA: GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA: L_IDENTITY TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA: L_TREE TYPE REF TO CL_GUI_ALV_TREE_SIMPLE.
TYPE-POOLS: SLIS,SDYDO.
DATA: L_LOGO TYPE SDYDO_VALUE,
L_LIST TYPE SLIS_T_LISTHEADER.
END-OF-SELECTION.
CLASS CL_LC DEFINITION.
PUBLIC SECTION.
METHODS: DC FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID IMPORTING E_ROW E_COLUMN.
ENDCLASS.
CLASS CL_LC IMPLEMENTATION.
METHOD DC.
DATA: WA1 TYPE ZALVGRID_DISPLAY.
READ TABLE ITAB INTO WA1 INDEX E_ROW-INDEX.
BREAK-POINT.
SET PARAMETER ID 'BLN' FIELD WA1-BELNR.
CALL TRANSACTION 'FB02'.
ENDMETHOD. "DC
ENDCLASS.
DATA: OBJ_CL TYPE REF TO CL_LC.
START-OF-SELECTION.
PERFORM SELECT_DATA.
IF SY-SUBRC = 0.
CALL SCREEN 100.
ELSE.
MESSAGE E000(0) WITH 'DATA NOT FOUND'.
ENDIF.
INCLUDE ZALVGRID_PG_STATUS_0100O01.
INCLUDE ZALVGRID_PG_LOGOSUBF01.
INCLUDE ZALVGRID_PG_SELECT_DATAF01.
INCLUDE ZALVGRID_PG_USER_COMMAND_01I01.
***INCLUDE ZALVGRID_PG_STATUS_0100O01 .
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'AB'.
* SET TITLEBAR 'xxx'.
IF IDENTITY IS INITIAL.
CREATE OBJECT IDENTITY
EXPORTING
CONTAINER_NAME = 'ALVCONTROL'.
CREATE OBJECT GRID
EXPORTING
I_PARENT = IDENTITY.
CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'ZALVGRID_DISPLAY'
CHANGING
IT_OUTTAB = ITAB.
CREATE OBJECT OBJ_CL.
SET HANDLER OBJ_CL->DC FOR GRID.
ENDIF.
IF L_IDENTITY IS INITIAL.
CREATE OBJECT L_IDENTITY
EXPORTING
CONTAINER_NAME = 'LOGO'.
CREATE OBJECT L_TREE
EXPORTING
I_PARENT = L_IDENTITY.
PERFORM LOGOSUB USING L_LOGO.
CALL METHOD L_TREE->CREATE_REPORT_HEADER
EXPORTING
IT_LIST_COMMENTARY = L_LIST
I_LOGO = L_LOGO.
ENDIF .
ENDMODULE. " STATUS_0100 OUTPUT
***INCLUDE ZALVGRID_PG_LOGOSUBF01 .
FORM LOGOSUB USING P_L_LOGO.
P_L_LOGO = 'ERPLOGO'.
ENDFORM. " LOGOSUB
***INCLUDE ZALVGRID_PG_SELECT_DATAF01 .
FORM SELECT_DATA .
SELECT RBKP~BELNR
RBKP~BLDAT
RSEG~BUZEI
RSEG~MATNR
INTO TABLE ITAB
FROM RBKP INNER JOIN RSEG
ON RBKP~BELNR = RSEG~BELNR
WHERE RBKP~BELNR IN IRNO
AND RBKP~GJAHR = P_GJAHR.
ENDFORM. " SELECT_DATA
***INCLUDE ZALVGRID_PG_USER_COMMAND_01I01 .
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'CANCEL'.
EXIT.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
Warm Regards,
PavanKumar.G
Edited by: pavankumar.g on Jan 19, 2012 5:30 AM -
Hi All,
I have created an alv report using alv class. I have handled the double click event in that i am calling transaction using row currenlty selected. But after doing subtotalling the list and then i double click a line it is passing wrong data.
Points are awarded,
Regards,
Bharat Mistry
Message was edited by: Bharat MistryHi Bharat,
Read the internal table contents in double click event with e_row-index , then you will get the data of that particular row.
check below code :
local class to handle semantic checks
CLASS lcl_event_receiver DEFINITION DEFERRED.
DATA: g_event_receiver TYPE REF TO lcl_event_receiver.
LOCAL CLASS Definition
*§4.Define and implement event handler to handle event DATA_CHANGED.
CLASS lcl_event_receiver DEFINITION.
public section.
METHODS:
handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column.
ENDCLASS.
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_double_click.
read table gt_outtab index e_row-index into
Regards
Appana
*Reward Points for helpful answers
Message was edited by: L Appana
Maybe you are looking for
-
Automatic creation of intercompany PO when creating a Sales Order
Hi Experts Is there a standard way of triggering an intercompany PO when creating a sales order to the final customer (or the other way around, triggering a sales order to the end customer upon creation of an intercompany PO)? Scenario: business has
-
HP3070A Black Ink Cartridge does not print
My black ink cartridge started printing badly so I changed the cartridge and now it doesnt print any black at all. Having done all the usual things eg: ink clean, print head alignment check, restart, etc etc several times I found a post on this foru
-
How to change the width of textbox in Search Texts iview
Hi, Experts, I creat a search texts iview with stardard configuration to search the data in the repository. The problem is that the width of textbox is too short. And the user will input more than 40 characters in the textbox. In this way, th
-
Statistics\Reporting from a Wireless Conrtoller
After explaining all of our requirenments to the local Cisco Partner they prepared a quote and we purchased a Cisco 5508 Wireless Controller and 6 Aironet 1141 wireless access points. The wireless coverage in the building is great. The problem is, w
-
Weird ORA-01406: fetched column value was truncated error for SELECT query
DB version:10gR2 When one of our application fires the below query, we get ORA-01406: fetched column value was truncatederror. select trk_dtl, trk_type, trk_id, trk_desc, from shp_dtl where shp_type = 'HN' and shp_type