ckrule规则编辑器在wpf中的使用

当前,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

时间: 2024-08-24 13:23:21

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

规则编辑器

业务规则编辑器的由来 所谓的业务规则编辑器就是把业务上面的规则用简单的语言写出来,写出来的规则要比较简单易懂,最好是像口语说明一样,而编写的过程也要比较简便,像word那样就最好,当然这些规则都应该是程序可以直接解释的,不要再经过程序员“翻译”为机器语言. 为了达到这个目的,必要的操作提示是很必要的. 下面以某工厂的基本工资公式为例说明: 就职状态 实发基本工资 转正 1310/月工作天数*转正前天数+基本工资/月工作天数*转正后天数  其他 基本工资/月工作天数*实际出勤天数 上述公式中,实发

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

原文:WPF中嵌入Office编辑器(支持Word.Excel.PPT.Visio等) 现在有一个项目,需要使用wpf做一个简单的客户端,用来生成word.excel.ppt.visio等文档,这就需要能够在wpf中嵌入office的编辑器,并对office文档进行编辑. 在网上搜索了一下,发现了一个很好的示例:通过在wpf中嵌入DSOFramer控件来完成对office的编辑功能.效果图如下: 闲话不多说,直接上传源代码(别人的源码,我在百度网盘里面共享了),下载地址:http://pan.b

WPF中嵌入WinForm中的webbrowser控件

原文:WPF中嵌入WinForm中的webbrowser控件 使用VS2008创建WPF应用程序,需使用webbrowser.从工具箱中添加WPF组件中的webbrowser发现其中有很多属性事件不能使用.决定还是使用WinForm中的webbrowser.要想在WPF中使用WinForm控件,查看MSDN,需经过以下步骤. 创建名为 HostingWfInWpf 的 WPF 应用程序项目. 在解决方案资源管理器中,添加一个对名为 WindowsFormsIntegration.dll 的 Wi

WPF中的动画——(五)关键帧动画

与 From/To/By 动画类似,关键帧动画以也可以以动画形式显示目标属性值. 和From/To/By 动画不同的是, From/To/By 动画只能控制在两个状态之间变化,而关键帧动画则可以在多个状态之间变化,例如,对于前面那个改变按钮宽度的例子,如果我们要实现如下效果: 在2秒时将宽度从 0变为350 在7秒时将宽度变为50 在9秒的时候将其宽度变为200 虽然我们可以用三个From/To/By 动画组合实现类似效果,但是这样一来麻烦,二来要感知动画完成事件,不方便在XAML中使用.此时我

在 WPF 中的线程

线程处理使程序能够执行并发处理,以便它可以做多个操作一次.节省开发人员从线程处理困难的方式,设计了 WPF (窗口演示文稿基金会).这篇文章可以帮助理解线程在 WPF 中的正确用法. WPF 内部线程和规则 所有 WPF 应用程序中都运行两个线程: 为呈现-它在后台运行,所以,它被隐藏. 用于管理 UI 界面 (UI 线程) — — 大多数 WPF 对象与 UI 线程被束缚.它接收输入. 绘制屏幕. 运行的代码和处理事件. WPF 支持单线程单元模型,有以下规则: 一个线程在整个应用程序中运行,

学习WPF——了解WPF中的XAML

XAML的简单说明 XAML是用于实例化.NET对象的标记语言,主要用于构建WPF的用户界面 XAML中的每一个元素都映射为.NET类的一个实例,例如<Button>映射为WPF的Button对象 XAML可以在一个元素中嵌套另一个元素,例如Grid元素可以嵌套Button元素 了解XAML VisualStudio创建一个窗口,默认情况下产生的代码如下: 这段代码中包含两个标记元素,一个是Window,一个是Grid Window是WPF顶级元素的一种,还有另外两种顶级元素Page和Appl

浅尝CKRule规则引擎

最近在参与一家材料公司的ERP系统开发,主要负责仓储系统.由于该公司的业务流程相对复杂且多变,做得那是万般痛苦,成天沉浸在业务变更代码大改的死循环里,久而久之,有种遥遥无期的绝望. 怎样才能很好或者说比较轻松的去适应这样的复杂业务变化?最近真没少在园里看大神们的贴子,但是收获甚微,也许是我个人理解的深度不够.前两天无聊的时候,把心里的唠叨在圈子里发了下,后来有人给我推荐了个叫“CKRule”的规则引擎.规则引擎?小弟孤陋寡闻还是第一次听,一番百度后找到了CKRule的官网,果断下载了试用版.文件

WPF中使用amCharts绘制股票K线图

原文:WPF中使用amCharts绘制股票K线图 本想自己用GDI绘图, 通过数据直接绘制一张蜡柱图, 但觉得这样子的功能比较少, 所以到网上搜索一些能画出K线图的控件. 发现DynamicDataDisplay挺好的, 在它的开发截图里也发现可以绘制蜡柱图, 但文档好像做的不是很好, 不知道怎么用它来画, 在寻找它比较好的例子的时候发现有人推荐用amCharts绘制, 所以便去看了一下, 发现挺好用的, 效果如下: 准备工作 先要去这里下载amCharts Stock Chart for WP

WPF中使用ObjectDataProvider绑定方法

原文:WPF中使用ObjectDataProvider绑定方法 ObjectDataProvider提供了绑定任意.net类型的功能,具体功能如下: 1.ObjectDataProvider提供了绑定任意CLR类型的公嫩那个. 2.它可以再XAML中利用生命史的语言以及参数化的构造函数完成对数据的创建 3.增加对成员函数的绑定 4.提供了更多的异步绑定的功能 下面用一个加法计算器来进行实例说明: 请先看我们的加法类: C#代码 namespace BindingDemo {     public