在打开单据情况下选择指定分录行打印原创
金蝶云社区-夏日弥光
夏日弥光
1人赞赏了该文章 598次浏览 未经作者许可,禁止转载编辑于2021年11月18日 14:52:25

        在某些特定业务场景下(业务部门:我就是要在打开单据情况下选择分录进行打印,不想在列表里面选择。实现不了就是你不专业!),需要在打开单据的情况下选择某些分录进行打印。

基于这种需求,我们可以在表单插件OnPrepareNotePrintQueryParam里面干预FilterClauseWihtKey进行自定义过滤,代码如下,很简单,就不详细解释了。

        public override void OnPrepareNotePrintQueryParam(PrepareNotePrintQueryParamEventArgs e)
        {

            if (e.DataSourceId.Equals("FEntity", StringComparison.OrdinalIgnoreCase))
            {
                //获取选择的行
                int[] selectedIndexsR = this.View.GetControl<EntryGrid>("FEntity").GetSelectedRows();
                QueryBuilderParemeter parameter = e.QueryParameter;
                string strgroupfseq = "";
                for (int i = 0; i < selectedIndexsR.Length; i++)
                {
                    //将选择的行以此 带上“,”拼接
                    strgroupfseq += (selectedIndexsR[i] + 1) + ",";
                }
                strgroupfseq = strgroupfseq.TrimEnd(',');
                if (strgroupfseq != "")
                {
                    //过滤所选择的行
                    parameter.FilterClauseWihtKey = "Fseq in (" + strgroupfseq + ")";
                }
                else
                {
                    this.View.ShowErrMessage("请选中分录行", "打印提示");
                }
                base.OnPrepareNotePrintQueryParam(e);
            }
        }

这样就可以在打开单据的情况下实现,单选、连续选择、跳行多选所选分录

赞 1