这个例子昨天正好看了,话说那本书的例子都很不错~
6 O8 J4 ?' g* @1 j不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
n [: b$ B0 t# Q! U; ]is
( w0 B9 |6 K8 T, w4 p' D t6 ? i,no,m:integer; --定义整型
6 D a( w* T' E( j Buf:object; --定义object+ W" [9 w. O2 z; |6 B
do# R2 K1 w3 ~/ i4 c; s- M; g
m:=0;
: `! ^: t# ^3 H6 _# y! i2 i no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)) j2 [/ Q$ o0 z+ M$ F0 w& v
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
" ~. s6 R5 I2 y9 y+ G if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
+ C& w% Y; p5 q" C @._From:=PartsTable[5,i];
( {, \# @ ?4 }5 c% b/ t* j [ @._To:=PartsTable[6,i];' Z# n! ?* S+ `# q1 [$ x" h; j, g* Z
if no=PartsNo+PartsTable[2,i] then - N4 n, l9 N: ^, g; X8 t
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
, m: T4 t! ~. }' P, ?3 H5 M" T, G* M+ ]3 Q- S
end;
9 B/ T& A) b; A) S1 }. v7 u5 b( d i:=PartsTable.YDim+1;- C5 X6 h* s; `0 g- L/ o
end;
8 j$ Z* ~2 l w+ [; J5 X: j m:=m+PartsTable[2,i];, f4 _ u. f1 _7 N; T4 j9 S6 [
next;
" K" R3 {! Q( h4 D' x
/ j; T& |) m# d' q Buf:=str_to_obj(sprint("BF",@._From));
0 L, ^' E4 r0 f Y6 c7 g2 n @.move(Buf);5 Q5 _( w J. l2 h F( b
end; |