这个例子昨天正好看了,话说那本书的例子都很不错~' q# D) R$ o5 L. }3 a
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。& u7 G: d5 U: W3 ?; F# L0 S% W
is* |) [' o; \ A! H4 h7 i! f) q0 Z
i,no,m:integer; --定义整型" A6 L* F8 N2 w) u+ f) U
Buf:object; --定义object+ v/ D9 ?5 x0 a6 o2 X
do: O( `. `* F. |. B4 L
m:=0;( S4 O4 t$ t" Q' O9 |- x
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)8 D8 |: P& e4 L/ @1 e
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
5 R+ v" E9 `$ T1 [: N, ^ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
! i& g. Q( v6 w# Z2 p+ | K @._From:=PartsTable[5,i]; # w4 ^ q+ r6 l0 |# P$ d& D1 s' d
@._To:=PartsTable[6,i];2 Q, F) r! B- r0 H: |, r. R, }
if no=PartsNo+PartsTable[2,i] then 2 Y5 R" L) M$ z+ ^
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)* `6 M i1 r7 B% Y
/ L' ]/ F8 q$ j0 d S- l
end;% ~2 U& o+ U; Z3 o
i:=PartsTable.YDim+1;
. f/ g% I1 b& t. @8 V end;. T( a, L' k8 m5 a/ e& q) k
m:=m+PartsTable[2,i];' K6 W1 m3 U) W; S1 D- `
next; J6 D1 I& F# ?& S
, j2 ^% n0 z3 ^ Buf:=str_to_obj(sprint("BF",@._From));
2 b. u4 `! j6 L; F( C( o' A @.move(Buf);& J$ [3 s/ S7 P# ^
end; |