Avatar billede avest Nybegynder
27. februar 2004 - 11:57 Der er 4 kommentarer

Opret huskeseddel i kalender fra anden database

Jeg har en database hvor jeg holder styr på alle mine arbejdsopgaver. Men ofte glemmer man jo lige at der ligger en opgave man skal følge op påm på en bestemt dag.

Jeg vil derfor gerne kunne tilføje en huskeseddel i min kalender, ved et lille tryk på en kanp.

Der skal gerne laves et link til selve dokumentet i opgavedatabasen, og det er selvfølgelig nødvendigt at den spørger om en dato.

Nogen som lige har lidt kode der minder om dette ?
Avatar billede jogii Nybegynder
27. februar 2004 - 12:19 #1
Jeg har noget jeg bruger til daglig. kommer om et øjeblik
Avatar billede jogii Nybegynder
27. februar 2004 - 12:52 #2
Her kommer en mulig løsning:


Koden fra den første agent "Calendar_CreateEntry" (som kaldes fra mine systemer)

_item := "Entry in Calendar";
_wintitle := ""+_item;
REM { can not be created before this document is saved, should the document be saved?};
REM { kan ikke oprettes, før dette dokument er gemt. Skal det gemmes?};
_text := @ProperCase(_item)+ " kan ikke oprettes, før dette dokument er gemt. Skal det gemmes?";
@If(@IsNewDoc; @Command([FileSave]); @Success);
_text1:= "Choose the type of entry you want to create.";
_corr := "Calendar entry":"Task entry";
_formlist := "Appointment":"Task";
_default := @Subset(_corr;1);
_choice:= @Prompt([OkCancelList]:[NoSort]; _wintitle;_text1; _default; _corr);
_member := @Member(_choice;_corr);
_form := @Subset(@Subset(_formlist;_member);-1);
_mailserver := @Subset(@MailDbName;1);
_maildatabase := @Subset(@MailDbName;-1);
@Environment("FormType"; @Text(_form));
@Environment("MailServer"; _mailserver);
@Environment("MailDatabase"; _mailDatabase);
@Command([EditMakeDocLink]) ;
@Command([ToolsRunMacro]; "(Calendar_CreateEntryStep2)")


Agent 2

Sub Initialize
    Dim workspace As New NotesUIWorkspace
    Dim session As New notessession
    Dim  lookres As lookconftype
    form$ = session.getenvironmentstring("FormType")
    mailserver$ = session.getenvironmentstring("MailServer")
    maildatabase$ = session.getenvironmentstring("MailDatabase")
    Dim maildb As NotesDatabase
'    Set maildb = session.getdatabase(mailserver$,Maildatabase$)
    Dim doc As NotesDocument 
    Dim note As notesdocument
    Dim sourcedoc As notesdocument
    Set sourcedoc = workspace.currentdocument.document
   
   
    Set maildoc = workspace.ComposeDocument( mailserver$ , maildatabase$,  form$)
    Set note = maildoc.document
   
'    ' Setting the appointmenttype according to the
   
'    Select Case form$
'    Case "Appointment" : note.appointmenttype = "0"
'    Case "Task" : note.appointmenttype = "0"
'    Case Else
'    End Select
          ' Copying referance-ID to make linking easy
    refitemlist$ = "CompanyID DepartmentID ContactID"
    refprefix$ = "Ref"
    Call copyItemsFromContactDB(sourcedoc, note, refitemlist$, refprefix$)
    ' Copying fields to make view-index easy
    itemlist$ = "Companyname CompanyShortName Departmentname Contactname"
    prefix$ = ""
    Call copyItemsFromContactDB(sourcedoc, note, itemlist$, prefix$)
    maildoc.Reload   
   
    ' Fill document with information about submitting document
    Call maildoc.gotofield("body")
    ' Paste the DocLink from clipboard to the body field. The DocLink was copied to clipboad in the calling agent
    Call maildoc.paste()
    Call maildoc.fieldappendtext("body", getcomputedbody(sourcedoc, ""))
    Dim companyname$
    If sourcedoc.CompanyShortName(0) = "" Then
        companyname$ = sourcedoc.CompanyName(0)
    Else
        companyname$ = sourcedoc.CompanyShortName(0)
    End If
   
    subject$ = "> " + companyname$ + ", " + sourcedoc.ContactName(0) + ", "
    Call maildoc.gotofield("subject")   
    Call maildoc.FieldSetText( "Subject", subject$)
   

Agenten indeholder også lidt integration via et ScriptBibliotek. Men det er udelukkende for at hente ekstra værdier fra kildesystemet. Jeg gemmer unikke felter, som peger på kildedokumenterne for senere at kunne referere til dem eller danne oversigter sorteret efter kunde/projekt/opgave.

Det burde være muligt at decifrere hvad der er specifik for min applikation og hvad der er standard. Spørg bare løs
Avatar billede pr0gm4n Nybegynder
27. februar 2004 - 13:29 #3
nice løsning.

En anden mulighed er den helt pragmatiske at sende dokumentet fra din opgavedatabase til din postkasse. I postkassen er der standard kode der kan lave en mail om til enten en 'To Do' eller en 'Calendar Entry'.

Det eneste det kræver er at felterne i din opgavebase hedder subject og body (af hensyn til mailintegrationen) - Hvis de ikke hedder det kan du dog benytte forward istedet for; men så er det hele dokumentet, der kommer over i et samlet rtf, hvilket jo ikke altid er kønt.
Avatar billede noteshotline Nybegynder
27. februar 2004 - 18:54 #4
Hvis du sætter Form til Appointment og opretter et CalenderDateTime med en dato, kommer denne mail med som en kalender memo.

Du kan så studere andre felter, som sætter typen af dette kalender memo!

/Hans Holt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester