当前位置: 首页 > news >正文

定时执行专家V6.7发布,增加标签自由分组功能 —— Tag feature for TimingExecutor

目录

▉ 关于“标签”功能

▉ “标签”功能的实现思路和完整代码

▉ 定时执行专家介绍

◆ 最新版下载链接

◆ 2023-03-07  V6.7 - 更新日志


▉ 关于“标签”功能

为了满足用户对定时任务的分类需求,在《定时执行专家》V6.7版本,增加标签功能:

  • - 用户可以自定义标签名称
  • - 任务可以支持多标签分类
  • - 标签数量不少于10个
  • - 双击任务过滤器树形控件的节点,打开标签对话框
  • - 可以对标签名称进行修改


(图1-1,定时执行专家 - 标签对话框 - 修改标签名称)

▉ “标签”功能的实现思路和完整代码

1、将标签数据存储在任务data.xml文件里,格式如下:

<SCHEDULER>
  <TAG>
    <NAME>测试</NAME>
    <ID>9</ID>
  </TAG>
  ……
</SCHEDULER>

2、在主窗口类加入标签数组成员变量 m_mapTag;
3、在主窗口初始化方法内部,从data.xml数据文件里加载标签数据到 m_mapTag;

// <TAG>
//      <ID>0</ID>
//      <NAME>tag_0</NAME>
// </TAG>
pNodeL3 = pNodeL2->GetChildren();
wxString strID, strName;
while(pNodeL3)
{
	strTmpNodeName  = pNodeL3->GetName();
	strTmpNodeVal   = pNodeL3->GetNodeContent();

	if(strTmpNodeName.IsSameAs("ID"))
		strID   = strTmpNodeVal;
	if(strTmpNodeName.IsSameAs("NAME"))
		strName = strTmpNodeVal;

	pNodeL3 = pNodeL3->GetNext();
}

int nTagID = wxAtoi(strID);
// m_mapTag[nTagID] = wxString::Format("#%d: %s", nTagID, strName);
m_mapTag[nTagID] = strName;


4、在主窗口初始化方法内部的TreeCtrl初始化部分,加入标签节点初始化代码,使用 m_mapTag 初始化标签节点树控件;

// Add Job Tag - leo 230207
for(size_t i=0; i<N_TAG_COUNT; i++)
{
	wxString strTagName = m_pScheduler->GetTagValue(i);
	strTagName.Trim();
	strTagName.Trim(false);
	idLastChild = m_pTcCategory->AppendItem(idTagRoot, wxString::Format("%zd: %s", i, strTagName), 2, 1,
											new MyTreeItemData(i + 200, strTagName));
	if(0 == i)
		idFirstTreeItem = idLastChild;
}


5、添加双击树形节点打开“标签对话框”方法,实现对标签名称修改的代码;

wxString strFullName = m_pTcCategory->GetItemText(event.GetItem());
wxArrayString arrName;
GetArrayString(strFullName, ":", arrName);
wxString strPartName = arrName.Item(1);

wxTextEntryDialog dlg(this, _("Please edit Tag name:"), _("Tag Dialog"), strPartName);
dlg.SetMaxLength(N_TAG_NAME_MAXLENTH);
dlg.SetTextValidator(wxFILTER_EMPTY);
int nret = dlg.ShowModal();
if(wxID_OK == nret)
{
	wxString tmp = dlg.GetValue();
	tmp.Trim();
	tmp.Trim(false);
	if(tmp.IsEmpty())
	{
		wxMessageBox(_("Tag Name is blank, Please input Tag Name."), _("Tag Dialog"));
		return;
	}

	m_pTcCategory->SetItemText(event.GetItem(), wxString::Format("%s: %s", arrName.Item(0), tmp));
	m_pScheduler->SetTagValue(wxAtoi(arrName.Item(0)), tmp);
//            wxLogMessage("%d, %s", (int)wxAtoi(arrName.Item(0)), tmp);
//            wxMessageBox(tmp);  // for testing
}


6、在数据保存方法里面加入保存标签数据的代码。

// <TAG>
//    <ID>
//    <NAME>
IntStringHash::iterator itt;
for( itt = m_mapTag.begin(); itt != m_mapTag.end(); ++itt )
{
	int key = itt->first;
	wxString value = itt->second;

	pNodeL2 = new wxXmlNode(m_pNodeRoot, wxXML_ELEMENT_NODE, "TAG");
	// ID
	wxXmlNode* pNId 			= new wxXmlNode(pNodeL2		, wxXML_ELEMENT_NODE, "ID");
	pNVal			 			= new wxXmlNode(pNId		, wxXML_TEXT_NODE	, "", wxString::Format("%d", key));
	// NAME
	wxXmlNode* pNodeName        = new wxXmlNode(pNodeL2		, wxXML_ELEMENT_NODE, "NAME");
	pNVal 						= new wxXmlNode(pNodeName	, wxXML_TEXT_NODE	, "", value);
}

▉ 定时执行专家介绍

一款制作精良、功能强大、毫秒精度、专业级的定时任务执行软件。软件具有 25 种【任务类型】、12 种【触发器】触发方式,并且全面支持界面化【Cron表达式】设置。软件采用多线程并发方式检测任务触发和任务执行,能够达到毫秒级的执行精度,可以同时支持200个以上任务的毫秒级触发。

◆ 最新版下载链接

BoomWorks软件的最新版本_boomworks的博客-CSDN博客▉定时执行专家—毫秒精度、专业级的定时任务执行软件▉ 定时执行专家 ——远程客户端程序 TinyExec.exe v22.07▉ SuperSearch超级网搜 —— 让思考从搜索开始▉ 代码统计分析工具 —— 程序员必备工具https://blog.csdn.net/boomworks/article/details/113486307

◆ 2023-03-07  V6.7 - 更新日志

- 新增 【任务标签】功能,可以对任务进行自定义分组
- 新增 【自动截屏】可选“创建子目录”功能
- 新增 【打开网址、打开文件夹、打开文件、执行脚本或程序、执行DOS命令】任务增加“显示方式”设置
- 新增 【执行脚本或程序】任务支持指定“命令行参数”、“工作目录”设置
- 优化 进一步减小软件压缩包大小,提高软件执行效率
- bugfix 修复【关机、重启、注销、睡眠、休眠、锁定此电脑】任务在某些情况下循环执行问题
- 升级 wxWidgets 3.2.2

// END

相关文章:

  • ICG-PEG-CHO,吲哚菁绿-聚乙二醇-醛基 荧光染料试剂说明
  • 23-基于双层优化的电动汽车优化调度研究
  • 整理了一份github上比较热门的ChatGPT项目,值得收藏
  • 国家认证 | 创邻科技入选“大数据核心产品优秀案例”
  • 【Vue2从入门到精通】Vue监听器watch,计算属性computed,方法methods的区别及使用场景
  • Halcon转OpenCV实例--纺织物折痕检测(附源码)
  • Java开发一年不到,来面试居然敢开口要20K,面完连8K都不想给~
  • vue基础知识大全
  • nginx配置详解
  • Django 发送邮件
  • 【史上最全面esp32教程】网络篇和tcp/ip的使用
  • Playwright的启动参数详情
  • GameFramework之Network网络模块Protobuf工具
  • Golang每日一练(leetDay0014)
  • [刷题]背包问题
  • 测试最新趋势——AI/ML,开源自动化框架,业务驱动
  • java基础面试题58道
  • GTC 2023的算力协奏曲,NVIDIA与宁畅“共舞”AI时代
  • 微信小程序自定义组件生命周期有哪些?
  • vue 项目 SEO 解决方案 - 预渲染
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