###### tags: `操作文件` `小綠` `欄位維護` # 欄位維護 [toc] ## 操作流程 - 欄位查表管理 ```flow st=>start: 欄位查表管理 e=>end: End tableName=>operation: 查表名稱 mapping=>operation: Mapping keyvalue=>operation: 比對標籤、查詢結果 st->tableName->mapping->keyvalue->e ``` - 欄位維護 ```flow st=>start: 欄位維護 e=>end: End fieldName=>operation: 欄位名稱 unitType=>operation: 欄位種類(下拉、唯獨...) sscDefault=>condition: 不是SSC預設欄位 signalId=>operation: SignalID isLogic=>condition: 是否啟用運算公式 code=>operation: 運算公式 isLookUp=>condition: 是否啟用查表功能 table=>operation: 查詢清單名稱 st->fieldName->unitType->sscDefault sscDefault(yes)->isLogic sscDefault(no)->signalId->e isLogic(no)->e isLogic(yes)->code->isLookUp isLookUp(no)->e isLookUp(yes)->table->e ``` ## 畫面  - 欄位介紹 - 欄位名稱(設計時查詢名稱、顯示名稱,可在多國語系設定中調整翻譯名稱) - 欄位種類 - input: 文字輸入方塊 - card: 唯獨字卡 - select: 下拉清單 - 是否為SSC儀器欄位(SSC SignalID 欄位,**開發者使用**) - 是 - 對應signalID(SignalId) - 否 - 是否需計算(啟用計算公式) - 是 - 計算公式(邏輯計算公式,C#語法) - 是否需查表(計算結果啟用查表) - 是 - 查詢清單(查表依據) - 否 - 否 ## SSC 預設欄位(開發者使用)  - 欄位名稱(設計時查詢名稱、顯示名稱,可在多國語系設定中調整翻譯名稱) - 欄位種類 - card: 唯獨字卡 - 是否為SSC儀器欄位(SSC SignalID 欄位) - 是 - 對應signalID(SignalId),於SSC 提供 SignalId 清單中查詢選取 signalId ## 自訂欄位  - 欄位名稱(設計時查詢名稱、顯示名稱,可在多國語系設定中調整翻譯名稱) - 欄位種類 - input: 文字輸入方塊 - card: 唯獨字卡 - select: 下拉清單,儲存後可點選維護下拉清單 - 是否為SSC儀器欄位(SSC SignalID 欄位,**開發者使用**) - 否 - 是否需計算(啟用計算公式) - 是 - 計算公式(邏輯計算公式,C#語法) - 是否需查表(計算結果啟用查表) - 是 - 查詢清單(查表依據) - 否 - 否 ### 邏輯運算 - 語法: C# 語法 - 規則: SSC+SignalID 為變數名稱,會根據變數將儀器回傳數值(double格式,小數點第四位)帶入運算中,例:SSC20017(帶入值為:19.0000) - **注意**: 邏輯運算錯誤(SSC未回傳此數值、除數為0、邏輯錯誤...),回傳值為"Error" - 範例公式:如下 - 基本運算(取小數點第四位) ``` Math.Round(SSC20017*60*(1-SSC20047/100)/(SSC20017*60*(1-SSC20047/100)+SSC20022+SSC20018)*(SSC20022+SSC20018+SSC20019+SSC20024)/SSC20026,4); ``` - 邏輯判斷(if/else,不支援 switch/case) ``` var ufr = SSC20017*60*(1-SSC20047/100)/(SSC20017*60*(1-SSC20047/100)+SSC20022+SSC20018)*(SSC20022+SSC20018+SSC20019+SSC20024)/SSC20026; var set = (int)SSC21001; var show = (int)SSC20021; if(set==0){return "SCUF";} else if(set==1 && ufr<=8){return "SCUF";} else if (set == 1 && ufr > 8) { return "CVVH"; } else if (set == 2 && show == 0) { return "SCUF"; } else if (set == 2 && show > 0) { return "CVVHD"; } else if (set == 3 && ufr <= 8 && show == 0) { return "SCUF"; } else if (set == 3 && ufr <= 8 && show > 0) { return "CVVHD"; } else if (set == 3 && ufr > 8 && show == 0) { return "CVVH"; } else if (set == 3 && ufr > 8 && show > 0) { return "CVVHDF"; } else { return ""; } ``` - 格式轉換 ``` TimeSpan.FromSeconds(SSC20059).ToString(@"hh\:mm\:ss"); ``` - 字串重組 ``` var time = TimeSpan.FromSeconds(SSC20059); return $"{time.Hours}:{time.Minutes}:{time.Seconds}"; ``` ### 運算結果查表(欄位維護->是否需查表為true)   點擊後可觀看表對應關係  - 規則: 根據【欄位維護】=>【查詢清單】=>【欄位查表管理】的【查表名稱】=>【Mapping】的查詢標籤 = 運算公式結果,回傳【查詢結果】 - 邏輯流程範例 ``` Step1(使用者自訂運算公式) Math.Round(SSC20409); //結果 = 1,如果沒有Math.Round()取整數,會變成1.0000,導致查表無法對應到標籤 Step2(系統自動) var table = 無抗凝; return table.Where(查詢標籤 == Step1運算結果).查詢結果; ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up