国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

使用CKRule實(shí)現(xiàn)PVC配方計(jì)算

2019-11-17 03:12:13
字體:
供稿:網(wǎng)友
使用CKRule實(shí)現(xiàn)PVC配方計(jì)算

1,PVC計(jì)算的基本原理

配方員設(shè)計(jì)好配方,再進(jìn)行抽象提煉,會(huì)出現(xiàn)相對(duì)于軟件而言可以理解的邏輯,如屬性的概念,對(duì)廠企生成的PVC產(chǎn)品而言,一般都有產(chǎn)品大類名稱,花紋,顏色,長(zhǎng)度,寬度,厚度等概念,這對(duì)于軟件而言,就是一個(gè)對(duì)象,該對(duì)象是描述訂單的對(duì)象。而配方計(jì)算出來的結(jié)果,如原料名稱,質(zhì)量比分量,重量等信息就是物料清單對(duì)象。

配方計(jì)算的過程就是這樣的一個(gè)過程。

設(shè)計(jì)圖

結(jié)構(gòu)化標(biāo)準(zhǔn)配方,就是教科書上面的知識(shí),如

PVC

100

DINP

40

Caco3

10

HSt

1

Sb2O3

4

這此是基礎(chǔ)數(shù)據(jù),生產(chǎn)某產(chǎn)品,并且油份在一定的區(qū)間就要調(diào)用這個(gè)配方。

而半結(jié)構(gòu)化表格配方規(guī)則,一般是廠企特有的內(nèi)容,設(shè)置時(shí)可以自定義一個(gè)屬性進(jìn)行歸納總結(jié),如使用特征碼來表達(dá)增加某些原料,如增加透明度時(shí),執(zhí)行這個(gè)表格:

特征碼

增透明劑編碼

份量

B1

TM-001

1

B2

TM-002

0.5

B3

TM-003

1.5

表示,如果當(dāng)前的配方對(duì)象的特征為B2時(shí),就要在物料集合中增加透明劑TM-002,份量為1。而特征碼和增透明劑的編碼都是廠企按一定的規(guī)則進(jìn)行編寫的。

非結(jié)構(gòu)化表達(dá)式是指,某些配方確實(shí)不好表達(dá)時(shí)使用,如產(chǎn)品名第2個(gè)字符為X,則增加DINP份量2。也就是針對(duì)表達(dá)內(nèi)容非常隨便的自然語言的處理。

2,PVC計(jì)算三大問題

PVC計(jì)算過程中遇到了結(jié)構(gòu)化標(biāo)準(zhǔn)配方、半結(jié)構(gòu)化表格規(guī)范及非結(jié)構(gòu)化表達(dá)式規(guī)則三個(gè)類型的問題。下面使用最簡(jiǎn)單的例子表達(dá)

結(jié)構(gòu)化標(biāo)準(zhǔn)配方

PVC

100

DINP

40

Caco3

10

HSt

1

Sb2O3

4

半結(jié)構(gòu)化表格配方范

特征碼

增透明劑編碼

份量

B1

TM-001

1

B2

TM-002

0.5

B3

TM-003

1.5

非結(jié)構(gòu)化表達(dá)式規(guī)則

產(chǎn)品名第2個(gè)字符為X,則增加DINP份量2。

3,CKRule界面設(shè)置

物料清單會(huì)被抽象出來成為一個(gè)對(duì)象。該對(duì)象有名稱,份量,重量等內(nèi)容

對(duì)象定義

在傳入傳出對(duì)象上,則定義了配方計(jì)算對(duì)象主要的屬性,如產(chǎn)品名,訂單號(hào),特性,顏色,油份,花紋,長(zhǎng)度,寬度,厚度,密度,重量等等。

傳入傳出

半結(jié)構(gòu)化表格規(guī)范,使用了CKRule中的決策表邏輯,目前只增加了一個(gè)增透劑使用規(guī)范,規(guī)范中標(biāo)明,如果一定的特征碼就要增加增透劑一定數(shù)據(jù)。

決策表設(shè)置

在處理非結(jié)構(gòu)化規(guī)則時(shí),使用了CKRule的客戶規(guī)則池功能,定義了多個(gè)關(guān)鍵字,并針對(duì)規(guī)則編寫過程中的實(shí)際情況增加了兩個(gè)方法,取第N個(gè)字符和增加份量。

客戶規(guī)則池

客戶規(guī)則池相關(guān)代碼

取第N個(gè)字符

var_result = "";

if(!string.IsNullOrEmpty(字符串)){

if(字符串.Length>索引&&索引> -1){

_result = 字符串.Substring(索引,1);

}

}

return_result;

增加份量

