将相同数据集但具有不同筛选条件的两个 FetchXML 与关联实体一起合并

huangapple go评论71阅读模式
英文:

Combining 2 FetchXML With Same Dataset but different filters in Linked Entities

问题

以下是要翻译的内容:

FetchXML (1):

<fetch>
  <entity name="msdyn_workorder">
    <filter type="and">
      <condition attribute="statecode" operator="neq" value="1" /> //通用
      <condition attribute="wo_regionname" operator="in">@[$Project::IncludeRegion]</condition> //通用
    </filter>
    <link-entity name="msdyn_workorderproduct" from="msdyn_workorder" to="msdyn_workorderid" link-type="inner" alias="wop">
      <filter type="and">
        <condition attribute="statecode" operator="neq" value="1" /> //通用
        <condition attribute="tel_wo_unknownpart" operator="neq" value="1" /> //通用
        <condition attribute="tel_wo_installedqtysubmitstatus" operator="eq" value="100000200" /> //独特
      </filter>
      <link-entity name="uom" from="uomid" to="msdyn_unit" link-type="outer" alias="uom">
        <attribute name="name" />
      </link-entity>
      <link-entity name="tel_wo_partsubcategory" from="tel_wo_partsubcategoryid" to="tel_wo_subcategory" link-type="inner" alias="subcategory">
        <filter type="or">
          <condition attribute="tel_wo_code" operator="eq" value="001001" /> //通用
          <condition attribute="tel_wo_code" operator="eq" value="002002" /> //通用
        </filter>
        <link-entity name="tel_wo_partcategory" from="tel_wo_partcategoryid" to="tel_wo_partcategory" link-type="inner" alias="category">
          <filter type="or">
            <condition attribute="tel_wo_code" operator="eq" value="001" /> //通用
            <condition attribute="tel_wo_code" operator="eq" value="002" /> //通用
          </filter>
        </link-entity>
      </link-entity>
      <order attribute="msdyn_workorderproductid" />
    </link-entity>
    <link-entity name="tel_com_salesorderheader" from="tel_com_salesorderheaderid" to="tel_wo_primary_so" link-type="outer" alias="primaryso">
      <attribute name="tel_com_sales_document_no" />
    </link-entity>
    <link-entity name="territory" from="territoryid" to="wo_region" link-type="inner" alias="Region">
      <filter>
        <condition attribute="tel_com_sendcs0130afterinstalledqtychanged" operator="eq" value="1" /> //独特
      </filter>
    </link-entity>
  </entity>
</fetch>

FetchXML (2):

<fetch>
  <entity name="msdyn_workorder">
    <filter type="and">
      <condition attribute="msdyn_timeclosed" operator="not-null" /> //独特
      <condition attribute="tel_wo_trigger_installedparts_integration" operator="eq" value="1" /> //独特
      <condition attribute="statecode" operator="neq" value="1" /> //通用
      <condition attribute="wo_regionname" operator="in">@[$Project::IncludeRegion]</condition> //通用
    </filter>
    <link-entity name="msdyn_workorderproduct" from="msdyn_workorder" to="msdyn_workorderid" link-type="inner" alias="wop">
      <filter type="and">
        <condition attribute="statecode" operator="neq" value="1" /> //通用
        <condition attribute="tel_wo_unknownpart" operator="neq" value="1" /> //通用
      </filter>
      <link-entity name="uom" from="uomid" to="msdyn_unit" link-type="outer" alias="uom">
        <attribute name="name" />
      </link-entity>
      <link-entity name="tel_wo_partsubcategory" from="tel_wo_partsubcategoryid" to="tel_wo_subcategory" link-type="inner" alias="subcategory">
        <attribute name="tel_wo_code" />
        <filter type="or">
          <condition attribute="tel_wo_code" operator="eq" value="001001" /> //通用
          <condition attribute="tel_wo_code" operator="eq" value="001002" /> //通用
          <condition attribute="tel_wo_code" operator="eq" value="002001" /> //独特
          <condition attribute="tel_wo_code" operator="eq" value="002002" /> //独特
          <condition attribute="tel_wo_code" operator="eq" value="002003" /> //独特
          <condition attribute="tel_wo_code" operator="eq" value="004004" /> //独特
        </filter>
        <link-entity name="tel_wo_partcategory" from="tel_wo_partcategoryid" to="tel_wo_partcategory" link-type="inner" alias="category">
          <attribute name="tel_wo_code" />
          <filter type="or">
            <condition attribute="tel_wo_code" operator="eq" value="001" /> //通用
            <condition attribute="tel_wo_code" operator="eq" value="002" /> //通用
            <condition attribute="tel_wo_code" operator="eq" value="004" /> //独特
          </filter>
        </link-entity>
      </link-entity>
      <order attribute="msdyn_workorderproductid" />
    </link-entity>
    <link-entity name="tel_com_salesorderheader" from="tel_com_salesorderheaderid" to="tel_wo_primary_so" link-type="outer" alias="primaryso">
      <attribute name="tel_com_sales_document_no" />
    </link-entity>
    <link-entity name="territory" from="territoryid" to="wo_region" link-type="inner" alias="Region">
      <attribute name="tel_com_sendcs0130afterinstalledqtychanged" />
    </link-entity>
  </entity>
