« RSSプラグイン for メーラーdeネットニュース 1.0.0.12公開 | Main | RSSプラグイン for メーラーdeネットニュース 1.0.0.13公開 »

2006.05.25

Notesの予定を携帯へ

Notesの予定をOutlook経由で携帯に送ろうとしていたが、IrDAを使えば直接送れることに気づき、ノーツの予定をvCalendar形式で書き出す処理を作った。タワー用のIRDAアダプタはDIATECのIr★Chop!という製品。ちなみに携帯はauのW41H(ワンセグ携帯)。NotesはR6.51。

Sub Click(Source As Button)
    Const FILE_NAME = "C:\TEMP\NOTES.VCS"
    Dim i As Integer
    Dim j As Integer
    Dim ABMin As Long
    Dim NextMonth As New NotesDateTime( "Today" )
    Call NextMonth.AdjustMonth( 3 )
    
    Dim Session As New NotesSession
    Dim Db As NotesDatabase
    Dim View As NotesView
    Dim Collection As NotesDocumentCollection
    Dim doc As NotesDocument
    
    Set Db = Session.CurrentDatabase
    Set Collection = Db.UnprocessedDocuments
    If Collection.Count=0 Then 
        Messagebox "携帯に送信する文書を選択して下さい",16,"選択して下さい"
        Exit Sub
    End If
    
    Open FILE_NAME For Output As #1
    For j = 1 To Collection.Count
        Set doc = Collection.GetNthDocument( j )
        If doc.HasItem("CalendarDateTime"Then
            i=0        
            Forall CDate In doc.GetItemValue("CalendarDateTime")
                i = i + 1
                If (CDate>=DateAnd (CDate<Int(NextMonth.LSLocalTime)+1Then
                    Print #1,"BEGIN:VCALENDAR"
                    Print #1,"VERSION:1.0"
                    Print #1,"BEGIN:VEVENT"
                    Print #1,"CLASS:PUBLIC"
                    Print #1,EncodeDateStr("DTSTART",CDATE)
                    Print #1,EncodeDateStr("DTEND",doc.EndDateTime(i-1))
                    If doc.HasItem("Subject"And (doc.GetItemValue("Subject")(0)<>""Then
                        Print #1,EncodeQP("SUMMARY",doc.GetItemValue("Subject")(0))
                    Else
                        Print #1,"SUMMARY;"
                    End If
                    If doc.HasItem("Body"And (doc.GetItemValue("Body")(0)<>""Then
                        Print #1,EncodeQP("DESCRIPTION",doc.GetItemValue("Body")(0))
                    Else
                    End If
                    If doc.HasItem("Location"And (doc.GetItemValue("Location")(0)<>""Then
                        Print #1,EncodeQP("LOCATION",doc.GetItemValue("Location")(0))
                    Else
                    End If
                    Print #1,EncodeDateStr("LAST-MODIFIED",doc.LastModified)
                    Print #1,"END:VEVENT"
                    Print #1,"END:VCALENDAR"
                End If
            End Forall
        End If
    Next j
    Close #1
    Messagebox "携帯へ送信します。準備ができたらOKを押して下さい",64
    Dim ret As Integer
    ret = Shell("irftp "+FILE_NAME,1)
End Sub
Function EncodeQP(AFieldName As String, AStr As StringAs String
    Dim i As Integer
    Dim c As Long
    Dim LastLine As String
    EncodeQP=AFieldName+";ENCODING=QUOTED-PRINTABLE:"
    LastLine = EncodeQP
    For i=1 To Len(AStr)
        c = Asc(Mid$(AStr,i,1))
        If (c>=&h100) Then
            EncodeQP=EncodeQP+"="+Hex$(Int(c/&h100))+"="+Hex$(c Mod &h100)
            LastLine = LastLine  +"="+Hex$(Int(c/&h100))+"="+Hex$(c Mod &h100)
        Else
            EncodeQP=EncodeQP+"="+Hex$(c)
            LastLine = LastLine  +"="+Hex$(c)
        End If
        If (Lenbp(LastLine)>=70Then
            EncodeQP = EncodeQP + "=" + Chr$(13) + Chr$(10
            LastLine = ""
        End If
    Next i
End Function
Function EncodeDateStr(AFieldName As String, ADateTime As VariantAs String
    Dim TempDate As New NotesDateTime( "" )
    TempDate.LocalTime = ADateTime
    EncodeDateStr = AFieldName + ":" + Format(TempDate.LSGMTTime,"yyyymmdd") + "T" + Format(TempDate.LSGMTTime,"hhnnss") + "Z"
End Function

|

« RSSプラグイン for メーラーdeネットニュース 1.0.0.12公開 | Main | RSSプラグイン for メーラーdeネットニュース 1.0.0.13公開 »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/21611/10235083

Listed below are links to weblogs that reference Notesの予定を携帯へ:

» Notesの予定を携帯へ [nsfl10n]
ポン太の独り言: Notesの予定を携帯へhttp://yutaro.air-nifty.com/hitorigoto/2006/05/notes_3c0a.html  Notesのカレンダデータを携帯に送るひとつの方法としてメモしておきます。  他にもNotesの予定をOutloo... [Read More]

Tracked on 2006.08.01 at 01:34 AM

« RSSプラグイン for メーラーdeネットニュース 1.0.0.12公開 | Main | RSSプラグイン for メーラーdeネットニュース 1.0.0.13公開 »