在打开单据情况下选择指定分录行打印原创
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); } }
这样就可以在打开单据的情况下实现,单选、连续选择、跳行多选所选分录
推荐阅读