</fetch>
英文:

Is it possible to combine 2 FetchXMLs, which are fetching same data, but different filters in linked entities?

Below are 2 FetchXMLs that I am trying to merge to optimize performance. I marked each filter condition as //common or //unique to each query.

> FetchXML (1)

    &lt;fetch&gt;
      &lt;entity name=&quot;msdyn_workorder&quot; &gt;
        &lt;filter type=&quot;and&quot; &gt;
          &lt;condition attribute=&quot;statecode&quot; operator=&quot;neq&quot; value=&quot;1&quot; /&gt; //Common
          &lt;condition attribute=&quot;wo_regionname&quot; operator=&quot;in&quot; &gt;@[$Project::IncludeRegion]&lt;/condition&gt; //Common
        &lt;/filter&gt;
        &lt;link-entity name=&quot;msdyn_workorderproduct&quot; from=&quot;msdyn_workorder&quot; to=&quot;msdyn_workorderid&quot; link-type=&quot;inner&quot; alias=&quot;wop&quot; &gt;
          &lt;filter type=&quot;and&quot; &gt;
            &lt;condition attribute=&quot;statecode&quot; operator=&quot;neq&quot; value=&quot;1&quot; /&gt; //Common
            &lt;condition attribute=&quot;tel_wo_unknownpart&quot; operator=&quot;neq&quot; value=&quot;1&quot; /&gt; //Common
            &lt;condition attribute=&quot;tel_wo_installedqtysubmitstatus&quot; operator=&quot;eq&quot; value=&quot;100000200&quot; /&gt; //Unique
          &lt;/filter&gt;
          &lt;link-entity name=&quot;uom&quot; from=&quot;uomid&quot; to=&quot;msdyn_unit&quot; link-type=&quot;outer&quot; alias=&quot;uom&quot; &gt;
            &lt;attribute name=&quot;name&quot; /&gt;
          &lt;/link-entity&gt;
          &lt;link-entity name=&quot;tel_wo_partsubcategory&quot; from=&quot;tel_wo_partsubcategoryid&quot; to=&quot;tel_wo_subcategory&quot; link-type=&quot;inner&quot; alias=&quot;subcategory&quot; &gt;
            &lt;filter type=&quot;or&quot; &gt;
              &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;001001&quot; /&gt; //Common
              &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002002&quot; /&gt; //Common
            &lt;/filter&gt;
            &lt;link-entity name=&quot;tel_wo_partcategory&quot; from=&quot;tel_wo_partcategoryid&quot; to=&quot;tel_wo_partcategory&quot; link-type=&quot;inner&quot; alias=&quot;category&quot; &gt;
              &lt;filter type=&quot;or&quot; &gt;
                &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;001&quot; /&gt; //Common
                &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002&quot; /&gt; //Common
              &lt;/filter&gt;
            &lt;/link-entity&gt;
          &lt;/link-entity&gt;
          &lt;order attribute=&quot;msdyn_workorderproductid&quot; /&gt;
        &lt;/link-entity&gt;
        &lt;link-entity name=&quot;tel_com_salesorderheader&quot; from=&quot;tel_com_salesorderheaderid&quot; to=&quot;tel_wo_primary_so&quot; link-type=&quot;outer&quot; alias=&quot;primaryso&quot; &gt;
          &lt;attribute name=&quot;tel_com_sales_document_no&quot; /&gt;
        &lt;/link-entity&gt;
        &lt;link-entity name=&quot;territory&quot; from=&quot;territoryid&quot; to=&quot;wo_region&quot; link-type=&quot;inner&quot; alias=&quot;Region&quot; &gt;
          &lt;filter&gt;
            &lt;condition attribute=&quot;tel_com_sendcs0130afterinstalledqtychanged&quot; operator=&quot;eq&quot; value=&quot;1&quot; /&gt; //Unique
          &lt;/filter&gt;
        &lt;/link-entity&gt;
      &lt;/entity&gt;
    &lt;/fetch&gt;

