1.问:凭证模板里面的,核算组织来源怎么新增。
答:核算组织来源,指的是选择 单据上的哪个组织字段
以生产入库单为例, 核算组织来源,取的是单据头上的 生产组织 字段
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条,不能打开!
答:申请测试许可引入后可打开。