FlexPro
HistoryBase
Ingénierie
Formation
Téléchargements
Support FlexPro
Connaissance
Communauté
À propos de nous
Références
Emplois
Contact général
Liste des revendeurs
Support FlexPro
FR
DE
EN
Porte-plaquette
Produits et solutions
Support et téléchargements
Entreprise
Magazine
Contact
Langue
MyWeisang

Paramètres du compte.

Topic

Wert ungültig setzen

Page d'accueil ' Communauté ' Généralités ' Définir une valeur non valide

Voir les messages de 7 - 1 à 7 (sur un total de 7)
  • Auteur
    Messages
  • #34086
    Marius Schmidt
    Participant

    Ich möchte einen bestimmten Wert in allen Datensätzen eines Ordners ungültig setzen. Mit welcher Funktion erreiche ich dies? Wichtig ist mir dabei, dass ich diesen Schritt nicht separat für jeden einzelnen Datensatz durchführen muss, denn es sind weit über 60 Datensätze in dem Ordner.

    #34092
    Marius Schmidt
    Participant

    Ich möchte einen bestimmten Wert in allen Datensätzen eines Ordners ungültig setzen. Mit welcher Funktion erreiche ich dies? Wichtig ist mir dabei, dass ich diesen Schritt nicht separat für jeden einzelnen Datensatz durchführen muss, denn es sind weit über 60 Datensätze in dem Ordner.

    #34087
    Bernhard Kantz
    Participant

    There is a property names “Object.Names” to obtain the names of objects in a folder. Optionally this property accepts “wildcard” characters to restrict the object to be addressed.
    Once you have the list of object names, you can use the indirection operator $$ to access the objects.

    With The following example you get all datasets of the folder which includes the FPScript formula:
    [code]
    Dim names, i
    names = ..Objects({“.*.dat”}).Names
    For Each Row i in names Do
    dim data = $names[i]$
    data[10] = ?
    End
    [/code]

    See also “How can I access all objects in the root folder with FPScript?” in the FPScript forum

    Support@weisang.com

    #34088
    Marius Schmidt
    Participant

    Kann diese Anweisung auch in FlexPro 6.0 übertragen werden, bzw. wie würde sie dann lauten?

    #34089
    Bernhard Kantz
    Participant

    That’s possible with [b]ObjectNames[/b].
    [code]
    Dim names, i
    names = $.Path : “.FLD”$.ObjectNames({“.*.dat”})

    For Each Value i in names Do
    dim data
    data = $names[i]$
    data[10] = ?
    End
    [/code]

    support@weisang.com

    #34090
    Marius Schmidt
    Participant

    Und wie erreiche ich nun, dass in allen Datensätzen z.B. der Wert “-3,40282e+038” ungültig gesetzt wird.

    #34091
    Bernhard Kantz
    Participant

    You can search the index of a value with the FPScript function [b]SearchValue[/b]. With FPScript you cannot directly manipulate a data set. In this case you have to write a VBA macro. But the formula can return the new calculated values.
    [code]
    Dim data
    data = dataset
    data[SearchValue(data, -3.40282e+038)] = ?
    data
    [/code]
    In FlexPro 7 a FPScript formula can return a list with the datasets. In FlexPro 6 you need a formula for each data set.
    In this case it’s better to create a VBA macro with FlexPro Professional. With FlexPro Standard you cannot automate these steps.

    Do these steps:
    1) Create the formula ‘ReplaceValue’ with the arguments data and value which replaces the value with ‘?’.
    [code]
    Arguments data, value
    Dim dd
    dd = data
    dd[SearchValue(dd, value)] = ?
    dd
    [/code]
    2) Write a macro which creates one formula for each dataset.
    [code]
    ReplaceValue(dataset, value)
    [/code]
    With VBA you can also convert (evaluate) these formulas into a dataset and delete the origin data sets.

    Support@weisang.com

Voir les messages de 7 - 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.