> FetchXML (2)

    &lt;fetch&gt;
      &lt;entity name=&quot;msdyn_workorder&quot; &gt;
        &lt;filter type=&quot;and&quot; &gt;
          &lt;condition attribute=&quot;msdyn_timeclosed&quot; operator=&quot;not-null&quot; /&gt; //Unique
          &lt;condition attribute=&quot;tel_wo_trigger_installedparts_integration&quot; operator=&quot;eq&quot; value=&quot;1&quot; /&gt; //Unique
          &lt;condition attribute=&quot;statecode&quot; operator=&quot;neq&quot; value=&quot;1&quot; /&gt; //Common
          &lt;condition attribute=&quot;wo_regionname&quot; operator=&quot;in&quot; &gt;@[$Project::IncludeRegion]&lt;/condition&gt; //Common
        &lt;/filter&gt;
        &lt;link-entity name=&quot;msdyn_workorderproduct&quot; from=&quot;msdyn_workorder&quot; to=&quot;msdyn_workorderid&quot; link-type=&quot;inner&quot; alias=&quot;wop&quot; &gt;
          &lt;filter type=&quot;and&quot; &gt;
            &lt;condition attribute=&quot;statecode&quot; operator=&quot;neq&quot; value=&quot;1&quot; /&gt; //Common
            &lt;condition attribute=&quot;tel_wo_unknownpart&quot; operator=&quot;neq&quot; value=&quot;1&quot; /&gt; //Common
          &lt;/filter&gt;
          &lt;link-entity name=&quot;uom&quot; from=&quot;uomid&quot; to=&quot;msdyn_unit&quot; link-type=&quot;outer&quot; alias=&quot;uom&quot; &gt;
            &lt;attribute name=&quot;name&quot; /&gt;
          &lt;/link-entity&gt;
          &lt;link-entity name=&quot;tel_wo_partsubcategory&quot; from=&quot;tel_wo_partsubcategoryid&quot; to=&quot;tel_wo_subcategory&quot; link-type=&quot;inner&quot; alias=&quot;subcategory&quot; &gt;
            &lt;attribute name=&quot;tel_wo_code&quot; /&gt;
            &lt;filter type=&quot;or&quot; &gt;
              &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;001001&quot; /&gt; //Common
              &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;001002&quot; /&gt; //Common
              &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002001&quot; /&gt; //Unique
              &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002002&quot; /&gt; //Unique
              &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002003&quot; /&gt; //Unique
              &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;004004&quot; /&gt; //Unique
            &lt;/filter&gt;
            &lt;link-entity name=&quot;tel_wo_partcategory&quot; from=&quot;tel_wo_partcategoryid&quot; to=&quot;tel_wo_partcategory&quot; link-type=&quot;inner&quot; alias=&quot;category&quot; &gt;
              &lt;attribute name=&quot;tel_wo_code&quot; /&gt;
              &lt;filter type=&quot;or&quot; &gt;
                &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;001&quot; /&gt; //Common
                &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002&quot; /&gt; //Common
                &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;004&quot; /&gt; //Unique
              &lt;/filter&gt;
            &lt;/link-entity&gt;
          &lt;/link-entity&gt;
          &lt;order attribute=&quot;msdyn_workorderproductid&quot; /&gt;
        &lt;/link-entity&gt;
        &lt;link-entity name=&quot;tel_com_salesorderheader&quot; from=&quot;tel_com_salesorderheaderid&quot; to=&quot;tel_wo_primary_so&quot; link-type=&quot;outer&quot; alias=&quot;primaryso&quot; &gt;
          &lt;attribute name=&quot;tel_com_sales_document_no&quot; /&gt;
        &lt;/link-entity&gt;
        &lt;link-entity name=&quot;territory&quot; from=&quot;territoryid&quot; to=&quot;wo_region&quot; link-type=&quot;inner&quot; alias=&quot;Region&quot; &gt;
          &lt;attribute name=&quot;tel_com_sendcs0130afterinstalledqtychanged&quot; /&gt;
        &lt;/link-entity&gt;
      &lt;/entity&gt;
    &lt;/fetch&gt;

答案1

得分: 0

