Page 1 of 3 123 LastLast
Results 1 to 10 of 23

Thread: Interface Questions

  1. #1

    Interface Questions

    Hi All,

    1) How would I structure a page to show a list of searchable criteria that could be entered BEFORE the data is retreived? If I have over 300,000 order records, I don't want to pull that many records from SQL.

    2) How do I change the appearance of the buttons on the bottom? It is very hard to tell if a button (say delete) is disabled.

    3) If I turn "off" a field via roles/permission, will the associated label disappear too?

    Thanks,
    Mike

  2. #2
    Lianja Support Team lianjasupport's Avatar
    Join Date
    Feb 2012
    Location
    Boston USA, Wokingham UK
    Posts
    1,259
    1. You need to build a custom query form as a custom canvas then have some buttons that do the retrieval and then change the datasource on a grid (assuming you want to populate a grid).

    2. The "FormBar" at the botton of the screen is a standard attribute and can be hidden/disabled. If the user does not have delete permission the button should be grayed out. If it isn't thats a bug.

    3. Yes the field (caption and control) will not be visible. Thats also true for apps, pages and sections. Its all role/permission based.

    sidenote: it sounds like we need a new attribute (Don't load data when app first loaded) that will prevent the grids being populated automatically when the App is loaded. This would provide the functionality that you are mentioning i.e. build a query and the call refresh() on the grid from a commandbutton click delegate.

  3. #3
    Lianja Support Team lianjasupport's Avatar
    Join Date
    Feb 2012
    Location
    Boston USA, Wokingham UK
    Posts
    1,259
    Note also that you can "hide the section header at runtime" so its only there at design time. So when you switch into runtime view you will see your sections all laid out vertically above each other just like a normal "Form".

  4. #4
    Lianja Support Team lianjasupport's Avatar
    Join Date
    Feb 2012
    Location
    Boston USA, Wokingham UK
    Posts
    1,259
    Mike, there is also a "Filter" attribute on a grid section. In beta9R5 (due this week) if you set the filter value to either .f. or 1=0 then no data is retrieved.

    You can change the filter in a delegate just by referencing the grid contained within the section using the Lianja Object Model e.g.

    mygrid = Lianja.getElementByID("mygridsection").grid
    mygrid.filter = "overdue_amount > 0"
    mygrid.refresh()

  5. #5
    Lianja MVP
    Join Date
    Feb 2012
    Location
    Berea, KY, USA
    Posts
    2,187
    Quote Originally Posted by lianjasupport View Post
    1. You need to build a custom query form as a custom canvas then have some buttons that do the retrieval and then change the datasource on a grid (assuming you want to populate a grid).

    2. The "FormBar" at the botton of the screen is a standard attribute and can be hidden/disabled. If the user does not have delete permission the button should be grayed out. If it isn't thats a bug.

    3. Yes the field (caption and control) will not be visible. Thats also true for apps, pages and sections. Its all role/permission based.

    sidenote: it sounds like we need a new attribute (Don't load data when app first loaded) that will prevent the grids being populated automatically when the App is loaded. This would provide the functionality that you are mentioning i.e. build a query and the call refresh() on the grid from a commandbutton click delegate.
    In our "big" app the search criteria in "advanced" mode fill 4 pages of a pageframe. We'll be putting that in a section of its own, and putting the Grid in a section of its own. Click the custom search button and the Criteria section is made visible. Click the Find criteria, and if records are located, the criteria section goes away, and the grid section becomes visible. It's not supposed to be this easy. The Grid section will be the parent for the data section (s) below, of course. Once it has records in it, the Grid section will be able to be minimized, but will remain available for further selections.

    Hank

  6. #6
    Hank,

    What kind of app are you building? Has it been deployed yet? I would love to hear more about it.

    Mike

  7. #7
    Registered User
    Join Date
    Feb 2012
    Location
    Frankfurt am Main, Germany
    Posts
    163
    Quote Originally Posted by lianjasupport View Post
    sidenote: it sounds like we need a new attribute (Don't load data when app first loaded) that will prevent the grids being populated automatically when the App is loaded. This would provide the functionality that you are mentioning i.e. build a query and the call refresh() on the grid from a commandbutton click delegate.
    I think this should be delegated to the cursoradapter[s], as perhaps some need to load data to spec the options to select from.

    my 0.02€

    thomas

  8. #8
    Lianja Support Team lianjasupport's Avatar
    Join Date
    Feb 2012
    Location
    Boston USA, Wokingham UK
    Posts
    1,259
    Yes we are considering this i.e. adding a custoradaptor attribute to a section. We always have to take care not to tie the whole App into the desktop though, thats always the challenge. There are also other casual developers who dont need nor understand the whole concept of cursoradptors.

    The overall concept behind Lianja is to treat "Sections" as a visual representation of "Database Tables". The sections being related together visually so it merges the concepts of relational database and visual elements which may or not be SQL data i.e. they can contain web content or other.

    Anyway as I say we are looking into the best way to provide this without making it too complex to use and understand.

  9. #9
    Lianja MVP
    Join Date
    Feb 2012
    Location
    Berea, KY, USA
    Posts
    2,187
    Quote Originally Posted by lianjasupport View Post
    Yes we are considering this i.e. adding a custoradaptor attribute to a section. We always have to take care not to tie the whole App into the desktop though, thats always the challenge. There are also other casual developers who dont need nor understand the whole concept of cursoradptors.

    The overall concept behind Lianja is to treat "Sections" as a visual representation of "Database Tables". The sections being related together visually so it merges the concepts of relational database and visual elements which may or not be SQL data i.e. they can contain web content or other.

    Anyway as I say we are looking into the best way to provide this without making it too complex to use and understand.
    +1 for a cursoradapter source for a section. That way we're not pulling foreign tables down for FK descriptions. Combined with the new "dialog button" attribute from which to make a new selection from the parent table, that will solve a lot of speed issues in tables with lots of FK's, as all our main tables have.

    Since you're parsing the SQL anyway, I imagine there's a graph that shows from what table each field derives; that information could be use to access the DD information for that field. Just thinking out loud...

    My .0248379$ (not wanting to underspend Thomas <s>)

    Hank

  10. #10
    Registered User
    Join Date
    Feb 2012
    Location
    Frankfurt am Main, Germany
    Posts
    163
    Quote Originally Posted by lianjasupport View Post
    Yes we are considering this i.e. adding a custoradaptor attribute to a section. We always have to take care not to tie the whole App into the desktop though, thats always the challenge. There are also other casual developers who dont need nor understand the whole concept of cursoradptors.

    The overall concept behind Lianja is to treat "Sections" as a visual representation of "Database Tables". The sections being related together visually so it merges the concepts of relational database and visual elements which may or not be SQL data i.e. they can contain web content or other.

    Anyway as I say we are looking into the best way to provide this without making it too complex to use and understand.
    UNderstood. A section property overriding the default property of the used datastore interface in Javaspeak ;-)
    Datastore property set to something besides the default or none/null will trump the section property,
    thus giving you the option to have Python dicts or list of dicts as datastore, or arrays of JSON/JS objects in web apps...

    Should work, esp. if you keep behaiviour and data separate (as the data in the cursor has [nearly] no own behavior).

    regards

    thomas

Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Journey into the Cloud
Join us