單元格雙擊後可編輯,並無重新整理提交,更新資料庫。

2021-06-15 20:25:02 字數 4255 閱讀 8506

一、資料庫結構。

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那樣雙擊乙個單元格後即可編輯該單元格的內容,那怎麼辦呢?乙個 方法就是雙擊單元格之後,在該單元格的地方生成乙個編輯框,然後讓輸入焦點落在該編輯框上,我們即可對該編輯框進行文字編輯,當輸入焦點從編...