I have a form that has a header which a user can select a photo from gallery as well as an avatar with the same functionality. Then below that I have a username field which will trigger the TextfieldChange event every time the user writes and it will be emitting the FormError state if the field has errors If the username is valid it will emit the UsernameLoading to search in the database if that username exists. The name also will trigger the TextFieldChange on the onChange to validate if is a correct name and if not it will emit the Error state. and for the About field, every time the user writes, it will subtract the text length from 140. The submit button will be disabled until the form is valid and for the form to be valid it will need a valid username and name.
The problem I have is that I have the following states:
FormInitial
FormError // Any errors on fields
a. errors
FormAvatarLoading // User selects image to upload
FormAvatarUploadedSuccess // Avatar uploaded successfully
FormHeaderLoading // User selects image to upload
FormHeaderUploadedSuccess // Header uploaded successfully
FormIsValid // When every field is correct
UsernameLoading // When db call to verify username exists
And the events are
TextFieldChange
SubmitForm
ImageChange
ImageRemove
For example if the user writes on username and it shows an error, the ErrorState will be emitted, but If I then upload an avatar image, the AvatarSuccess state will be emitted and I will loose my errors. Also if the username is valid and I emit the UsernameLoading to verify the database I will also loose the error in name if it was already shown.
I've tried separating the fields and images in a different bloc, but I don't want to add so many listeners to see if every field is valid. What is the best approach for this?
When using global state make sure that you pass props in ever emit and with that update your global state
This way emitting won't empty the state
Related
I have a form in Lotus Notes containing an editable text field.
Once the user enters a value in that field, it gets saved properly when I check it by opening the document from the back-end.
But I need this value to be seen in the form every time the user opens the form.
Because it is a configuration form where the user should be able to see all the values saved.
For example, a field which contains the path to download a report. And it should be an editable field itself. Is there any way to do this? Any sort of clue or help would be really appreciated. Thanks in advance!
The value of an editable field stored in a document does keep it's value every time the user opens the document.
It sounds like you may ask for something else. You want User A to create a document, enter a value (i.g. a download path) and save the document. When User A or User B later creates another document based on the same form, the previously entered value should be the default. Is that what you mean?
In that case you could simply use #DbLookup or #DbColumn in the formula language in the Default Value property of the field.
Or create a lookup view with the previously created document, sorted descending by date, then use the GetFirstDocument method of the NotesView class to get the first document in that view and read the value out of it using the GetItemValues method of the NotesDocument class.
Performance tip: If you make sure the value you want to look up is visible in the lookup view you can use the GetFirstEntry method of the NotesView class, then use the ColumnValues property to get the value, this is much faster.
Solution is to use #DbColumn in the default value of the editable text field of my form
So I have a form in Access.![acessform1][1]
Here are form properties
I got this database and have been making adjustments to the other forms. I gave the database back to the user and they reported an issue that this form is not acting properly, and the add order record function is not working anymore.
There's an Add Order Record button on the right side of the form that would usually add the record if the user manually entered input into some of the boxes. The old form you would have control of the values 1/0 for yes/no. You can enter text into the notes boxes.
This functionality doesn't work anymore, and I can't seem to figure out why. The form is identical to the original and no adjustments have been made except to the table that it pulls data from.
So the symptoms are:
User input is not accepted in text boxes.
The find CP functionality works with the drop down and reflects the records accurately but I cannot update the fields.
Also, the fields CP_Ref and Invoice date don't let me enter data anymore.
Also the Add Order Record was giving me an error that The it could not find the record specified, but I since copied the original form back into place and that error went away.
I think functionality wise this button should save the record after a field is updated and should add a new record.
Seems like all the controls are locked on the page.
Here is the query that pulls the data when I click the button that takes me to the Order form.
SELECT DISTINCTROW CPOrders.Cust, Customer.NAME, CPOrders.CP_Ref, CPOrders.Slsman,
CPOrders.Date_opn, CPOrders.CPSmall, CPOrders.InvIssu, CPOrders.InvNo,
CPOrders.InvDate, CPOrders.DueDate, CPOrders.ETADate, CPOrders.Closed,
CPOrders.Cust, CPOrders.Name, CPOrders.BuyerRef, CPOrders.ToCity,
CPOrders.ToState, CPOrders.ToCtry, CPOrders.ToPort, CPOrders.Supplier,
CPOrders.Origin, CPOrders.Product, CPOrders.GradeType, CPOrders.NoUnits,
CPOrders.Pkg, CPOrders.Qty, CPOrders.TotSale, CPOrders.TotCost,
CPOrders.GrMargin, CPOrders.[Sale$/Unit], CPOrders.[Cost$/Unit],
CPOrders.OceanCost, CPOrders.OceanNotes, CPOrders.BLadingDate,
CPOrders.USAPort, CPOrders.FOBCost, CPOrders.FASExportVal,
CPOrders.InlandFrt, CPOrders.CommodCode, CPOrders.Notes,
CPOrders.ProjCust, CPOrders.ProjValue, CPOrders.ContainerNumber,
CPOrders.Vessel, Customer.TERMS
FROM Customer INNER JOIN CPOrders ON Customer.[CUST_#] = CPOrders.Cust
ORDER BY CPOrders.CP_Ref;
I ended up checking several locations for the answer to this.
What it ended up being was a primary key issue.
Essentially when I got the updated database I put them into new tables, effectively destroying the dependencies, relationships, and established keys.
I reverted back to the old tables and found out the form worked properly.
The issue ultimately was that the primary keys were not defined as needed for the table to be updated.
So i have a form based on one of my table, in wich the id is generated by a function in the database, the username is get from the user in session using the variable :APP_USER and the date has a default value of to_char(sysdate). But the problem is that if I open the page the first time it does work without any error, when I change pages and return to the form I get the error
ORA-01403: no data found
Error Unable to fetch row.
And I don't know why.
If you use the standard fetching process you can check to see which column it uses to fetch a unique row and the item it will use the value from to do this.
If you get the 1403 error then this probably means you are trying to perform a fetch with the value of this page item set to a value which does not exist in the database.
Are you performing a computation on this item? Run plsql code on it? Change it anywhere?
When you get this error, then you can check the session state of the item by clicking "Session" on the developer toolbar. This will show you the session state values of the items, and thus you can see the value of the PK item on which the fetch will operate. If there is an id in there, you can verify whether this value is correct or not.
I have a form that is bounded to a table and I have one required field in the table. When I try to enter a new record through the form, and then I decide not to enter the record, I get stuck, It keeps saying that I need to enter a value for the required field. Is there a way for the form to have a submit button, and only when I click this button, the record goes into the table and otherwise it just gives me an interface through the form where I can edit the values without worrying about the required fields. Any help is appreciated!
Any other approach is welcome too!
As soon as you add data to a record Access creates the record (and assigns it an ID#). In the BEFORE UPDATE event for the control for the required field, check to see if the value is null, and if so, UNDO the changes. Example:
Private Sub txtControlName_BeforeUpdate(Cancel As Integer)
If IsNull(Me!txtControlName) Then
Me.Undo
End If
I have a requirement, where some 14-15 fields of data have to be asked from the end user and some processing has to be done for those values.
But one of the values should be pre-filled with a drop down list of values, and user can only select one of the values in that list. Also, the user can add a suffix value to this fixed value(by fixed value i mean value in drop down list selected by end user). So this parameter when sent to the server for processing, is fixed value+suffix.
I want to know if this type of form processing can be done using bean/jsp. Or with any other method.
If you could give me a code sample for implementing this (whether bean or other method) then that would be great.
The processing that has to be done after the user submits all 14-15 values is written as java code. I should be able to invoke this code to do processing.
Of course it can be done using servlets/JSP.
You need to generate apage containing an HTML form. This form will have to contain a select element withh all the fixed options, and a text input where the user has to enter the suffix. When submitted, the servlet/JSP will have to get the submitted values from the request parameters, and do its processing.
A code sample would be too hard to give you. You need to read a whole tutorial about HTML forms, the servlet API and how JSPs work.