AddRow(物料集合,x=>{

x.名稱 = 物料名稱;

x.份量 = 份量;

});

客戶規(guī)則池方法定義

最后就是在總規(guī)則中初始化結(jié)構(gòu)化,半結(jié)構(gòu)化,非結(jié)構(gòu)化數(shù)據(jù)。并執(zhí)行決策表和規(guī)則池。

主規(guī)則

主規(guī)則相關(guān)代碼

初始化結(jié)構(gòu)化標(biāo)準(zhǔn)數(shù)據(jù)

var_table =LookDB(@"

selectNameas名稱,MPercentas份量,0as重量fromMatBase ainnerjoinFml bona.BaseId=b.Idwhereb.PRoductName ='" +產(chǎn)品名+ "'");

Fill(物料集合,_table);

初始化半結(jié)構(gòu)化表格數(shù)據(jù)

var_table =LookDB(@"select TableName,Prop1,Prop2,Prop3,Prop4,Prop5,Prop6 from TableSet");

InitTable(_table);

初始化非結(jié)構(gòu)化規(guī)則表

var_table =LookDB(@"select

''asid,

sindexas""index"",

''asreturnType,

'Get' + nameaspropname,

1ascodestyle,

ifcode,

0asthencodeisscript,

thencode,

0aspriority,

''asexecstep

frompoolset

");

InitPool(_table);

執(zhí)行決策表和規(guī)則池

ExeTable();

ExePool();

4,業(yè)務(wù)系統(tǒng)中的抽象

上一節(jié)已經(jīng)介紹了PVC配方計(jì)算在CKRule上面的定義,而CKRule不是直接面對(duì)終端客戶的,業(yè)務(wù)系統(tǒng)才是面對(duì)客戶的,也就是說客戶不會(huì)直接操作CKRule,為了業(yè)務(wù)系統(tǒng)界面友好性和設(shè)置的需要,定義業(yè)務(wù)系統(tǒng)中的對(duì)象,數(shù)據(jù)表和公式編輯界面顯得相當(dāng)?shù)谋匾恕?/p>

下面將介紹對(duì)象的定義

配方對(duì)象定義

[Serializable]

public class FmlCond

{

public string Id { get; set; }

public string ProductName { get; set; }

public string OrderNo { get; set; }

public string Color { get; set; }

public string Spe { get; set; }

public double Oil { get; set; }

public string Flower { get; set; }

public double Length { get; set; }

public double Width { get; set; }

public double Depth { get; set; }

public double Density { get; set; }

public double Weight { get; set; }

private List<物料定義> _物料集合= new List<物料定義>();

public List<物料定義> MatList

{

get { return _物料集合; }

set { _物料集合= value; }

}

}

[Serializable]

public class物料定義

{

public string Name { get; set; }

public double MPercent { get; set; }

public double Weight { get; set; }

}

擴(kuò)展說明:配方計(jì)算也許不僅僅有這些內(nèi)容,還可能有更多的,如生產(chǎn)班組,部門,班長(zhǎng),時(shí)間,壓紋層數(shù),如果層數(shù)變化那厚度也會(huì)變化,而這些的定義都必須是業(yè)務(wù)系統(tǒng)的開發(fā)員進(jìn)行的,也就是說,計(jì)算的過程可能是多變的,不簡(jiǎn)單的是上面的這樣。但只要?jiǎng)澢宄鞒虉D,做好調(diào)用設(shè)計(jì)和對(duì)象設(shè)計(jì),這些都不是問題,CKRule還沒有集成流程功能,這可能會(huì)有一些的影響,但做常規(guī)的規(guī)則計(jì)算已經(jīng)很充分了。關(guān)鍵還是看模型者的設(shè)計(jì)。

數(shù)據(jù)表設(shè)計(jì)

決策表數(shù)據(jù)設(shè)計(jì),事實(shí)上,相對(duì)通用的設(shè)置也許是最合理的,下面的設(shè)計(jì)是很簡(jiǎn)單的,但這樣設(shè)計(jì)即使決策表的初始化非常的方法。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 金华市| 彰化市| 安阳市| 竹北市| 榆树市| 格尔木市| 抚顺县| 海淀区| 云梦县| 油尖旺区| 正阳县| 富源县| 清河县| 井陉县| 彰化市| 夏邑县| 蕉岭县| 平山县| 长垣县| 滁州市| 尚义县| 灵川县| 柯坪县| 辽源市| 隆回县| 天津市| 沙湾县| 体育| 聂荣县| 甘德县| 农安县| 汉沽区| 电白县| 海门市| 游戏| 姜堰市| 四会市| 驻马店市| 平塘县| 江孜县| 罗平县|