When you initialize the ABMDatePicker it has to have a date (from the example). I however would want this not to have a date as a user will choose a date. How can I achieve this? Passing Null to the date raises an error.
Dim cstart As ABMDateTimePicker = inp.Content.Component("docpost")
cstart.SetDateISO( DateTime.Date(DateTime.Now))
This is an issue which needs some clarification.
When using cstart.SetDate (date as long), even when getting the long form a field in your table, it reverts to the last date / time that was used in this form.
SetDateISO( date as string)
However, when using SetDateISO ( the retrieved date as string ), the control will set your date properly.
Use 0 instead of null for a begin date if need be...
If cstart = 0 then
force to set a d ate
I noted this too before and what i ended up doing was to re-create the component each time between my cycle of CRUD as I also didnt understand what was happening. I spent many hours trying to identify the problem and finally gave up and did this "fix". This should really have an option to initialize it without a date/clear the date.
B4X:
Sub msdocSetContents(pMap As Map)
Dim msdoc As ABMModalSheet
msdoc = page.ModalSheet("msdoc")
'Remove the component from the modal sheet
msdoc.Content.Cell(4,1).RemoveComponent("dpdocdocumentdate")
'Add the component to the modalsheet
Dim dpdocdocumentdate As ABMDateTimePicker
Dim dpdocdocumentdateDate As Long = DateTime.Now
dpdocdocumentdate.Initialize(page, "dpdocdocumentdate", ABM.DATETIMEPICKER_TYPE_DATE, dpdocdocumentdateDate, "Document Date", "dp")
dpdocdocumentdate.WeekText = "Week"
dpdocdocumentdate.TodayText = "Today"
dpdocdocumentdate.ReturnDateFormat = "YYYY-MM-DD"
dpdocdocumentdate.ReturnTimeFormat = ""
dpdocdocumentdate.Language = "en"
dpdocdocumentdate.FirstDayOfWeek = ABM.FIRSTDAYOFWEEK_SUNDAY
dpdocdocumentdate.PickText = "OK"
dpdocdocumentdate.CancelText = "Back"
msdoc.Content.Cell(4,1).AddComponent(dpdocdocumentdate)
After much thought, I dediced to try clearing it via jquery...
B4X:
public Sub SetValue(page As ABMPage, id As String, value As String)
Try
id = id.tolowercase
Dim jqe As JQueryElement = page.ws.GetElementById(id)
jqe.SetVal(value)
Catch
End Try
End Sub
And using it like...
B4X:
'use jquery to clear
ABMShared.SetValue(page,dpdocdocumentdate.id,"")
ABMShared.SetValue(page,dpdocdatereceived.id,"")
ABMShared.SetValue(page,dpdocrespondby.id,"")
ABMShared.SetValue(page,dpdocdateresponded.id,"")
I noted this too before and what i ended up doing was to re-create the component each time between my cycle of CRUD as I also didnt understand what was happening. I spent many hours trying to identify the problem and finally gave up and did this "fix". This should really have an option to initialize it without a date/clear the date.
B4X:
Sub msdocSetContents(pMap As Map)
Dim msdoc As ABMModalSheet
msdoc = page.ModalSheet("msdoc")
'Remove the component from the modal sheet
msdoc.Content.Cell(4,1).RemoveComponent("dpdocdocumentdate")
'Add the component to the modalsheet
Dim dpdocdocumentdate As ABMDateTimePicker
Dim dpdocdocumentdateDate As Long = DateTime.Now
dpdocdocumentdate.Initialize(page, "dpdocdocumentdate", ABM.DATETIMEPICKER_TYPE_DATE, dpdocdocumentdateDate, "Document Date", "dp")
dpdocdocumentdate.WeekText = "Week"
dpdocdocumentdate.TodayText = "Today"
dpdocdocumentdate.ReturnDateFormat = "YYYY-MM-DD"
dpdocdocumentdate.ReturnTimeFormat = ""
dpdocdocumentdate.Language = "en"
dpdocdocumentdate.FirstDayOfWeek = ABM.FIRSTDAYOFWEEK_SUNDAY
dpdocdocumentdate.PickText = "OK"
dpdocdocumentdate.CancelText = "Back"
msdoc.Content.Cell(4,1).AddComponent(dpdocdocumentdate)
Ah yes, there are times when you need to remove the component at a row(s) in order to re-init them (add / edit).
Trying to update some properties just does not work.
When I find that something isn't behaving, I remove the row and re-init it. Build form seems to control all and respects (many) adjustments made when editing, or adding new.
The ABM.DATETIMEPICKER_TYPE_DATE type will show date and time as opposed to just a Date.
This is very infrequent but sometimes, it is the only thing that works. I can't imagine the complexity behind the scenes.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.