乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      UiPath

       shouzhuw 2021-11-23

      其實(shí)UiPath自帶的Filter DataTable活動(dòng)可以滿足多數(shù)情況下的數(shù)據(jù)篩選,如果你感興趣的話也可以學(xué)習(xí)一下通過DataTable的Select()方法實(shí)現(xiàn)。

      p.s.貌似Select()方法可能對(duì)RE Framework的考試有點(diǎn)用處~ 

      先簡單介紹一下DataTable的Select()方法,不知道DataTable是啥的小伙伴請重修UiPath Level 1的相關(guān)課程。

      DataTable.Select()方法

      根據(jù)參數(shù)指定的篩選條件,對(duì)DataTable的數(shù)據(jù)行進(jìn)行篩選,返回符合條件的所有行。

      • 返回值的類型是一個(gè)DataRow的數(shù)組(顯示在UiPath里就是DataRow[])。

      語法:Select(filterExpression[, sort])

      參數(shù):1) filterExpression:必選參數(shù),用來表示篩選條件,類型是字符串(String)。

         2) sort:可選參數(shù),用來指定返回結(jié)果的排序方式,類型也是字符串。sort不太常用這里就不介紹了,感興趣的小伙伴可以自己查~


      我們來看一個(gè)實(shí)例。假如有一個(gè)Excel表格如下(第一列訂單編號(hào),第二列商品名稱,第三列數(shù)量)。

      我們的需求是用UiPath找出同時(shí)符合下列條件的行:

      • Order ID = 11003
      • Quantity >= 50
      • Product Name = DLL1001或ASL1003

      開始做!首先是前置工作。

      • 用Read Range活動(dòng)讀取Excel的數(shù)據(jù),存放在一個(gè)DataTable變量里,這個(gè)變量叫order_Dt。
      • 還需要?jiǎng)?chuàng)建一個(gè)DataRow的數(shù)組用來存放Select()的結(jié)果,這個(gè)變量叫result_Rows。

      現(xiàn)在我們使用Select()篩選。拖一個(gè)Assign活動(dòng),左邊填入剛才創(chuàng)建的變量result_Rows,右邊的寫法如下:

      order_Dt.Select('[Order ID] = '11003' AND [Quantity] >= 50 AND [Product Name] IN('DLL1001', 'ASL1003')')

      我們一部分一部分看:

      • order_Dt.Select():要篩選的DataTable即order_Dt,寫在Select()前面,中間用點(diǎn)連接。
      • order_Dt.Select('......'):Select()括號(hào)里面的整個(gè)條件都需要用雙引號(hào)括起來,因?yàn)閰?shù)filterExpression是個(gè)字符串,引用字符串必須用雙引號(hào)。
      • [Order ID] = '11003':對(duì)于filterExpression參數(shù)里的條件表達(dá)式,列名要用中括號(hào)括起,值如果是字符串的話用單引號(hào)括起。
      • [Order ID] = '11003' AND [Quantity] >= 50:多個(gè)條件表達(dá)式可以用邏輯運(yùn)算符AND、OR連接。
      • [Product Name] IN('DLL1001', 'ASL1003'):如果條件為一個(gè)列表,可以用IN關(guān)鍵字表示,即[col name] IN(Value1, Value2, Value3...)。

      以上。 


      有時(shí)候可能需要在篩選條件里引入一些變量,讓篩選變成動(dòng)態(tài)的,這個(gè)Select()也可以實(shí)現(xiàn)。 

      我們來看看怎么把“Product Name = DLL1001或ASL1003”這個(gè)條件用變量表示。

      • 首先創(chuàng)建一個(gè)字符串?dāng)?shù)組String[],變量名為arr_ProdName。用Assign賦值,arr_ProdName = {''DLL1001'', ''ASL1003''}。
        • 注意:字符串用雙引號(hào)括起來,雙引號(hào)內(nèi)部還有一層單引號(hào),[雙引號(hào)][單引號(hào)]字符串[單引號(hào)][雙引號(hào)]。
        • 這里的單引號(hào)是字符串的一部分,因?yàn)镾elect()的條件表達(dá)式里,字符串需要用單引號(hào)括起來。如果是數(shù)值的話就不需要單引號(hào)和雙引號(hào)了。
      • 然后再創(chuàng)建一個(gè)字符串變量(不是數(shù)組),變量名為str_Criteria。用Assign賦值str_Criteria = String.Join(',', arr_ProdName)
        • String.Join()方法可以把一個(gè)數(shù)組的所有元素連接成一個(gè)字符串,它的第一個(gè)參數(shù)是連接符(注意要用雙引號(hào)括起來),第二個(gè)參數(shù)是要連接的數(shù)組。
        • 此例中連接符是逗號(hào),連接的數(shù)組是arr_ProdName,這個(gè)數(shù)組里有兩個(gè)元素,'DLL1001'和'ASL1003'(單引號(hào)不是為了引用字符串加上的,單引號(hào)本身就是字符串的一部分)。
        • 最后的連接結(jié)果就是'DLL1001','ASL1003'這樣一個(gè)字符串。實(shí)際上,上面這些操作都是為了獲得符合Select()要求的條件格式。
      • 最后的Select()的寫法改為:order_Dt.Select('[Order ID] = '11003' AND [Quantity] >= 20 OR [Product Name] IN (' + str_Criteria + ')')
        • 就和平時(shí)用變量替換一部分字符串的寫法是一樣一樣的,用+號(hào)連接左右兩邊的字符串。

      這就是Select()方法的一些基本用法了,看上去麻煩可能是因?yàn)槲覍懙奶_嗦,用個(gè)一兩遍你就會(huì)了。

      還有最后一個(gè)問題,最后得到了一個(gè)DataRow[],怎么去用它呢?

      你當(dāng)然可以像處理其他數(shù)組一樣去循環(huán)這個(gè)DataRow數(shù)組,但如果你想把它變成DataTable可以嗎?

      可以的。

      假如我們要把篩選后的DataRow數(shù)組變量result_Rows賦值給一個(gè)DataTable變量result_Dt。

      使用Assign賦值,result_Dt = result_Rows.CopyToDataTable。

      • 務(wù)必在賦值前加一個(gè)判斷,result_Rows.Count > 0。因?yàn)槿绻詈蟮暮Y選結(jié)果為空,也就是數(shù)組里一個(gè)row也沒有,此時(shí)賦值給DataTable變量時(shí)會(huì)拋出異常。
      • 如果你的Assign出現(xiàn)了編譯錯(cuò)誤,就是Assign活動(dòng)的右邊出現(xiàn)了藍(lán)色小嘆號(hào),錯(cuò)誤提示大意是說你不能對(duì)一個(gè)DataRow的Array使用CopyToDatatable方法。此時(shí)你可能需要手動(dòng)修改一下你的xaml文件,以解決這個(gè)問題。
        • 關(guān)閉UiPath,找到你剛才編輯的那個(gè)程序,它是個(gè)后綴為.xaml的文件。
        • 右鍵這個(gè)xaml文件,用記事本打開它,也可以用Notepad++,VS Code之類的代碼編輯器打開。
        • 打開后就是這個(gè)程序的源代碼,你需要找到長下面這個(gè)樣子的部分,并加上一句:<AssemblyReference>System.Data.DataSetExtensions</AssemblyReference>
        • 保存文件,退出。重新打開,應(yīng)該就不會(huì)存在那個(gè)編譯錯(cuò)誤了。

      以上內(nèi)容供大家一起學(xué)習(xí)研究。我只是個(gè)小菜雞,如果有寫的不對(duì)的地方,歡迎大家友好指正。

      相關(guān)內(nèi)容出處

      http://www./2019/05/uipath-how-to-filter-multiple-dynamic.html

      https://forum./t/datatable-select/22419

      https://forum./t/how-to-filter-data-table-with-variable/29539

      https://forum./t/how-to-convert-a-system-data-datarow-in-a-datatable/19946

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請遵守用戶 評(píng)論公約

        類似文章 更多