西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

CK表達(dá)式編輯器例子

  • CK表達(dá)式編輯器例子
  • 軟件大小:105KB
  • 更新時間:2013-12-21 16:25
  • 軟件語言:中文
  • 軟件廠商:
  • 軟件類別:國產(chǎn)軟件 / 免費(fèi)軟件 / 編程輔助
  • 軟件等級:3級
  • 應(yīng)用平臺:Win7
  • 官方網(wǎng)站:http://www.cnblogs.com/jingle/p/3485089.
  • 應(yīng)用備案:
好評:50%
壞評:50%

軟件介紹

CK表達(dá)式編輯器就是嘗試解決需求變化而導(dǎo)致的程序頻繁改變問題的。為了增強(qiáng)編輯器的功能,而使用了.Net C# 4.0來做編譯器,對類型控制也非常嚴(yán)格,沒有C#基礎(chǔ),恐怕是難以操作這個編輯器。

表達(dá)表編輯界面說明:

表達(dá)式編輯區(qū)

可以對部分方法和屬性進(jìn)行顏色區(qū)分,對有一定編程經(jīng)驗(yàn)的朋友有一定幫助。

腳本

如果勾選了腳本,則表達(dá)式編輯區(qū)的內(nèi)容一定要是一個方法,即一定要有return,每一行都有;號。

類別

包含了默認(rèn)和用戶傳入的方法的類別。

方法

所有可以高亮顯示的方法,不過,如果用戶傳入了新的命名空間,即使不是高亮顯示的方法也是可用的。

傳參區(qū)

可以查看開發(fā)員傳入的參數(shù),如果在字典區(qū),可以雙擊參數(shù)名,在表達(dá)式編輯區(qū)顯示。

表格定義

如果開發(fā)員傳入了DataTable對象,由表達(dá)式編輯區(qū)那里可以使用List來引用該DataTable默認(rèn)對應(yīng)的實(shí)體,編輯器會自動生成新的類型。

方法說明區(qū)

詳細(xì)介紹各個方法的使用語法。

編譯生成類

這是一個給C#開發(fā)員查看的選項(xiàng)卡,有C#開發(fā)經(jīng)驗(yàn)的朋友會非常容易看明白生成的內(nèi)容,從而調(diào)整自己的表達(dá)式,不過沒C#開發(fā)經(jīng)驗(yàn)的朋友還是不要看為好。

什么是表達(dá)式編輯器?

這個工具允許技術(shù)員傳入一系列的參數(shù),由用戶編輯一個公式返回一種特定的結(jié)果。之所以需要使用表達(dá)式編輯器,就是因?yàn)橛脩艟庉嫷墓浇?jīng)常變,技術(shù)員無法想出一辦法來適應(yīng)用戶的需求。簡單說,編輯器的作用與Excel的公式是相似的。

這個工具在國外是比較成熟的,如DevExpress就有相關(guān)的公式編輯器。如下圖所示

還有做得像個編程工具一樣的:

表達(dá)式編輯器中的編輯文本,是需要一種解釋邏輯才能解釋出來的,常見的辦法就像Excel那樣擁有獨(dú)立的解釋引擎,但也有直接使用某種語言的編譯器進(jìn)行解釋,如Javascript,VB等都有相當(dāng)成熟的實(shí)現(xiàn)。

什么時候使用表達(dá)式編輯器:

首先,該工具一般是開發(fā)員,實(shí)施員和用戶使用的,目標(biāo)是減少程序的變化,但能適應(yīng)客戶的需要。下面舉例幾個常見的例子:

1,  商品金額計(jì)算

隨著業(yè)務(wù)的發(fā)展,客戶的要求不同(筆者只舉大家可以簡單理解的例子,過于簡單不要介意)

Level1:單價*數(shù)量,但如果開發(fā)員這樣操作的話,那就可能要不斷改程序了。

客戶的業(yè)務(wù)發(fā)展了,要增加打折:

Level2:單價*數(shù)量*打折,但是大家都知道這可能不夠。

客戶接著發(fā)展了會員系統(tǒng):

Level3:單價*數(shù)量*打折*(會員折扣),這個方案也許會好一點(diǎn),但似乎還不行。

客戶發(fā)展了外國商品:

Level4:(總價-稅率-運(yùn)費(fèi))/貨品數(shù)*數(shù)量*打折*(會員折扣)。那又怎樣呢?

…………………

