一、資料庫結構。
create table lessons(
schoolid int,--學校id
classid int,--班級id
lessonid int,--課程id,表示本課程是這一天的第幾節課
profession int,--課業id,課程名稱,語文、數學等
teacher int,--任課老師id
dayofweek int,--星期,表示本課程處於星期幾,1-7,星期一-星期日
timescale varchar(50)--課程時間段
)二、資料提取儲存過程
create proc getlessonschedule --取得課程表資料集
@school int,
@class int
asdeclare @tmp int,@sql varchar(4000)
set @tmp=1
set @sql='select distinct lessonid'
while @tmp<8
begin
select @sql=@sql+',cast(sum(case dayofweek when '+cast(@tmp as char(1))+' then profession else 0 end) as varchar(10))+''|''+cast(sum(case dayofweek when '+cast(@tmp as char(1))+' then teacher else 0 end) as varchar(10))+''|''+cast(sum(case dayofweek when '+cast(@tmp as char(1))+' then dayofweek else 0 end) as varchar(10))+''|''+isnull(min(case dayofweek when '+cast(@tmp as char(1))+' then timescale end),'''')'
select @tmp=@tmp+1
endselect @sql=@sql+' from lessons where schoolid='+cast(@school as varchar(10))+' and classid='+cast(@class as varchar(10))+' group by lessonid order by lessonid asc'
execute(@sql)
go三、頁面**
set tl = new selectitem'此為本人核心**,生成……控制項。下同
with tl '任課老師列表
.settransobject(conn)
.selectitemsql = "select teacherid,teachername from teachers where schoolid=" & session("schoolid")
.selectitemname = "teach"
.selectitemlabel = "teachername"
.selectitemdata = "teacherid"
.selectitemextra = ""
.selectitemstyle = "width:78px"
.selectitemshowextra = true
end with
set ll = new selectitem
with ll '課業列表
.settransobject(conn)
.selectitemsql = "select profid,profname from professions where schoolid=" & session("schoolid")
.selectitemname = "prof"
.selectitemlabel = "profname"
.selectitemdata = "profid"
.selectitemextra = ""
.selectitemstyle = "width:78px"
.selectitemshowextra = true
end with
%>
星期一星期二
星期三星期四
星期五星期六
星期日<%if not isarray(grid) then '尚無課程表%>
<%
else '有課程表
dim lessonstr
for i = 0 to ubound(grid,2) '行
response.write ""
for j = 0 to ubound(grid) '列
if j = 0 then
response.write "第" & grid(j,i) & "節"
else
'此處資料結構,請參看表結構及儲存過程
'getschlprofessionname、getschlteachername此二function為根據課業或老師id,取得相應的名稱
if not isnull(grid(j,i)) then
lessonstr = split(grid(j,i),"|")
response.write ""
response.write "" & getschlprofessionname(cint(lessonstr(0))) & "
"response.write "" & getschlteachername(cint(lessonstr(1))) & "
"response.write "" & lessonstr(3) & "
"else
response.write ""
response.write "
"response.write "
"response.write "
"end if
end if
next
response.write ""
next
end if
%>
雙擊課程表,直接編輯。
四、伺服器端處理指令碼
更新資料庫,指令碼略。
五、客戶端原始碼
">
">
星期一星期二
星期三星期四
星期五星期六
星期日第1節
數學林黛玉
7:50-8:35
地理賈寶玉
7:50-8:35
數學林黛玉
7:50-8:35
地理林黛玉
7:50-8:35
化學林黛玉
7:50-8:35
第2節英語
賈寶玉8:45-9:30
地理林黛玉
8:45-9:30
數學賈寶玉
8:45-9:30
化學賈寶玉
8:45-9:30
地理賈寶玉
8:45-9:30
第3節地理
賈寶玉9:50-10:35
物理林黛玉
9:50-10:35
英語賈寶玉
9:50-10:35
計算機林黛玉
9:50-10:35
英語賈寶玉
9:50-10:35
第4節物理
賈寶玉10:45-11:30
計算機林黛玉
10:45-11:30
物理賈寶玉
10:45-11:30
英語賈寶玉
10:45-11:30
數學林黛玉
10:45-11:30
第5節地理
林黛玉14:00-14:45
歷史林黛玉
14:00-14:45
歷史賈寶玉
14:00-14:45
歷史林黛玉
14:00-14:45
計算機賈寶玉
14:00-14:45
第6節地理
林黛玉15:00-15:45
地理賈寶玉
15:00-15:50
地理林黛玉
15:00-15:45
地理林黛玉
15:00-15:45
地理林黛玉
15:00-15:45
第7節語文
賈寶玉16:00-16:45
英語林黛玉
16:00-16:45
數學賈寶玉
16:00-16:45
化學賈寶玉
16:00-16:45
物理林黛玉
16:00-16:45
雙擊課程表,直接編輯。
可編輯單元格ALV
在使用alv顯示列表的過程中,我們可以使用it fieldcat引數設定某乙個欄位的可編輯狀態。但是,要設定具體的單元格的可編輯狀態對於對alv不是很了解的人來說是乙個頭大的問題。具體單元格可編輯狀態設定的主要思想 首先通過eidt引數設定列為可編輯狀態 其次對輸出內錶進行迴圈將不需要編輯的行設定為...
FM控制ALV單元格可編輯
ecc6 測試ok!report zalv edit.type pools slis.fieldcatalog data it fieldcat type lvc t fcat.data x fieldcat type lvc s fcat.data x layout type lvc s layo...
可編輯單元格的CListCtrl控制項
clistctrl 控制項生成之後,無論你單擊還是雙擊它的單元格,都沒有任何反應,如果我們需要像excel那樣雙擊乙個單元格後即可編輯該單元格的內容,那怎麼辦呢?乙個 方法就是雙擊單元格之後,在該單元格的地方生成乙個編輯框,然後讓輸入焦點落在該編輯框上,我們即可對該編輯框進行文字編輯,當輸入焦點從編...