---
# System prepended metadata

title: 欄位維護
tags: [欄位維護, 操作文件, 小綠]

---

###### 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
```

## 畫面
![](https://i.imgur.com/KRNFu1y.png)

- 欄位介紹
    - 欄位名稱(設計時查詢名稱、顯示名稱，可在多國語系設定中調整翻譯名稱)
    - 欄位種類
        - input: 文字輸入方塊
        - card: 唯獨字卡
        - select: 下拉清單

    - 是否為SSC儀器欄位(SSC SignalID 欄位，**開發者使用**)
    - 是
        - 對應signalID(SignalId)
    - 否
        - 是否需計算(啟用計算公式)
            - 是
                - 計算公式(邏輯計算公式，C#語法)
                - 是否需查表(計算結果啟用查表)
                    - 是
                        - 查詢清單(查表依據)
                    - 否
            - 否
    
## SSC 預設欄位(開發者使用)
![](https://i.imgur.com/joxOmfJ.png)

- 欄位名稱(設計時查詢名稱、顯示名稱，可在多國語系設定中調整翻譯名稱)
- 欄位種類
    - card: 唯獨字卡

- 是否為SSC儀器欄位(SSC SignalID 欄位)
    - 是
- 對應signalID(SignalId)，於SSC 提供 SignalId 清單中查詢選取 signalId

## 自訂欄位
![](https://i.imgur.com/CjVaD99.png)
- 欄位名稱(設計時查詢名稱、顯示名稱，可在多國語系設定中調整翻譯名稱)
    - 欄位種類
        - input: 文字輸入方塊
        - card: 唯獨字卡
        - select: 下拉清單，儲存後可點選![](https://i.imgur.com/lJiNf2A.png)維護下拉清單

    - 是否為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)

![](https://i.imgur.com/xXNfiH9.png)

![](https://i.imgur.com/AixC8ko.png)
點擊![](https://i.imgur.com/f3fDI2O.png)後可觀看表對應關係
![](https://i.imgur.com/edoWbpr.png)


- 規則: 根據【欄位維護】=>【查詢清單】=>【欄位查表管理】的【查表名稱】=>【Mapping】的查詢標籤  = 運算公式結果，回傳【查詢結果】
    -  邏輯流程範例 
    ```
    Step1(使用者自訂運算公式)
      Math.Round(SSC20409);
      //結果 = 1，如果沒有Math.Round()取整數，會變成1.0000，導致查表無法對應到標籤
    Step2(系統自動)
     var table = 無抗凝;
     return table.Where(查詢標籤 == Step1運算結果).查詢結果;
    ```
    
        