如何使Matrix列可编辑和不可编辑?

2020-09-06 09:27发布

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

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


大家好,

我想根据我的条件结果使矩阵列可编辑为false和true。

在行** 错误 **

中显示错误"项目不是用户定义的项目"

有人可以帮助我解决这个问题吗?

我的编码如下

 如果Trim(sValue)=" Y"或Trim(sValue)=" Yes",则
             objMatrix.Columns.Item(" 1")。Editable = False
   其他
             objMatrix.Columns.Item(" 1")。Editable = True'***错误***
  万一
 

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

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


大家好,

我想根据我的条件结果使矩阵列可编辑为false和true。

在行** 错误 **

中显示错误"项目不是用户定义的项目"

有人可以帮助我解决这个问题吗?

我的编码如下

 如果Trim(sValue)=" Y"或Trim(sValue)=" Yes",则
             objMatrix.Columns.Item(" 1")。Editable = False
   其他
             objMatrix.Columns.Item(" 1")。Editable = True'***错误***
  万一
 
付费偷看设置
发送
8条回答
Doze时光
1楼 · 2020-09-06 09:50.采纳回答

嗨,

在系统矩阵中尝试此错误消息。

系统矩阵不是用户定义的项目

->您不能使用Editable = True

lg David

Alawn_Xu
2楼-- · 2020-09-06 09:35

私有静态无效Event_ComboSelectAfter(SAPbouiCOM.Form oFrm,SAPbouiCOM.ItemEvent pVal, out bool BubbleEvent)
{
BubbleEvent = false;
SAPbouiCOM.Folder flder;
SAPbouiCOM.Matrix oMatrix;
尝试
{

oFrm.Freeze(true);
CommonUtil.StatoFiltri(false);

oMatrix.Columns.Item(" 2007")。Visible = true;
oMatrix.Columns.Item(" 2007")。Width = 50;
(((SAPbouiCOM.ComboBox)oMatrix.Columns.Item (" 2007")。Cells.Item(pVal.Row).Specific).Active = true;
(((SAPbouiCOM.CheckBox)oMatrix.Columns.Item(" 2007")。Cells.Item(pVal.Row) .Specific).Checked = true;

}

catch(异常例外)
{

oFrm.Freeze(false);
CommonUtil.StatoFiltri(true);

}

clasier
3楼-- · 2020-09-06 09:33

嗨...

使用此代码

将OMat用作SAPbouiCOM.Matrix

将OCols作为SAPbouiCOM.Columns

Dim ocol as SAPbouiCOM.Column

作为SAPbouiCOM.Item的昏暗背景

oitem = OForm.Items.Item(" Matrix-ID")

OMat = oitem.Specific

OCols = OMat.Columns

ocol = OCols.Item("列ID")

ocol.Editable = False

ocol = OCols.Item("列ID")

ocol.Editable = True

关于..

Billa 2007

nice_wp
4楼-- · 2020-09-06 09:37

嗨,

对于系统表单->"表单设置"窗口

或者您可以尝试操作CPRF表 -但这仅在所有业务部门关闭并且

再次打开业务部门时有效。

您看到的-没有真正适合您的解决方案...

lg David

灬番茄
5楼-- · 2020-09-06 09:38

尊敬的Tamizharasi

对于系统项目,您可以设置一个可编辑的enable = false,而不能设置不可编辑的enable = true。

这对于保护默认数据的完整性确实很有意义。

如果在您的应用程序中确实需要这种功能,则可以创建自己的Item,并与与系统item相同的数据源进行绑定

然后,您可以根据需要设置enabled = true或false。

谢谢

Warren。

compass1988
6楼-- · 2020-09-06 09:53
< p>当我想从数据输入中"保护"矩阵列时,我使用以下代码

拒绝矩阵中"键按下"事件期间的输入(使用bubble = false)。

我使用B1DE向导生成插件,因此不是特定功能

对于按键,您可以将我的代码包装在IF stmt中,如下所示:

(其中3是BOM表上的矩阵ID,而4是价格列):

如果pval.EventType = BoEventTypes.et_KEY_DOWN和pval.ItemUID =" 3"

        '公共可重写函数OnKeyDown(ByVal pVal作为ItemEvent)为布尔值

             尝试

                 暗淡形式为Form = B1Connections.theAppl.Forms.Item(pVal.FormUID)
                 昏暗的物品为Item = form.Items.Item(" 3")
                 Dim matrix As Matrix = item.Specific

                 如果pVal.ColUID =" 4",则
                     B1App.MessageBox("您不能覆盖组件价格。")
                     返回假
                 万一

             异常捕获
                 B1App.MessageBox(例如ToString)
             结束尝试

             返回真

         结束函数
愤怒的猪头君
7楼-- · 2020-09-06 09:40

您好

在SBO 2005A SP01 PL 46中可编辑=正确(可能仅适用于UDF和DBDataSource):

((Matrix)form.Items.Item(" 38")。Specific).Columns.Item(" U_WREDE_Discount")。Editable = true; 

此处未引发任何错误。

(我必须在form.Freeze(true)之后使用它以在此禁用列中写入一些数据,此后,我再次切换为Editable = false,然后取消冻结表单。)

(我正在寻找一种将系统矩阵中的UDF列设置为可见和不可见的解决方案。)

亲切的问候

基督徒

***

你好,....今天它不再工作了????

这似乎取决于通过代码创建UDF。 这些新字段可进行多次编辑...

编辑:ChristianBührig于2008年10月21日下午5:42

一周热门 更多>