Bonne journée,l'aide d'un script de lotus pour modifier les données dans un field.Want les données à plusieurs bordées
Je vais commencer par dire je travaille pour une petite entreprise et ont aucune formation officielle en tout Remarques I savoir que j'ai appris acheter des essais et erreurs & en utilisant d'autres codes des peuples. Application: Nous avons une base de données de commandes qui dure depuis très longtemps et qui a jeté les âges que les gens ont mis dans les noms de fournisseurs de manière diffuse. Maintenant, j'ai trouvé un code qui va dans les formulaires sélectionnés et change les valeurs du champ, ce qui est exactement ce dont j'ai besoin le seul problème est que c'est une seule ligne. Le champ que je veux mettre à jour comporte environ 5 lignes de texte (nom de l'entreprise, numéro de téléphone, etc.) et le programmeur d'origine a mis toutes les informations dans un champ. Question: Y a-t-il une manière dans le script lié ci-dessous comment je peux faire entrer chaque invite dans une ligne diffirent.J'ai essayé quelques chose et je pense que je peux manquer quelque chose d'évident. (Si j'essaie chr (10); chlv tout ce que je reçois est soit les 2 valeurs à côté de l'autre ou les faire séparés par une virgule)
` Sous Initialiser Dim ws As New NotesUIWorkspace session de Dim Comme l'invite New NotesSession Dim As String Dim fieldName As String Dim fieldValue As String Dim dataTypes Comme variante Dim thisDataType As String Dim FieldValues As Variant Dim newFieldValues As Variant Dim db Comme NotesDatabase Dim coll Comme NotesDocumentCollection Dim i As Integer Dim doc Comme NotesDocument élément Dim Comme
NotesChampprompt = "Please enter the name of the field to be updated"
fieldName = ws.Prompt(3, "Enter Field Name", prompt, "")
If fieldName = "" Then Exit Sub
If Instr(fieldName, " ") <> 0 Then
prompt = "Error! Field Names can't have spaces!"
Msgbox prompt, 16, "Error"
Exit Sub
End If
prompt = "Please enter the new value. For multiple values, separate with a colon."
Value1 =ws.Prompt(3, "Enter Field Value", prompt, "")
Value2= ws.Prompt(3, "Enter Field Value", prompt, "")
Fieldvalue=value1 + Chr(10) +value2
Redim dataTypes(5) As String
dataTypes(0) = "Text"
dataTypes(1) = "Number"
dataTypes(2) = "Date"
dataTypes(3) = "Readers"
dataTypes(4) = "Authors"
dataTypes(5) = "DELETE THIS FIELD"
prompt = "Choose the data type of the value(s)"
thisDataType = ws.Prompt(4, "Choose Data Type", prompt, dataTypes(0), dataTypes)
If thisDataType = "" Then Exit Sub
Set db = session.CurrentDatabase
Set coll = db.UnprocessedDocuments
fieldValues = Evaluate({@Explode("} & fieldValue & {"; ":")})
Select Case thisDataType
Case dataTypes(0) : Redim newFieldValues(Ubound(fieldValues)) As String
Case dataTypes(1) : Redim newFieldValues(Ubound(fieldValues)) As Double
Case dataTypes(2) : Redim newFieldValues(Ubound(fieldValues)) As Variant
Case dataTypes(3) : Redim newFieldValues(Ubound(fieldValues)) As String
Case dataTypes(4) : Redim newFieldValues(Ubound(fieldValues)) As String
End Select
For i = Lbound(fieldValues) To Ubound(fieldValues)
Select Case thisDataType
Case dataTypes(0) : newFieldValues(i) = Trim(fieldValues(i))
Case dataTypes(1) : newFieldValues(i) = Val(fieldValues(i))
Case dataTypes(2) : newFieldValues(i) = Cdat(fieldValues(i))
Case dataTypes(3) : newFieldValues(i) = Trim(fieldValues(i))
Case dataTypes(4) : newFieldValues(i) = Trim(fieldValues(i))
End Select
Next
Set doc = coll.GetFirstDocument
While Not doc Is Nothing
If thisDataType = "DELETE THIS FIELD" Then
If doc.HasItem(fieldName) Then Call doc.RemoveItem(fieldName)
Else
Call doc.ReplaceItemValue(fieldName, newFieldValues)
If thisDataType = dataTypes(3) Or thisDataType = dataTypes(4) Then
Set item = doc.GetFirstItem(fieldName)
If thisDataType = dataTypes(3) Then item.IsReaders = True
If thisDataType = dataTypes(4) Then item.IsAuthors = True
End If
End If
Call doc.Save(True, False)
Set doc = coll.GetNextDocument(doc)
Wend
End Sub '
Désolé pour le long message, mais je ne savais pas ce qui était nécessaire. La première fois que j'affiche de l'aide, mais j'ai peur de manquer quelque chose de contraire.
François
Merci d'avoir pris le temps de répondre. Y aurait-il un moyen de changer les propriétés du champ en utilisant le même script? (L'affichage des valeurs séparées dans la nouvelle ligne). La raison en est que ces formulaires que j'ai besoin de changer remontent à environ 1992 et depuis ils ont changé le format des formulaires mais ils ont gardé le paramètre "Enregistrer le formulaire dans le document", donc la seule façon de changer ces champs paramètres est en utilisant une mise à jour de modèle de formulaire de base de données globale et je ne suis pas sûr quels types de ravages il fera. Merci encore Frabcois – Francois
Ouch. On dirait que vous êtes déjà sur la route d'une application horriblement inabordable. Au moment où quelqu'un devra mordre la balle et refactoriser. – Kerr