1 static void ExportSysClientAccessLog(Args _args)
2 {
3 SysClientAccessLog sysClientAccessLog;
4
5 SysExcelApplication xlsApplication;
6 SysExcelWorkBooks xlsWorkBookCollection;
7 SysExcelWorkBook xlsWorkBook;
8 SysExcelWorkSheets xlsWorkSheetCollection;
9 SysExcelWorkSheet xlsWorkSheet;
10 SysExcelRange xlsRange;
11
12 int row = 1, idx;
13 str fileName, formName;
14 container con, conSel;
15 ;
16
17 fileName = @"C:\Users\currentUserFileName\Desktop\log\userAccessLog.csv";
18
19 xlsApplication = SysExcelApplication::construct();
20 xlsWorkBookCollection = xlsApplication.workbooks();
21 xlsWorkBook = xlsWorkBookCollection.add();
22 xlsWorkSheetCollection = xlsWorkBook.worksheets();
23 xlsWorkSheet = xlsWorkSheetCollection.itemFromNum(1);
24
25 xlsWorkSheet.cells().item(row, 1).value("User Id");
26 xlsWorkSheet.cells().item(row, 2).value("Form Name");
27 xlsWorkSheet.cells().item(row, 3).value("Operation");
28 xlsWorkSheet.cells().item(row, 4).value("DateTime");
29
30 row++;
31
32 while select sysClientAccessLog
33 where sysClientAccessLog.createdDateTime > 2023-02-14T03:00:00
34 && sysClientAccessLog.createdDateTime < 2023-02-15T00:00:00
35 && sysClientAccessLog.createdBy == 'admin' // UserName
36 {
37 con = sysClientAccessLog.EventsContainer;
38
39 for(idx = 1; idx <= conLen(con); idx++)
40 {
41 conSel = conpeek(con, idx);
42 formName = formName2Pname(conPeek(conSel, 1));
43 //Information to Excel
44 xlsWorkSheet.cells().item(row, 1).value(strFmt("%1", sysClientAccessLog.createdBy));
45 xlsWorkSheet.cells().item(row, 2).value(strFmt("%1", formName ? formName : conPeek(conSel, 1)));
46 xlsWorkSheet.cells().item(row, 3).value(strFmt("%1", conPeek(conSel, 2)));
47 xlsWorkSheet.cells().item(row, 4).value(strFmt("%1", DateTimeUtil::applyTimeZoneOffset(sysClientAccessLog.createdDateTime, DateTimeUtil::getUserPreferredTimeZone())));
48
49 row++;
50 }
51 }
52
53
54 if(WinApi::fileExists(fileName))
55 WinApi::deleteFile(fileName);
56
57 xlsWorkbook.saveAs(fileName);
58 xlsApplication.visible(true);
59
60 info(strFmt("File has been exported"));
61 }

