private void UpdateSubTypeTag() { if (m_ItemData == null) { SetSubTypeTagState(false); return; } if (m_ItemData.ItemType == ItemType.Dan || m_ItemData.ItemType == ItemType.DanFormula) { SetSubTypeTagState(true); var subType = (ItemDanType)m_ItemData.SubType; m_FightTagTag.gameObject.SetActive(subType == ItemDanType.Fight); m_CultivationTag.gameObject.SetActive(subType == ItemDanType.Cultivation); var isShow = subType == ItemDanType.Fight || subType == ItemDanType.Cultivation; m_SubTypeTagText.text = isShow ? Constant.Dan.GetDanTypeName(subType) : ""; } else { SetSubTypeTagState(false); } }
时间: 2024-02-14 13:31:52 浏览: 44
这段代码是一个私有方法,用于更新次类型标签。它首先检查m_ItemData是否为空,如果为空,则调用SetSubTypeTagState(false)方法并返回。
如果m_ItemData的ItemType为ItemType.Dan或ItemType.DanFormula,则调用SetSubTypeTagState(true)方法,表示次类型标签可见。
接着,根据m_ItemData的SubType来设置具体的次类型标签。如果SubType是ItemDanType.Fight,则将m_FightTagTag激活显示;如果是ItemDanType.Cultivation,则将m_CultivationTag激活显示。同时,根据subType是否是ItemDanType.Fight或ItemDanType.Cultivation来确定是否显示次类型标签的文本。如果是,则将m_SubTypeTagText的文本设置为Constant.Dan.GetDanTypeName(subType),否则将文本设置为空字符串。
如果m_ItemData的ItemType不是ItemType.Dan或ItemType.DanFormula,则调用SetSubTypeTagState(false)方法,表示次类型标签不可见。
相关问题
优化这段代码let mesStr = ""; let itemFlag = false; if (var_g_name !== tmpVarGName) { mesStr = mesStr+"<br>・"+getMsg($('#INF026').text(),''); } if (share106 !== tmpShare106) { mesStr = mesStr+"<br>・"+getMsg($('#INF027').text(),''); } if ( areadata !== tmpAreadata ) { if ((mesStr.match(/・/g)||[]).length>1){ mesStr = mesStr+"<br><span style='display:inline-block; width: 42px;'/>・"+getMsg($('#INF028').text(),''); }else { mesStr = mesStr+"<br>・"+getMsg($('#INF028').text(),''); } } if ( itemdata.length !== tmpItemdata.length ) { itemFlag = true; }else { for (let i=0;i<itemdata.length;i++){ if (itemdata[i].id!==tmpItemdata[i].id){ itemFlag = true; } } } if (itemFlag){ if ((mesStr.match(/・/g)||[]).length>1){ mesStr = mesStr+"<br><span style='display:inline-block; width: 42px;'/>・"+getMsg($('#INF029').text(),''); }else { mesStr = mesStr+"<br>・"+getMsg($('#INF029').text(),''); } } if (mesStr===""){ $('#dd_yh_0106').dialog('close'); }
以下是优化后的代码:
```javascript
let mesStr = "";
const messages = [
{ flag: var_g_name !== tmpVarGName, msg: $('#INF026').text() },
{ flag: share106 !== tmpShare106, msg: $('#INF027').text() },
{ flag: areadata !== tmpAreadata, msg: $('#INF028').text() },
{
flag: itemdata.length !== tmpItemdata.length || itemdata.some((item, i) => item.id !== tmpItemdata[i].id),
msg: $('#INF029').text()
}
];
messages.forEach(({ flag, msg }) => {
if (flag) {
mesStr += mesStr ? "<br>" : "";
mesStr += "・" + getMsg(msg, "");
}
});
if (mesStr === "") {
$('#dd_yh_0106').dialog('close');
}
```
在这个例子中,我们使用了一个 `messages` 数组来存储所有的消息,每个消息都包括一个 `flag` 标志和一个 `msg` 文本。我们使用 `forEach()` 方法遍历 `messages` 数组,并检查每个消息的 `flag` 是否为 `true`,如果是,则将相应的 `msg` 添加到 `mesStr` 变量中。最后,我们检查 `mesStr` 是否为空,如果是,则关闭对话框。
此外,我们还使用了 `some()` 方法来检查 `itemdata` 和 `tmpItemdata` 数组中的每个元素是否相同。如果有任何一个元素不同,就将 `itemFlag` 设置为 `true`。这样可以减少代码重复,并让代码更简洁易读。
BAPI_OUTB_DELIVERY_CREATE_STO的用法,给一下示例
BAPI_OUTB_DELIVERY_CREATE_STO是一个SAP函数模块,用于创建一个STO交货单。以下是一个简单的示例代码:
```
DATA: ls_header TYPE bapiobdlhdr,
lt_item TYPE TABLE OF bapiobdlitem,
ls_item TYPE bapiobdlitem,
lt_pack TYPE TABLE OF bapiobdlpack,
ls_pack TYPE bapiobdlpack,
lt_return TYPE TABLE OF bapiret2,
ls_return TYPE bapiret2.
* Fill the header data
ls_header-vbeln_vl = '12345678'. "Delivery document number
ls_header-werks = '1000'. "Plant
ls_header-lfart = 'ZSTO'. "Delivery type
* Fill the item data
ls_item-posnr = '000010'. "Item number
ls_item-matnr = 'ABC123'. "Material number
ls_item-werks = '1000'. "Plant
ls_item-lfimg = 10. "Delivery quantity
APPEND ls_item TO lt_item.
* Fill the package data
ls_pack-posnr = '000010'. "Item number
ls_pack-scan_st = 'X'. "Scan status
APPEND ls_pack TO lt_pack.
* Call the function module
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_STO'
EXPORTING
headerdata = ls_header
TABLES
itemdata = lt_item
packdata = lt_pack
return = lt_return.
* Check the return table for any errors
LOOP AT lt_return INTO ls_return.
IF ls_return-type = 'E' OR ls_return-type = 'A'.
MESSAGE ls_return-message TYPE 'E'.
ENDIF.
ENDLOOP.
```
在上面的示例中,我们填充了交货单的头部、行项目和包装信息,并使用函数模块BAPI_OUTB_DELIVERY_CREATE_STO创建了交货单。请注意,这只是一个简单的示例,实际应用中可能需要更多的数据和逻辑处理。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)