iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
自我挑戰組

用 ODK 和 Access VBA 打造行動化資料收集流程系列 第 15

Day15: XLSForm設計教學:問題類型/資料類型(Question Types) Part 5

  • 分享至 

  • xImage
  •  

範圍小工具(Range widgets)

範圍小部件允許使用者從直觀地表示為數軸的範圍內選擇數字。範圍小部件的參數由 XLSForm 參數列中定義的起始(start)、結束(end)和間隔值(step)定義。參數值可以是整數或小數。

帶有整數的預設範圍小工具 (Default range widget with integers)

  • [type]欄位: 選擇 range

如果所有三個參數值都是整數,則輸入將儲存為整數。

type name label appearance hint Parameters
range range_integer_widget 整數範圍 range integer widget with no appearance start=1;end=10;step=1

https://ithelp.ithome.com.tw/upload/images/20240926/2000722154IMQSUytT.jpg

帶有小數的預設範圍小工具 (Default range widget with decimals)

  • [type]欄位: 選擇 range
    如果任何參數值是小數,則輸入將儲存為小數。
type name label appearance hint parameters
range range_decimal_widget 小數範圍 range decimal widget with no appearance start=1.5;end=5.5;step=0.5

https://ithelp.ithome.com.tw/upload/images/20240926/20007221PeVOZAreT4.jpg

沒有刻度的範圍小部件(Range widget with no ticks)

  • [type]欄位: 選擇 range
  • [appearance]欄位: 選擇 no-ticks

若要顯示不含刻度的範圍小工具的數軸,請使用無刻度外觀。支援整數和小數。您也可以將此外觀與垂直範圍小工具一起使用。

type name label appearance hint parameters
range range_integer_widget_no_ticks 無刻度範圍 no-ticks range integer widget with no-ticks appearance start=1;end=10;step=1

https://ithelp.ithome.com.tw/upload/images/20240926/20007221H35qIW3uXM.jpg

垂直範圍小工具(Vertical range widget)

  • [type]欄位: 選擇 range
  • [appearance]欄位: 選擇 vertical

若要垂直顯示範圍小工具的數軸,請使用vertical(垂直)外觀。支援整數和小數。

type name label appearance hint parameters
range range_integer_widget_vertical 垂直範圍工具 vertical range integer widget with vertical appearance start=1;end=10;step=1

https://ithelp.ithome.com.tw/upload/images/20240926/20007221ARQasXFwXD.jpg

帶選擇的範圍小工具(Range widget with picker)

  • [type]欄位: 選擇 range
  • [appearance]欄位: 選擇 picker

新增選擇器外觀後,範圍小工具會在對話方塊中顯示,並帶有微調器樣式的選擇選單。水平線之間的值是所選值。使用者可以上下滾動微調器,或點擊上方的數值可增加 1,點擊下方的數值可減少 1。

type name label appearance hint parameters
range range_integer_widget_picker 範圍選擇工具 picker range integer widget with picker appearance start=1;end=10;step=1

https://ithelp.ithome.com.tw/upload/images/20240926/20007221ZfUTJJXXDr.jpg

帶評級的範圍小部件(Range widget with rating)

  • [type]欄位: 選擇 range
  • [appearance]欄位: 選擇 rating

新增rating (評級)外觀後,範圍小工具將顯示為具有相等間距的星星。星星的數量是使用 end 參數計算的。當使用者點擊空星星時,直到該星星(包括該星星)的星星都會被填滿。如果星星不適合設備寬度,它們將換行到額外的行。

type name label appearance hint parameters
range range_integer_widget_rating 評價工具 rating range integer widget with rating appearance end=5

https://ithelp.ithome.com.tw/upload/images/20240926/20007221s0slFSirrL.jpg

註解小工具(Note widget)

  • [type]欄位: 選擇 note
type name label hint
note note_1 這是註解示範 這邊可以顯示內容但無法編輯.

https://ithelp.ithome.com.tw/upload/images/20240926/20007221g87gLARTFo.jpg

網址小工具(URL widget)

  • [type]欄位: 選擇 text
  • [appearance]欄位: 選擇 url

提供使用者可以從調查中開啟的連結。不接受任何輸入。 預設指定要開啟的 URL。

