电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

应收单或应付单列表“发票号码”字段无法排序,如何解决

来源:金蝶云社区作者:金蝶2024-09-2219

应收单或应付单列表“发票号码”字段无法排序,如何解决

1、问题描述


应收单或应付单列表中,对“发票号码”字段进行“排序”操作,但未生效

————

类似问题:应收单或应付单列表“发票代码”字段无法排序

2、原因分析


因应收开票业务中,涉及一张应收单对应多张发票的情况,当对应的发票数量大时,发票代码/发票号码字段需要支持存储较大长度的数据。为存储需要,该字段由最初的varchar修改为clob类型,造成排序失效,clob大文本字段不支持排序。在确认客户开票业务不涉及一张应收单对应大量发票的情况下,可以在客户环境修改“发票代码”/“发票号码”的字段类型。

3、解决方案

本方案以应收单为例,如需要修改应付单发票代码/号码字段,步骤相同,表名需替换为应付单表。

3.1 确认历史数据不超过varchar类型最大长度限制(Oracle:4000,Sqlserver:8000)

————执行以下语句查询

select  max(length(FINVOICECODE )) from T_AR_OTHERBILL 

select  max(length(FInvoiceNo)) from T_AR_OTHERBILL


查看返回值,如果大于(Oracle:4000,Sqlserver:8000),则说明客户环境历史数据中,已存在数据大于限制,不可进行字段类型变更操作,该解决方案不适用。如果小于,可继续按本文档步骤继续操作。

3.2  数据备份

为避免执行过程存在异常,导致数据丢失,请在执行操作前,一定做好数据的备份

————执行以下语句备份

select  * into T_AR_OTHERBILL_bak from T_AR_OTHERBILL

3.3  执行字段类型修改语句

————执行以下语句修改“发票代码”字段类型,以Oracle为例

IF EXISTS(SELECT 1 FROM KSQL_USERCOLUMNS WHERE KSQL_COL_TABNAME = 'T_AR_OTHERBILL' AND KSQL_COL_NAME = 'FInvoiceCode')

alter table T_AR_OTHERBILL add FInvoiceCode_bak VARCHAR(4000);

if exists (select 1 from KSQL_USERCOLUMNS where KSQL_COL_TABNAME = 'T_AR_OTHERBILL' and KSQL_COL_Name = 'FInvoiceCode_bak')

update T_AR_OTHERBILL set FInvoiceCode_bak = FInvoiceCode;

if exists (select 1 from KSQL_USERCOLUMNS where KSQL_COL_TABNAME = 'T_AR_OTHERBILL' and KSQL_COL_Name = 'FInvoiceCode_bak')

alter table T_AR_OTHERBILL drop default for FInvoiceCode;

if exists (select 1 from KSQL_USERCOLUMNS where KSQL_COL_TABNAME = 'T_AR_OTHERBILL' and KSQL_COL_Name = 'FInvoiceCode_bak')

update T_AR_OTHERBILL set FInvoiceCode=null;

if exists (select 1 from KSQL_USERCOLUMNS where KSQL_COL_TABNAME = 'T_AR_OTHERBILL' and KSQL_COL_Name = 'FInvoiceCode_bak')

alter table T_AR_OTHERBILL drop column FInvoiceCode ;

IF EXISTS(SELECT 1 FROM KSQL_USERCOLUMNS WHERE KSQL_COL_TABNAME = 'T_AR_OTHERBILL' AND KSQL_COL_NAME = 'FInvoiceCode_bak')

alter table T_AR_OTHERBILL add FInvoiceCode VARCHAR(4000);

if exists (select 1 from KSQL_USERCOLUMNS where KSQL_COL_TABNAME = 'T_AR_OTHERBILL' and KSQL_COL_Name = 'FInvoiceCode_bak')

update T_AR_OTHERBILL set FInvoiceCode = FInvoiceCode_bak;

if exists (select * from KSQL_USERCOLUMNS where KSQL_COL_TABNAME = 'T_AR_OTHERBILL' and KSQL_COL_Name = 'FInvoiceCode_bak')

alter table T_AR_OTHERBILL drop column FInvoiceCode_bak;

————执行以下语句修改“发票号码”字段类型

IF EXISTS(SELECT 1 FROM KSQL_USERCOLUMNS WHERE KSQL_COL_TABNAME = 'T_AR_OTHERBILL' AND KSQL_COL_NAME = 'FInvoiceNo')

alter table T_AR_OTHERBILL add FInvo

应收单或应付单列表“发票号码”字段无法排序,如何解决

1、问题描述应收单或应付单列表中,对“发票号码”字段进行“排序”操作,但未生效————类似问题:应收单或应付单列表“发票代码”字段...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信