这个例子昨天正好看了,话说那本书的例子都很不错~
1 q& w. R& @4 z9 b9 r不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
( v5 Q% `6 T1 j6 c: Tis
* R# R6 W9 |# G8 f# A |% K4 z i,no,m:integer; --定义整型
& A' d; I* \2 x) j. z: i& A, x: { Buf:object; --定义object+ H: ~) q/ ]# G" o
do
" s4 B- e8 r3 ~ m:=0;5 n7 X. Q: V6 K
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
7 j, Z% \# t9 Q4 n1 }5 u' G for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
" ]) N- L2 s& b( x" k! o if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
; O1 x: p9 L0 e9 v: x3 k @._From:=PartsTable[5,i]; $ Q i$ k' d9 {9 Z: t; D
@._To:=PartsTable[6,i];+ Q. O, h9 I# x# F. k% a- ]
if no=PartsNo+PartsTable[2,i] then
: G, X" {! D) S4 v. [ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
2 @+ s, f/ K. u, o/ h9 y: z
' C) w0 R$ V. A end;4 c& V2 K5 z( j
i:=PartsTable.YDim+1;
4 R# [0 J- v6 y8 o$ P end;* R8 m) _1 u& q
m:=m+PartsTable[2,i];6 `, [# ]1 I4 c
next;
% d$ r# Z; s* l $ Q: H4 \+ T- n: A: X" Q% Q
Buf:=str_to_obj(sprint("BF",@._From));
4 j9 k+ P5 f) C1 F* V% m" Z @.move(Buf);
- I; g7 G$ l4 }end; |