| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1726 人关注过本帖, 2 人收藏
标题:面试考场编排
取消只看楼主 加入收藏
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
结帖率:100%
收藏(2)
已结贴  问题点数:20 回复次数:9 
面试考场编排
新建文件夹 (2).rar (106.71 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

考场编排,不同时间段,不同科目,人数不同,如何完成Word文件考场分组统计表要求(图1),从论坛学习后了做了个测试,但只会一点,能完成一次考试的如图2。全部完成不会了,请帮助。
CLEAR
SELECT 2
    fn1=GETFILE('dbf','打开分组表')
        USE (fn1) ALIAS g1sz
SELECT 1
    fn2=GETFILE('dbf','打开考场表')
    USE (fn2) ALIAS gz
select kch,kcrs from g1sz into array akcxx
select 1
go top
for i=1 to alen(akcxx,1)
    for j=1 to akcxx[i,2]
        replace 组别 with akcxx[i,1],序号 with j
        if not eof()
            skip 1        
        else
            exit
        endif
    endfor
    if eof()
        exit
    endif
endfor
browse

[此贴子已经被作者于2023-3-24 23:49编辑过]

搜索更多相关主题的帖子: for 不同 打开 SELECT 面试 
2023-03-24 23:43
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏
得分:0 
考场数是固定的,7号下午30和31场两个人可以先加在29场,到时再手动微调,自动实现太难,程序通用性也差
2023-03-25 11:35
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 3楼 sdta
不好意思表达的不明白。下面啰嗦解释一下,不知是否能表达清楚。
1.原始数据dbf为面试考生库,主要字段是考试日期和考试科目,数据已按考试时间(有四段时间7号上午、7号下午,8号上午、8号下午)和科目(分别初中数学、高中数学、初中英语、高中英语、初中政治、高中政治)排好序
2.需要根据考场分组(word)要求对考生编排面试考场,编排结果写入组别和序号字段。
面试考场本次有33个,每个面试室的人数也是上级要求固定好的。比如:第一天上午考试,1号面试室有初中数学11人,需要在原始数据库组别写1(11个),序号分别写1、2、3……11,依次类推,2号面试室初中数学11人,21号面试室初中英语9人,33号面试室高中政治11人。
我的尝试:把第一天上午考试要求手动输入转成了个dbf叫测试分组1号考场(字段kch)有考试11人(字段ksrs),用数组的方式,测试了能对第一天7:30的考生进行编排。编排结果如图1。
用这样得思路需要把原始数据拆成4次,要求也拆成4次,不符合自动完整编排要求。请高手帮忙从思路到结果方案。

[此贴子已经被作者于2023-3-25 13:47编辑过]

2023-03-25 13:34
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 7楼 sdta
原始数据科目排序后会是344初中数学、345初中英语……也不符合排考场344初中数学、444高中数学要求呢
2023-03-25 16:20
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 7楼
总分组DBF.zip (1.02 KB)


[此贴子已经被作者于2023-3-25 17:37编辑过]

2023-03-25 16:39
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏(1)
得分:0 
回复 10楼 sdta
我听了你的建议改的,原始数据必须得排序后才能用,没法直接用,我用笨办法加了两个备注字段(bz1,体现考试日期,bz2,体现考试科目)重新排的序
新数据(上传).zip (20.11 KB)
2023-03-25 17:44
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 15楼 sdta
高手,佩服五体投地。测试完全符合要求。超赞
再请教面试室对应候考室不一定,本次是4个面试室对应一个候考室,共8个,多的放在最后。但我的会出现大于8的,就用笨办法repl替换的,请帮忙优化一下,再跟你学习精简化的程序语言。
i=1
n=1
GO top
do WHILE n<=33
repl 候考室 with n for 组别<=i+4 and 组别>=i&&&&每4个面试室一个候考室,逐渐加
n=n+1
i=i+4
enddo
REPLACE 候考室 WITH 8 FOR 候考室>8 all
2023-03-25 21:13
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 17楼 sdta
超赞,又增长知识了。不过我看上一次更好理解。当时想这两个变如何关联对应替换,但关联了只会单一替换,不会累加,总之顾此失彼。为了排序增加了两个备注字段。从接触vfp从这个论坛尤其你们几个学到了很多很多!再次感谢!
2023-03-25 22:07
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 21楼 sdta
谢谢,我用了两句处理的,一句是CEILING函数,原来9行,这样两行简洁了不少
REPLACE 候考室 WITH CEILING(组别/4) all&&&但是会有大于8的,这次要求是最大8个候考室,觉得这种要求是个例不是普通的,就加用了下一句
REPLACE 候考室 with 8 for 候考室>8 all

[此贴子已经被作者于2023-3-27 22:40编辑过]

2023-03-27 22:39
chychychy
Rank: 2
等 级:论坛游民
帖 子:285
专家分:98
注 册:2015-4-18
收藏
得分:0 
以下是引用sdta在2023-3-27 22:50:28的发言:

一句就可以解决问题,虽然是个例,这是解决问题的一个思路
REPLACE 候考室 WITH IIF(CEILING(组别/4) <= 8, CEILING(组别/4), 8) ALL

惭愧,“解决问题的一个思路”,这句经典!思路最重要。学习了
2023-03-27 23:13
快速回复:面试考场编排
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023013 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved