martedì 3 marzo 2009

Le basi di una composite application parte 1

Vediamo come si crea una composite application minimale, ma funzionante. In questo primo post verranno creati solamente 2 database su cui applicheremo i concetti delle composite application; le operazioni per creare la composite application li descriverò nei prossimi post.

Innanzitutto occorre creare questi 2 database:
Gestione progetti: useremo il template TEAMROOM, il quale è presente nel vostro client notes, creiamo il DB come da figura sotto (eccetto il fatto di ereditare il design! ) :



















Ore andiamo a creare un altro DB, usando un normalissimo template pernames.ntf, dove gestiremo la rubrica dei clienti:



















Ora apriamo il DB Gestione progetto e configuriamolo (indicativamente) in questo modo:





Ora apriamo il Db Gestione progetto in designer e andiamo a modificare la form principale 'Main Document', inserendo un campo e relativo pulsantino per poter inserire in ogni documento, il contatto di riferimento del documento in oggetto.

Se avete fretta potete fare copia incolla del codice seguente, avend cura di modificare il valore delle 2 costanti in base ai vostri parametri:

Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim Uidoc As NotesuiDocument
Dim doc As NotesDocument
Dim docRubrica As NotesDocument
Dim item As NotesItem
Dim sCustomer As String


Const NOMERUBRICA= "skill\Rubrica.nsf"
Const NOMEVISTA = "People"


Dim s As New NotesSession
Dim w As New NotesUIWorkspace
Set db = s.CurrentDatabase
Set UiDoc = w.CurrentDocument
Set Doc = UiDoc.document
Set collection = w.PickListCollection( PICKLIST_CUSTOM, False, _
db.server, NOMERUBRICA , NOMEVISTA , _
"Elenco clienti", "Selezionare un cliente" )

If collection.Count = 0 Then Exit Sub
Set docRubrica = collection.GetFirstDocument


sCustomer = docRubrica.CompanyName(0)
If sCustomer = "" Then
sCustomer = Trim (docRubrica.LAstName (0) & " " & docRubrica.FirstNAme(0) )
End If
If sCustomer = "" Then
Msgbox "Devi scegliere un contatto con almeno il cognome e il nome azienda inserito", 0+16, "ATTENZIONE"
Exit Sub
End If
doc.Customer = sCustomer
Doc.CustomerContatto = docRubrica.fullname(0)
Call UiDoc.Reload
Call UiDoc.Refresh

Il campo CustomerContatto lo useremo più avanti.
Ora ci resta da fare almeno una vista categorizzata per il campo Customer, e aggiungere tale vista al navigatore del DB progetto. Se volete potete aggiungere una colonna in ogni vista che riporti il cliente, in modo tale da identificare ogni documento per cliente in modo rapido.

Bene, il primo passo è fatto, ora possiamo creare dei documenti di esempio nel DB progetto, unitamente a dei contatti nella rubrica.

Nel prossimo post vedremo le primissime cose di base per le CA