gpt4 book ai didi

excel - 通过 DXL 递归列出文件夹中的所有 DOORS 模块并写入 Excel 表

转载 作者:行者123 更新时间:2023-12-04 20:17:48 25 4
gpt4 key购买 nike

我希望有人可以帮助我解决这个问题:
(我之前已经搜索过其他问题是否适合...)

我正在尝试使用递归 DXL 函数列出特定目录中的所有 DOORS 模块,并将模块名称(完整路径/名称)写入 Excel 表

这是我到现在为止得到的......问题似乎是“z”再次重置为1

在 Excel VBA 中,我像这样调用 DXL 脚本(有效):

objDoorsApp.runStr ("#include <" & sInterface & ">;;createFolderNameForRecursion ()")

它调用一个函数来最初调用递归函数:(也可以)
void createFolderNameForRecursion()
{
int z = 1
WriteAllModulesRecursively2ExistExcel(folder("/00_Platform/30Software/30_Basis_SW/IoStck"), z);
}

这是递归函数:
void WriteAllModulesRecursively2ExistExcel(Folder f, int z) 
{
Item i
Module m
string ausgabe,temp
OleAutoObj objExcel = oleGetAutoObject("Excel.Application")
OleAutoObj objBook
OleAutoObj objSheet = null
OleAutoArgs oleArgs = create
Object oCur
Module mCur
bool excelVisible
string sTemp = ""
string sResult = ""
//int iRow = 1
string sBookName = "PP_Tst_IT_Report_Template.xls"
string sSheetName = "Delivery"
string result = ""

/* Make Excel visible to the user */
oleGet(objExcel, "Visible", excelVisible)
if (!excelVisible) olePut(objExcel,"visible",true)

/* Get workbook */
sResult = oleGet(objExcel,"Workbooks", sBookName)

/* Get a handle on Sheet 1 in active workbook */
clear oleArgs
put(oleArgs, sSheetName)
sResult = oleGet(objExcel, "Sheets", oleArgs, objSheet)

for i in f do
{

if (type(i)=="Folder" || type(i) =="Project") { WriteAllModulesRecursively2ExistExcel(folder(i), z) }
if (type(i)=="Formal")
{
sTemp = fullName i
if (sTemp!=null)
{

result = z " --> " fullName i "\n"

objCell = ExcelGetCell(objSheet, z, 1)
olePut(objCell,"Value",result)

z++
}
}
}
oleCloseAutoObject (objExcel)
}

就像我说的,如果到达文件夹的“结尾”,“z”将重置为 1。
我能做些什么呢?有什么办法吗?

如果我只是说
print fullName i "\n"

它可以工作......但我需要excel表中的模块名称

最佳答案

我会尝试移动 int z = 1在你的职能之外。如果它在脚本的外层,它将是全局的。您不需要将它传递给函数,它不应该被重置。

例子:

int z = 1

void WriteAllModulesRecursively2ExistExcel(Folder f)
{
// do something
z++
}

void createFolderNameForRecursion() {
WriteAllModulesRecursively2ExistExcel(YOUR_FOLDER)
}

祝你好运!

关于excel - 通过 DXL 递归列出文件夹中的所有 DOORS 模块并写入 Excel 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18010355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com