博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SharePoint 2010 + Infopath 2010 VSTA + WF + Timer Job + BI 之 报销单实例系列---------创建报销单新增视图...
阅读量:5020 次
发布时间:2019-06-12

本文共 1787 字,大约阅读时间需要 5 分钟。

关于Infopath的详细操作步骤这里不在详细介绍,如果想更深入的了解Infopath如何使用,请视频教程(英文)自己学习。

根据的介绍,先把报销单完成,完成后的报销单击如图所示

下面介绍一下详细开发步骤:

第一步:创建报销人,采用默认值,用到了内置函数

第二步:创建年月,同样要用到内置函数,函数的详细用法在图上会说明的

这是两个比较特殊的字段,做了详细说明,还有一个字段是 报销金额,这个字段是字符类型,因为这个值是通过VSTA编程计算得到的,目前情况下只是字符,如果是数据会提示错误,目前没有找到合适的解决办法,代码会在后面写出来的,如果有好方法的兄弟可以给点指点。

第三步:配制VSTA编程的代码

选择---文件----窗体选项,会弹出如下窗体

第四步:打开编码窗体,添加代码,计算报销金额的值。

第五步:编写代码,并计算总金额

主要代码介绍

public void 金额_Changed(object sender, XmlEventArgs e)        {            XPathNavigator getData = this.CreateNavigator();            XPathNavigator expensiveGroup = getData.SelectSingleNode("/my:ExpensiveReport/my:Expensive",NamespaceManager);            XPathNodeIterator expensiveAmount = expensiveGroup.SelectDescendants("ExpensiveDetail", expensiveGroup.NamespaceURI, false);            double amountTotal = 0;            string amountValue = "";            foreach (XPathNavigator amount in expensiveAmount) //遍历金额字段            {                amountValue = amount.SelectSingleNode("my:金额", NamespaceManager).Value;                if (!string.IsNullOrEmpty(amountValue))                {                    amountTotal += double.Parse(amountValue);                }            }            //设置报销金额的值            //通过查找资料发现这里只能设置String的值,如果设置Double类型会出错的,目前没有办法解决设置数字类型的值            //如果有知道的兄弟,请回复一下,不胜感激            getData.SelectSingleNode("/my:ExpensiveReport/my:报销金额", NamespaceManager).SetValue(amountTotal.ToString());

就这样一个报销单就完成了,目前在网上看到了别人建议,不要把代码写到报销单里面,这样维护与管理比较难,但是没有看到有关解决方法,只提出了建议,我知道的一种计算方法是在Workflow里面可以对总金额进行计算,但这一种方法,在填写报销单时总金额不能及时显示的,不知其他兄弟有何高见,有经验的兄弟可以与大家分享一下,关于代码应该在哪里写会更好一点。

 上面还有一个关于序号的问题,目前这个序号问题没有实现,技术实现方案:我想获取添加与删除的事件,当添加与删除的时,通过代码循环设置序号的,但目前不能触发这两个事件,不过网上有这样一篇,但是他的处理有点缺陷,如果添加几个后,删除其中一个,序号就不连续了。针对这个问题,兄弟们有何高见呢?

 

 

转载于:https://www.cnblogs.com/Fengger/archive/2012/06/12/2546550.html

你可能感兴趣的文章
Redis的Pub/Sub客户端实现
查看>>
DirectFB 之 动画播放初步
查看>>
SQL日常问题和技巧——持续更新
查看>>
springMVC入门(一)------springMVC基本概念与安装
查看>>
Sam做题记录
查看>>
[bzoj] 2453 维护数列 || 单点修改分块
查看>>
IIS版本变迁
查看>>
使用Gzip压缩提升WEB服务器性能
查看>>
BZOJ3884: 上帝与集合的正确用法 拓展欧拉定理
查看>>
mybatis09--自连接一对多查询
查看>>
myeclipse10添加jQuery自动提示的方法
查看>>
【eclipse jar包】在编写java代码时,为方便编程,常常会引用别人已经实现的方法,通常会封装成jar包,我们在编写时,只需引入到Eclipse中即可。...
查看>>
视频监控 封装[PlayCtrl.dll]的API
查看>>
软件工程APP进度更新
查看>>
Python 使用正则替换 re.sub
查看>>
CTF中那些脑洞大开的编码和加密
查看>>
简化工作流程 10款必备的HTML5开发工具
查看>>
c++ 调用外部程序exe-ShellExecuteEx
查看>>
Java进击C#——语法之知识点的改进
查看>>
IdentityServer流程图与相关术语
查看>>