AX2012 查询用户在线操作记录
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 查询用户在线操作记录的更多相关文章
- MyBatis 用户表记录数查询
搭建MyBatis开发环境,实现用户表记录数查询 1.在MyEclipse中创建工程,导入MyBatis的jar包
- 使用mybatis提供的各种标签方法实现动态拼接Sql。这里演示where标签和if标签实现使用姓名的模糊查询和性别查询用户列表,当用户没有选择姓名以及性别时查询出所有的记录。
1.需求: 使用姓名的模糊查询和性别查询用户列表,当用户没有选择姓名以及性别时查询出所有的记录. 2.在UserMapper接口中定义方法: public List<User> findU ...
- mybatis框架-查询用户表中的记录数
之前已经搭建过mybatis框架了,现在我们要用mybatis框架真正的干点事情了. 这是这个简单web项目的整体架构. 我们使用mybatis框架查询用户表中的记录数: 这是用户类: package ...
- 05Mybatis_入门程序——根据id查询用户
这篇文章我们来做一个入门的案例: 建表: /* SQLyog v10.2 MySQL - 5.1.72-community : Database - mybatis ***************** ...
- Linux - 查看用户登录记录
有关用户登录的信息记录在 utmp(/var/run/utmp).wtmp(/var/log/wtmp).btmp(/var/log/btmp) 和 lastlog(/var/log/lastlog) ...
- mybatis04 根据用户名称模糊查询用户信息
根据用户名称模糊查询用户信息可能返回多条记录. 1.1.1User.xml 编码 如果用%进行模糊查询,#{}表示一个占位符会被翻译为一个?号(SELECT * FROM USER WHERE id= ...
- Mysql 查询重复的记录
我们都会使用distinct去除重复值,今天调试一个问题,业务需要查询出重复的数据,实现如下: 查询帖子的被哪些用户收藏,其中user_id,post_id可以唯一确定一条记录: 先使用post_id ...
- Linux实战案例(4)CentOS清除用户登录记录和命令历史方法
CentOS清除用户登录记录和命令历史方法 清除登陆系统成功的记录[root@localhost root]# echo > /var/log/wtmp //此文件默认打开时乱码,可查到ip等信 ...
- mybatis由浅入深day01_4.7根据用户名称模糊查询用户信息_4.8添加用户((非)自增主键返回)
4.7 根据用户名称模糊查询用户信息 4.7.1 映射文件 使用User.xml,添加根据用户名称模糊查询用户信息的sql语句. 4.7.2 程序代码 控制台: 4.8 添加用户 4.8.1 映射文件 ...
- Oracle查询库中记录数大于2千万的所有表
Oracle查询库中记录数大于2千万的所有表 假如当前用户拥有select any table权限,则可以使用下列sql语句: select table_name, num_rows from dba ...
随机推荐
- Android学习——控件ProgressBar
1.常用属性
- Delphi 格式化函数Format、FormatDateTime与FormatFloat详解
目录 Format函数 %d 代表一个整数 %u 代表一个无负号整数 %s 代表字符串 %f 代表浮点数(保留或凑够两位小数点 ) %g 代表浮点数(会去掉多余的 0) %n 代表浮点数(整数部分使用 ...
- win10输入法微软拼音被禁用
远程桌面到win10系统后,再次回到被远程的win10,会发现输入法被禁用,无法输入汉字无法切换输入法只能使用英文输入 方法1 可以把相关的应用程序关闭后重新打开(不实用) 方法2 任务计划,micr ...
- clickhouse-数据副本踩坑
数据副本--失败,看日志 vim /var/log/clickhouse-server/clickhouse-server.err.log select * from system.replicati ...
- java向上转型知识点收录
package tex2polymorphism; /*总结如下: * 对于多态,可以总结它为: 一.使用父类类型的引用指向子类的对象: 二.该引用只能调用父类中定义的方法和变量: 三.如果子类中重写 ...
- Modern C++ ——constexpr的各种用法
Modern C++ --constexpr的用法 Reference <现代C++语言核心特性解析> 为什么引入constexpr const可以定义常量,但也可以用来定义只读变量.co ...
- easypoi多sheet导出
以前一直接触的是单sheet导出,这次的需求换成了多sheet导出,算是一个难点所以得记录一下 底层关键的代码就是: private static void defaultExport(List< ...
- vue 点击元素滚动到指定位置(滑动到指定位置对应标签自动选中)
一:各个模块不相同情况 1.内容部分<div class="anchor"> <div v-for="(item,index) in anchors&q ...
- astrocut:切割fitsfile
from astrocut import fits_cut from astropy.io import fits from astropy.coordinates import SkyCoord i ...
- ERA5气压层数据驱动WRF的一些问题
感谢Dawn的建议,兰溪之水的WRF教程 参考了一些经验,并结合实际后,成功用ERA5驱动WRF.实际上,用ERA5数据驱动WRF的方法和用ERA-Interim 数据驱动WRF极其类似. 总结几点是 ...