Jump to content

List of particular Layouts


This topic is 5472 days old. Please don't post here. Open a new topic instead.

Recommended Posts

I want to create a list of layouts, but not all of my layouts. I'm sure this is relatively simple, but I'm having trouble figuring it out.

Let's say I have Layout A through Layout Z, but I just want to pull Layouts between B and F.

I know that I can use LayoutNames(Get(Filename)) to create a list of all of them, but how could I use the text functions to pull what I want?

Thank you.

Link to comment
Share on other sites

This is a recursive calculation, so you will need a custom function - perhaps something like:

ValuesStartingWith ( listOfValues ; startChar ; endChar )


Let ( [

item = GetValue ( listOfValues ; 1 ) ;

char = Left ( item ; 1 ) ;

countValues = ValueCount ( listOfValues ) 

] ;

Case ( startChar ≤ char and char ≤ endChar ; item & ¶ )

&

Case ( countValues > 1 ; ValuesStartingWith ( RightValues ( listOfValues ; countValues -1 ) ; startChar ; endChar ) )

)

Link to comment
Share on other sites

ok, I got it to work. Here is exactly what I did. I deleted the space before the word "and" and the space after the word "and", then I typed those two spaces back in manually. So seems to me there was some hidden characters/formatting when I cut and pasted that messed it up. That is over my head, but it's what worked.

Link to comment
Share on other sites

This is a different situation, since now you want values between "LayoutB" and "LayoutF", not between B and F.

However, it's easy to generalize the function, so try:

ValuesInRange ( listOfValues ; lowLimit ; highLimit )


Let ( [

item = GetValue ( listOfValues ; 1 ) ;

countValues = ValueCount ( listOfValues ) 

] ;

Case ( lowLimit ≤ item and item ≤ highLimit ; item & ¶ )

&

Case ( countValues > 1 ; ValuesInRange ( RightValues ( listOfValues ; countValues -1 ) ; lowLimit ; highLimit ) )

)

Link to comment
Share on other sites

oh! I just realized what the computer is doing, though I still don't know how to fix it. It is giving me the layouts that are in between the 2 alphabetically. I don't organize my layouts alphabetically. I apparently chose a poor example and miscommunicated my intent.

Here is another example. If I have the following layouts:

Splash Screen

Background

Insurance

Accounts

Clinical Findings

Recommendations

Settings

How do I get the computer to give me this list by telling it my list starts after "Splash Screen" and Ends before "Settings":

Insurance

Accounts

Clinical Findings

Recommendations

Edited by Guest
Link to comment
Share on other sites

I have over 100 layouts in my solution. Among those layouts is a list of about 20 different clinical tests, each with its own layout for data entry. I group those layouts together. Every time I add a new test to my research, I wanted my field that lists the available tests to automatically update based on the name of the layout.

Link to comment
Share on other sites

I found a custom function called GetIndex, and this ended up meeting my needs:

MiddleValues ( LayoutNames(Get(FileName)) ; GetIndex(LayoutNames(Get(FileName));"TestListStart")+1; GetIndex(LayoutNames(Get(FileName));"TestListEnd")-GetIndex(LayoutNames(Get(FileName));"TestListStart")-1)

Link to comment
Share on other sites

Oh, so that's what you wanted (I haven't seen your edit earlier). This could be done quite simply as:


Let ( [

start = Position ( ¶ & listOfValues & ¶ ; ¶ & startValue & ¶ ; 1 ; 1 ) ;

end = Position ( ¶ & listOfValues & ¶ ; ¶ & endValue & ¶ ; start ; 1 ) + Length ( endValue ) 

] ;

Middle ( listOfValues ; start ; end - start )

)

I still think your real issue is elsewhere.

Link to comment
Share on other sites

Please tell me more about my issues. Should I be using a different structure? I don't add tests often (about 2 a year), and I use the same tests over and over. I put each test in a different table because each is so incredibly diverse and within each tests, I use very different formulas for calculating standard scores and interpretations of those tests. I don't see it practical to have a single table with each record representing a different test because there are so many different things I would do with each test.

Link to comment
Share on other sites

I have practically no information regarding what your tests are, but it sounds like you have a field for every parameter. I would have a table of tests, and another table for the test parameters, where each parameter would be a record. A third table would be used for the actual values and statistics.

This is just the basics - it gets more complex depending on what/who you're testing, how often, etc. But the idea is to have a discrete record for each recorded value. This is the only way results can be be analyzed by any chosen criteria with no restrictions.

Link to comment
Share on other sites

OK, then. I just wanted to point out that the 100+ layouts, the current issue, and the fact that you need to put on your developer hat to do things that should be entirely in the province of the user - these are all just symptoms of a structural issue. But if it works...

Link to comment
Share on other sites

Hi Comment,

Would you mind exanding on the structure you suggested?

Test table

Results table

Analysis Table?

How would a results table allow for the programmer to define analysis for different tests? (Table names just a guess towards your structure suggestion?)

Thanks

Mike

Link to comment
Share on other sites

Would you mind exanding on the structure you suggested?

Rather difficult to do without a mission statement. My point here was that when you have a separate record for each result, you can easily produce a report by any criteria (e.g. patients with low cholesterol and high blood pressure, grouped by ethnicity). Do a search for "survey" for more examples.

Link to comment
Share on other sites

This topic is 5472 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.