-
FlexPro
- At a Glance
- Features & Options
- Applications
- All Advantages
- What’s New in FlexPro 2021
- Try FlexPro For Free
- FlexPro View OEM Freeware
- Buying Guide
- Login
- Language
- +49 6894 929600
- infoweisang.com
- Google Maps
- Products
- News
- Support
- Company
- Contact
- Login
- Language
- +49 6894 929600
- infoweisang.com
- Google Maps
Wert ungültig setzen
- This topic has 6 replies, 2 voices, and was last updated 18 years, 10 months ago by Marius Schmidt.
-
AuthorPosts
-
January 12, 2006 at 12:48 am #12655Marius SchmidtMember
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.
January 12, 2006 at 12:48 am #8318Marius SchmidtMemberIch 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.
January 12, 2006 at 3:08 am #9062Bernhard KantzParticipantThere 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:
Dim names, i names = ..Objects({".*.dat"}).Names For Each Row i in names Do dim data = $names$ data[10] = ? End
See also “How can I access all objects in the root folder with FPScript?” in the FPScript forum
January 12, 2006 at 8:57 pm #9063Marius SchmidtMemberKann diese Anweisung auch in FlexPro 6.0 übertragen werden, bzw. wie würde sie dann lauten?
January 12, 2006 at 9:12 pm #9064Bernhard KantzParticipantThat’s possible with ObjectNames.
Dim names, i names = $.Path : ".FLD"$.ObjectNames({".*.dat"}) For Each Value i in names Do dim data data = $names$ data[10] = ? End
January 12, 2006 at 9:55 pm #9065Marius SchmidtMemberUnd wie erreiche ich nun, dass in allen Datensätzen z.B. der Wert “-3,40282e+038” ungültig gesetzt wird.
January 12, 2006 at 11:11 pm #9066Bernhard KantzParticipantYou can search the index of a value with the FPScript function SearchValue. 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.
Dim data data = dataset data[SearchValue(data, -3.40282e+038)] = ? data
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 ‘?’.Arguments data, value Dim dd dd = data dd[SearchValue(dd, value)] = ? dd
2) Write a macro which creates one formula for each dataset.
ReplaceValue(dataset, value)
With VBA you can also convert (evaluate) these formulas into a dataset and delete the origin data sets.
-
AuthorPosts
- You must be logged in to reply to this topic.