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. Python学习笔记(一)环境确认

    1.安装环境 1)python解释器 版本3.10.2 安装完毕后在命令提示符窗口中输入python显示版本信息 2)开发工具 pycharm 2021.1.3 2.新建项目 创建项目后修改解释器配置 ...

  2. 了解了一下Cookie

    昨天做接口测试被Cookie折腾得云里雾里的,今天下午有时间特意了解了一下. 一:Edge浏览器查看Cookie的路径:设置->Cookie和网站权限 二:一个cookies包含以下信息:(1) ...

  3. 网络-6 IPV6(上)

    一.iPv4与ipv6对比 1.ipv4与ipv6优缺点 1.1 Ipv4与ipv6对比,ipv4中的切片使用的三个字段:identification   flags   fragment offse ...

  4. IDEA使用fastjson1时maven引入依赖没报错,但是用不了JSONObject工具类

    删除项目下的.idea文件夹重新打开项目就行, 不知道为什么

  5. 强烈推荐的elasticsearch集群连接工具: elasticvue

    个人感觉非常棒的es-cluster连接工具, 检查状态什么的, 一目了然, 支持中文超方便, 比elasticSearchHead好用多了. 安装方法打开微软浏览器edge-商城搜索-Elastic ...

  6. java面试准备基础篇

    1.Java中常用关键字和用途 synchronized: 加锁 transient 不参与序列化和反序列化 volatile 保证其他线程可见性,不保证原子性,禁止指令重排 2.hashCode() ...

  7. iphone tabbar问题

    适配新款苹果底部tabbar,网上找了代码,不能用.翻出苹果各型号尺寸发现找的代码稍微有点问题.自己改了下. 关键的判断在于window.screen.height > 800这是区分带tabb ...

  8. 第6课第4节_Binder系统_驱动情景分析_服务注册过程_分析

    Service_manager.c 8074 2017/6/30 首先从应用程序分析(Android) binder_loop(bs, svcmgr_handler) { readbuf[0] = B ...

  9. svn 报 is not a working copy 错误

    当时提交代码 svn  报 is not a working copy ,上网查找问题  要我重新拉代码下来 然后放进修改的代码重新提交,我觉得很不合理,我看了下我提交的代码文件有80多个,我在想是否 ...

  10. RTT笔记-分析自动初始化机制转

    首先全局搜索一个任意的自启动宏,便能找到在rtdef.h中由如下定义 1 #define INIT_BOARD_EXPORT(fn) INIT_EXPORT(fn, "1") 2 ...