以下是翻译好的部分:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;fetch&gt;
    &lt;entity name=&quot;msdyn_workorder&quot;&gt;
        &lt;attribute name=&quot;msdyn_timeclosed&quot; /&gt;
        &lt;attribute name=&quot;tel_wo_trigger_installedparts_integration&quot; /&gt;
        &lt;filter type=&quot;and&quot;&gt;
            &lt;condition attribute=&quot;statecode&quot; operator=&quot;neq&quot; value=&quot;1&quot; /&gt;
            &lt;condition attribute=&quot;wo_regionname&quot; operator=&quot;in&quot; /&gt;
        &lt;/filter&gt;
        &lt;link-entity name=&quot;msdyn_workorderproduct&quot; from=&quot;msdyn_workorder&quot; to=&quot;msdyn_workorderid&quot; link-type=&quot;inner&quot; alias=&quot;wop&quot;&gt;
            &lt;attribute name=&quot;tel_wo_installedqtysubmitstatus&quot; /&gt;
            &lt;filter type=&quot;and&quot;&gt;
                &lt;condition attribute=&quot;statecode&quot; operator=&quot;neq&quot; value=&quot;1&quot; /&gt;
                &lt;condition attribute=&quot;tel_wo_unknownpart&quot; operator=&quot;neq&quot; value=&quot;1&quot; /&gt;
            &lt;/filter&gt;
            &lt;link-entity name=&quot;uom&quot; from=&quot;uomid&quot; to=&quot;msdyn_unit&quot; link-type=&quot;outer&quot; alias=&quot;uom&quot;&gt;
                &lt;attribute name=&quot;name&quot; /&gt;
            &lt;/link-entity&gt;
            &lt;link-entity name=&quot;tel_wo_partsubcategory&quot; from=&quot;tel_wo_partsubcategoryid&quot; to=&quot;tel_wo_subcategory&quot; link-type=&quot;inner&quot; alias=&quot;subcategory&quot;&gt;
                &lt;attribute name=&quot;tel_wo_code&quot; /&gt;
                &lt;filter type=&quot;or&quot;&gt;
                    &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;001001&quot; /&gt;
                    &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;001002&quot; /&gt;
                    &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002001&quot; /&gt;
                    &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002002&quot; /&gt;
                    &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002003&quot; /&gt;
                    &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;004004&quot; /&gt;
                &lt;/filter&gt;
                &lt;link-entity name=&quot;tel_wo_partcategory&quot; from=&quot;tel_wo_partcategoryid&quot; to=&quot;tel_wo_partcategory&quot; link-type=&quot;inner&quot; alias=&quot;category&quot;&gt;
                    &lt;attribute name=&quot;tel_wo_code&quot; /&gt;
                    &lt;filter type=&quot;or&quot;&gt;
                        &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;001&quot; /&gt;
                        &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002&quot; /&gt;
                        &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;004&quot; /&gt;
                    &lt;/filter&gt;
                &lt;/link-entity&gt;
            &lt;/link-entity&gt;
            &lt;order attribute=&quot;msdyn_workorderproductid&quot; /&gt;
        &lt;/link-entity&gt;
        &lt;link-entity name=&quot;tel_com_salesorderheader&quot; from=&quot;tel_com_salesorderheaderid&quot; to=&quot;tel_wo_primary_so&quot; link-type=&quot;outer&quot; alias=&quot;primaryso&quot;&gt;
            &lt;attribute name=&quot;tel_com_sales_document_no&quot; /&gt;
        &lt;/link-entity&gt;
        &lt;link-entity name=&quot;territory&quot; from=&quot;territoryid&quot; to=&quot;wo_region&quot; link-type=&quot;inner&quot; alias=&quot;Region&quot;&gt;
            &lt;attribute name=&quot;tel_com_sendcs0130afterinstalledqtychanged&quot; /&gt;
        &lt;/link-entity&gt;
    &lt;/entity&gt;
&lt;/fetch&gt;
英文:

