先前網頁設計之初

僅考量組織內部User人數尚少

所以將負責該Project的User直接空出五個欄位

做為記錄負責Project的User姓名

陣列1

後來針對此項進行改善

為了修改Project中負責的User數量不受限只有五人

所以將Project編號跟User編號結合成另一張資料表單ORDER_LIST

只記錄Project(o_pid)跟User(o_uid)對應關係

 

在網頁上欲將資料呈現於負責人欄位

需將上述p_u1至p_u5欄位資料儲存於動態陣列中

以Project 1為例

在負責人欄位應顯示A_USER / B_USER / C_USER

所以將程式修改如下

<%
Set Recordset2 = Server.CreateObject("ADODB.Recordset")
Recordset2.ActiveConnection = MM_conn_STRING
Recordset2.Source = "SELECT * FROM (ORDER_LIST INNER JOIN PROJECT ON ORDER_LIST.o_pid=PROJECT.p_num) INNER JOIN USER ON ORDER_LIST.o_uid=USER.u_num"
Recordset2.CursorType = 0
Recordset2.CursorLocation = 2
Recordset2.LockType = 1
Recordset2.Open()

If Not Recordset2.EOF Or Not Recordset2.BOF Then
Dim u_array() '動態陣列宣告
u_array_count=0 '陣列位置
    While Not Recordset2.EOF 
        IF u_array_count > 0 Then
            response.write " / "
            response.write Recordset2.Fields.Item("u_name").Value
        Else
            response.write Recordset2.Fields.Item("u_name").Value
        End IF
            Redim preserve u_array(u_array_count+1) '再次宣告,且用preserve保留先前資料,並擴大陣列大小
            u_array(u_array_count)=Recordset2.Fields.Item("u_num").Value '記錄資料於陣列
            u_array_count=u_array_count+1
    Recordset2.MoveNext()
    Wend
End IF
%>

以上是參考網路上關於動態陣列設定所做的修改

參考資料:

ASP 動態增加陣列長度

VBScript 變數

 

 

創作者介紹
創作者 shanny 的頭像
shanny

妮的懶步調

shanny 發表在 痞客邦 留言(0) 人氣()