Календарное отображение Webview

NetWood

Lotus team
17.04.2008
372
19
#1
Штатно не проблема сделать
<table>
$$ViewBody (<tr><td>.doc.</td></tr>)
</table>

Требуется сделать "календарное" отображение в WEB. Вот так
<table>
<tr>
<td>.doc.</td>
<td>.doc.</td>
<td>.doc.</td>
</tr>
<tr>

<td>.doc.</td>
<td>.doc.</td>
<td>.doc.</td>
</tr>
</table>
Вот вопрос, есть ли способы без агента по WQO сформировать табличку. Собственно проблема в переходе </td></tr><tr><td>
Нашел пока из примеров только http://codestore.net/apps/htmlareas.nsf/calendar
(http://codestore.net/store.nsf/unid/DOMT-769U33/$file/butter.zip)
Там надо агент перетачивать с календаря на просто вьюху с заданным количеством колонок. Еще способы проще есть?
 

Вложения

NetWood

Lotus team
17.04.2008
372
19
#2
В общем переточил агент в указанной базке.
В форме поле HTMLTable заполняется агентом WQO с классом HTMLArea ==
В агенте
Код:
Sub Initialize
On Error Goto erroroutine

REM **************************************************
REM Define temporary variables
REM **************************************************
Dim web As New WebSession()

Dim vDocCollection As NotesDocumentCollection

'Get a handle on the fields to "print" to
Dim HTMLTable As New HTMLArea("HTMLTable")

Dim mnth As String, yr As String, first As String, out As String
Dim dToday As NotesDateTime, dDay As Notesdatetime
Dim fills As Integer, i As Integer
Dim table As Integer, rows As Integer, row As Integer '' ==== количество ячеек
Dim rowclosed As Boolean

REM **************************************************
REM Initialize variables
REM **************************************************

Set vCalView = web.database.GetView("Table")

Set dToday = New NotesDateTime(Today)
Set dDay = New NotesDateTime( web.document.DateMonthBegan(0) )


REM **************************************************
REM Do stuff here
REM **************************************************

out = |<tr>| & NEW_LINE
table = 12 '' Это количество ячеек врукопашную
rowclosed = True

'Loop all table and display entries.
Do
If rowclosed Then
rows = 3 '' Это количество КОЛОНОК тоже ручками
out = "<tr>"
rowclosed=False
Else
out = ""
End If

''		out = out +| <td id="cell_|+Replace(dDay.DateOnly, "/", "")+|" ondblclick="DEXT.Calendar.addEntry(event, '|+dDay.DateOnly+|')"|
out = out +| <td |

'Highlight if 
If ( rows = 1) Then
out = out +| class="today"|
Else
out = out +| class="weekend"|
End If

out = out +|><span class="date">|+Cstr(table)+|</span>|+NEW_LINE
out = out + getAllEntriesForDate(Cstr(table))

out = out & |</td>|

'is it the end of a row?
If (rows = 1) Then		
out = out & |</tr>|
rowclosed=True 'Next loop knows whether to start a new one.
End If

'' заполнение поля таблицей
HTMLTable.add out 

table = table -1
rows = rows -1			
Loop Until (table = 0)

Exit Sub
erroroutine:
Msgbox Error + " - " + Cstr(Erl)
End Sub
На выходе получаем искомое :) Надо следить чтоб количество ячеек было кратно колонкам.
 

Вложения