这个例子昨天正好看了,话说那本书的例子都很不错~
, Z+ y9 J/ ? B& t3 B+ @0 G) q不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。0 i' g" y, {" O( ]" J
is. a+ C0 M4 [5 A* b$ I
i,no,m:integer; --定义整型! \9 i) k( D' U' I' y: n
Buf:object; --定义object: S! P4 {$ {* U0 {" y" N+ C1 ~
do
, q5 `; ]) O* E2 u- N, j. f- L m:=0;3 b5 A9 T/ [3 X
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
9 \4 n+ ^& K1 ? for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行1 Z; y( b/ H9 k
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
0 @- k+ h/ ~# k8 p$ [8 d0 u( r @._From:=PartsTable[5,i];
1 |' d) h- n/ K2 v, i4 r: t5 F @._To:=PartsTable[6,i];
+ D5 p6 P9 @( ?1 P7 Y; |0 X; r if no=PartsNo+PartsTable[2,i] then 2 n5 b% u0 X# b+ d* D
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
! J! }! A% b% a) b' x2 {) |- S, f" s, P
end;& R8 |9 [9 r9 b& I" D+ b; {4 u
i:=PartsTable.YDim+1;) }7 U% ?* a" C+ f7 l
end;
! _: a. ?. }4 q3 @7 ^$ Z m:=m+PartsTable[2,i];% K, p+ @4 C( Q8 i
next;7 C; f1 U s' e" D
- M- L' E; q6 a# B. l( q Buf:=str_to_obj(sprint("BF",@._From));
6 F4 G( Z( d- I+ g& ?! I* B0 \ @.move(Buf);3 M8 P4 g8 s" _2 h% C+ D5 Z: M$ L
end; |