解析大型.NET ERP系统 灵活复杂的界面控件Infragistics WinForms

36 篇文章 8 订阅

Infragistics 是.NET平台优秀的控件供应商,囊括了WinForms,ASP.NET,Silverlight,WPF,Windows Phone等所有关于微软.NET技术的界面控件。借助于这些功能复杂的控件,为ERP的界面提供了灵活的操作能力。

本篇不谈控件开发,只详细说明ERP系统如何使用Infragistics WinForms,而不用.NET 自带的控件。

1  文本编辑控件提示必须输入值

如果一个文本编辑控件必须输入值,有许多实现方法可以借鉴。看金蝶ERP的实现,在文本标签控件位置处用星号标识。

image

如果用Infragistics WinForms的TextEditor,可实现如下的效果:

image

对于必须输入值的文本编辑控件,控件末尾有一个星号图片标识。如果这个编辑控件有值,则图标消失。

image

只需要一行代码,Infragistics WinForms可实现这个效果。

txtCustomerNo.Appearance.Image = Properties.Resources.Required_Field_16;

2  控件的数据查找窗体

继续比较金蝶界面,还是用上面的那张模拟BOM的图片,工艺路线和计量单位文本编辑控件后面有一个小图标,表示点这个图标,可弹出一个数据查找窗体,这样方便用户录入数据。

ERP系统也有类似的实现,先看界面效果图,注意左边第一个控件Ccy货币输入控件,它后面有一个小按钮。

image

当鼠标离开时,Ccy控件后面的小按钮自动消失。为了实现这个特性,也只需要一行代码:

EditorButton button = new EditorButton("lookup");
button.Text = "...";
txtCcy.ButtonsRight.Add(button);

 

3  控件支持钻取

钻取这个词的含义来源于报表中,主表点击事件钻取到子表明细记录。ERP中也吸取了这个思想,可以给控件设定要钻取的功能。比如上图中的货币Ccy,销售员Salesman,点击文本编辑控件中值,可打开相应的主档功能,查看详细信息。

4  Grid控件支持过滤,排序,分组,字段选取,查找,列顺序重排列,导出Excel

以图为例子,参考销售订单明细中的网格控件。

image

Code Project中有几篇文章,是专门讲解通过重写微软的DataGridView控件,如何具备以上列出的特性。
Infragistics WinForms已经内置了以上特性,而且支持属性序列化。比如上图中列的顺序是Line No,Item No

我可以将Item No拖动到Line No列的前面,在窗体关闭时,保存这个顺序,下次打开窗体时读取字段顺序值,恢复成用户设定的顺序。能够保存用户偏号(Profile)是系统友好的一个主要方面。

5 日期时间控件DateTimePicker 支持空值

.NET WinForms自带的日期时间控件不支持空日期时间值,这里的空值不是指类型DataTime?。当打开用户界面创建新的单据时,如果日期控件没有任何设定值动件,日期控件将返回空时间值,也就是保持NULL值。

6 按钮Button控件支持图片

参考下面的报表打印按钮,它可以显示一个打印的小图标。Delphi很多年前就具备这个特性。

image

7 控件支持属性序列化

窗体中对控件的布局Layout的修改,可以保存到数据库或存储介质中,当再次加载控件时,可以恢复成上次用户修改的布局样式(Layout)。这个特性,在Grid,TreeView控件有很重要的作用。

在窗体关闭前,读取控件的属性,保存到数据库中,读取属性值:

values.Add(new ComponentPropertyValue("AllowRowSummaries", true));

界面加载时,根据数据库中的记录设置控件属性:

if (values.ContainsKey("AllowRowSummaries") && Convert.ToBoolean(values["AllowRowSummaries"].Value))
{
      current.AllowRowSummaries = AllowRowSummaries.True;
}

把上面两段代码,分别放到窗体加载和关闭事件中,可参考下面的程序代码,实际保存用户偏号。

protected override void OnLoad(EventArgs e)
{
    LoadFormProfile();
}

protected override void OnClosed(EventArgs e)
{
    SaveFormProfile();
}

8  控件增加上下文菜单

文本编辑类控件,内置标准的剪切复制粘贴功能,还应该增加这三个编辑功能的上下文菜单。

image

日期时间控件,也支持剪切复制粘贴功能。

image

 

9 控件的Tab Index顺序要预先设置好,Enter键可以当Tab键使用

ERP界面大部分控件是单行文本输入,可以考虑给编辑控件重写键盘事件,按Enter键可切换到下一个Tab Index控件。

protected override void OnKeyDown(KeyEventArgs e)
{
      if (!base.DesignMode)
       {
              if ((!e.Alt && !e.Control) && !e.Shift)
              {
                    if (e.KeyCode == Keys.Enter)
                    {
                            SendKeys.Send("{TAB}");
                            e.Handled = true;
                     }
 

这个特性在Grid控件中非常有用,回车后直接跳到下一个单元格(Cell),最后一个单元格后再按回车键,可跳到下一行。

10  可折叠式组合框 Expandable Groupbox

上面的截图中用Groupbox将特性相近的控件包括起来,这是界面设计中很友好的一种表达方式。如果窗体的空间位置不够,或是控件的值仅仅用于参考,可以考虑用UltraExpandableGroupBox,它的模样参考下面的界面例子。

image

UltraExpandableGroupBox左上角有一个可折叠或展表的符号,可节省屏幕空间。

11 Grid控件支持打印预览和打印

Grid控件内置了打印功能,参考下图,在数据查询类功能中有很重要的作用。

image

Infragistics控件的设计人员设计这个打印功能,考虑了环保方面的要求(节省纸张和墨水)。

文章转自:http://www.cnblogs.com/JamesLi2015/archive/2015/07/31/4691108.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
☆ 资料说明:☆ 压缩包内包含安装程序和注册机; Like Windows 8, Infragistics brings together the best of the PC and tablet in this suite. Impress and innovate with premier controls for data visualization. No matter what the platform or category, apps created with NetAdvantage for Windows UI will be bold, performant, and drive revenue thorugh the Windows Store. Fast & Fluid Maximize your apps with a Grid control designed for stylablity and high performance. Data and UI virtualization make this Grid lightweight and extremely fast when handling large amounts of data. This control allows you to display your data in the style and matter that best fits your needs. Drill, down, edit, delete, select, sort, group, and filter rows using your mouse, keyboard, or touch gestures. Innovative Charting Let your data tell the story, with the broadest range of interactive, high-performance Data Charts that include support for a full range of business, scientific, and financial charting scenarios, as well as trend line capabilities "right out of the box." This Data Chart is a next-generation charting control designed for handling a live data feed coming in with over tens of thousands of data point every several milliseconds. Touch Optimized Deliver the latest Touch UI with our new gesture supported controls - like our Editor controls - without needing to write code separately for mouse vs. touchscreen inputs. Touch support across HTML5 and XAML controls offers larger buttons and gesture-friendly UI for commonly used interactions like grouping, multiple sorting, multiple selection, scrolling, and more - no plug-ins or extensions needed. Reference App The Running Total app, which uses our XAML and HTML Chart and Map controls, is an end-to-end application that delivers a true Windows 8 experience, designed with best practices and performance. Included in the Running Total app are assemblies for a variety of Chart types, with trend lines, finanacial indicators, touch-first features, and our Geospatial Mapping controls, which support multiple tile sources and geo-imagery features.
机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值