Files
envi-code/SourceCode/Code2026/tg_shs/shs_kerncmd/TArchSettingEditTools.h
T

183 lines
7.1 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#ifndef TARCHSETTINGEDITTOOLS_2009_01_15
2026-09-28 15:28:50 +08:00
#define TARCHSETTINGEDITTOOLS_2009_01_15
//#pragma once
#include "adui.h"
#include "acui.h"
#include <map>
#include "XMLDomNode.h"
#include "XMLDomNodes.h"
#include "XMLDomFile.h"
class TarchHotKeyInfo
{
public:
2026-10-04 00:04:20 +08:00
//CString m_strKeyTitl;//命令组名
CString m_strKeyName;//命令名
CString m_strCmdName;//调用函数的名字
CString m_strCmment;//命令描述
2026-09-28 15:28:50 +08:00
public:
TarchHotKeyInfo()
{
2026-10-04 00:04:20 +08:00
m_strKeyName = _T("");//命令名
m_strCmdName = _T("");//调用函数的名字
m_strCmment = _T("");//命令描述
2026-09-28 15:28:50 +08:00
}
TarchHotKeyInfo(const TarchHotKeyInfo&data)
{
2026-10-04 00:04:20 +08:00
m_strKeyName = data.m_strKeyName;//命令名
m_strCmdName = data.m_strCmdName;//调用函数的名字
m_strCmment = data.m_strCmment;//命令描述
2026-09-28 15:28:50 +08:00
}
TarchHotKeyInfo& operator=(const TarchHotKeyInfo&data)
{
2026-10-04 00:04:20 +08:00
m_strKeyName = data.m_strKeyName;//命令名
m_strCmdName = data.m_strCmdName;//调用函数的名字
m_strCmment = data.m_strCmment;//命令描述
2026-09-28 15:28:50 +08:00
return *this;
}
};
class CToolbarData;
typedef Array<CXMLNodeInfoEx> NodeInfoAry;
class CTArchSettingEditTools
{
public:
CTArchSettingEditTools(void);
2026-10-04 00:04:20 +08:00
void SetXMLDoc(CXMLDOMFile*pXMLDoc){m_pXMLDoc = pXMLDoc;}//指定要操作的文档
//将上华设置信息导出到指定路径的xml文档
2026-09-28 15:28:50 +08:00
BOOL ExportTArchSettingData(CString strPath);
2026-10-04 00:04:20 +08:00
//导入指定xml文件中的设置内容 xml文件格式必须符合上华设置文件格式
2026-09-28 15:28:50 +08:00
void ImportAllTArchSettingData(std::map<CString,NodeInfoAry> &importMapData);
public:
~CTArchSettingEditTools(void);
private:
2026-10-04 00:04:20 +08:00
// 导入上华设置内容
2026-09-28 15:28:50 +08:00
void ImportTArchSet(std::map<CString,NodeInfoAry> &importMapData);
2026-10-04 00:04:20 +08:00
////导入基本设置对话框内容
2026-09-28 15:28:50 +08:00
void ImportBaseSet(const Array<CXMLNodeInfoEx> &aryData);
void SetOneBasePara(const CXMLNodeInfoEx& data);
2026-10-04 00:04:20 +08:00
////导入墙柱加粗界面内容
2026-09-28 15:28:50 +08:00
void ImportWallPillarSet(const Array<CXMLNodeInfoEx> &aryData);
void SetWallPillarPara(const CXMLNodeInfoEx& data,TDbConfig *p);
2026-10-04 00:04:20 +08:00
//轻质隔墙材料
2026-09-28 15:28:50 +08:00
void ImportMaterialPattern1(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
2026-10-04 00:04:20 +08:00
//填充墙材料
2026-09-28 15:28:50 +08:00
void ImportMaterialPattern2(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
2026-10-04 00:04:20 +08:00
//填充墙1材料
2026-09-28 15:28:50 +08:00
void ImportMaterialPattern3(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
2026-10-04 00:04:20 +08:00
//填充墙2材料
2026-09-28 15:28:50 +08:00
void ImportMaterialPattern4(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
2026-10-04 00:04:20 +08:00
//砖墙柱材料
2026-09-28 15:28:50 +08:00
void ImportMaterialPattern5(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
2026-10-04 00:04:20 +08:00
//石墙柱材料
2026-09-28 15:28:50 +08:00
void ImportMaterialPattern6(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
2026-10-04 00:04:20 +08:00
//钢筋混凝土
2026-09-28 15:28:50 +08:00
void ImportMaterialPattern7(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
2026-10-04 00:04:20 +08:00
//刚柱
2026-09-28 15:28:50 +08:00
void ImportMaterialPattern8(const CXMLNodeInfoEx& data,TDbConfig *pConfig,const CString &strName);
2026-10-04 00:04:20 +08:00
//导入高级选项内容
2026-09-28 15:28:50 +08:00
void ImportAdvancedSet(const Array<CXMLNodeInfoEx> &aryData);
2026-10-04 00:04:20 +08:00
// 导入自定义内容
////导入屏幕菜单
2026-09-28 15:28:50 +08:00
void ImportScreenMenu(const Array<CXMLNodeInfoEx> &aryData);
void SetScreenMenuData(const CXMLNodeInfoEx &data);
2026-10-04 00:04:20 +08:00
////导入工具条
2026-09-28 15:28:50 +08:00
void ImportToolBar(const Array<CXMLNodeInfoEx> &aryData);
2026-10-04 00:04:20 +08:00
////导入快捷键设置
2026-09-28 15:28:50 +08:00
void ImportHotKeySet(const Array<CXMLNodeInfoEx> &aryData);
void WritePgp(const Array<CXMLNodeInfoEx> &aryData);
2026-10-04 00:04:20 +08:00
////导入其他设置
2026-09-28 15:28:50 +08:00
void ImportOtherSet(const Array<CXMLNodeInfoEx> &aryData);
void SetFontProperty(const CXMLNodeInfoEx&nodeInfo);
2026-10-04 00:04:20 +08:00
//导入用户操作
2026-09-28 15:28:50 +08:00
void ImportUserOpreatorSet(const Array<CXMLNodeInfoEx> &aryData);
void SetUserOpreator(const CXMLNodeInfoEx&nodeInfo);
2026-10-04 00:04:20 +08:00
// 导出图形相关设置
2026-09-28 15:28:50 +08:00
void ExportDwgSet(const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//导出墙柱设置
2026-09-28 15:28:50 +08:00
void ExportWallPillarSet(const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//导出墙柱材料
2026-09-28 15:28:50 +08:00
void ExortMaterialPattern(const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//轻质隔墙材料
2026-09-28 15:28:50 +08:00
void ExortMaterialPattern1(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//填充墙材料
2026-09-28 15:28:50 +08:00
void ExortMaterialPattern2(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//填充墙1材料
2026-09-28 15:28:50 +08:00
void ExortMaterialPattern3(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//填充墙2材料
2026-09-28 15:28:50 +08:00
void ExortMaterialPattern4(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//砖墙柱材料
2026-09-28 15:28:50 +08:00
void ExortMaterialPattern5(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//石墙柱材料
2026-09-28 15:28:50 +08:00
void ExortMaterialPattern6(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//钢筋混凝土
2026-09-28 15:28:50 +08:00
void ExortMaterialPattern7(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//刚柱
2026-09-28 15:28:50 +08:00
void ExortMaterialPattern8(TDbConfig *pConfig,const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//导出高级选项内容
2026-09-28 15:28:50 +08:00
void ExortAdvancedSet(const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//导出dict文档
2026-09-28 15:28:50 +08:00
void DictToXml(WDict *pDict,const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//导出dict中的父节点项
2026-09-28 15:28:50 +08:00
void DictToXmlParentNode(WDict *pDict,const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//导出dict中的叶子节点项
2026-09-28 15:28:50 +08:00
void DictToXmlLeafNode(WDict *pDict,const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//导出自定义内容
//导出屏幕菜单
2026-09-28 15:28:50 +08:00
void ExportScreenMenu(const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//导出工具条
2026-09-28 15:28:50 +08:00
void ExportToolBar(const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//导出快捷键设置
2026-09-28 15:28:50 +08:00
void ExportHotKey(const CXMLDOMNodePtr& pXMLDOMNodePtr);
void ExportPgp(const CXMLDOMNodePtr& pXMLDOMNodePtr);
void ExportOneHotKey(const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//导出其他设置
2026-09-28 15:28:50 +08:00
void ExportOtherSetting(const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//导出用户操作界面
2026-09-28 15:28:50 +08:00
void ExportUserOpreatorSetting(const CXMLDOMNodePtr& pXMLDOMNodePtr);
2026-10-04 00:04:20 +08:00
//根据指定命令名在dbf数据库中找到相应的描述
2026-09-28 15:28:50 +08:00
CString FindComment(const CString &strCmd);
2026-10-04 00:04:20 +08:00
//查找xml节点值在指定属性中的位置
2026-09-28 15:28:50 +08:00
int GetIndex(const CXMLNodeInfoEx &data,const CString &strAttriName);
2026-10-04 00:04:20 +08:00
//根据/ 把节点路径字符串分割成数组
2026-09-28 15:28:50 +08:00
void GetListCtrlIndex(const CXMLNodeInfoEx &data,CStringArray &arystr);
2026-10-04 00:04:20 +08:00
//把一个字符串分成多个字符串 按空格分
2026-09-28 15:28:50 +08:00
void DevideStr(const CString &str,CStringArray &aryStr);
2026-10-04 00:04:20 +08:00
//得到子串在原字符串中的位置定义尽适用于 “asd sd fg” 中查询asd等以空格分界
2026-09-28 15:28:50 +08:00
int GetSubStrNumInStr(const CString &str,const CString strSub)
{
CString strTem;
CStringArray arystr;
2026-10-04 00:04:20 +08:00
int nPos = str.Find(_T(" "),0);//根据空格区分子字符串
2026-09-28 15:28:50 +08:00
int nStart = 0;
while (nPos!=-1)
{
int nNum = nPos-nStart;
2026-10-04 00:04:20 +08:00
strTem = str.Mid(nStart,nNum);//得到子串添加到数组
2026-09-28 15:28:50 +08:00
arystr.Add(strTem);
nStart = nPos+1;
nPos = str.Find(_T(" "),nPos+1);
}
int nSize = str.GetLength();
if (nStart-1<nSize-1)
{
strTem = str.Mid(nStart,nSize-nStart);
arystr.Add(strTem);
}
2026-10-04 00:04:20 +08:00
// Zyu modify on 100722,支持64位
2026-09-28 15:28:50 +08:00
//int nLen = arystr.GetSize();
INT_PTR nLen = arystr.GetSize();
int i =0;
2026-10-04 00:04:20 +08:00
for (;i<nLen;i++)//在数组中查找指定字符串在数组中位置
2026-09-28 15:28:50 +08:00
{
CString strTest = arystr.GetAt(i);
if (strSub==strTest)
{
return i;
}
}
2026-10-04 00:04:20 +08:00
return -1;//没有匹配的返回-1
2026-09-28 15:28:50 +08:00
}
private:
2026-10-04 00:04:20 +08:00
CXMLDOMFile* m_pXMLDoc;//需要操作的文档
2026-09-28 15:28:50 +08:00
DList<CToolbarData> m_lstToolbarData;
};
#endif