当前,ckrule的IDE和业务管理系统都是由winform开发的,规则编辑器也只提供了winform的版本,所以很多的朋友都提出意见,要有wpf的版本。wpf的界面设置和管理都更加的方便。

事实上可以在wpf中使用ckrule规则编辑器的,使用的方法如下:
 
    1,在wpf项目中引入windowsform集成的相关dll。
    包含2个dll,分别是System.Windows.Forms.dll和WindowsFormsIntegration.dll
 
    2,引入WindowsFormsHost控件
    为了更方便控制界面部署,可以在控件中增加windowsform的panel。
<Window x:Class="RuleEditorWpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
        xmlns:wf ="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
        Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
    <Grid>
        <WindowsFormsHost Height="350" HorizontalAlignment="Left" Margin="5,5,0,0" Name="windowsFormsHost1" VerticalAlignment="Top" Width="486">
            <wf:Panel x:Name="pnlMain" Dock="Fill" Width="486" Height="350" />
        </WindowsFormsHost>
    </Grid>
</Window>
 
    3,加载ckrule规则编辑器控件
    把规则文件放到ckruleAdmin目录下,并在程序中显式调用。
    public partial class MainWindow : Window
    {
        public const string RuleInstName = "人力-工资计算-口语公式";
        RuleEditorFacade _editorFacade = new RuleEditorFacade();
 
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            var _curPackage = new RuleFacade().GetPkgInst(RuleInstName);
            if (_curPackage == null)
            {
                MessageBox.Show("加载规则包失败");
                return;
            }
            var _ctrl = _editorFacade.GetEditor(_curPackage);
            _ctrl.Dock = System.Windows.Forms.DockStyle.Fill;
            pnlMain.Controls.Add(_ctrl);
            var _propset = new CustUnstructPropDef();
            _propset.CodeStyle = CodeStyleDef.IfElseStyle;
            _editorFacade.LoadData(_propset);
        }
    }
 
    4,界面演示
    可以看到wpf的界面显示出规则编辑器。
 
    综述
 
    ckrule都是使用winform技术编写的,很多朋友都对界面系统提出了宝贵的意见,ckrule技术团队也深知界面优化的重要性,但目前更多的精力都集中在内部逻辑的处理和升级中,我们一直认为内部逻辑的处理是规则引擎的重中之重,同时也深刻接受网友的指点批评。目前,我们建议技术管理员或实施人员维护规则,而真要直接提供给客户使用时,就购买业务管理系统(BRMS)的系统,在些系统上进行界面优化和调整,毕竟ckrule在重点在于规则处理,而定制化各个客户界面,不是我们的工作重点。
 
   源代码下载
http://pan.baidu.com/s/1qWofwYS   ckrule使用例子->规则编辑器例子.zip

ckrule规则编辑器在wpf中的使用的更多相关文章

  1. WPF中嵌入Office编辑器(支持Word、Excel、PPT、Visio等)

    现在有一个项目,需要使用wpf做一个简单的客户端,用来生成word.excel.ppt.visio等文档,这就需要能够在wpf中嵌入office的编辑器,并对office文档进行编辑. 在网上搜索了一 ...

  2. WPF中的数据验证

    数据验证 WPF的Binding使得数据能够在数据源和目标之间流通,在数据流通的中间,便能够对数据做一些处理. 数据转换和数据验证便是在数据从源到目标 or 从目标到源 的时候对数据的验证和转换. V ...

  3. WPF中图形表示语法详解(Path之Data属性语法)ZZ

    大可山 [MSN:a3news(AT)hotmail.com] http://www.zpxp.com 萝卜鼠在线图形图像处理 ------------------------------------ ...

  4. 学习WPF——了解WPF中的XAML

    XAML的简单说明 XAML是用于实例化.NET对象的标记语言,主要用于构建WPF的用户界面 XAML中的每一个元素都映射为.NET类的一个实例,例如<Button>映射为WPF的Butt ...

  5. 在WPF中自定义你的绘制(四)

    原文:在WPF中自定义你的绘制(四)                                   在WPF中自定义你的绘制(四)                                 ...

  6. WPF中图形表示语法详解(Path之Data属性语法)

    原文 http://blog.csdn.net/johnsuna/article/details/1885597 老规矩,看图说话. 先看显示效果:(图1) XAML(代码A):<Page xm ...

  7. wpf中的触发器详解

    原文 http://zwkufo.blog.163.com/blog/static/25882512009724113250883/ 7.1.2 简单逻辑的表示--触发器(1) 在本章的多处介绍中都会 ...

  8. WPF中嵌入WinForm中的webbrowser控件

    原文:WPF中嵌入WinForm中的webbrowser控件 使用VS2008创建WPF应用程序,需使用webbrowser.从工具箱中添加WPF组件中的webbrowser发现其中有很多属性事件不能 ...

  9. 在 WPF 中使用 Path 路径

    在 WPF 中总会修改 Button 的 Style,比如一个自定义的 Close 按钮.刚入门的可能会用一张 PNG 格式的图片来做这个按钮的 Icon,但这个是不优雅的.而且你要改的时候还得去操作 ...

随机推荐

  1. ADO.NET 快速入门(二):执行命令

    Commands发出针对数据库的数据存储动作.例如,你可以执行一条命令插入或者删除数据.获取更多从数据库移动数据相关的信息,请参考“Update a Database from a DataSet”. ...

  2. 教你50招提升ASP.NET性能(十九):静态集合

    (30)Static collections 招数30: 静态集合 If a collection is static, make sure it only contains the objects ...

  3. Codeforces Round #333 (Div. 2) C. The Two Routes flyod

    C. The Two Routes Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/602/pro ...

  4. poj 3613 Cow Relays

    Cow Relays Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5411   Accepted: 2153 Descri ...

  5. Android学习笔记(20)————利用ListView制作带竖线的多彩表格

    http://blog.csdn.net/conowen/article/details/7421805 /********************************************** ...

  6. iOS开发——UI篇&文字渐变效果:图层中的mask属性

    文字渐变效果:图层中的mask属性 本次文章,主要讲述的是图层中的mask属性,利用它,可以做出文字渐变效果! 一.文字渐变效果: 二.文字渐变实现思路: 1.创建一个颜色渐变层,渐变图层跟文字控件一 ...

  7. MySQL 行子查询(转)

    MySQL 行子查询 行子查询是指子查询返回的结果集是一行 N 列,该子查询的结果通常是对表的某行数据进行查询而返回的结果集. 一个行子查询的例子如下: SELECT * FROM table1 WH ...

  8. Discuz x 默认模板文件目录说明

    template/default/common模板公共文件夹,全局相关 |--block_forumtree.htm 树形论坛版块分支 js 文件 |--block_thread.htm 特殊主题的风 ...

  9. MYSQL 分析表、检查表和优化表

    1. 对表进行优化 ( 优化表主要作用是消除删除或者更新造成的空间浪费) 2. 对表进行分析(分析关键字的分布, 分析并存储MyISAM和BDB表中键的分布) 3. 对表进行检查(检查表的错误,并且为 ...

  10. Ping pong

    Ping pong Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...