Advanced Form Features
Conditionally Hide or Show a Field
Any field in MOBIDI can be conditionally visible. This I set in Advanced tab in the field. Following is the samples for Show and Hide rules.
field_id value is on the Macro tab.
Örnek | Açıklama |
---|---|
formData['field_id'] | if field_id has value then show/hide |
formData['field_id'] == 'Ankara' | if field_id has value of “Ankara” then show/hide |
formData['field_id1'] == 'Ankara' && formData['field_id2'] == 'Çankaya' | if field_id1 value is “Ankara” and field_id2 value is “Çankaya” then show/hide |
['Ankara','İstanbul'].indexOf(formData['afield_id])>=0 | if value is field_id is Ankara or İstanbul than show/hide |
formData['field_id'] > 3 | if value of field_id is greater than show/hide |
items.length > 0 | if record has at least one attachments(photo, video..) than show/hide |
Macros
Macros is used to automatically fill the field. For example, the county/region/building or facility may be filled by your location. This feature not only makes data entry faster but also error-prone.
There are 3 choices for macros.
Spatial Relation - DB
Bu seçenek konumsal bilgi içeren bir tablodan veya shapedosya gibi bir kaynaktaki bilgileri kullanır. MOBIDI ile oluşturduğunuz kaydın konumuna göre 40metre çevrredeki en yakın kayıt alınır ve kuralınıza göre değer yazılır.
Bu seçenek için MOBIDI Ofis’in kurulu olduğu sunucuda olmalısınız. Geçerli bir bağlantıyı kurduktan sonra yazılım size kullanılacak tablo ve alanı soracaktır.
This option gets information from a spatial table from an external source. A shapefile or a spatial table in PostGIS. The tolerance is 40m.
This option works only if you are on the same server as MOBIDI Office installed.
Spatial Relation - Query
Almost Every record hence Query has location information. This choice uses a Query as the spatial data source.
Suppose you create a project for Site Management. If you have more than one site, every record must have site information in order to report or analyze per site. But entering site info for every record is a boring and error-prone method.
Spatial Relation - Query solves this problem.
Let's design a form called "Construction Site". Let this form contain the features of a construction site. The name of the site, the manager, photos of the place where the construction site will be set and more may in this form.
Let's create another form and call it "Activities" and define values such as activity, quantity, etc.
If we want to have site information in the activities form, we must use "Spatial Relation - Query"
To implement the above scenarios:
Add a field named “Site info” to activities form.
Select Construction Site record in the Query.
Congrulations1. İt’s done. Now you will see the information about the site in every activity. You may choose to get Form Caption or Map Label.
Advanced Relation Macro
If the above features do not meet your needs this macro may solve them. This choice may require some IT knowledge.
Örnek | Açıklama |
---|---|
context.Data.GetAttribute("select_id") == "Ankara" ? “değer1“ : context.Data.GetAttribute("select_id") == "İstanbul" ? “değer2“ | The value depends on a slect filed. Value1 for Ankara, Value2 for İstanbul. |
d.GetAttribute("field_id1") == "100" ?d.GetAttribute("field_id2")*5 | If field_id1 is 1000 then our value will be 5 times the value of field_id2. |
context.Data.record.GeometryObj!=null ? "Geo" : "Non Geo" | Whether the record has geometry or not. |
d.record.Device.MobileLicenseDepartment | This field will be department of the user. |
c["mobidi"].CreateID(d,"field_id","Start_") | Set and automatic ID for the field_id. That sequence Start_1, Start_2 and so. |
For more please check the Macros page.
field_id value is on the Macro tab.
Sadece boş değerleri güncelle?
Bu seçenek işaretli değilse tanımlanan makro her durumda yazılan değerleri ezer. İşaretli ise daha önceden farklı şekillerde girilmiş değerler korunur. Bu değerler manuel olarak veya farklı bir makro ile girilmiştir. Çok özel durumlar haricinde işaretlemeniz gerekmez.