AX2012 查询用户在线操作记录的更多相关文章

  1. MyBatis 用户表记录数查询

    搭建MyBatis开发环境,实现用户表记录数查询 1.在MyEclipse中创建工程,导入MyBatis的jar包

  2. 使用mybatis提供的各种标签方法实现动态拼接Sql。这里演示where标签和if标签实现使用姓名的模糊查询和性别查询用户列表,当用户没有选择姓名以及性别时查询出所有的记录。

    1.需求: 使用姓名的模糊查询和性别查询用户列表,当用户没有选择姓名以及性别时查询出所有的记录. 2.在UserMapper接口中定义方法: public List<User> findU ...

  3. mybatis框架-查询用户表中的记录数

    之前已经搭建过mybatis框架了,现在我们要用mybatis框架真正的干点事情了. 这是这个简单web项目的整体架构. 我们使用mybatis框架查询用户表中的记录数: 这是用户类: package ...

  4. 05Mybatis_入门程序——根据id查询用户

    这篇文章我们来做一个入门的案例: 建表: /* SQLyog v10.2 MySQL - 5.1.72-community : Database - mybatis ***************** ...

  5. Linux - 查看用户登录记录

    有关用户登录的信息记录在 utmp(/var/run/utmp).wtmp(/var/log/wtmp).btmp(/var/log/btmp) 和 lastlog(/var/log/lastlog) ...

  6. mybatis04 根据用户名称模糊查询用户信息

    根据用户名称模糊查询用户信息可能返回多条记录. 1.1.1User.xml 编码 如果用%进行模糊查询,#{}表示一个占位符会被翻译为一个?号(SELECT * FROM USER WHERE id= ...

  7. Mysql 查询重复的记录

    我们都会使用distinct去除重复值,今天调试一个问题,业务需要查询出重复的数据,实现如下: 查询帖子的被哪些用户收藏,其中user_id,post_id可以唯一确定一条记录: 先使用post_id ...

  8. Linux实战案例(4)CentOS清除用户登录记录和命令历史方法

    CentOS清除用户登录记录和命令历史方法 清除登陆系统成功的记录[root@localhost root]# echo > /var/log/wtmp //此文件默认打开时乱码,可查到ip等信 ...

  9. mybatis由浅入深day01_4.7根据用户名称模糊查询用户信息_4.8添加用户((非)自增主键返回)

    4.7 根据用户名称模糊查询用户信息 4.7.1 映射文件 使用User.xml,添加根据用户名称模糊查询用户信息的sql语句. 4.7.2 程序代码 控制台: 4.8 添加用户 4.8.1 映射文件 ...

  10. Oracle查询库中记录数大于2千万的所有表

    Oracle查询库中记录数大于2千万的所有表 假如当前用户拥有select any table权限,则可以使用下列sql语句: select table_name, num_rows from dba ...

随机推荐

  1. PHP 静态延迟绑定 static

    PHP (self static parent 区别) self调用的方法和属性始终表示当前类的方法和属性 static调用的方法和属性为当前执行的类的方法和属性 parent调用的方法和属性为父类的 ...

  2. 学习-Vue3-条件渲染

    v-if支持在 <template> 元素上使用,能和 v-else 搭配使用. v-show 不支持在 <template> 元素上使用, 也不能和 v-else 搭配使用. ...

  3. Linux系统root密码忘记修改

    重启Linux系统 到启动状态: 按任意键,进入GRUB菜单: 按字母e进入: 调整到上图,按字母e,进入 不进行删减,在后面输入" 1"(空格1),按回车,进入 或者将" ...

  4. go new和make区别

    new用于任何类型,返回的是指针,多用在对象,结构体 make类型只用于slice,map,channel,返回引用,为什么只这三个用make,因为它们都有要初始化的数据,参数golang 内置函数n ...

  5. 8. semahpore原理

    一.上游服务比下游服务抗压能力应该更强一些,因为直接面对的是前端.Semphore控制访问特定资源的线程数目.实际场景可用于限流.在hystrix里面用了. 另:ReadWriteLock的作用是什么 ...

  6. Python 元组tuple、 列表list、 字典dict、集合set、迭代器、生成器

    一.元组: tuple Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组 tup2 = (111, 22, 33, ...

  7. 关于centos防火墙的一些问题

    防火墙有两种:firewall iptables. 两个都需要设置

  8. ORACLE之自治事务

    在创建存储过程时,可以用关键字: PRAGMA AUTONOMOUS_TRANSACTION 创建自治事务. 常用场景: 触发器抛错导致事务回滚,日志的记录需要用自治事务进行记录 代码抛错,导致数据库 ...

  9. 清理缓存tc

    /$SYNC 今天修改自建表的字段,换了参考字段但是SE16N显示一直没有改变,删字段,删表都尝试依旧无果,实际上只是没有清理缓存,扑街,留存

  10. react-router 路由 入门必看

    如果您已经入门reactjs,请绕道~ 这篇博客只适合初学者,初学reactjs的时候,如果你不会webpack,相信很多人都会被官方的例子绕的晕头转向. ES6的例子也会搞死一批入门者.之前一直用的 ...