这个例子昨天正好看了,话说那本书的例子都很不错~: f. {! m& e+ g
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。4 M# `, J) O6 H
is
/ \# ~$ P) U6 N" x5 @7 z i,no,m:integer; --定义整型
" c' e$ M Y8 X4 v Buf:object; --定义object4 b: H- E3 j6 J; a: f
do
( e7 [: }' ] a m:=0;7 w! {6 X+ z6 S% Z* P
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外), w+ ^- ?% n$ f: X3 F4 e( e* n [
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
7 }) |1 J7 h0 I5 Q/ z if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
) ]" B6 w V7 B6 t# r2 m* L @._From:=PartsTable[5,i];
- [: D' x+ f* e% u @._To:=PartsTable[6,i];+ Z. t! d6 f- y/ b( m% c+ h
if no=PartsNo+PartsTable[2,i] then * u/ B) ~. w9 |9 ^; {' K, }. _
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)) g0 |- M& p3 a/ A5 x: D( H
H! x9 m' E3 d. c7 j' q$ I+ \ end;# [3 m; D. ]7 @( E, \
i:=PartsTable.YDim+1;* b9 B0 p: E8 ], T/ c) N( h% B, T2 Y
end;
+ J4 h: o9 ^' z7 Q1 h2 F m:=m+PartsTable[2,i];
2 w5 [! n4 T! k* \, e next;
5 D# ?. P1 Q6 [* n 4 l8 { K; d3 U2 z% C! o6 j( o
Buf:=str_to_obj(sprint("BF",@._From));
6 M2 r5 z8 m8 E) \7 A6 I @.move(Buf);
' z+ ` B4 f0 n, y% cend; |