Board logo

标题: [V12功能解说] 采购屏幕上的供应商编号审核 [打印本页]

作者: lynn.yu    时间: 2021-10-14 16:25     标题: [V12功能解说] 采购屏幕上的供应商编号审核

* 本文由赛捷软件(上海)有限公司翻译完成,未经授权不得转载。如需转载,请先联系相应版块的版主取得授权。



在Sage X3中,在采购屏幕上的管理页签中有一个【供应商号】字段可用。这是一个必填字段,这意味着在创建记录时,我们不能跳过这个字段。我们必须在这个字段中录入数据,然后我们才能进一步进行操作。

我们有一个客户要求,在当前会计年度中在供应商号字段中录入的数据不应该重复,而且我们必须用大小写字母条件来处理。而会计年度将在“供应商日期”的基础上来计算。

例如,假设用户为供应商A创建了第一条记录并录入“TEST1”作为供应商号。之后,用户为同一供应商创建第二条记录,并试图录入“test1”作为供应商号,那么系统不应该允许用户创建记录,因为号是一样的,不管它是小写还是大写。

[attach]7128[/attach]
BPRVCR(供应商号)

[attach]7129[/attach]
采购——第一条记录

对于第一条记录,供应商是SD0014,用户在供应商号中录入“sd08”,会计年度是2021-2022。

对于第二条记录,供应商是SD0014,用户在供应商号中录入“SD08”,会计年度是2021-2022。

[attach]7130[/attach]
采购——第2条记录

那么系统将不允许创建这条记录。并会产生 “该供应商号SD08已录入”的弹出消息,如下面的截图所示。

[attach]7131[/attach]
弹出消息

为此,我们对采购屏幕进行了定制。请参考以下代码:

####################################################################
IF [MIH1]BPRVCR<>””
Local Char REQUEST1(255)(8)
REQUEST1(0) = ” SELECT NUM_0 FROM “+nomap+”.PINVOICE P “
REQUEST1(1) = ” WHERE P.BPR_0='”+[PIH0]BPR+”‘ AND UPPER(P.BPRVCR_0)=UPPER(‘”+[PIH1]BPRVCR+”‘) and “
REQUEST1(2) = ” P.BPRDAT_0 BETWEEN DateFromParts((CASE WHEN MONTH(‘”+[MIH1]BPRDAT+”‘) IN(1,2,3) THEN (YEAR(‘”+[MIH1]BPRDAT+”‘)-1) ELSE YEAR(‘”+[M:PIH1]BPRDAT+”‘) END),04,01) “
REQUEST1(3) = ” and DateFromParts((CASE WHEN MONTH(‘”+[M:PIH1]BPRDAT+”‘) NOT IN(1,2,3) THEN (YEAR(‘”+[M:PIH1]BPRDAT+”‘)+1) ELSE YEAR(‘”+[M:PIH1]BPRDAT+”‘) END),03,31)”
FOR (Char DTEXTE_0) FROM “5” Sql REQUEST1 As [YCHD]
IF [M:PIH0]NUM =[YCHD]DTEXTE_0
ELSE
INFBOX “This Supplier Document number ” +num$([M:PIH1]BPRVCR)+” already enteredon invoice “+[YCHD]DTEXTE_0
OK =0
GOK = 0
GPE = 1
ENDIF
NEXT
ENDIF
####################################################################

并在SPEPIH脚本的VERIF_CRE和VERIF_MOD上添加了上述代码。审核了该脚本。

现在,如果用户试图为同一个供应商和同一个会计年度创建另一条新记录,但不同的供应商号,那么系统只会允许创建此类记录。




欢迎光临 赛捷软件论坛 (http://sagesoft.cn/bbs/) Powered by Discuz! 7.2