这个例子昨天正好看了,话说那本书的例子都很不错~2 Y& r' q# t( y& W% V' [1 G
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. K0 k" G/ l+ t5 q$ a/ d0 Jis
5 k) w) V2 _' f9 ? i,no,m:integer; --定义整型# G( q( T% s+ w' [, g, U
Buf:object; --定义object# M2 h. d8 {4 J0 H/ x# ^
do
3 N, i/ G; J$ r$ U7 d( A0 W& k m:=0;4 E$ E7 R) X) K% ]3 U6 `: ^
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)3 S' m7 B. k/ G& ]0 Z
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 U& m) O# V3 V" [/ E if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( }, ^8 U0 ]8 r, i6 K& ~
@._From:=PartsTable[5,i];
8 B1 }2 ^" d1 | @._To:=PartsTable[6,i];! \ R' d% m$ j& k6 G ]& |1 y
if no=PartsNo+PartsTable[2,i] then
1 J. R) ?4 m* [' c* R: Z PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)# P. u/ k b0 {# k
. i- m. b9 |1 m/ Z7 i# ]6 {
end;. G( A8 J5 K$ K. \ ~
i:=PartsTable.YDim+1;0 o) P; o1 n$ z+ E- r
end;+ @! F) f, n2 V& ^9 |- \9 ^+ g
m:=m+PartsTable[2,i];( v& y0 J C* a
next;
6 t3 [, M% d2 e) x' d
3 m) @2 S+ `+ X6 i Buf:=str_to_obj(sprint("BF",@._From));
: n! K9 o& @4 C# v8 _4 j @.move(Buf);
. P+ S& W3 e+ v1 Z: w: |8 Yend; |