type name label appearance hint default
text url_widget 網址小工具 url text type with url appearance and default value of https://getodk.org/
https://getodk.org/

https://ithelp.ithome.com.tw/upload/images/20240926/200072216lJoQYexU1.jpg

列印小工具(Printer widget)

  • [type]欄位: 選擇 text
  • [appearance]欄位: 選擇 printer
  • [calculation]欄位: 用表達式撰寫列印內容

當文字欄位具有printer外觀時,ODK Collect 將其文字值解釋為 HTML。當使用者點擊「列印」按鈕時,「收集」會顯示所呈現的 HTML 的列印預覽。在預覽畫面上,使用者可以另存為 PDF 或傳送到連接的印表機。

type name label appearance calculation
text id_card 點選按鈕進行列印 printer [要列印的內容,後面詳述]

設定要列印的值,可以於calculation使用表達式,通常使用 concat() 函數,以便可以包含表單中的值。
建議先使用HTML編輯器進行編輯,於網路瀏覽器中測試,完成後再轉換為 concat 函數以及插入表單值。
HTML內不需, 等標籤,只需要呈現的內容即可,另外也可以透過標籤,來建立QRCode,只要在標籤內的任何文字值,都會被編碼到 QR Code圖片內。

type name label hint required appearance constraint_message calculation parameters
begin_group id_card field-list
text id 請輸入工號: yes
select_one department department 請選擇部門: yes minimal
text c_name 請輸入中文名: yes
text e_name 請輸入英文名: yes
image photo 拍大頭照 yes max-pixels=1024
calculate create_date format-date-time(now(),'%Y/%m/%d')
end_group
text print_id_card 點這進行列印 點選後,將印出含有QR Code的內容 printer 內容下面解說

https://ithelp.ithome.com.tw/upload/images/20240926/200072219UUvR1ofXh.jpg

https://ithelp.ithome.com.tw/upload/images/20240926/20007221CZjd4ZX7GL.jpg

https://ithelp.ithome.com.tw/upload/images/20240926/200072216m7EIqpaVc.jpg

點選後,可以看到產生要列印的預覽畫面,可以轉存PDF或者列印到連線的印表機,轉存PDF的話可以調整紙張大小,以便容納更多資訊。
https://ithelp.ithome.com.tw/upload/images/20240926/20007221ps6Td303Bc.jpg

https://ithelp.ithome.com.tw/upload/images/20240926/20007221rvLmz2hanC.jpg

儲存可以開啟PDF查閱。
https://ithelp.ithome.com.tw/upload/images/20240926/20007221jXHrECWxVg.jpg

https://ithelp.ithome.com.tw/upload/images/20240926/20007221ktWZZeB4Aj.jpg

上面的calculation欄位內容如下:

