这个例子昨天正好看了,话说那本书的例子都很不错~7 [$ |7 P0 V2 j9 j
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
& }9 {; R5 J5 s/ p! fis
. h# O' A& R, p9 c+ C* [( Z i,no,m:integer; --定义整型
2 M% Y; m/ J. ?6 Z" _- k V- O Buf:object; --定义object
4 W0 D" K' P1 Ado
* N/ v8 s" J- G6 { m:=0;0 A+ @' h9 B* O ?* T
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
1 Q# B$ u, }. f+ O/ `0 u for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行6 ~( V6 y' v; l* _. }9 F
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
! G8 v. k9 G8 u6 |+ J% V" Y @._From:=PartsTable[5,i]; " I5 f& z6 `7 U3 P9 d
@._To:=PartsTable[6,i];
+ l' e5 K) q3 ~2 G) _4 e7 T) u if no=PartsNo+PartsTable[2,i] then
8 ]9 z5 X% H* b% k8 B PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)& N4 E" q" i1 H3 k6 \; [' {7 {. i
' Q( u0 z, ` _% {2 [) |% b
end;
% b- c% X, _3 V, T; [$ A" v/ T i:=PartsTable.YDim+1;
, Z; D0 x4 h* _8 y0 X$ G3 h, W ` end;2 r* H' Q* J1 z8 o% t- m
m:=m+PartsTable[2,i];
, _3 B: f. g' o) r) J next;2 ?" O! \8 v# E( v1 v) _% }
( _$ m6 D. o8 \, L6 t9 O8 J7 o: a
Buf:=str_to_obj(sprint("BF",@._From));
- B# n6 E, @4 W9 z$ A2 n @.move(Buf);! y( o6 W0 V: i+ ]
end; |