Pregunta del SendTo

Buenos Días.
Tengo un script hecho para una base de datos Local y el objetivo es que cuando una aplicación termina un proceso(En este caso dar de alta a un nuevo empleado), cuando se cierra dicha aplicación en visual basic, debe de lanzar el notes para generar una serie de notas a unos determinados usuarios.
En concreto tengo un array de 12 elementos donde cada elemento es un usuario, salvo el usuario(10) que son dos elementos(Ej: [email protected],[email protected])
El problema es que cuando hago :
mdoc.Principal = "Departamento d Selecc"
mdoc.SendTo = usuarios
mdoc.Send False
mdoc. Sabe True, True
No me coge a esos 2 usuarios que están en el campo 10. Solo me coge al primero de ellos.
Como podría hacer para que me coja a los 2 y no solo al primero de ellos.
¿El problema es la coma que separa a ambos?
Si me pudierais dar la solución os lo agradecería, porque llevo un par de días sin avanzar por culpa de este "molesto" detalle.
Muchas gracias por adelantado

1 Respuesta

Respuesta
1
Pues sí, el problema creo que va a ser la coma. Debes chequear el diseño del formulario en el que estás grabando el documento (el valor que grabes en mdoc. Form), en el campo SendTo, la propiedad "separador usado al introducir datos".
El separador que utiliza el valor usuario(10) (en este caso la coma), debería coincidir con alguno de los que se señalen en esa propiedad, si incluyes la coma debería tomarlo como dos valores diferentes.
Para ver si lo ha grabado como valores diferentes míralo por propiedades del documento->campos, en el formulario es posible que no lo veas bien.
Muchas gracias Dani.
Con el código que me has mandado he conseguido solucionar el problema de la comita.
Te lo has currado, tanto por la velocidad en tus respuestas como en los conocimientos que has demostrado.
Un 10 de valoración.
Otra vez gracias, Dani.
Perdona Dani, creo que va a ser ese mi error.
Pero no localizo como buscar eso que me dices.
Lo tengo en ingles y la traducción no es exactamente Properties document -> fields
Si me puedes indicar como llegar hasta la propiedad "separador usado al introducir datos"
La version q tengo es Lotus Domino Designer 6.0.2 version en ingles.
Muchas gracias por la respuesta
Otra vez,
Partimos de que tienes instalado el Domino Designer y permisos de Diseñador en la Base de Datos.
(Te digo las opciones en español y tú las traduces. Yo tengo ver. 5.0.9 no sé si coincidirá exactamente).
Abres la Base de Datos desde el Notes, en cualquier vista. En el menú: Ver-Diseño, esto abrirá el Domino Designer con el diseño de la BD. En el panel de la izquierda seleccionas Formularios y en la derecha doble click sobre el formulario en cuestión para abrirlo.
Dentro del formulario seleccionas el campo SendTo (un click) y en menú: Edición-Propiedades. En la tercera solapa, a media altura, la propiedad que te mencionaba, ahí seleccionas "Coma" (y las que quieras) y grabas cambios.
Por otro lado, para ver los campos y valores de un documento: Abres la BD en una vista, seleccionas el documento, Edición-Propiedades. En la segunda solapa ves a la izda. los campos y al pinchar en uno a la dcha. abajo su valor o valores.
Bueno, no sé si me habré explicado muy bien, si no, pregunta lo que haga falta.
Hola de nuevo.
El problema es que no tengo un form, es un Database Script que coge los datos que le pasamos desde la aplicación visual basic.
Es en visual donde recoge los datos metidos con la coma.
He comprobado que el archivo lo genera correctamente, y el problema lo tengo en estas lineas de código:
'Abro el fichero para lectura
desc% = Freefile()
Open fichero For Input As #desc%
'linea = Space$(120)
' Para controlar el final de los usuarios y el principio del texto
ojo =0
' Para el contador del array
i=0
Do While Not Eof(desc%) ' Repite el bucle hasta el final del archivo.
Line Input #desc%, linea
If linea = "$$" Then
ojo =1
Else
If ojo =1 Then
rt.addnewline 1
rt.appendtext linea
Else
usuarios(i) = linea
i=i+1
End If
End If
Loop
Close #desc%
'Cojo uno por uno los ficheros
mdoc.Principal = "Departamento de Selección"
mdoc.SendTo = usuarios
mdoc.Send False
mdoc.Save True,True
Call mdoc.PutInFolder ("asd2")
carta = Dir
For j= 0 To i
usuarios(j) =""
Next
Loop ' carta<>""
Y desde un Database Script me he estado mirando la ayuda y no pone nada en el caso de que un elemento del array sea múltiple(Sean dos direcciones)
Gracias, Dani
Creo que lo mejor es atacar el problema en la raíz, es decir, generar usuarios() correctamente, un valor por cada elemento. Te propongo modificar el código así:
If ojo = 1 Then
'...
Else
Dim usuTemp As Variant
usuTemp = SplitStrToArray(linea, ",")
For j = 0 To UBound(usuTemp)
usuarios(i) = usuTemp(j)
i = i + 1
Next
End If
y añades la funcion:
Function SplitStrToArray(sStr As String, sDelim As String) As Variant
Dim aResult() As String
Dim i As Integer
Dim sTemp As String
sTemp = sStr
Do While Len(sTemp) > 0
Dim sElem As String, iPos As Integer
iPos = Instr(sTemp, sDelim)
If iPos > 0 Then
sElem = Left(sTemp, iPos - 1)
sTemp = Mid(sTemp, iPos + 1)
Else
sElem = sTemp
sTemp = ""
End If
Redim Preserve aResult(i)
aResult(i) = sElem
i = i + 1
Loop
SplitStrToArray = aResult
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas