如何从NAV中按日期排序的目录中获取文件列表? 我无法使用File虚拟表,因为日期没有键。 我尝试使用DotNet但是实现IComparer接口对我来说太复杂了。
有什么想法吗?
干杯
答案 0 :(得分:1)
作为一种低技术解决方案(即不需要任何外部组件),如何创建一个缓冲文件记录的临时文件记录变量,使用文件的可排序字符串表示填充Path字段' s日期和时间字段合并为DateTime? [请忽略PAGE.RUN - 那只是出于调试目的。]
在我的机器上,第一次调用ShowFileOrder会显示:
第二个电话显示:
这就是Windows资源管理器中的文件:
我希望这有帮助! :)
答案 1 :(得分:0)
File表的键有什么问题?据我所知,日期和时间都是可排序的。测试导航2015年。
无论如何,如果你真的想用.net做这个例子。基表是select t1.*,
(select min(t2.Date) from TAB t2 where t2.ID > t1.ID t2.Name = t1.Name) NextDate
from TAB t1
。页面属性File
。在将所有文件信息发送到arrey后,您可以使用它并按照您喜欢的方式对其进行排序。 或者您可以使用数组中的值填充临时文件表并使用SourceTableTemporary = Yes
LOL
setcurrentkey
或者您甚至可以使用sort
.Net文件列表di DotNet System.IO.DirectoryInfo.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
fi DotNet System.IO.FileSystemInfo.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
arr DotNet System.Array.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
i Integer
di := di.DirectoryInfo('c:\Temp\Tmp');
//arr.CreateInstance(GETDOTNETTYPE(fi),1); //not needed
arr := di.GetFileSystemInfos();
for i := 0 to arr.Length-1 do
begin
fi := arr.GetValue(i);
Name := fi.Name;
evaluate(Date, format(fi.LastWriteTime,8,1));
insert;
end;