On grid view, if a record is created, and a table/tabledir (initlially empty) field is changed to the same value as the previous row in the grid, the callouts does not trigger. The attached screenshot shows the problem (the case come from test.idempiere.org, it can be checked): on the second rma line i have selected the same receipt line as the first line, and the product is not populated. To reproduce the isse just create a new rma line, and select the receipt line of the first rma line.
The issue triggers if:
the column is a table/tabledir (didnt check search)
no default value
no callout that fills the value when the record is created
no dynamic validation rule (not sure if a dynamic validation rule without context variable has the some effect)
I have tracked the problem down to WTableEditor, it looks like no event gets fired when the value is changed (but apparently is set to null, and the selected index reset to -1)
Note: for the test we changed the configuration on the M_RMALine table, removing the dynamic validation "M_InOutShipment/Receipt (RMA)" from the M_InOutLine_ID column on test.idempiere.org
maybe GridTable.m_oldValue isn't refresh
I found this bug while we used the bank statement import table to create/modifiy entries. This bug is very annoying for us. Our first impression was that the bug did not activate the "Save" button. But testing showed that the combobox fields do not set any value. That means when I save the record the written values are different from what I see on the screen. That is not acceptable. The bug arises at editing old records and also at new created records.
The bug was not in our old version before the update.
i wasnt able to find the cause of the problem either, i dont have any additional information...
Attached you can find the patch that solves this problem. When the last editor is created, it holds the reference to the selected item of the previous one causing that when the same value is selected it does not trigger the OnSelect event because ZK thinks that there was no change in the data.
Because of the criticality of the ticket I integrated in 4.1, 5.1 and release.