以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 每天自动更新日期 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=59424) |
-- 作者:tubairabbit -- 发布时间:2014/11/4 9:33:00 -- 每天自动更新日期 根据录入的“入库日期”,计算出“库存天数”,即Date.today - e.datarow("入库日期"),需要每天更新。
目前想到的方案一是:在afteropenproject中写上重置“入库日期”的代码 DataTables("A").DataCols("入库日期").RaiseDataColChanged() 但是因为数据量比较大,所有行都重置一遍再保存需要较长时间,造成每个用户每次打开项目并保存的时间过长。
考虑到每天只需更新一次,不必每个用户每次打开项目都得重置,方案二是: 使用计划管理,且限定管理员执行重置“入库日期”的代码,另外在服务器上长时间开启客户端程序。
只知道在计划中设置时间间隔,请教如何实现每天早上6:00执行该重置列的计划呢?或者有更好的每天更新日期的方法?
|
-- 作者:有点甜 -- 发布时间:2014/11/4 9:35:00 -- 1、弄一个地方,比如一个表格,设置一个标志。
2、在afterOpenProject的时候,如果今天没有更新过,就更新一下,在标识列那里记录;
3、在afterOpenProject查询标志 |
-- 作者:Bin -- 发布时间:2014/11/4 9:35:00 -- 用方案1 可以用分页加载,这样就没有大量数据的效率烦恼 |
-- 作者:tubairabbit -- 发布时间:2014/11/4 9:56:00 -- 通过标识列对我来说实现起来比较简单,但是意味着每天第一个开启项目的用户保存起来会慢。 想让这个工作由管理员承担,每天自动进行有否可能。 或者通过windows的计划任务,定时启动foxtable开发的客户端程序,再自动关闭,有没有可能? [此贴子已经被作者于2014-11-4 9:57:05编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/11/4 10:17:00 -- 可以,你单独做一个带有更新代码的项目,在服务器那里定时打开,执行完以后,在afterOpenProject最后把项目关闭即可。 |
-- 作者:tubairabbit -- 发布时间:2014/11/4 10:24:00 -- 如果用分页加载,在afteropenproject中的重置代码是只对加载的那部分数据起作用吧? 那翻页后的新数据,怎样写代码更新? 保存的时候,是只保存加载的当前页数据吗?
|
-- 作者:Bin -- 发布时间:2014/11/4 10:26:00 -- 翻页后接着写上更新代码 |
-- 作者:tubairabbit -- 发布时间:2014/11/4 16:22:00 -- 单独做了一个项目 在afteropenproject中加上 DataTables("A").DataCols("入库日期").RaiseDataColChanged() Syscmd.Project.Save() Syscmd.Project.Exit() 能实现自动更新、保存、关闭项目
现在问题是,登录需要输入用户名、密码,怎么让windows计划任务调用客户端程序时自动输入密码,打开项目呢? (用默认用户的方法不行,我的用户表是外部数据源) |
-- 作者:有点甜 -- 发布时间:2014/11/4 16:43:00 -- 你设置的这个项目不需要使用用户表的,单独一个项目就行。 |
-- 作者:tubairabbit -- 发布时间:2014/11/6 9:11:00 -- 谢谢! 将服务器版的用户表去掉外部数据表的勾,设了默认用户,发了个版本放服务器。windows任务计划再调用一下。 经检验已经能够定时更新了。 |