可在楼层使用状态栏另加辅助字段,标记“固定/随机”,然后对操作表中需要固定的手工输入
(更改)教学楼楼层使用状态.rar
(859 Bytes)
USE (更改)教学楼楼层使用状态 ALIAS 状态表 IN 0 USE (操作表)领导干部听课安排表 ALIAS 安排表 IN 0 SELECT * FROM 安排表 INTO CURSOR tmp READWRITE SELECT 状态表 COUNT ALL FOR ALLTRIM(状态(12))=="是" TO n12 COUNT ALL FOR ALLTRIM(状态(34))=="是" TO n34 IF RECCOUNT("安排表") >= (n12 + n34) RAND(-1) SELECT tmp INDEX on RAND() TAG 随机 SELECT 状态表 GO TOP DO WHILE !EOF("状态表") AND !EOF("tmp") IF (ALLTRIM(状态表.状态(12))=="是") AND (ALLTRIM(状态表.辅助1)=="随机") 安排() ENDIF IF (ALLTRIM(状态表.状态(34))=="是") AND (ALLTRIM(状态表.辅助2)=="随机") 安排() ENDIF SKIP IN "状态表" ENDDO SELECT tmp SET INDEX TO GO TOP BROWSE FIELDS 姓名, 教学楼, 楼层 ELSE MESSAGEBOX("还缺 "+TRANSFORM(RECCOUNT("安排表")-n12-n34)+" 条任务无法安排,请增加人员!") ENDIF CLOSE DATABASES ALL FUNCTION 安排() DO WHILE !EOF("tmp") AND !EMPTY(tmp.楼层) SKIP IN "tmp" ENDDO IF !EOF("tmp") REPLACE tmp.教学楼 WITH 状态表.教学楼名称, tmp.楼层 WITH ALLTRIM(状态表.楼层)+"层" SKIP IN "tmp" ENDIF ENDFUNC