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

目录

▉ 关于“标签”功能

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

▉ 定时执行专家介绍

◆ 最新版下载链接

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


▉ 关于“标签”功能

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

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


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

(图1-2,定时执行专家 - 任务过滤器 - 任务标签)

 

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值