网格混乱,行被折叠和展开

2020-09-26 16:54发布

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

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


我对折叠和展开功能有疑问。 我添加了一些行,并设置了gridLevelLevel =1。

一切正常显示并按我的预期进行分组,但是当我要捕获行数据时,得到的数据不正确。 问题在于,将数据分组后,按组进行排序,然后单击任何行都会给我其他行数据。

例如,当我单击第3行时,我从第2行获取数据。

网格EqElemGrd = form.Items.Item(PhysicalPropertyFormulaForm.Controls.EquationElements.Grid).Specific;
             DataTable EqElemData = form.DataSources.DataTables.Item(PhysicalPropertyFormulaForm.DataSources.EquationElements.DataTable);
             EqElemData.Rows.Clear();


             Dictionary  functions =新的Dictionary ();
             functions.Add(" ABS(x)","返回x的绝对值。");
             functions.Add(" ACOS(x)","以弧度返回x的反余弦值。");
             functions.Add(" ASIN(x)","以弧度返回x的反正弦值。");
             functions.Add(" ATAN2(x; y)","考虑x和y的符号返回ATAN(y/x)。");
             functions.Add(" ATAN(x)","以弧度返回x的反正切值。");
             functions.Add(" CEILING(x; signif)","返回最近的倍数signif");

             int i = 0;


             foreach(函数中的var func)
             {


                 EqElemData.Rows.Add();
                 EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Type,i," Function");
                 EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Code,i,func.Key);
                 EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Description,i,func.Value);
                 i ++;


             }




             EqElemData.Rows.Add();
             EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Type,i," Global");
             EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Code,i," TW");
             EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Description,i,"总配方重量");
             i ++;
             EqElemData.Rows.Add();
             EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Type,i," Global");
             EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Code,i," TV");
             EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Description,i,"总配方量");
             i ++;


             QueryManager qm =新的QueryManager();
             qm.SimpleTableName =" @CT_PF_OIPR";
             qm.SetSimpleWhereFields(" U_FrlaPrp");
             qm.SetSimpleResultFields(" U_FrlaType"," U_PrpCode"," U_PrpName");


             使用(var result = qm.ExecuteSimpleParameters(""," Y"))
             {
                 for(int k = 0; k 

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

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


我对折叠和展开功能有疑问。 我添加了一些行,并设置了gridLevelLevel =1。

一切正常显示并按我的预期进行分组,但是当我要捕获行数据时,得到的数据不正确。 问题在于,将数据分组后,按组进行排序,然后单击任何行都会给我其他行数据。

例如,当我单击第3行时,我从第2行获取数据。

网格EqElemGrd = form.Items.Item(PhysicalPropertyFormulaForm.Controls.EquationElements.Grid).Specific;
             DataTable EqElemData = form.DataSources.DataTables.Item(PhysicalPropertyFormulaForm.DataSources.EquationElements.DataTable);
             EqElemData.Rows.Clear();


             Dictionary  functions =新的Dictionary ();
             functions.Add(" ABS(x)","返回x的绝对值。");
             functions.Add(" ACOS(x)","以弧度返回x的反余弦值。");
             functions.Add(" ASIN(x)","以弧度返回x的反正弦值。");
             functions.Add(" ATAN2(x; y)","考虑x和y的符号返回ATAN(y/x)。");
             functions.Add(" ATAN(x)","以弧度返回x的反正切值。");
             functions.Add(" CEILING(x; signif)","返回最近的倍数signif");

             int i = 0;


             foreach(函数中的var func)
             {


                 EqElemData.Rows.Add();
                 EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Type,i," Function");
                 EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Code,i,func.Key);
                 EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Description,i,func.Value);
                 i ++;


             }




             EqElemData.Rows.Add();
             EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Type,i," Global");
             EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Code,i," TW");
             EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Description,i,"总配方重量");
             i ++;
             EqElemData.Rows.Add();
             EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Type,i," Global");
             EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Code,i," TV");
             EqElemData.SetValue(PhysicalPropertyFormulaForm.DataSources.EquationElements.Columns.Description,i,"总配方量");
             i ++;


             QueryManager qm =新的QueryManager();
             qm.SimpleTableName =" @CT_PF_OIPR";
             qm.SetSimpleWhereFields(" U_FrlaPrp");
             qm.SetSimpleResultFields(" U_FrlaType"," U_PrpCode"," U_PrpName");


             使用(var result = qm.ExecuteSimpleParameters(""," Y"))
             {
                 for(int k = 0; k   
付费偷看设置
发送
4条回答
空代码
1楼 · 2020-09-26 17:17.采纳回答

嗨,

发生问题是因为当您折叠网格时,行与链接到的数据表不同,因此您可以使用GetDataTableRowIndex来获取正确的行

 EqBody.Value + = ElementsBodyGrd.DataTable.GetValue(PhysicalPropertyFormulaForm.Controls.EquationElements.Columns.Code,ElementsBodyGrd.GetDataTableRowIndex(itemEvent.Row)); 
亦是此间程序员
2楼-- · 2020-09-26 17:22

是否可以共享代码 用于从网格获取数据? 据我了解,这段代码显示了如何填充网格

追夢秋陽
3楼-- · 2020-09-26 17:15
公共重写void OnDoubleClickAfter(字符串FormUID,ref PItemEvent itemEvent)
         {


             如果(itemEvent.ItemUID == PhysicalPropertyFormulaForm.Controls.EquationElements.Grid && itemEvent.Row!= -1)
             {
                
                 表格形式= itemEvent.CurrentForm;
                 网格ElementsBodyGrd = form.Items.Item(PhysicalPropertyFormulaForm.Controls.EquationElements.Grid).Specific;
              
                 EditText EqBody = form.Items.Item(PhysicalPropertyFormulaForm.Controls.EquationBodyEditText).Specific;




                 EqBody.Value + = ElementsBodyGrd.DataTable.GetValue(PhysicalPropertyFormulaForm.Controls.EquationElements.Columns.Code,itemEvent.Row);


             }
         }
 
4楼-- · 2020-09-26 17:28

这说明并解决了我的问题:

https://archive.sap.com/discussions/thread/1692725 #

再次感谢您的努力。

祝你有美好的一天:)

一周热门 更多>