Os envio este codigo, para realizar un panel de busqueda y presentarla en una newsletter, solo se recoge seis parametros de busqueda, pero puede ampliarse a los que se necesite.
Un saludo
Objetivo:
Posibilidad de que el usuario realice una búsqueda con diferentes parámetros
Definiciones:
Necesitamos definir los parámetros por los que se desea buscar, profesión, provincia, edad....Este sript solo es para 6 parámetros.
Field cx, son los campos que contienen la información que queremos recuperar: profesión, provincia, edad.
Estos cx (c1....c6) habrá que cambiarlos por los nombres de vuestros campos.
Crear dos formularios
Panel de busqueda
Presentar la busqueda=yo lo he denominado “12”
Recomendaciones
No se ha incluido el nombre del formulario en el string de búsqueda, si tenéis varios formularios serie recomendable que los incluyerais.
Consultar los parámetros de la newsletter en la ayuda para darle un formato adecuado a vuestras necesidades
Funcionamiento:
Tenemos un formulario de búsqueda con seis campos denominados (uno, dos,...seis) para que el usuario pueda meter los valores que quiera buscar, y un séptimo para que elija si quiere que se cumplan todos los parámetros de búsqueda, o que solo se cumplan alguno (botón radial con “y” o “o”).
Por ejemplo el campo uno puede recoger la provincia:
Provincia: Madrid
Para el string de búsqueda usamos un código que nos devuelva lo que queremos buscar, esto es
Field c1=”Madrid”, siendo c1 el nombre del campo que recoge la provincias en los documentos
Por lo tanto deberéis cambiar c1 por el nombre de vuestro campo, bueno de c1 y de los demás c
Codigo
Sub Click(Source As Button)
Dim ws As New notesuiworkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim newsletter As notesnewsletter
Dim uidoc As notesuidocument
Dim doc As notesdocument
Set db = session.CurrentDatabase
Set uidoc=ws.currentdocument
Set doc=uidoc.document
Select Case doc.opcion(0)
Case "o"
If doc.uno(0)<>"" Then
If doc.dos(0)<>"" Or doc.tres(0)<>"" Or doc.cuatro(0)<>""Or doc.cinco(0)<>""Or doc.seis(0)<>""Then
busqueda$=" field c1= "+" """+ doc.uno(0)+" """+" | "
Else
busqueda$=" FIELD c1= "+" """+doc.uno(0)+""" "
End If
End If
If doc.dos(0)<>"" Then
If doc.tres(0)<>"" Or doc.cuatro(0)<>""Or doc.cinco(0)<>""Or doc.seis(0)<>""Then
busqueda$=busqueda$+" field c2= "+" "" "+doc.dos(0)+" "" "+" | "
Else
busqueda$=busqueda$+" field c2= "+" """+doc.dos(0)+""" "
End If
End If
If doc.tres(0)<>"" Then
If doc.cuatro(0)<>"" Or doc.cinco(0)<>"" Or doc.seis(0)<>"" Then
busqueda$=busqueda$+" field c3= "+" """+doc.tres(0)+""" "+" | "
Else
busqueda$=busqueda$+" field c3= "+" """+doc.tres(0)+""" "
End If
End If
If doc.cuatro(0)<>"" Then
If doc.cinco(0)<>"" Or doc.seis(0)<>"" Then
busqueda$=busqueda$+" field c4= "+" """+doc.cuatro(0)+" """+" | "
Else
busqueda$=busqueda$+" field F_PP_Comp1= "+" """+doc.cuatro(0)+" """
End If
End If
If doc.cinco(0)<>"" Then
If doc.seis(0)<>"" Then
busqueda$=busqueda$+" field c5= "+" """+doc.cinco(0)+" """+" | "
Else
busqueda$=busqueda$+" field c5= "+" """+doc.cinco(0)+""" "
End If
End If
If doc.seis(0)<>"" Then
busqueda$=busqueda$+" field c6= "+" """+doc.seis(0)+""" "
Else
busqueda$=busqueda$
End If
Case "y"
If doc.uno(0)<>"" Then
If doc.dos(0)<>"" Or doc.tres(0)<>"" Or doc.cuatro(0)<>""Or doc.cinco(0)<>""Or doc.seis(0)<>""Then
busqueda$=" field c1= "+" """+ doc.uno(0)+" """+" & "
Else
busqueda$="field c1= "+" """+doc.uno(0)+""" "
End If
End If
If doc.dos(0)<>"" Then
If doc.tres(0)<>"" Or doc.cuatro(0)<>""Or doc.cinco(0)<>""Or doc.seis(0)<>""Then
busqueda$=busqueda$+" field c2= "+" "" "+doc.dos(0)+" "" "+" & "
Else
busqueda$=busqueda$+" field c2= "+" """+doc.dos(0)+""" "
End If
End If
If doc.tres(0)<>"" Then
If doc.cuatro(0)<>"" Or doc.cinco(0)<>"" Or doc.seis(0)<>"" Then
busqueda$=busqueda$+" field c3= "+" """+doc.tres(0)+""" "+" & "
Else
busqueda$=busqueda$+" field c3= "+" """+doc.tres(0)+""" "
End If
End If
If doc.cuatro(0)<>"" Then
If doc.cinco(0)<>"" Or doc.seis(0)<>"" Then
busqueda$=busqueda$+" field c4= "+" """+doc.cuatro(0)+" """+" & "
Else
busqueda$=busqueda$+" field c4= "+" """+doc.cuatro(0)+" """
End If
End If
If doc.cinco(0)<>"" Then
If doc.seis(0)<>"" Then
busqueda$=busqueda$+" field c5= "+" """+doc.cinco(0)+" """+" & "
Else
busqueda$=busqueda$+" field c5= "+" """+doc.cinco(0)+""" "
End If
End If
If doc.seis(0)<>"" Then
busqueda$=busqueda$+" field c6= "+" """+doc.seis(0)+""" "
Else
busqueda$=busqueda$
End If
End Select
On Error Goto errores
Set collection = db.FTSearch(busqueda$,0 )
Set newsletter = New NotesNewsletter( collection )
newsletter.SubjectItemName = "verC"
newsletter.DoScore = False
Set docn = newsletter.FormatMsgWithDoclinks(db)
docn.Subject = session.commonusername+" ("+Date+")"
docn.Form = "12"
newsletter.DoScore = False
doc.SaveOptions = "0"
Call uidoc.close
'Set uidoc = ws.EditDocument(False, doc)
' Call docn.Save( True, True )
Set uidoc = ws.EditDocument(False, docn)
Exit Sub
errores:
Msgbox "No se han encontrado documentos",0+48,"AVISO"
doc.SaveOptions = "0"
Call uidoc.close
Exit Sub
End Sub
|
Otros documentos de LotusScript
|