Exemple de classe LS pour intérroger un document
Peux ceux et celles qui souhaitent faire le pas vers le développement de classes LS, voici une contribution que je viens de réaliser dans base documentaire. L'idée est de pouvoir intérroger un dossier soit pas n° de dossier, soit par n° de BL ou soit par n° de facture.
On affiche au préalable un dialogue personnalisée offrant un des trois modes de recherche sous forme de bouton radio puis un champ afin de saisir le n° correspondant au choix. Si le doc est trouvé il est affiché à l'écran...
ensuite on peut créer un agent (ce que j'ai fait)
je vous laisse réaliser par contre le masque de la boîte de dialogue...
On affiche au préalable un dialogue personnalisée offrant un des trois modes de recherche sous forme de bouton radio puis un champ afin de saisir le n° correspondant au choix. Si le doc est trouvé il est affiché à l'écran...
- Code : Tout sélectionner
Public Class Interrogation
Private m_ws As notesuiworkspace
Private m_session As notessession
Private m_db As notesdatabase
Private m_view As notesview
Private m_doc As notesdocument
Private m_uidoc As notesuidocument
Private m_docFound As Integer
Private m_viewFound As Integer
Sub new(sType As String, sNum As String)
Call init(sType, sNum)
End Sub
Private Sub init(sType As String, sNum As String)
Set m_ws=New notesuiworkspace
Set m_session = New notessession
Set m_db=m_session.currentdatabase
Select Case sType
Case "1"
Set m_view=m_db.Getview("V01NUMDOSSIER")
Case "2"
Set m_view=m_db.Getview("V01NUMBL")
Case "3"
Set m_view=m_db.Getview("V01NUMFACTURE")
End Select
If m_view Is Nothing Then
Exit Sub
End If
m_viewFound=True
Set m_doc=m_view.GetDocumentbykey(sNum)
If Not m_doc Is Nothing Then
m_docFound=True
End If
End Sub
Public Property Get isDocFound As Integer
isDocFound=m_docFound
End Property
Public Property Get isViewFound As Integer
isViewFound=m_viewFound
End Property
Public Sub display()
Call m_ws.EditDocument(False,m_doc,True)
End Sub
End Class
ensuite on peut créer un agent (ce que j'ai fait)
- Code : Tout sélectionner
Dim ok As Integer
Dim rep As Integer
Dim docDlg As NotesDocument
Dim viewName As String
Dim fieldName As String
Dim ci As Interrogation
Dim sNum As String
Dim sMode As String
On Error Goto handleError
Call loadSession
Call loadWS
Set docDlg=New NotesDocument(db)
Ok=ws.DialogBox("(DlgInt)",True,True,False,False,False,False,"Intérroger un dossier",DocDlg)
If Not Ok Then Exit Sub
sNum=Trim$(docDlg.DlgNum(0))
sMode=docDlg.DlgMode(0)
If sNum="" Then
Msgbox "Veuillez renseigner le numéro",48,"Intérroger un dossier"
Exit Sub
End If
Set ci=New interrogation(sMode,sNum)
If Not ci.isDocFound Then
Msgbox "N° de dossier inconnu",48,"Intérroger un dossier"
Exit Sub
End If
Call ci.display()
Exit Sub
handleError:
Msgbox "Erreur n° " & Err & " : " & Error$ & " - " & Erl , 16,"Erreur $ChgtPrf"
Resume fin
fin:
je vous laisse réaliser par contre le masque de la boîte de dialogue...