插入一个新的列宏

2020-08-26 08:42发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我需要在每个非关键列之后...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我需要在每个非关键列之后插入一个后缀__BI(在iage之前)的新列。 该列和相应的__BI列需要在一起。 我对Powerdesigner宏比较陌生。 我尝试了以下代码,但在末尾插入了__BI列。 此外,它还会为键列创建__BI。

有什么建议吗?

谢谢。

[代码]

dim mdl,col,ggCol,选项卡集mdl = ActiveModel设置选项卡= ActiveSelection.Item(0)(tab)列'1)复制列集ggCol = tab.Columns.CreateNew ggCol.Code = col .Code&" __BI" ggCol.Name ="图像之前"和col.Name ggCol.DataType = col.DataType ggCol.Mandatory = col.Mandatory ggCol.Comment = col。在tab.Columns列中注释下一个'col

[/code]

Sunil

3条回答
昵称总是被占用
2020-08-26 09:15

嗨苏尼尔,


此问题有两个部分。 您显然设法完成了第一个步骤,即创建了列。 您只需要避免键列。 您将在下面的示例脚本中找到操作方法。


第二部分是对列进行排序。 因此,一旦在表末尾插入了所有带有" __BI"后缀的列,就需要将这些列移到每个表的Columns集合中的适当位置/索引。 索引以0开头,因此具有5列的表的索引范围为0..4。 您可以使用下面随附的示例脚本。 问题在于,在同时浏览此集合的同时更改Columns集合成员(即Columns)的位置不是很好。 这意味着,仅当所有__BI列都位于每个表的最后时(如果使用当前脚本),才可以使用我的脚本。 如果您的__BI列分散在整个表中,则需要在每次移动后添加一些逻辑或破坏循环,然后一次又一次地运行直到所有列都被排序为止。

对于i = 0到tab.Columns.Count-1
   输出" -------"
   设置col = tab.Columns.Item(i)
   如果Right(col.Code,4)<>" __BI"且col.Primary = false,则
     对于j = 0到tab.Columns.Count-1
       设置col2 = tab.Columns.Item(j)
       如果Right(col2.Code,4)=" __BI",而Left(col2.Code,Len(col2.Code)-4)= col.Code,则
         如果i + 1 <> j
           tab.Columns.Move i + 1,j
           输出"列从:+ CStr(j)+移至:+ CStr(i + 1)"
           退出
         万一
       万一
     下一个
   万一
 下一个

HTH,

Ondrej

一周热门 更多>