从一个回答说起(获取动态列表选中行)原创
金蝶云社区-山抹微云
山抹微云
8人赞赏了该文章 1,171次浏览 未经作者许可,禁止转载编辑于2020年04月14日 17:28:57

  感谢该爱好者要求我回复问题, 问题描述为 "我在及时库存查询加了一个按钮,选定行后出发操作,但是该怎么获取到当前选定行?"(地址为 https://vip.kingdee.com/questions/57674/answers/221261)。

  我想解答问题,首先锁定了 即时库存的前端业务位置,

  image.png

 用HTTP监控, 发现FormId为"STK_InventoryQuery" 如下图

image.png

双击下任意行, 其界面为

image.png

对应进去相关的BOS页面, 发现界面如下

 image.png

确定FormId 为"STK_InventoryQuery", 两者FormId是一样的,这就说明了,我没找错。

看回其源代码,是在OnInitialize函数的末尾调用了事件 AddOnivListForm函数,其部分(加载汇总序时簿)的代码如下

image.png

其实在 HTTP监控中也得到了验证,如下图

image.png

现在我们假定是要在 子窗口 (上方)STK_InvSumQuery 增加个按钮,根据选中的行 然后显示 物料内码,如下:

image.png

要在STK_InvSumQuery 新增按钮, 然后挂插件,是插件AbstractListPlugIn,代码如下,

                case "LDQ_TBBUTTON":

                   ListSelectedRowCollection  selectedRowsBy =   this.ListView.CanDealWithRows   ;

                    StringBuilder str = new StringBuilder("");

                    for (int i = 0; i < selectedRowsBy.Count(); i++ )

                    {

                       string sbtr1 = selectedRowsBy[i].DataRow["FMaterialId_Id"].ToString();

                       StringBuilder str1 = new StringBuilder(sbtr1);

                       str.Append(str1);

                        str.Append(", ");

                    }

                    this.View.ShowMessage(str.ToString());

                    break;

即可完成了。

  谨感觉帮助我的ZZQuan老师。

图标赞 8
8人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!