好些天没有更新博客了,有些空荡荡的感觉。
(一)引言
TaskVision已经完成的差不多了,基本功能都已经完成。
剩下还没完成的地方:自定义DataGrid显示,任务历史记录,按优先级显示任务的比例图表,按进度显示任务的比例图表,打印任务,将任务导出到Excel中。
TaskVision的离线主要思路:
默认为在线模式,用户登录后,按需要通过Web服务从服务器下载相应的数据到强类型DataSet中,当用户切换为离线模式时,提示用户选择需要下载到本地的数据,用户选择完毕后,则下载到本地的XML文件中,这样基本的离线功能就搭建好了。
这时你可能会问,在离线模式下,添加和修改数据怎么办呢?我们在关闭主窗体时,响应Closing事件,如果离线数据发生更改,则将更改的数据存放到指定的XML文件中。
当用户下一次运行程序时,如果存在离线XML文件,则切换为离线模式,存在离线更改XML文件,则读取更改文件。
当用户切换为在线模式时,则将更改上传。
离线时XML文件存放的路径在TaskVision\bin\Debug\1.0.0.0\ 中
(二)完成效果
运行程序:默认在线,所以弹出登录,成功登录后显示主窗体
加载数据:
数据加载完成:
点击下线:弹出选择离线项目,离线
离线后:
离线后,更改记录后,上线:要切换为在线模式,会弹出用户登录,成功登录后,自动同步数据
其它的功能就不演示了,大家可以自己看看。
(三)附代说明
小菜加了很多注释,让代码不那么晦涩,而且尽量保持一致的编码风格。
取一小段:
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
由于很多想学习智能客户端的朋友,都会从TaskVision,IssueVision,FotoVision这几个微软案例开始,不过可惜的是这几个案例都是基于.Net1.0与.Net1.1,所以小菜将TaskVision移植到.Net2.0.
希望能带给那些想学习智能客户端的朋友一些帮助.
之后会给出完整版.
代码下载:https://files.cnblogs.com/a-peng/SmartClient_Chapter06.rar
*************************************************************************
作者:a-peng
出处:http://a-peng.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出
原文连接,否则保留追究法律责任的权利。
*************************************************************************