Exemple de classe LS pour intérroger un document

POO ou Classe personnel

Exemple de classe LS pour intérroger un document

Messagepar oguruma » 21 Fév 2005 à 14:24

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... :)

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...
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Retour vers Programmation orienté objet