当前,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. cocos2d-x 仿真树叶飘落效果的实现

    转自:http://blog.csdn.net/ufolr/article/details/7624851 最近项目中需要一个落叶的效果,本来想用粒子特效来实现,但是几经调试,虽然调出了落叶的效果,但 ...

  2. stm32上的Lava虚拟机开发进度汇报(1)

    这几天我打算在stm32上做一个lava的虚拟机,只要160*80的黑白显示就行了,主要是想怀旧一下,嘿嘿. 目前的进度是图形显示和按键处理完成了,还有文本显示.文件处理.其他函数等. 当然,这都仅是 ...

  3. Codeforces Round #327 (Div. 2) B. Rebranding 水题

    B. Rebranding Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/591/problem ...

  4. 批量导出表数据到CSV文件

    需求:把oracle数据库中符合条件的N多表,导出成csv文本文件,并以表名.csv为文件名存放. 实现:通过存储过程中UTL_FILE函数来实现.导出的csv文件放入提前创建好的directory中 ...

  5. iOS开发——UI_swift篇&TableView实现页眉和页脚

    TableView实现页眉和页脚   在UItableView中header和footer是很常见的,而且他能让你实现很复杂的功能,我们见过最多的就是下拉刷新和上啦加载更多,当然你还可以在上面添加一个 ...

  6. Samba服务器配置参考链接

    一步一学Linux与Windows共享文件Samba(很适合初学者,极力推荐): http://os.51cto.com/art/200709/56395.htm 由最简单的一个例子说起,匿名用户可读 ...

  7. 简简单单安装debian桌面工作环境

    linux一般给人的影响是对使用者的要求偏高, 使用者需要自行配置很多相应的系统工作参数,因此,从一定的程度上阻碍了用户去使用它.而本文所介绍的是, 使用者完全可以消除这个障碍,非常简单地安装好自己的 ...

  8. php的引用&(就是在变量或者函数、对象等前面加上&符号)

    官方文档: 1.引用是什么:http://www.php.net/manual/zh/language.references.whatare.php 2.引用做什么:http://www.php.ne ...

  9. CentOS5.6 安装RabbitMQ

    步骤参考官方地址:http://www.rabbitmq.com/install-rpm.html我们这个版本按照官方的不能正确安装. 1.安装erlang(官网地址http://www.erlang ...

  10. javaweb学习总结十(xml解析<SAX以及DOM方式>)

    一:XML解析技术 一般我们使用sun公司或者开源组织开发的工具包解析xml效率比较高. 1:jaxp解析xml,jaxp是sun公司开发的解析xml工具包 2:jaxp解析xml代码如下 a:获取d ...