concat("
  <div style='display: flex; flex-direction: column; align-items: center; justify-content: center;'>
  <img width='150' src='", ${photo}, "'>
  <table>
    <tr>
      <td>ID</td>
      <td>", ${id}, "</td>
    </tr>
    <tr>
      <td>部門</td>
      <td>", ${department}, "</td>
    </tr>
    <tr>
      <td>中文名稱</td>
      <td>", ${c_name}, "</td>
    </tr>
    <tr>
      <td>英文名稱</td>
      <td>", ${e_name}, "</td>
    </tr>
    <tr>
      <td>列印日期</td>
      <td>", ${create_date}, "</td>
    </tr>
  </table>
  <qrcode width='150' height='150'>", ${id}, " ", ${department}, " ", ${c_name}, " ", ${e_name}, " ", ${create_date}, "</qrcode></br>
  </div>
")

觸發/確認 小工具(Trigger/acknowledge widget)

  • [type]欄位: 選擇 trigger

觸發小工具,也稱為確認小工具,使用後會出現一個複選框。完成的觸發回應儲存為字串 OK。 此處顯示的範例包含必需的屬性。

type name label hint required
trigger my_trigger 確認/觸發 小工具 Prompts for confirmation. Useful to combine with required or relevant. (type=trigger) true()

https://ithelp.ithome.com.tw/upload/images/20240926/20007221Fmml464Cf8.jpg

簽名小工具(Signature widget)

  • [type]欄位: 選擇 image
  • [appearance]欄位: 選擇 signature

用於收集用戶的簽名。

type name label appearance hint
image signature_widget 簽名小工具 signature image type with signature appearance

https://ithelp.ithome.com.tw/upload/images/20240926/20007221CAVjip6pvV.jpg

在同一畫面上將多個小工具分組(Grouping multiple widgets on the same screen)

  • [type]欄位: 選擇 begin_group
  • [appearance]欄位: 選擇 field-list

可以透過begin_group與end_group這兩列,將同作用的小工具,歸類在同一群組內,之後於begin_group列的appearance欄位上,加上field-list(欄位清單)屬性,這樣就可以把這組小工具一起顯示在同一畫面。

要注意的是,不支援在同一畫面上(欄位清單群組內)顯示重複問題(Repeating questions )。

同一螢幕上的選擇網格(Grid of selects on the same screen)

如果您有多個具有相同選項的選擇題,將它們分組在一個畫面上會很有幫助。

為此,請將您選擇的問題放入欄位清單群組中,並使用以下外觀屬性:

Label (標籤):僅顯示選項標籤,不顯示複選框。這用於上例中帶有[Yes]和[No]選項的頂行。

list-nolabel(列表無標籤):僅顯示複選框或單選按鈕,不顯示其標籤。這用於上例中的問題行。

list(清單) :標籤與多選問題的複選框和單選問題的單選按鈕一起顯示。您可以使用它而不是使用標籤行來使選項標籤更靠近複選框或單選按鈕。

type name Label appearance
begin_group underlying_conditions Underlying conditions field-list
select_one yes_no condition_labels Conditions label
select_one yes_no Comcond_preg Pregnancy list-nolabel
select_one yes_no Comcond_partum Post-partum (< 6 weeks) list-nolabel
end_group underlying_conditions

隱藏問題(Hidden questions)

並非所有問題類型都會在 Collect 中呈現為可見小部件。隱藏欄位收集和儲存可作為變數存取的值,並可在 Central 和其他資料分析工具中使用。

Metadata(元資料):

元資料問題取得有關設備或調查收集事件的訊息,並且對使用者隱藏。

開始、結束和今天(start, end, and today)取決於設備時間。根據設備硬體、作業系統、時脈配置、網路配置,設備時間可能會錯誤。

若要可靠地測量事件之間的時間(例如,了解調查花費了多長時間)或取得表單內使用者行為的更完整記錄,請考慮使用表單審核日誌記錄(form audit logging.):
https://docs.getodk.org/form-audit-log/

  • start: 調查開始的日期時間,採用 ISO 8601 格式(例如 2019-09-27T09:45:10.854-07:00)。
  • end: 調查以 ISO 8601 格式儲存的最後日期時間。
  • today: ISO 8601 格式的調查開始日期(例如 2019-09-27)。
  • start-geopoint: 調查開始時的地理位置。

此項目在安裝時定義且無法變更:

  • deviceid: 一個唯一的、隨機產生的 16 個字元的字母數字識別碼(以collect:: 為前綴),與應用程式的特定安裝相關聯。它在 ODK Collect 中的所有項目和表單中保持不變。此識別碼是 ODK Collect 的內部功能,其他應用程式或裝置上的外部來源無法存取。更改它的唯一方法是重新安裝應用程式。

這兩個項目在 Collect 中可以定義:

  • username
  • phonenumber

可由Collect中的 Settings(設置)->User and device identity(使用者和裝備標示)->Form metadata(表單元資料)中編輯
https://ithelp.ithome.com.tw/upload/images/20240926/20007221DtSGvkmZ4w.jpg

type name
start start
end end
today today
deviceid deviceid
username username
phonenumber phonenumber
start-geopoint start-geopoint

調查開始時的地理位置(Geolocation at survey start)

開始地理點問題類型用於在調查首次開始時捕獲地理點格式的單一地理位置。

start-geopoint 類型的問題可以指定任何允許的名稱。儘管表格中可能有多個起始地理點問題,但所有問題都具有相同的值。

每當在 Collect 中開啟包含起始地理點問題的調查時,普查員都會看到一條警告,提示表單追蹤設備位置。如果裝置電池電量低,或者由於任何原因需要關閉位置跟踪,您可以點擊: 追蹤位置或關閉 Android 中的位置提供者。

第一次開啟包含起始地理位置問題的調查時,Collect 將嘗試讀取裝置的地理位置。將記錄 20 秒視窗內接收到的最高精度的地理定位讀數。當 Collect 請求地理位置時,Android 狀態列中將顯示位置圖示。

地理位置是使用來自 GPS、WiFi 和可能的其他訊號的資料讀取的,因此此功能應該適用於大多數環境。

如果地理位置資訊無法使用,該問題會空白。出現空白值的原因可能包括設備關閉GPS功能、Collect 沒有位置權限、未安裝 Google Play 服務、GPS 沒有衛星鎖定等。提交的表單中未提供故障排除資訊。

包含起始地理點問題可以透過「加熱」GPS 更快地取得其他位置問題類型的高精度地理定位讀數

資料計算(Calculate)

Calculate(資料計算)可讓您計算複雜的表達式,並儲存值以供後續使用。

背景錄音(Background audio recording)

  • [type]欄位: 選擇 background-audio
type name
background-audio my_recording

當表單包含background-audio(背景錄音)類型的問題時,將在表單開啟時錄製音訊並將其作為單一音訊檔案附加到表單提交中。這些錄音可用於品質保證、訓練、轉錄等。當您想要確保記錄表單填寫過程中發生的所有事情時,請使用背景錄音而不是使用錄音小工具。

預設情況下,音訊檔案將以 amr 格式儲存,位元速率為 12.2 kbps,取樣率為 8 kHz,檔案大小約為每小時 5 MB。這些設定對應於音訊問題的純語音質量,並最大限度地減少檔案大小,同時保持兩個人之間對話的合理品質。您可以透過在參數列中指定值來覆寫預設質量,如之前提的錄音品質設置。

type name parameters
background-audio my_recording quality=low

規劃背景錄音

在將背景錄音添加到表單前,請確保遵守當地有關錄音的法律。建議在表格開頭添加註釋,以提醒資料收集者和參與者他們正在被記錄並描述記錄的目的。根據具體情況,可能需要徵求麥克風說話範圍內,每個人的同意。

此外,您應該制定使用產生的音訊檔案的計劃。您是否有人可以聆聽並理解許多音訊檔案?您可以使用語音轉文字功能嗎?也要考慮您的資料收集器是否能夠發送音訊檔案。他們能夠獲得足夠快的網路連線嗎?他們的互聯網計劃或積分數量是否允許他們發送您期望的所有音訊檔案?

將後台錄音與審核日誌記錄結合會很有幫助,以便在收聽錄音時獲得更多背景資訊。記錄在表單啟動和表單復原事件處開始,並在表單退出事件處停止。您可以使用表單開始時間和事件開始時間之間的差異來確定記錄特定事件發生在背景的程度。

後台錄音使用者介面 錄音正在進行時,螢幕頂部會顯示音訊狀態列。該欄有助於提醒資料收集者他們正在被記錄,並提供有關音訊音量的視覺回饋。 如果資料收集器退出表單然後重新開啟它進行編輯,則會還原錄音。只要表單打開,錄音就會繼續,即使另一個應用程式位於前台或螢幕被鎖定。請注意,無法從具有背景記錄的表單直接存取收集設定。傳送到伺服器的音訊檔案將包含每次開啟表單進行編輯時的音訊。

當記錄可能危及安全或無法獲得記錄同意時,資料收集者可以使用替代方法,但輸入一些資料仍然很重要。取消選取錄音選項後,錄音會立即結束,並且先前錄製的所有音訊都會被刪除。在目前填寫表格期間無法恢復記錄。重新開啟音訊錄製選項表示應錄製下一個表單填寫會話。如果啟用審核日誌記錄,則在資料收集器關閉記錄時將記錄後台音訊停用事件,而在資料收集器重新開啟記錄時將記錄後台音訊啟用事件。

後台錄音故障排除
在極少數情況下,例如設備空間不足,記錄可能會正常儲存,但不會附加到表單中。如果發生這種情況,錄音可能位於 Collect 目錄的錄音資料夾中。該資料夾永遠不會被清除,因此在找到檔案複製完後,可以考慮自行清空。


上一篇
Day14: XLSForm設計教學:問題類型/資料類型(Question Types) Part 4
下一篇
Day16:表單邏輯(Form Logic) Part 1
系列文
用 ODK 和 Access VBA 打造行動化資料收集流程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言