财务常见问题汇总原创
金蝶云社区-梧桐有语
梧桐有语
10人赞赏了该文章 838次浏览 未经作者许可,禁止转载编辑于2022年12月01日 16:10:21

1.问:凭证模板里面的,核算组织来源怎么新增。

答:核算组织来源,指的是选择 单据上的哪个组织字段

image.png

以生产入库单为例, 核算组织来源,取的是单据头上的 生产组织 字段

2.问:付款单为什么不能录入负数的。

答:付款单源单明细页签的金额可以有正数和负数,明细页签中的金额只能是正数。实际业务场景中,付款的金额只能有正数的金额,所以明细页签的金额不能录入负数的,如果是付款之后的退款业务,请使用付款退款单(进入【出纳管理】-【付款退款单】新增)处理。

3.问:WEB api 收款单接口 报错 第1行分录,银行业务的结算方式,我方银行相关信息必录 。

答:未识别到银行账号。

4.问:智能会计平台里是否可以设置必须生成凭证的单据类型? 

答:可以。有参数、您取消 必须生成凭证即可。但是你要注意对账能对的上哈。注意对账的问题。

5.问:单据体添加上移下移按钮。

答:采购订单,针对明细信息单据体,上移下移数据行。

【实现步骤】

<1>编写表单插件,代码如下。

using Kingdee.BOS.Core.DynamicForm;

using Kingdee.BOS.Core.DynamicForm.PlugIn;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;

using Kingdee.BOS.Util;

using System;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【表单插件】单据体上移下移数据行

    /// </summary>

    [Description("【表单插件】单据体上移下移数据行"), HotUpdate]

    public class MoveUpAndMoveDownPlugIn : AbstractDynamicFormPlugIn

    {

        #region var


        /// <summary>

        /// 单据体的Key

        /// </summary>

        private string EntryEntityKey = "FPOOrderEntry";


        #endregion


        /// <summary>

        /// 分录行菜单点击事件

        /// </summary>

        /// <param name="e"></param>

        public override void EntryBarItemClick(BarItemClickEventArgs e)

        {

            base.EntryBarItemClick(e);

            if (e.BarItemKey.Equals("tbMoveUp", StringComparison.OrdinalIgnoreCase))

            {

                if (string.IsNullOrEmpty(this.View.BillBusinessInfo.GetEntity(EntryEntityKey).SeqFieldKey))

                {

                    MoveEntryRow(this.View, EntryEntityKey, true);

                }

                else

                {


                    MoveEntryRowBySeq(this.View, EntryEntityKey, true);

                }

            }


            if (e.BarItemKey.Equals("tbMoveDown", StringComparison.OrdinalIgnoreCase))

            {

                if (string.IsNullOrEmpty(this.View.BillBusinessInfo.GetEntity(EntryEntityKey).SeqFieldKey))

                {

                    MoveEntryRow(this.View, EntryEntityKey, false);

                }

                else

                {


                    MoveEntryRowBySeq(this.View, EntryEntityKey, false);

                }

            }

        }


        /// <summary>

        /// 移动分录行

        /// </summary>

        /// <param name="view"></param>

        /// <param name="key"></param>

        /// <param name="isUp"></param>

        private static void MoveEntryRow(IDynamicFormView view, string key, bool isUp)

        {

            var rowIndex = view.Model.GetEntryCurrentRowIndex(key);

            if (isUp)

            {

                // 上移


                if (rowIndex <= 0)

                {

                    return;

                }


                view.Model.MoveUpEntryRow(key, rowIndex);

                view.GetControl<EntryGrid>(key).SetFocusRowIndex(rowIndex - 1);

                view.ShowMessage("数据行已上移");

                return;

            }

            else

            {

                // 下移

                var rowCount = view.Model.GetEntryRowCount(key);

                if (rowIndex < 0 || rowIndex >= rowCount - 1)

                {


                    return;

                }


                view.Model.MoveDownEntryRow(key, rowIndex);

                view.GetControl<EntryGrid>(key).SetFocusRowIndex(rowIndex + 1);

                view.ShowMessage("数据行已下移");

                return;

            }

        }


        /// <summary>

        /// 移动分录行

        /// </summary> 

        /// <param name="view"></param>

        /// <param name="key"></param>

        /// <param name="isUp"></param>

        private static void MoveEntryRowBySeq(IDynamicFormView view, string key, bool isUp)

        {

            var rowIndex = view.GetControl<EntryGrid>(key).GetFocusRowIndex();

            if (isUp)

            {

                // 上移


                if (rowIndex <= 0)

                {

                    return;

                }


                var entity = view.BillBusinessInfo.GetEntity(key);

                var rowData = view.Model.GetEntityDataObject(entity, rowIndex);

                view.Model.DeleteEntryRow(key, rowIndex);

                rowIndex--;

                view.Model.CreateNewEntryRow(entity, rowIndex, rowData);

                view.GetControl<EntryGrid>(key).SetFocusRowIndex(rowIndex);

                view.ShowMessage("数据行已上移");

                return;

            }

            else

            {

                // 下移

                var rowCount = view.Model.GetEntryRowCount(key);

                if (rowIndex < 0 || rowIndex >= rowCount - 1)

                {


                    return;

                }


                var entity = view.BillBusinessInfo.GetEntity(key);

                var rowData = view.Model.GetEntityDataObject(entity, rowIndex);

                view.Model.DeleteEntryRow(key, rowIndex);

                rowIndex++;

                view.Model.CreateNewEntryRow(entity, rowIndex, rowData);

                view.GetControl<EntryGrid>(key).SetFocusRowIndex(rowIndex);

                view.ShowMessage("数据行已下移");

                return;

            }

        }

    }

}


<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


<3>BOSIDE扩展采购订单,单据体菜单集合添加新菜单,注册表单插件,保存元数据,开发完毕。



【功能验证】

登录业务站点,打开采购订单编辑界面,点击上移下移,就可以移动数据行啦。

---------------------------------------------------------------------------------------------------------




【知识点】

<1>如果单据体设置了序号列,移动数据行将重置相关行的序号,保存单据数据后,会最终影响数据行的排序(单据界面的单据体数据行始终按序号顺序显示)。

<2>如果单据体没设置序号列,移动数据行仅在当前界面有效,并不能改变数据行的真实排序(保存并关闭当前界面后,再次打开单据编辑界面时,数据行还是调整前的)。

----------------------------------------------------------------------------------------

【参考资料】

【二开案例.表单插件.树形单据体】https://vip.kingdee.com/article/165462548668510976

6.问:如何控制单据打印次数。

答:举例:其他应收单控制打印次数不超过2次

1)登录系统后,进入[基础管理]→[基础资料]→[单据类型列表],找到其他应收单的默认单据类型

2)反审核单据类型,切换到打印控制页签,将“控制打印次数”打印,并设置最大打印次数为2次,进行保存,提交,审核后进行控制。

注:若超过后还需继续打印,可以取消此处参数控制,或者修改打印次数。

另:使用administrator登陆系统后,在[基础管理]→[公共设置]→[单据设置]→[单据参数配置]下的整体参数页签,也有“控制打印次数”设置,此控制为系统级的,设置后此单据的所有单据类型都会进行控制,而在单据类型中的控制打印次数,只控制设置的单据类型,如两者都进行了设置,实际取以上两处设置中最小的次数

7.问:查询用户选项里面的用户同步参数是灰色的,不能勾选。

答:需要使用administrator用户登录,才可以修改用户同步参数。

8.问:演示版中,监控执行情况列表的记录数(含历史记录)超过100条,不能打开!

答:申请测试许可引入后可打开。

赞 10