The best way to converge both fetchxml is below. Basically I did following things

  1. Removed all unique conditions and added attributes for every condition. Once you retrieve you can filter it later in the entity collection

  2. Combined all condition attributes in filter or condition together, this should again be filtered in entity collection via code

    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
    &lt;fetch&gt;
        &lt;entity name=&quot;msdyn_workorder&quot;&gt;
            &lt;attribute name=&quot;msdyn_timeclosed&quot; /&gt;
            &lt;attribute name=&quot;tel_wo_trigger_installedparts_integration&quot; /&gt;
            &lt;filter type=&quot;and&quot;&gt;
                &lt;condition attribute=&quot;statecode&quot; operator=&quot;neq&quot; value=&quot;1&quot; /&gt;
                &lt;condition attribute=&quot;wo_regionname&quot; operator=&quot;in&quot; /&gt;
            &lt;/filter&gt;
            &lt;link-entity name=&quot;msdyn_workorderproduct&quot; from=&quot;msdyn_workorder&quot; to=&quot;msdyn_workorderid&quot; link-type=&quot;inner&quot; alias=&quot;wop&quot;&gt;
                &lt;attribute name=&quot;tel_wo_installedqtysubmitstatus&quot; /&gt;
                &lt;filter type=&quot;and&quot;&gt;
                    &lt;condition attribute=&quot;statecode&quot; operator=&quot;neq&quot; value=&quot;1&quot; /&gt;
                    &lt;condition attribute=&quot;tel_wo_unknownpart&quot; operator=&quot;neq&quot; value=&quot;1&quot; /&gt;
                &lt;/filter&gt;
                &lt;link-entity name=&quot;uom&quot; from=&quot;uomid&quot; to=&quot;msdyn_unit&quot; link-type=&quot;outer&quot; alias=&quot;uom&quot;&gt;
                    &lt;attribute name=&quot;name&quot; /&gt;
                &lt;/link-entity&gt;
                &lt;link-entity name=&quot;tel_wo_partsubcategory&quot; from=&quot;tel_wo_partsubcategoryid&quot; to=&quot;tel_wo_subcategory&quot; link-type=&quot;inner&quot; alias=&quot;subcategory&quot;&gt;
                    &lt;attribute name=&quot;tel_wo_code&quot; /&gt;
                    &lt;filter type=&quot;or&quot;&gt;
                        &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;001001&quot; /&gt;
                        &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;001002&quot; /&gt;
                        &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002001&quot; /&gt;
                        &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002002&quot; /&gt;
                        &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002003&quot; /&gt;
                        &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;004004&quot; /&gt;
                    &lt;/filter&gt;
                    &lt;link-entity name=&quot;tel_wo_partcategory&quot; from=&quot;tel_wo_partcategoryid&quot; to=&quot;tel_wo_partcategory&quot; link-type=&quot;inner&quot; alias=&quot;category&quot;&gt;
                        &lt;attribute name=&quot;tel_wo_code&quot; /&gt;
                        &lt;filter type=&quot;or&quot;&gt;
                            &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;001&quot; /&gt;
                            &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;002&quot; /&gt;
                            &lt;condition attribute=&quot;tel_wo_code&quot; operator=&quot;eq&quot; value=&quot;004&quot; /&gt;
                        &lt;/filter&gt;
                    &lt;/link-entity&gt;
                &lt;/link-entity&gt;
                &lt;order attribute=&quot;msdyn_workorderproductid&quot; /&gt;
            &lt;/link-entity&gt;
            &lt;link-entity name=&quot;tel_com_salesorderheader&quot; from=&quot;tel_com_salesorderheaderid&quot; to=&quot;tel_wo_primary_so&quot; link-type=&quot;outer&quot; alias=&quot;primaryso&quot;&gt;
                &lt;attribute name=&quot;tel_com_sales_document_no&quot; /&gt;
            &lt;/link-entity&gt;
            &lt;link-entity name=&quot;territory&quot; from=&quot;territoryid&quot; to=&quot;wo_region&quot; link-type=&quot;inner&quot; alias=&quot;Region&quot;&gt;
                &lt;attribute name=&quot;tel_com_sendcs0130afterinstalledqtychanged&quot; /&gt;
            &lt;/link-entity&gt;
        &lt;/entity&gt;
    &lt;/fetch&gt;

答案2

得分: 0

合并这些FetchXML查询需要类似于SQL UNION的结构,不幸的是,FetchXML不支持此功能。

有两个选项:

  1. 保持这些查询分开。
  2. 创建一个查询,选择比实际需要的行稍多,并在之后筛选结果。
英文:

Merging these FetchXML queries would require an SQL UNION like construction and unfortunately this is not supported by FetchXML.

There are two options:

  1. Keep these queries separate.
  2. Create one query selecting slightly more rows than actually needed and filter the results afterwards.

huangapple
  • 本文由 发表于 2023年6月16日 12:11:29
  • 转载请务必保留本文链接:https://go.coder-hub.com/76486908.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定