这个例子昨天正好看了,话说那本书的例子都很不错~
8 h9 ], ~ ^# [不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
- e$ ?; p$ ]5 }' C: B' wis7 Q2 V9 k8 r2 B2 B0 A, T
i,no,m:integer; --定义整型( N5 g6 ^" u5 x1 B
Buf:object; --定义object
2 o* `* A4 k( {/ G. z. Ado: p9 D1 s5 o }$ l" k& f5 e
m:=0;2 k4 W6 P7 ^; l0 g4 ^
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ x# S$ g! Z2 M7 O for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
# @! g% Q) C% r B9 H if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
# R) c: X, B" s" t' |/ ~, Y9 V @._From:=PartsTable[5,i]; # K! ]) K6 E0 X r$ B
@._To:=PartsTable[6,i];) `+ |) m) v9 }( E+ O4 H
if no=PartsNo+PartsTable[2,i] then
0 ^' G# y8 G6 p7 v PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
) {' n& H2 P6 o# l3 z) N2 l+ {$ L x. H2 N
end;
+ K7 w0 H8 W# |. S i:=PartsTable.YDim+1;5 a9 K- A7 g K% b$ _* H
end; N) S( W: t" _! A8 _! o1 }
m:=m+PartsTable[2,i];( `1 a0 T5 c# t G f- t# o
next;: d% c2 q: C+ Q9 ~9 i$ M
" x- p5 P8 S% k. g% h: g
Buf:=str_to_obj(sprint("BF",@._From));9 f2 v, ?4 z& K; C6 j" Y! _
@.move(Buf);: S$ Q3 R/ R+ c% b
end; |