Deleting invisible/unused input fields in Orbeon form - forms

We have the following situation:
We have one form (we’ll call it “first form” for easier reference) which, among other things, contains dropdown select-box from which the user has to select a number from 1 to 10. Based on the number the user has selected (e.g. 5), on the separate form - on a different page (we’ll call it “second form”) we show that many number of sections as visible (5 new sections in our example). For each of the 10 sections we have defined visibility condition through XPath expression which returns true or false based on the number the user has selected from the first form. Now, because second form contains all 10 sections it shows all of them in the DOM, but in our example only 5 are visible on the front end.
So the question is: Is it possible to have the 5 additional sections not render in the DOM structure at all and if it is, how to achieve this?

Related

If it's possible, is there an option or other way to change a "Sublist Field" column's display type within a transaction form in NetSuite?

I need to change two columns in a Sales Order's item line section (bottom of the page) in NetSuite: https://i.ibb.co/27vx9Dr/2019-06-20-10-41-13-Window.png
It feels like the solution ties these two together as they are both perceived as item line fields or "Sublist Fields" (according to NetSuite's customization form page).
INVENTORY DETAIL needs to be enabled or set to "normal" so I can be able to specify bins associated from my selected item or be able to interact and fill in this column at the basic level.
AMOUNT needs to be set as "inline-text" so that other people handling sales orders cannot disturb it at all and still be able to see the value of this particular column.
I have attempted to search through Customization > Lists, Records & Fields and searched the following options: (which I thought were relevant to the fields that I wanted to modify)
Item Fields to no success
Transaction Body Fields to no success
Transaction Line Fields found out that AMOUNT and INVENTORY DETAIL are both padlocked
I also attempted to search through Customization > Forms and I have spent a long time looking through my Sales Order custom transaction form (possibly missing out on menus unintentionally) to no success.
I know that inside Customization > Forms > Entry Forms there is an Inventory Detail form in there that shows exactly the window I'm expecting, but I haven't figured out how to customise anything in the columns item line for transaction forms yet so I can create a custom column containing a link to INVENTORY DETAIL simulating the typical behavior of the original one while hiding the disabled one.
Near the top of a Sales Order form, I went to Customise > Customise Form and found out that I can find both AMOUNT and INVENTORY DETAIL inside the Sublist Fields tab.
Unfortunately, it only has SHOW toggles and this does not do what I need for it to do.
It is clear that I am confusing Sublist Fields with Screen Fields where I expected there would typically be a DISPLAY TYPE column that bears the drop-down selections containing "Normal", "Inline-Text" and "Disabled" options.
In actuality, they have SHOW checkbox toggles for both INVENTORY DETAIL and AMOUNT where the AMOUNT checkbox is greyed out. (This still does not achieve or reflect what I need it to do)
I am unaware of the conditions that needs to be met for AMOUNT to behave as an inline-text. There is probably another condition that needs to be met for the INVENTORY DETAIL column to be made available somehow.
I admit that I missed something crucial, so please kindly mention about it.
Any help would be greatly appreciated.
I was able to create a new column by creating a Transaction Line Field that contains two separate fields which are applied to Sales Orders.
For the INVENTORY DETAIL, I went to Customization > Entry Forms and copied the link for "Standard Inventory Detail Form" and then produced my own HTML code inside the Default Value when creating a new Transaction Line Field.
For AMOUNT, I created a new transaction line field and then set the Default Value as the appropriate value found in https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2018_1/schema/record/billingaccount.html and I used the curly bracket notation {} to fetch the data for the edittable AMOUNT but changed the Access to View-only, which makes this exactly what I needed.
After previewing the changes into an existing Sales Order, I can see my results reflected as expected. Consider this question solved.

Transferring information from repeated section to repeated grid on Orbeon with XForms

On my form I have a repeated section, that has text fields firstname, lastname and age (among others). I also have a button.
You fill out those text fields (firstname, lastname and age), and add them as many times as you want on with the repeated section. I want that when you push the button, all of the information from those fields copy to a repeated grid.
For example, if I have filled out two repeated sections, each having two first names, two last names and two ages. Then I click the button and the information on those text fields copy to a repeated grid that will have two rows and the same fields (first name, last name and age) with the information I have given.
I would like to do this on the form, with XForms, xpath and other. Is this possible, without any custom http service? I am using Orbeon 2016. The repeated grid already has those 3 text fields, I just want the button to add rows (depending on the amount of repeated sections and information given) and copy the given texts from those 3 text fields in the repeated section.

Displaying a 'Top Result' with Algolia?

I want to search 3 different indices at once, breaking out their results into 3 separate sections.
Above these 3 sections though, I want to display a 4th section with a single result row, and this section will be titled "Best Result".
It should take the best result of the 3 indices that most perfectly matches.
Does anyone know how I can achieve this? Thanks!
By design, when the ranking of each index is properly set (both attributeToIndex, and customRanking settings filled), the Algolia engine returns the most relevant et popular results for each new search request. First the one without typos and with perfect matches, then the others...
Which mean that if you want to display all the top results on a single page, you only need to take the N first result of each index.
Then it's just a matter of display. Like on the following websites, you can imagine to display those results into multiple columns:
http://telly.com/
Prototype built using the TED API
Feel free to look at tips about the best way to display result hits in multiple columns using Algolia and Bootstrap 3
Beside that you can also consider passing the getRankingInfo=1 parameter with your search query, and filter the results displayed accordingly to the matching info returned for each hit within the _rankingInfo property.
firstMatchedWord: 2000
geoDistance: 0
geoPrecision: 1
nbExactWords: 2
nbTypos: 0
proximityDistance: 1
userScore: 9499
words: 2

DataTable: hide and not remove rows

When I use DataTable in client-side mode (on an existing table), only the displayed rows are inserted in the DOM (I use the paginator). This is annoying as my table displays a form, so the hidden rows aren't sent when I submit the form.
Is it possible to only hide the rows and not remove them from DOM ?
I didn't test it yet but the documentation says there is an API, from which we can get the whole form content and even modify the form - even rows that aren't displayed - so that answers my question.

Dynamic Number Of Inputs In Form

This is supposed to be something very common in access: Say you have a table Employees with a many-to-many relationship with a table Workdays. As in, A day of work is a record in Workdays, and for any day of work there can be multiple employees who worked that day (Which is shown with a third table, I think it's called a junction table?).
Now, say you want to create a form that the user inputs the employees who worked on a certain day. There is a changing number of employees per day, therefore a changing number of text boxes/combo boxes to input the employees in.
I want to ask if there's a conventional/convenient/acceptable way to do this. I've thought of 2 ways: Having a certain maximum number of text boxes invisible, and every time one receives input set the visible property on a new one to Visible=True, and second way by using the CreateControl method. Both ways seem a little pointlessly complicated for something that should be very common.
You don't have to mess with dynamically creating or showing/hiding individual controls. All you probably need is a main form for the Workday with a Subform Control for the Employees who worked that day, something like this:
Design View:
Form View:
The subform control contains a Continuous Forms form that is bound to the junction table [TimeCards].
Workday EmployeeID HoursWorked
--------- ---------- -----------
9/10/2014 1 7
9/10/2014 3 6
9/10/2014 4 9
The "child" subform linked to the "master" form by the [Workday] value. You can enter a variable number of entries for a given Workday by simply adding new rows to the subform (via the "New Record" row with the asterisk beside it).
For more information, see
Create a form that contains a subform