这个例子昨天正好看了,话说那本书的例子都很不错~& D! ?+ T; c* B
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
1 j# u+ h7 d9 F$ w( Mis, P8 a( P+ x2 P4 c0 D7 V! Q
i,no,m:integer; --定义整型5 b+ {6 N+ o( u: X9 Y# R
Buf:object; --定义object0 }0 {$ p S& e) X( [7 ]
do
1 i" r b( F' J' x, `* G i# a m:=0;
# M# x% H- i z8 k- \9 c no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)/ k, x$ W! L+ t% g3 E; [
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
8 ~* k/ ]/ N- x% F if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 7 S P; {& w" g3 y( J, Z0 U7 C( K) ?
@._From:=PartsTable[5,i];
3 P( e2 s. X4 O$ {; e+ p @._To:=PartsTable[6,i];5 p0 N& g; V& D& E) Q! e9 ]( m
if no=PartsNo+PartsTable[2,i] then
' [9 X! @ N6 z$ ]1 `* G PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
) t7 d8 M, ]0 k6 _* e# J0 [, M, c p- `1 T1 P- V$ d
end;% a( s( }5 u: L; w3 u- I1 J
i:=PartsTable.YDim+1;8 j3 L3 K5 \8 \# @0 r: p; d
end;5 l. C% k- y# q7 L" O$ R, x
m:=m+PartsTable[2,i];5 O2 }3 S8 i# `4 N
next;. T# T! {; q0 g$ E8 B! ^, t$ H
. l( o! r# R& W& R |/ n2 V+ U8 Z" H- X
Buf:=str_to_obj(sprint("BF",@._From));
! ?, z& p- j! z: z& l @.move(Buf);
2 M' S/ S7 n3 B; nend; |