问答题 假设科目余额表文件中存放了所有科目(一级及其下属各级科目)的期末余额以及各期借、贷发生额,但没有存放各科目的年初余额,现在请你设计相关函数可用米计算任意指定某科目的年初余额。科目余额表文件的字段构成也需要由你自行定义设计(提示:你可以用自己熟悉的任意语言但不能是PDL来设计相关函数)。
【正确答案】(1) 科目余额表文件为ZWYEB.DBF,其文件结构如下表所示:
   
序号
字段名
类型
长度
小数位
1
科目代码
C
11
2
月01借方
N
12
2
3
月01贷方
N
12
2
4
月02借方
N
12
2
5
月02贷方
N
12
2
vdots
vdots
vdots
vdots
vdots
24
月12借方
N
12
2
25
月12贷方
N
12
2
26
余额方向
C
2
27
期未余额
N
12
2

   其中,“余额方向”表示该科目期末余额的方向,取值规定为:值为“借”表示该科目期末余额为借方,值为“贷”表示该科目期末余额为贷方;“月01借方”、“月01贷方”……分别表示该科目从第1期到第12期的借、贷合计数。
   (2) 构造函数格式为:GETNCS(科目代码)
   函数对应的程序(程序文件名为GETNCS.PRG)如下:
   PARAMETER KMDM
   IF USED(“ZWYEB”)
     SELE YEB
   ELSE
     SELE 0
     USE ZWYEB ALIAS YEB
   ENDIF
   INDEX ON科目代码TO ZWYEB.IDX
   CO TOP
   LSKMDM=ALITRIM(KMDM)
   IF LEN(LSKMDM)#11
     LSKMDM=LSKMDM+SPACE(11-LEN(LSKMDM))
   ENDIF
   SEEK LSKMDM
   IF!FOUND()
     RET_VAL=0
   FLSF
   QMYE=YEB.期末余额
   I=1
   STORE 0.00 TO M.jfhj,m.dfhj
   DO WHILE I<=12
     IF I<10
       JF=“月”+“0”+STR(I,1)+“借方”
       DF=“月”+“0”+STR(I,1)+“贷方”
   ELSE
     JF=“月”+STR(I,2)+“借方”
     DF=“月”+STR(I,2)+“贷方”
   ENDIF
   M.JFHJ=M.JFHJ+&JF
   M.DFHJ=M.DFHJ+&DF
   I=I+1
   ENDD0
   IF YEB.余额方向=“借”
     RET_VAL=QMYE-M.JFHJ+M.DFHJ
   ELSE
     RET_VAL=QMYE+M.JFHJ-M.DFHJ
   ENDIF
 ENDIF
 USE
   RETURN RET VAL
【答案解析】