以下是引用csyx在2025-4-11 17:54:21的发言:
前面ds生成的代码跟垃圾差不了多少,给你段人写的代码吧
Local cc, ii
Local c科目, c班级, c分工, c教师
Local array a字段[1], a科目[1], aTemp[1]
Close Databases
Create cursor 任课表 (序号 I, 班级 V(20))
c科目 = '班会,道法,品社,科学,语文,数学,英语,体育,音乐,美术,劳动,信息,综合,语阅,英阅,自习1,自习2'
For ii = 1 to ALines(m.a科目, m.c科目, 1+4, ',')
m.c科目 = m.a科目[m.ii]
Alter table 任课表 add column &c科目 V(10)
EndFor
Index on 班级 tag 班级
Create Cursor 课务分工 (序号 V(3), 教师 V(10), 分工 V(254))
Append From 课务分工.txt DELIMITED with tab
Scan all
m.c教师 = 教师
m.c分工 = Strtran(分工, ',', ',')
For ii = 1 to ALines(aTemp, m.c分工, 1+4, ',')
m.cc = aTemp[m.ii]
If Like('??年级(*)班*', m.cc)
m.c班级 = StrExtract(m.cc, '', '班', 1, 4)
m.c科目 = Strtran(m.cc, m.c班级, '')
If !Seek(m.c班级, '任课表')
Insert into 任课表 (班级) Values (m.c班级)
EndIf
Replace next 1 (m.c科目) with m.c教师 in 任课表
EndIf
EndFor
EndScan
Use in 课务分工
Update 任课表 set 序号 = Val(Chrtranc(Leftc(班级,1), '一二三四五六', '123456'))*1000 ;
+ Val(StrExtract(班级,'(',')'))
Select * from 任课表 order by 序号 into dbf jsrkb
Use in 任课表
Alter table jsrkb alter column 序号 V(3)
Update jsrkb set 序号 = Padl(Recno(), 3, '0')
Locate
Browse nowait
前面ds生成的代码跟垃圾差不了多少,给你段人写的代码吧
Local cc, ii
Local c科目, c班级, c分工, c教师
Local array a字段[1], a科目[1], aTemp[1]
Close Databases
Create cursor 任课表 (序号 I, 班级 V(20))
c科目 = '班会,道法,品社,科学,语文,数学,英语,体育,音乐,美术,劳动,信息,综合,语阅,英阅,自习1,自习2'
For ii = 1 to ALines(m.a科目, m.c科目, 1+4, ',')
m.c科目 = m.a科目[m.ii]
Alter table 任课表 add column &c科目 V(10)
EndFor
Index on 班级 tag 班级
Create Cursor 课务分工 (序号 V(3), 教师 V(10), 分工 V(254))
Append From 课务分工.txt DELIMITED with tab
Scan all
m.c教师 = 教师
m.c分工 = Strtran(分工, ',', ',')
For ii = 1 to ALines(aTemp, m.c分工, 1+4, ',')
m.cc = aTemp[m.ii]
If Like('??年级(*)班*', m.cc)
m.c班级 = StrExtract(m.cc, '', '班', 1, 4)
m.c科目 = Strtran(m.cc, m.c班级, '')
If !Seek(m.c班级, '任课表')
Insert into 任课表 (班级) Values (m.c班级)
EndIf
Replace next 1 (m.c科目) with m.c教师 in 任课表
EndIf
EndFor
EndScan
Use in 课务分工
Update 任课表 set 序号 = Val(Chrtranc(Leftc(班级,1), '一二三四五六', '123456'))*1000 ;
+ Val(StrExtract(班级,'(',')'))
Select * from 任课表 order by 序号 into dbf jsrkb
Use in 任课表
Alter table jsrkb alter column 序号 V(3)
Update jsrkb set 序号 = Padl(Recno(), 3, '0')
Locate
Browse nowait
代码很好——短小精悍,我用的是 VFP8.0 有些不能识别,改了一下就好用了,谢谢!

只求每天有一丁点儿的进步就可以了