Highlighted Row in a Matrix
Good Day
Experts:
I am having trouble finding if a Matrix row is highlighted when it is clicked.
I check for a the Matrix click(Item 38 on SalesOrder screen) with this code:
<b>If pVal.BeforeAction = False Then
Select Case pVal.EventType
Case et_CLICK
If pVal.ItemUID = "38" Then
SalesOrderLine = pVal.Rows
End If
End Select
End If</b>
This works fine, I get the Line that has been clicked. However, at this point I do not know if it has been clicked to select(Highlighted) or clicked to de-select(Not highlighted). Is there a way to tell if a row in a Matrix is highlighted using the pVal reference like in the code above to get the Row number?
Thanks,
EJD
Hi Ed
I don't know if this will answer your question, but here it goes.
When one clicks the row selector, under the "#" column to select the row, that row becomes hightlighted. To test which rows have been selected I use the GetNextSelectedRow method, something like the following ...
Dim intRow As Int32 = objMatrix.GetNextSelectedRow(0, SAPbouiCOM.BoOrderType.ot_RowOrder)
While intRow > 0
intRow = objMatrix.GetNextSelectedRow(intRow, SAPbouiCOM.BoOrderType.ot_RowOrder)
End While
hope it helps
Message was edited by:
Neftali Figueroa
I edited the code to simplify. What gives you the row is the variable intRow
Similar Messages
-
How to color a particular row in a matrix
Hi All,
Using SBO, i am having two queries:
1. Is it possible to color single row, Cell in a matrix or a grid by any way.
2. And How to copy particular row from 1 matrix to another?. I want this by using drag n drop event of mouse. Only click and right click mouse events are available in SBO. But I want to use mouse down and mouse up events..Please help me, it's urgent.
Thanks in advance.Hi,
1) No, unfortunately, you cannot colour either a row or a single cell in the current versions of the matrix and grid controls. As a workaround, I use an image column as the first column in my matrices and then put coloured squares in this column for rows that I want to 'highlight'.
2) You can't drag and drop using the SBO controls. Personally, I use the right-click event and add a menu option to copy the selected rows to the other matrix and it works fine. Click is the Mouse Down event and Item Pressed is the Mouse Up but it is not fully supported on matrices or grids.
Kind Regards,
Owen -
Classic report - Highlight row
APEX 4.2.1
With all the latest and greatest dynamic action and jQuery goodness in 4.2.1, what is the easiest, declarative way to highlight rows in a classic report region (Generic Column Template) based on data condition using values on the row, using #COL# notation? e.g. If SAL > 1000 and DEPT = Marketing, highlight row in red or some such.
In prior versions, this involved copying the Generic Column Template to one used just by this report and use the (up to 4) Column Templates with a PL/SQL expression.
ThanksCustom report templates are okay if your needs are straightforward. But you said it already, there are only four different flavors to chose from.
Here is a solution that'll work on all pages if once installed and can be extended to a multitude of visual attributes. Only an example that you may want to adapt to your liking.
Edit Page, "CSS, Inline", or via Shared Components > CSS files
td.color1 {background-color:#9F9} /* Table cell gets colored in light green */
td.color2 {background-color:#FF9} /* Table cell gets colored in light yellow */
td.color3 {background-color:#F99} /* Table cell gets colored in light red */
/** and so forth, followed by as many declarations as you need... */Page Template, "Function and Global Variable Declaration":
/** Change the visual appearance of your classic report as you like after it's rendered */
function customClassicReportDisplay(){
/** Transfer the color class from the text to the table cell */
$('td span.color1').closest('td').addClass('color1');
$('td span.color2').closest('td').addClass('color2');
$('td span.color3').closest('td').addClass('color3');
// and so forth, followed by as many declarations as you need...
}This jQuery code can be simplified, especially the handling of many lines for many colors can still be compacted, which makes it more difficult to understand though.
Page Template, "Execute when Page Loads":
/** Perform the function on Page Load */
customClassicReportDisplay();
/** Perform the function after Partial Page Rendering */
$('form').bind('apexafterrefresh', function(){
customClassicReportDisplay();
});Here comes the trick. In the SQL statement, you wrap a <span> HTML tag with a different class declaration around each value that you want to color.
SELECT '<span class="color' || case when some_value > 100 then '2' else null end || '">' || some_value || '</span>' AS some_value
, '<span class="color' || decode(some_other_value, 'too much', '3', NULL) || '">' || some_other_value || '</span>' AS some_other_value
, '<span class="color' || case when last_value between 0 and 10 then '1'
when last_value between 11 and 50 then '2'
when last_value between 51 and 100 then '3'
else null end || '">' || last_value || '</span>' AS last_value
FROM ...This obviously makes the SQL a bit more complicated but in my opinion, I think this is a data driven topic and therefore just fine. Hence you say "depending on value ranges I want to change something" - and that belongs to SQL. WHAT you want to do (here: change color) is then up to your JS and CSS declaration. If you shift the SQL code into a view it's better to maintain and won't get spoiled by non-savvy third party developers...
I know that's not what you originally asked for, because there is no #COL# notation, but for me it's the most flexible solution I can think of under APEX. -
How to disable a Entire row in a Matrix in Find Mode (User Form)
Hi,
How to disable a Entire row in a Matrix in Find Mode (User Form)
Regards
JambuHi,
Iam using Bubble event = false in click event but the matrix row
is allow to edit but we cant save the document in Find Mode That is fine.
What is my actual requirement is In find mode matrix Row not allow to enter the data .
For examble In ADD mode i enter the data in Three rows (Item Section - Matrix) and
save the document. Whwn i open the document in find mode the three row is not allow
to editable like the same functionality of PO, sales Order, etc ..
Regards
Jambu -
How to change the forecolor of a single row of a matrix
In a matrix which is displaying list of items like the Sales Order Form, I am trying to change the forecolor to red for only those items where the item's required quantity is lesser than the item's avialable quantity.
The Code Snippet is as follows:
ReqQty = oMatrix.Columns.Item("ReqQty").Cells.Item(pval.row).Specific.value
AvaQty = oMatrix.Columns.Item("AvaQty").Cells.Item(pval.row).Specific.value
If ReqQty > AvaQty Then
Dim txtField As SAPbouiCOM.EditText
oMatrix = oform.Items.Item("cMatrix").Specific
txtField = oMatrix.Columns.Item("ItemNo").Cells.Item (pval.row).Specific
txtField.ForeColor = 200
txtField = oMatrix.Columns.Item("ItemDesc").Cells.Item(pval.row).Specific
txtField.ForeColor = 200
oMatrix.Columns.Item("ReqQty").Cells.Item(pval.row).Specific
txtField.ForeColor = 200
oMatrix.Columns.Item("AvaQty").Cells.Item(pval.row).Specific
txtField.ForeColor = 200
End If
But the problem is , if this condition applies to any one of the items in the matrix, then all the rows in the matrix change the forecolor to red.
Has anyone faced this problem and has a solution to it?I haven't tested the problems you have for a matrix.
But I have seen the properties are not exposed for the Cell object...
Regarding the ForeColor and BackColor on the EditText they are deprecated starting from 2004 BUT you have the same properties now exposed at the <b>Item</b> level.
For the Column object the ForeColor and BackColor are not market as deprecated.
Regards
Trinidad. -
I have a SSRS report which uses a matrix for a crosstab effect.
Each row contains about 10 score values in 10 columns respectively. I need each row to check against the previous row, and i need each score value in each column to be compared to the corresponding column score value in the previous row.
If the current score is greater than the corresponding previous score (in the previous row), then i want to change the background of the cell.
if the current score is smaller than the previous, then it's a different color.
if they are equal, or it's the first row in the matrix table, then leave white.
I have found custom code functions to use in the SSRS expression fields, but every single one of them compares against the previous COLUMN value and not the previous ROW value which is what i need. the "Previous" function would be perfect if i
could use it in a matrix but i can't. (i keep getting error "The use of a Previous aggregate function in a tablix cell is not supported"). looking around it turns out that matrices are arrange in groups and not in rows which is why Previous can't
be used and the only way is with custom code.
Please help. if you have any custom code samples that achieve what i need, please share, or give me advice on how to achieve this.
Thank youI figured it out. Maybe it can help someone else in the future:
Public Shared count as Integer = 0
Public Shared currentRow As Integer = 1
Public Shared MatrixStructures As New System.Collections.Generic.List(Of MatrixStructure)()
Public Shared Function GetCellColor(row as Integer, score as Integer)
If (row > currentRow) Then
count = 0
currentRow = row
End If
count = count + 1
Dim matrixStructure As New MatrixStructure()
matrixStructure.RowIndex = row
matrixStructure.ColumnIndex = count
matrixStructure.ScoreValue = score
MatrixStructures.Add(matrixStructure)
If score = 0 Then
Return "White"
End If
Dim val As MatrixStructure = MatrixStructures.Find(Function(s As MatrixStructure)
Return s.GetRowIndex() = row - 1 AndAlso s.GetColumnIndex() = count
End Function)
If (Not (val Is Nothing)) Then
If val.scoreValue = 0 Then
Return "White"
End If
If score >= val.scoreValue + 2 Then
Return "Green"
ElseIf score <= val.scoreValue - 2 Then
Return "Red"
End If
End If
Return "White"
End Function
Public Class MatrixStructure
Public rowIndex As Integer
Property GetRowIndex() As Integer
Get
Return rowIndex
End Get
Set(ByVal Value As Integer)
rowIndex = Value
End Set
End Property
Public columnIndex As Integer
Property GetColumnIndex() As Integer
Get
Return columnIndex
End Get
Set(ByVal Value As Integer)
columnIndex = Value
End Set
End Property
Public scoreValue As Integer
Property GetScoreValue () As Integer
Get
Return scoreValue
End Get
Set(ByVal Value As Integer)
scoreValue = Value
End Set
End Property
End Class
and to pass the current row number from the expression i use this
Ceiling(RowNumber(NOTHING) / 10)
i divide the row number by 10 because there are ten columns. if you don't know the number of columns, or it's a variable number, then return it from the stored procedure query in the first place. that's what I had to do -
How can I delete the last row of a Matrix
Hi All,
Does anyone know whether deleting the last row of a matrix controlled by a UDO child table gives problems? I have the strange effect that I cannot delete the very last existing row in the matrix, i.e. after updating the delete the last to-be deleted row comes back into my matrix !!
I give you a snippet of my code (function getSelectedRow gives the selected row in the matrix):
==
if (evnt.ItemUID.Equals(ViewConstants.Items.DELETEBUTTON))
if (evnt.EventType == BoEventTypes.et_ITEM_PRESSED)
if (evnt.BeforeAction)
form = BusinessOne.Application.Forms.Item(formUID);
mtx = (Matrix)form.Items.Item(ViewConstants.Items.MATRIX).Specific;
int numRow = getSelectedRow(mtx);
if (numRow != -1)
mtx.DeleteRow(numRow);
form.Mode = BoFormMode.fm_UPDATE_MODE;
Item btn = (Item)form.Items.Item(ViewConstants.Items.ADDBUTTON);
btn.Enabled = true;
==
Cheers,
Marcel Peek
Alpha One
Message was edited by: Marcel Peek
Message was edited by: Marcel PeekYes, there is a problem to delete the last row.
It is fixed in version 2005. -
How can i add a new row in System Matrix passing itemcode and quantaty
Hi All,
I have to add new lines in the matrix system only through the itemcode and item quantity. I tried several ways without success. Maybe the following code help to explain what I'm trying to do.
Someone already inserted rows in the matrix system? Can someone show me how I can do. This example is in C# but if someone has in VB I will apreciate.
FormUID = SBO_Application.Forms.ActiveForm.UniqueID;
f = SBO_Application.Forms.Item(FormUID);
try
SAPbobsCOM.Recordset oRS;
oRS = ((SAPbobsCOM.Recordset)oCompany.GetBusinessObje
SAPbobsCOM.BoObjectTypes.BoRecordset));
oItem = f.Items.Item("38");
oMatrix = ((SAPbouiCOM.Matrix)(oItem.Specific));
oEditText = ((SAPbouiCOM.EditText)oMatrix.Columns.Item(3).Cells.Item(oMatrix.RowCount - 1).Specific);
string Codigo = oEditText.Value; //Select the item number to use in strQuery
strQuery = "SELECT U_ART_COM FROM [@SB1EVOL_COMPOSTOS] where
U_ART_PRI='" + Codigo.ToString();
oRS.DoQuery(strQuery);
if (oRS.RecordCount > 0)
oRS.MoveFirst();
numart = oRS.RecordCount;
f.Freeze(true);
for (j = 1; j <= numart; j++)
try
ItemCodeTXT = oRS.Fields.Item(0).Value.ToString();
oEditText = ((SAPbouiCOM.EditText)(oMatrix.Columns.Item(3).Cells.Item(oMatrix.RowCount).Specific));
oEditText.Value = ItemCodeTXT.ToString();
f.Update();
oRS.MoveNext();
catch (Exception oEx)
f.Freeze(false);
f.Update();
MessageBox.Show(oEx.Message + " j = " + System.Convert.ToString(j));
j = 0;
f.Freeze(false);
f.Update();
In this example i try to add rows in Invoice matrix.
Thanks in advance.
Edited by: Luís Filipe Duarte on Jun 26, 2009 4:14 PM
Edited by: Luís Filipe Duarte on Jun 26, 2009 4:17 PMViva Vitor,
Antes de mais obrigado pela resposta.
È esse mesmo o meu objectivo. Passo a explicar qual é o objectivo deste desenvolvimento. O que se pretende é que quando um utilizador escreva o código de um artigo numa linha da matrix de um documento de venda o add-on vai ler esse artigo e de seguida consultar uma tabela de utilizador que ja esta criada para validar se esse artigo tem outros artigos associados, e se tiver, entao o addon tem que os escrever nas linhas imediatamente a seguir. Eu queria mesmo, era escrever qual era o artigo e qual a respectiva quantidade. Eu consigo encontrar qual o artigo que o utlizador escreve e qual os artigos associados. O meu problema acontece quando tendo adicionar as novas linhas.
Com o codigo que se segue podes ver que estou a atribuir a uma EditText o codigo do artigo a escrever. O problema é se correr em modo debug consigo ver que a aplicação chega a essa linha
oEditText.Value = ItemCodeTXT.ToString();
e volta para trás, ou seja entra num loop e nao sai daqui.
if (oRS.RecordCount > 0)
oRS.MoveFirst();
numart = oRS.RecordCount;
f.Freeze(true);
for (j = 1; j <= numart; j++)
try
ItemCodeTXT = oRS.Fields.Item(0).Value.ToString();
oEditText = ((SAPbouiCOM.EditText)(oMatrix.Columns.Item(3).Cells.Item(oMatrix.RowCount).Specific));
oEditText.Value = ItemCodeTXT.ToString();
f.Update();
oRS.MoveNext();
catch (Exception oEx)
f.Freeze(false);
f.Update();
MessageBox.Show(oEx.Message + " j = " + System.Convert.ToString(j));
Eu para adicionar uma nova linha o que tenho de fazer? não vasta passar a informação do item code?
Este desenvolvimento é para implementar ecoreee no sap. Nao sei já tiveste alguma coisa dessas entre mãos.
Obrigado mais uma vez pela atenção. Espero também um dia poder ajudar.
Com os melhores cumprimentos.
Luis duarte -
UDO: Add and Remove rows to/from Matrix.
Hi all,
Yes, I know there are lots of topics about adding and removing rows but I was having trouble with these and I need some expert's opinion.
I'm working with a Document type UDO, with 1 header table (ADAT_ONR) and 1 child table (ADAT_NR1 - MatrixUID = "mtx_NR").
I add the first row when the user chooses the business partner.
If oMatrix.RowCount = 0 Then
oMatrix.AddRow()
oMatrix.AutoResizeColumns()
oMatrix.Columns.Item("V_LineId").Cells.Item(1).Specific.Value = 1
End If
Then, the user has to press the AddRow button to add new rows, and the user can only add 1 new blank row. Later I'll change the row adding behavior to mimic B1s.
If pVal.BeforeAction = False Then
Select Case pVal.ItemUID
Case "AddRow"
'ItemHandler_Click = AddRow(oCompany, oApplication, oForm, oForm.Items.Item("mtx_NR").Specific.RowCount())
oMatrix = oForm.Items.Item("mtx_NR").Specific
If oMatrix.RowCount > 0 Then
If Trim(oMatrix.Columns.Item("V_PltCode").Cells.Item(oMatrix.RowCount).Specific.Value) = "" Then
oApplication.StatusBar.SetText(TranslateStr(oApplication, MustChoosePallet), BoMessageTime.bmt_Short)
Exit Function
End If
End If
ItemHandler_Click = NewLine(oCompany, oApplication, oForm)
Exit Function
Private Function NewLine(ByRef oCompany As SAPbobsCOM.Company, ByRef oApplication As SAPbouiCOM.Application, _
ByRef oForm As SAPbouiCOM.Form) As Boolean
NewLine = False
Try
oMatrix = oForm.Items.Item("mtx_NR").Specific
Dim Index As Integer = oMatrix.RowCount
With oForm.DataSources.DBDataSources.Item("@ADAT_NR1")
.Clear()
End With
oMatrix.AddRow()
oMatrix.Columns.Item("V_LineId").Cells.Item(Index + 1).Specific.Value = (Index + 1).ToString
oMatrix.FlushToDataSource()
oMatrix.LoadFromDataSource()
oForm.Refresh()
NewLine = True
Catch ex As Exception
oApplication.MessageBox("NewLine(): " & oCompany.GetLastErrorCode.ToString & ", " & ex.Message)
End Try
End Function
When I Add or Update the data, I clear the last blank row, if it exists.
'// In the Click Event
If pVal.BeforeAction = True Then
Select Case pVal.ItemUID
Case "1"
If oForm.Mode <> BoFormMode.fm_FIND_MODE Then
oMatrix = oForm.Items.Item("mtx_NR").Specific
oMatrix.FlushToDataSource()
oMatrix.LoadFromDataSource()
If Trim(oMatrix.Columns.Item("V_PltCode").Cells.Item(oMatrix.RowCount).Specific.Value) = "" Then
oForm.DataSources.DBDataSources.Item("@ADAT_NR1").RemoveRecord(oMatrix.RowCount - 1)
oMatrix.DeleteRow(oMatrix.RowCount)
'oMatrix.FlushToDataSource()
End If
End If
End Select
My question is, Is there an easier way to Add and Delete Rows??
BTW, I still have a problem so solve. With this code, when the user deletes a row the row numbering is incorrect. Example: if I have to rows in a matrix and I delete row nº1, row nº2 will hold the same number...
Any Ideas?
Thanks in advanced,
Vítor VieiraHi Victor,
there is a Form Data event which you ca use in that try to write the code for adding a row after updating and delete a row while inserting and add a row while traversing.
sample code.
Sub FormDataEvent(ByRef BusinessObjectInfo As SAPbouiCOM.BusinessObjectInfo, ByRef BubbleEvent As Boolean)
Try
Select Case BusinessObjectInfo.EventType
Case SAPbouiCOM.BoEventTypes.et_FORM_DATA_ADD, SAPbouiCOM.BoEventTypes.et_FORM_DATA_UPDATE
If BusinessObjectInfo.BeforeAction = True Then
objForm = objMain.objApplication.Forms.Item(BusinessObjectInfo.FormUID)
oDBs_Head = objForm.DataSources.DBDataSources.Item("@Header")
oDBs_Detail= objForm.DataSources.DBDataSources.Item("@Line")
objMatrix = objForm.Items.Item("83").Specific
If objMatrix.VisualRowCount <> 0 Then
objMatrix.DeleteRow(objMatrix.VisualRowCount)
objMatrix.FlushToDataSource()
End If
If BusinessObjectInfo.EventType = SAPbouiCOM.BoEventTypes.et_FORM_DATA_ADD Then
End If
ElseIf BusinessObjectInfo.ActionSuccess = True Then
objForm = objMain.objApplication.Forms.Item(BusinessObjectInfo.FormUID)
If BusinessObjectInfo.EventType = SAPbouiCOM.BoEventTypes.et_FORM_DATA_UPDATE Then
objMatrix = objForm.Items.Item("83").Specific
objMatrix.AddRow()
SetNewLineCharge(objForm.UniqueID, objMatrix.VisualRowCount)
objMatrix.FlushToDataSource()
End If
End If
Case SAPbouiCOM.BoEventTypes.et_FORM_DATA_LOAD
If BusinessObjectInfo.ActionSuccess = True Then
oDBs_Head = objForm.DataSources.DBDataSources.Item("@Header")
oDBs_Detail = objForm.DataSources.DBDataSources.Item("@Line")
objMatrix = objForm.Items.Item("83").Specific
objMatrix.AddRow()
SetNewLineCharge(objForm.UniqueID, objMatrix.VisualRowCount)
objMatrix.FlushToDataSource()
End If
End Select
End Sub
Hope this helps,
OM Prakash -
Highlight row in standard report based on value in column...
I am trying to highlight rows of a standard report based on the value of the column TICKET_TYPE.
I have been following the post: Highlighting a ROw in a tablular form based on a column in the row
but having difficulty. I receive the following error:
ORA-06550: line 1, column 34: PLS-00201: identifier 'SHRIMP' must be declared ORA-06550: line 1, column 7: PL/SQL: Statement ignored
ERR-1025 Error processing PLSQL expression. SHRIMP = 'SHRIMP'
My report query is:
select T.TRIP_ID,
T.TRIP_ID trip_show,
T.TRIP_ID trip_select,
T.DAYS_AT_SEA,
T.NBR_OF_CREW,
T.TRIP_START_DATE,
T.VESSEL_ID,
o.ticket_type ticket_type
from TRIPS T, one_ticket_type o
where t.dea_permit_id = :G_DEA_PERMIT_ID and t.trip_id = o.trip_id
I have created a new template called one-ticket-highlight.
row tempate 1 = <td #ALIGNMENT# headers="#COLUMN_HEADER#" class="t14data" style="background:red">#COLUMN_VALUE#</td>
row template 1 condition = use based on pl/sql expression
row template 1 expression = #TICKET_TYPE# = 'SHRIMP' (**** I have also tried without the quote)
any thoughts? thanks!!
Edited by: KEH813 on May 25, 2010 11:10 AMHi,
You can achive the same using javascript without changing the page template.
http://apex.oracle.com/pls/apex/f?p=27576:8
here is the code for the same
<style>
.myclass{ background-color:red;text-align:center}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js "></script>
<script>
$(function(){
$("td [headers='DEPTNO']").each( function(i){
if($(this).html() == $v('P8_DEPTNO')) //value of the textfield
ele = $("td [headers='ENAME']").eq(i)
ele.removeClass('t20data'); //i'm using theme 20 so t20data .. u need to change this part
ele.addClass('myclass');
</script>Regards,
Shijesh -
Highlight Rows/Fields in Inetractive Report
What is the best way to conditionally highlight rows/field in an Interactive Report? I don't want to create filters that the users can see/turn off
Hello Bob,
Before you have to think about what happens (or should happen) if a user creates his own highlighting. That will interfere with the highlighting you created....
But you can set highlighting for a field in the select statement:
select "DEMO_ORDER_ITEMS"."ORDER_ITEM_ID" as "ORDER_ITEM_ID",
"DEMO_ORDER_ITEMS"."ORDER_ID" as "ORDER_ID",
"DEMO_ORDER_ITEMS"."PRODUCT_ID" as "PRODUCT_ID",
CASE
WHEN UNIT_PRICE < 200 THEN
'<span style="display:block;width:30px;background-color:red;color:darkgreen;">'
|| unit_price
|| '</span>'
ELSE to_char(unit_price)
END UNIT_PRICE,
"DEMO_ORDER_ITEMS"."QUANTITY" as "QUANTITY"
from "DEMO_ORDER_ITEMS" "DEMO_ORDER_ITEMS"But remember that the outcome of your query now changed. If you sort upon UNIT_PRICE the <span> tag also is taken into consideration.
Greetings,
Roel
http://roelhartman.blogspot.com/
You can reward this reply by marking it as either Helpful or Correct ;-) -
Hi,
I have two columns in IR
- Amount to be paid
- Paid amount
I would like to highlight rows that have remain amount =0
so I created a Compute column Name Remain Amount = Amount to be paid - Paid amount
and created highlight condition where Remain Amount = 0
but I catched the error when apply the condition
ORA-20001: get_dbms_sql_cursor error ORA-00904: "Remain Amount null(null)": invalid identifier
Please help me out.
ThanksHi,
Is it possible that one or more of your records doesn't have a value in one/both of the fields? Try using NVL(columnname, 0) to ensure that any nulls are converted to 0 (zero)
Andy -
Re:Adding a row in a matrix using Lost_Focus event & deleting a row
Dear All,
Iam facing a problem in adding a row in a matrix using last focus event.its like if i keep the cusor in the last coloumn in a matrix n if i press tab it should add a row .the row is getting added the problem here is the cursor is gng to first row but it should come to the second row.
the second problem is while deleting a row the row is getting deleted but the row count is showing the deleted row no.
pls suggest a solution for these problems.
Thanks & Regards
AnandHi,
If pVal.BeforeAction = False Then
Select Case pVal.EventType
Case SAPbouiCOM.BoEventTypes.et_KEY_DOWN
If pVal.ItemUID = "matlab" And pVal.ColUID = "mtimeout" And pVal.CharPressed = 9 Then
oMatrix = oForm.Items.Item("matlab").Specific
Dim rc As Integer = oMatrix.VisualRowCount
If rc = pVal.Row Then
addrow() 'funtion for adding row
oMatrix.Columns.Item("labc").Cells.Item(oMatrix.RowCount).Click()
'SBO_Application.MessageBox(oMatrix.RowCount)
End If
End If
This is the function i hav used
Private Sub addrow()
Try
If (oForm.UniqueID = "updt") Then
oForm = SBO_Application.Forms.ActiveForm
oForm = SBO_Application.Forms.Item("updt")
omatrix = oForm.Items.Item("matlab").Specific
omatrix.AddRow(1, omatrix.VisualRowCount)
Dim rc As Integer = omatrix.VisualRowCount
'SBO_Application.MessageBox(rc)
otext1 = omatrix.Columns.Item("mdatein").Cells.Item(rc).Specific
otext1.String = "s" 'RecSet.Fields.Item("date1").Value
otext1 = omatrix.Columns.Item("mdateout").Cells.Item(rc).Specific
otext1.String = "s" 'RecSet.Fields.Item("date1").Value
End If
Catch ex As Exception
SBO_Application.MessageBox(ex.Message)
End Try
End Sub
this is the code which m using
Regards,
Anand -
At Runtime how to select a row in a matrix ?
Hi friends,
I have designed a form with matrix.That matrix is populted with multiple rows.
<b> I want to select a row in that matrix </b> and i want to get the line data an put into another form
Is there is any event handling is there?
If i <b>doubleclick</b> on that row that's <b>data has to displayed</b> (eg using message box )
If i <b>single click</b> on that row That <b>row has to be selected</b>.
<b></b>
Can anybody help me
Thanks
V.RangarajanHi Ranga!
try to catch the clicks in the ItemEvent of your Application!
here some code..
"Matrix1" is the UID of your Matrix!
If pVal.ItemUID = "Matrix1" And pVal.Row > "-1" And _
pVal.Before_Action = False And pVal.EventType = _ SAPbouiCOM.BoEventTypes.et_CLICK Then
oMatrix.SelectRow(pVal.Row, True, False)
Elseif pVal.ItemUID = "Matrix1" And pVal.Row > "-1" And _
pVal.Before_Action = False And pVal.EventType = _ SAPbouiCOM.BoEventTypes.et_DOUBLE_CLICK Then
SBO_Application.MessageBox(oMatrix.Columns.Item(pVal.ColUID).Cells.Item(pVal.Row).Specific())
End If
haven't try this yet..but may it works!
have a try!
greetz
Matthias -
all,
i'm using the "Background color for current row" property in the report template to define the background color of rows when the mouse is over it. is there a way to define the color of the font for the highlighted row also?
thanks in advance,
paulSee the same example
http://htmldb.oracle.com/pls/otn/f?p=24317:111
Modifiying the FG color is not a builtin feature, but you can piggyback on the code generated by the background color feature.
Add the following to the region footer to override the generated code
<script type="text/javascript">
var rowStyleHoverFG = new Array(15);
function row_mouse_over404667826284618949(rowNode,currentRowNum) {
rowActive = 'Y';
for( var j = 0; j < rowNode.childNodes.length; j++ ) {
if (rowNode.childNodes[j].tagName=='TD') {
rowStyleHover[currentRowNum] = rowNode.childNodes[j].style.backgroundColor;
rowStyleHoverFG[currentRowNum] = rowNode.childNodes[j].style.color;
rowNode.childNodes[j].style.backgroundColor = '#ffffc1';
rowNode.childNodes[j].style.color = 'green';
function row_mouse_out404667826284618949(rowNode,currentRowNum) {
rowActive = 'N';
for( var j = 0; j < rowNode.childNodes.length; j++ ) {
if (rowNode.childNodes[j].tagName=='TD') {
rowNode.childNodes[j].style.backgroundColor = rowStyleHover[currentRowNum];
rowNode.childNodes[j].style.color = rowStyleHoverFG[currentRowNum];
</script>Change the green color to anything you want.
Hopefully this becomes a standard feature in the next release so we wont have to hack into it like this.
Hope this helps.
Maybe you are looking for
-
Change number of record displayed for a single item alone
Hi, I have a single data block with few items. Is it possible to make one item in the block as non-database item and make the display of record in the item alone to show multiple lines. i.e. All other items in the Data block shows single record, wher
-
Hi guys, I need help for an appilcation we have here at work. We have a stepmotor (HT23-398D-ZAA) that include a 2000cpr encoder with STR4 drive and a PCI-7334 controller board. We had a UMI-7774 but we broke it and we dont have time/money to invest
-
Hi All, We are using Oracle Apps 11i, Can someone tell me how to start and stop Apache, I mean what are the commands. Thanks J
-
Not able to add or edit contacts (i OS 5)
Since updating to iOS 5, I'm not able to add or edit contacts. The plus and edit buttons are no longer visible?! Anyone else having this issue?
-
When I check the part -> details -> "quantity box" for a product line master part, it does not work correctly when I add to cart. I just get qty of 1 instead of the qty I put in. It works fine with non-product line master parts. It this supposed t