Hello,
The Main of what I need is filter the all the Route Job operations by Product number in the JobRegistration. That is to make the clock in faster since every woker nows their Production Number and ther is only few operation (7 total) to which they can stample in.
so the idea is attach one lookup field for ProdId and the filter the Grid JmgTobTable for the available jobs in that selected ProdId
Here I have and example of a new Form i am working on. I already have the prodId lookup Field but first. I would like to filter the jobTableGrid for only jobs in productions (as you can see is displaying all; including the system).
1. filter the Grid by Reference Id
2. filter Grid by the Selected ProdId
I am not expert. since i am starting with this X++ coding , So I would appreciated that you could be as specific (for begginer) as possible so I can get this to work
thanks a lot for your kindly help
Have a great day!
That was a good one Sergei, i woulnt have guessed.
I added my two testing Fields in the If validation. Now I understand that it was calling the Login() method everytime I was pressing 'enter' so the form was changing back and forth.
else if (_taskId == #ENTER)
{
if(element.selectedControl())
{
selectedControlName = element.selectedControl().name();
}
if ((!reqPassword && selectedControlName != ScannerInput.name()
/*->NestorC 30-03-2020*/
&& selectedControlName != NC_ScannerDataMethod.name()
&& selectedControlName != NC_ScannerProdInput.name() /*<-NestorC 30-03-2020*/)
|| selectedControlName == passTextField.name() )
{
element.login();
feedbackNum = '';
}
}
Even though the excecuteQuery() takes little bit of time, the form is not refreshing like before. I will end this thread as finished .
Thanks big time for your help!
спаси́бо
Hi CBNestor,
There is "Enter" if statement in "task" method on the form. Try to debug it, maybe there is some additional logic is added.
Hi Sergei,
I have deleted all my customizations and methods from this form.
I just add a String edit field just above the orginal ScannerInput. If I press Enter in that new field the whole screen refreshes with some annoying delay. That does not happens with the original ScannerInput.
I do not have any clue where to look. Is not the query, is not my code, I do not know what is triggering that
Hi CBNestor,
Super on modifiedField method shouldn't take to much time to execute. In ExecuteQuery method super is needed, because it actually refreshes data from the database.
I would check in your case queries generated by this form in SQL side (maybe you can improve performance by indexing) when you perform filtering and also there is NC_View_Jmg....:Find method which probably also consumes some time, check query plan for this query as well.
If I start to compile I can notice that calling the super() from the modified() and excecuteQuery() takes like quarter seconds each to go through all the differents methods above and return again with the response.
Maybe is there I better way to code it?.
If I take the example of the original ScannerInput control it has jobId() as the DataMethod and this is not calling any Super() method. it is just doing the this.setFocusDelayed(ScannerInput) which for me if just saving the time to reading all the differents methods over and over again.
I managed to set the focus to my Control,
inside the JmgRegistration Form there is a Method Called scrSwitch; which is in charge of changing screen from login to the grid and viceversa
else if (useScanner)
{
element.setFocusDelayed(NC_ScannerProdInput); //NestorC 28-03-2020 My Control
/*->NestorC 28/03/2020
element.setFocusDelayed(scannerInput);
<-NestorC 28/03/2020*/
}
I would like to know from The Control Method like a stringedit how can I call the main Form's methods? Example:
pubilc boolean modified(){
JmgRegistration.setFocusDelayed(this);
}
still cannot find how to avoid this delay or form refresh everytime the control is getting Modified(), looks like the from is calling all the methods inside of him on every single change.
Hi CBNestor,
I haven't worked too much with this form, but I see there is a method setFocusDelayed. I think if you try to debug it I will give you some answers about delays (as there is a timeout method is used) and how to change focus when you scan barcode to your control.
hi Sergei,
probably we are a little bit on different page. maybe is that. But I manage too make it in a different way. I override the Lookup() method directly to the StringEdit field. The problem was that the lookup method was overrided from the Field inside the DataSource and later on linked in the DataSource/DataField property of the StringEdit.
So I created a View to filter only the active/markable productions. added it into JmgRegistration Form. and the lookup attached to the stringedit calling the View inside the code X++. So is working and Filtering the jobs Grid with the Selected Production.
The only two things missing is changing the SetFocus() from the original ScannerField to the customized StringEdit. and when I scan the code using the Barcode I see a half second delay for the stringedit to change and the grid to refresh. Does not feel proffesional if you ask me
Hi CBNestor,
It's disabled because of AllowEdit property on ProdTable.ProdId field. You are allowed to change the value only for new records.
Did I miss something or you wanted to create filter control? For filter controls, you don't need to fill data source property for the filter control, but you can still use the same EDT as used on the field to inherit labels and other properties and lookup can be overridden on control level as well.
Excellent Sergei that worked for my lookup method for the JmgJobTable.ModuleRefId
But when I apply the exact same logic for the ProductTable.ProdId the StringEdit shows disable. Cannot click and/or select anything is not displaying anything :( :(
even I tried with Using a View (showing the active not reportedFinished productions) as a Datasource and tried with the Lookup method for the ProdId but again the same. Stringfield disabled ...
there is some logic a cannot undestand yet
thanks again for your kind help
Stay up to date on forum activity by subscribing. You can also customize your in-app and email Notification settings across all subscriptions.
André Arnaud de Cal... 291,240 Super User 2024 Season 2
Martin Dráb 230,149 Most Valuable Professional
nmaenpaa 101,156