我开发了一个小费用报告系统,用于替换非常旧的excel文件。 设置非常简单:
-UI是jquery,asp.net,简单的css
-Back end是sql server 2005
- 业务层还有一些额外的层。
典型的分层应用程序。它作为Intranet站点在IIS 6上运行。使用excel表格要简单得多,但当然有一个似乎没有互联网连接的人,那么他怎么能提交他的费用报告呢?
我想到了一个将对象序列化的离线系统,但这似乎有点复杂,因为最终这些序列化对象需要返回到数据库层。我正在考虑更多的是告诉他们将excel电子表格提交给具有互联网连接的“管理员”并将其放入他/她的费用报告中。但我担心“管理员”会讨厌这个。
即使我打开桌面客户端应用程序,我仍然需要访问网络才能进入数据层。
关于如何处理那些无法上网或上网的人,但曾经喜欢他曾经想过的excel应用程序的任何其他想法?
答案 0 :(得分:1)
您可以实现SQL Server Merge复制。有一点学习曲线,但我想出来并在几周内实现它,所以它绝对“可行”。您可以拥有一个更新sql server express db的桌面应用程序,然后根据您的选择使用复制同步更改(可能是在用户连接到网络时)。
合并复制的工作原理
http://msdn.microsoft.com/en-us/library/ms151329.aspx
答案 1 :(得分:1)
我们实施了一些用户没有连接的解决方案。一个是WinForms应用程序,其他是ASP.NET应用程序。对于ASP.NET应用程序,我们将它们修改为在笔记本电脑或客户端PC上使用IIS运行,因为您可以在客户端操作系统上安装IIS。
我们最终用作模式的方法是在本地使用DataSet来保存/解析操作客户端PC上的数据,然后使用内置的DataSet.WriteXml方法将其序列化为XML。然后我们创建了一个“上传”屏幕(asp.net页面或WinForms页面),显示待处理的上传。这会将DataSet上载到ASP.NET Web服务。由于DataSet对象是可序列化的,因此在Web服务中使用它是最少的工作量。 Web服务处理实际插入/更新数据库。
实际上它的工作量比听起来要少得多,而且这种模式对我们来说非常成功,它已经成为处理断开连接的应用程序的标准方法。这些应用程序的故障排除几乎可以忽略不计,与我们尝试过的其他方法相比,这对我来说简单而可靠。
答案 2 :(得分:0)
您可以将电子邮件xls文件的变体设置为admin。您可以让他们上传xls文件而不是管理员重新输入数据,您的系统可以解析它并输入数据。特别是如果xls格式统一的话,效果很好。
答案 3 :(得分:0)
使用Office工具包和宏构建到用户Excel应用程序中,将数据导出到XML数据集并在机会允许时传输它们。在服务器端构建一个适配器,在它们到达时读取这些XML文件,并根据需要插入适当的记录。