作為軟件編寫者,可以不斷修改自己的程序,但每一次修改都面臨大量的測試,測試后也可能會出現(xiàn)更多的BUG,客戶也會覺得很煩。這時客戶就會發(fā)飆罵人:“能不能動動腦子,像人家Excel那樣配置好不好?”做程序員的不敢得罪無理的客戶,那只有苦逼地接受。那能不能讓這個事情簡單一點(diǎn)呢?就算不能完全解決問題,也起碼讓測試好做一點(diǎn)呢?

2,  工資計(jì)算

隨著業(yè)務(wù)發(fā)展,客戶的要求也是不同的。

Level1:工資等級決定工資,如 C3=2000元。

Level2:工作年限*100 + 等級工資 – 社保。

Level3:工作年限*100 + 等級工資 + (各項(xiàng)目獎金) – 社保五金。

Level4:工作年限*100 + 等級工資 + (各項(xiàng)目獎金) – 社保五金 + 高溫/粉塵/空調(diào)費(fèi)補(bǔ)貼。

Level5:工作年限*100 + 等級工資 + (各項(xiàng)目獎金) – 社保五金 + 高溫/粉塵/空調(diào)費(fèi)補(bǔ)貼 + 崗位補(bǔ)貼。

………………………….

同樣的問題,你會覺得客戶都是“變態(tài)”的。但客戶覺得軟件連這些都想不到,真是垃圾。那有沒有辦法讓這些東西變得簡單一點(diǎn)。

編譯生成類

這是一個給C#開發(fā)員查看的選項(xiàng)卡,有C#開發(fā)經(jīng)驗(yàn)的朋友會非常容易看明白生成的內(nèi)容,從而調(diào)整自己的表達(dá)式,不過沒C#開發(fā)經(jīng)驗(yàn)的朋友還是不要看為好。

常用操作

1.常規(guī)類型的四則運(yùn)算


點(diǎn)擊設(shè)計(jì)

設(shè)計(jì)完成之后,點(diǎn)保存,返回前一個界面,隨意修改界面中的參數(shù),再點(diǎn)計(jì)算就可以計(jì)算出結(jié)果了。

2.常規(guī)類型的.Net語法運(yùn)算


原理相對簡單,不作更多說明。

3.List,DataTable的操作運(yùn)算


List,DataTable是.Net中常見的集合類型。

而要操作這兩種集合,就要對C#的集合編輯有一定的了解了,如

Sum(Table,r=>CTypeDecimal(r[“單價”])*CTypeDecimal(r[“數(shù)量”]))

其中Sum,CTypeDecimal都是編輯器自帶的C#方法,而Lambda表達(dá)式的寫法,已經(jīng)算是C#對集合操作中比較簡單的寫法了。

上圖中,List是默認(rèn)從DataTable轉(zhuǎn)換過來的對象集合。

4.任意類型的操作運(yùn)算

為了達(dá)到編輯器最大的功能,可以支持任意的類型進(jìn)行操作,如下圖:


上表中,“列表.DataSource”中的“列表”是一個控件的Name,這里就只有學(xué)過.Net WindowsForm才能明白寫什么了。

高級操作

1. 腳本與單一返回

控件不只是簡單返回一個值,還可以寫一堆的腳本。


也就是說你可以在腳本上對數(shù)據(jù)集進(jìn)行操作。

不過,寫腳本的話,你必須非常清楚C#的語法,不然也沒辦法做到的。


2.引入新命名空間

編輯器還可以無限擴(kuò)展功能,可以引入命名空間,如下圖,System.IO是原來沒有的功能,但可以通過編輯引入。并實(shí)現(xiàn)IO操作。


3.引入自定義方法

編輯器甚至可以引入你自己寫的一個方法,可以是string 格式,還可以是Delegate對象形式的,也就是什么自己寫的方法都可以。

不過為了讓開發(fā)自己寫的方法與編輯器的后續(xù)方法不沖突,強(qiáng)制要求用戶為方法名或?qū)傩缘拿Q增加下劃線_。


增加自定義方法的辦法:


請注意到:Function = new Func<string,string,string>(this._SayHelloWorld)這個寫法,這就是直接使用用戶自己定義的方法。


軟件標(biāo)簽: 表達(dá)式

需要.NET4.0支持。

其他版本下載

發(fā)表評論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評論 > 字?jǐn)?shù): 0/500

TOP
軟件下載