Jump to content
  • 0

Hulp met portal en filter


DenniSblah

Question

Dag allemaal,

 

ik zal mezelf eerst even voorstellen. Ik ben Dennis, 25 jaar oud en werk voor een groot internationaal bedrijf als IT support.

We gebruiken heel veel FileMaker voor het automatiseren van bepaalde processen. Mede omdat je vanuit FileMaker ook AppleScript kunt draaien :-)

 

Nou is mijn collega op vakantie, en heb ik een paar vraagjes.

Ik heb 1 layout, met een tab scherm, de gegevens hiervan staan in 3 verschillende tables.

 

Nu heb ik nog 1 layout, met een portal en ook hetzelfde tabscherm.

 

Ik probeer nu een zoekfunctie te maken, maar dat moet werken op meerdere filters.

Bijv. listID, listStatus en listUser

 

Als ik nu een relatie maak van mn 'search_Status' naar 'main_Status', dan komen alle resultaten waar 'main_Status == listStatus'

Maar als ik de rest van de relaties maak, werkt het niet. En het moet ook zo zijn dat ik bepaalde filters gewoon leeg kan laten?

 

Ik was op zoek om relaties programmatisch te maken, maar dat was niet mogelijk las ik op een andere forum.

 

Dan heb ik nog 1 vraag. Ik kan als ik op de portal row klik, het ID van de geklikte row wel vinden, maar hoe kan ik dan de gegevens van de table van die row weergeven in de tabscherm in mijn zoek layout?

 

Hopelijk kan iemand mij helpen, dat zou geweldig zijn!

Link to comment

14 answers to this question

Recommended Posts

  • 0

Hallo Dennis,

 

Je kunt relaties niet ‘on-the-fly’ wijzigen, maar door gebruik te maken van een global als filter en een (geindexeerd) veld in de andere tabel kun je nog wel dynamiek toevoegen aan relaties.

Verder kun je op de portal een filter gebruiken.

 

Met scripts kun je overigens ook zoekopdrachten uitvoeren en daarbij ‘filters’ ook gewoon leeg laten.

Link to comment
  • 0

Hoi Felix.

 

De termen, listID, listStatus en listUser zijn velden die ik op mijn 'search layout' heb staan.

Aan de hand van deze velden, wil ik dus de portal laten zoeken naar, mainID, main_status, main_user

 

Deze zoekfilter moet ook partial werken.

 

Dus als ik in listStatus Op typ, dan wil ik ALLE resultaten van de main database in mn portal krijgen, welke de status begint met 'Op' (in dit geval Open)

als ik dan in User, den typ, wil ik alle resultaten waarvan de status begint met Op en user begint met den.

 

Ik heb nu een relatie tussen list_status en main_status.

Dus als ik nu in mijn veld, 'Filter Status', Open typ, dan krijg ik alle resultaten waarbij de main_status == Open

Echter, als ik alle relaties aan elkaar zet, dan krijg ik niks meer, ook als ik alle velden invul. (Ik heb het dan over list_id, list_user, list_status)

 

Over het klikken in portal. Zodra ik op de portal klik heb ik nu een dialog schermpje :

Show Custom Dialog ["Selected id:"; mainRequests::cr_id]

Dit werkt, maar hoe kan ik nu de velden die rechts van mijn portal staan, de gegevens laten zien van de main tabel waar de cr_id gelijk is aan de id die ik geselecteerd heb?

 

Ik zal 2 screenshots erbij doen.

 

Main layout waar ik de records maak:

Screen_Shot_2014_07_30_at_12_28_49.png

 

Search layout, waar ik de records in zou willen ophalen dmv de zoekvelden onderaan de portal

Screen_Shot_2014_07_30_at_12_29_09.png

Link to comment
  • 0

Hallo Dennis,

 

In plaats van de Show Custom Dialog kun je Show related record gebruiken (vermist beide schermen in dezelfde tabel zitten, dat kan ik zo niet zien).

Je gaat dan gewoon naar het record waarop je klikt.

 

In de Portal kun je filteren met behulp van de gegevens die je onderaan wel/niet gebruikt. Hou er rekening mee dat je filter werkt op alles wat ‘true’ is. Dus het kan een uitgebreid filter worden.

 

Wanneer je zoeklay-out/tabel een andere is dan je gegevenstabel zou je kunnen werken met een global field wat je gebruikt als relatie tussen het zoekresultaat en de gegevens.

Link to comment
  • 0

Hoi bigbadwolf,

 

ik gebruik de Show Custom Dialog, om te testen of ik inderdaad het gegeven krijg wat ik zoek. ID van de record in de portal.

Ik heb inderdaad de Show related record geprobeerd,.

 

Ik vul mijn zoekveld van status in: Open

Ik krijg in mijn portal 2 rijen.

cr_id | Status

3 | Open

7 | Open

 

Ik krijg altijd de gegevens van cr_id 7

 

Inderdaad is mijn zoek-layout een andere tabel. Zie onder de portal:

s_status (Dit is de enige dat momenteel werkt, omdat ik tot nu toe op maar 1 criteria kan zoeken)

s_requestor

s_id

 

De rest komt gewoon uit de main tabel.

 

Zou je een klein voorbeeldje kunnen geven voor het filteren op meerdere criteria ? Want wanneer ik van de s_status, s_requestor en s_id een global maak, en de relaties overal maak, dan krijg ik alleen maar resultaten wanneer ik alle velden invul.

Als ze leeg zijn, moet ik gewoon alle resultaten krijgen.

Link to comment
  • 0
Hallo Dennis,

 

In plaats van de Show Custom Dialog kun je Show related record gebruiken (vermist beide schermen in dezelfde tabel zitten, dat kan ik zo niet zien).

Je gaat dan gewoon naar het record waarop je klikt.

 

In de Portal kun je filteren met behulp van de gegevens die je onderaan wel/niet gebruikt. Hou er rekening mee dat je filter werkt op alles wat ‘true’ is. Dus het kan een uitgebreid filter worden.

 

Wanneer je zoeklay-out/tabel een andere is dan je gegevenstabel zou je kunnen werken met een global field wat je gebruikt als relatie tussen het zoekresultaat en de gegevens.

 

Beste bigbadwolf,

 

Bedankt voor de tip voor de global fields! En mijn relaties klopten niet. ipv = moest ik x hebben.

Nu werken mijn filters perfect :)

 

Nou alleen dat Show related record nog. Hij laat alleen de laatste record zien van de table, en zodra ik op de record klik krijg ik de volgende error:

This operation could not be completed because this layout cannot display the result.

 

Terwijl deze layout alle velden bevat die ik nodig heb en zijn gedefineerd.

Link to comment
  • 0

Hallo Dennis,

 

Vraag je wel om de ID van het gerelateerde record? Het lijkt erop dat je niet het ID vraagt van het record uit de portal, maar van de directe tabel. Dan krijg je inderdaad altijd dezelfde uitkomst.

 

Dus i.p.v. bijv. LOKALETABEL::ID moet je vragen PORTALRELATIE::ID.

 

Wat betreft de weergave van de Show related... moet je even controleren of je wel naar de goede lay-out gaat. Bij de opties van deze functie moet je een keuze maken voor ‘current layout’ of een andere. Daar kun je de juiste lay-out kiezen.

Link to comment
  • 0

Maar de current layout is juist goed, want daar wil ik t hebben

 

En met portalrelatie bedoel je mn search id?

Op de 2e foto is mn search layout.

Hoe bedoel je dit precies met portalrelatie?

 

Moet ik voor de portal nog een extra veld in search tabel maken?

Dat deze een directe relatie krijgt met se main tabel?

Link to comment
  • 0

Hmmmz ik zal een screenshot maken van mn tabel, zie hieronder.

Ik ben nogal nieuw in FileMaker, ik ben meer van de PHP, mySQL, jQuery, javascript, objective-C.

De enige ''''''''vergelijkbare''''''' ervaring als dit heb ik op school op gedaan met Microsoft Access.

 

Ik houd me meer bezig met de scripts die erachter draaien en mijn collega de rest.

Aangezien die op vakantie is moet ik me hier nu in gaan verdiepen.

 

In de image hieronder staan 2 tabellen.

changeRequest is de tabel van mijn layout waar de klant hun request in gaat invoeren.

en de findRequest tabel is waar ik nu bezig ben met de portal. (findRequest bevat eigenlijk alleen de global velden waarop ik ga zoeken)

 

Als ik op mijn findRequest layout de changeRequest tabel als 'main' zet, dan krijg ik helemaal geen gegevens terug. (Alle opties in de portal setup zijn dan grijs geworden)

In mn findRequest staan eigenlijk verder helemaal geen records, slechts 1, waarmee gezocht gaat worden. Alle andere velden op de layout, komen uit de changeRequest tabel.

Ik moet al deze velden op de findRequest layout invullen met de gegevens uit de velden van changeRequest op basis van de ID die ik in de portal aanklik.

 

Of moet mijn findRequest tabel ook alle velden bevatten die ik uit de changeRequest haal ?

 

Screen_Shot_2014_07_30_at_19_15_54.png

Link to comment
  • 0

Hoi felix,

 

Ja sorry findRequest is inderdaad de layout en searchRequest de tabel

 

Ehm er komen 100 tot 1000 nieuwe records in per maand

Deze requests blijven weken staan waarbij er tussendoor van de ene partij en andere partij bestanden en tekst wordt gedeeld

Dit staat overigens in n andere tabel omdat de changerequest 1 keer gemaakt wordt en dan alleen de aproval en status kan start en eind tijd kan veranderen door 1 partij

 

De findRequest layout is om de andere partij dat dus niet de requests maakt kan zoeken in de gehele database

Waarna ze op de andere tabblad zolang de status niet gesloten is nog op kan reageren

 

Het moet n applicatie worden waarbij er geen handleiding nodig is van hoe een request id te zoeken

Klik op Find, vul de gewenste waarde in gewenste veld in en druk op enter of w.e

 

Daarnaast n vereisten dat de zoekeesultaten in n lijst komt te staan waarbij ze ook met n enkele klik kunnen wisselen van requests waar de gebruiker in gespecialiseerd is

 

Daarom dat ik 2 layouts heb , en ook omdat n portal geen results kan geven van de tabel waar de layout op gebaseerd is???

 

Als je t mij vraag had ik al klaar kunnen zijn als ik t als n webapplicatie had mogen schrijven maar helaas :(

 

----------

 

Ik heb de findRequest layout aangepast naar alleen de filter velden en de portal. Zodra je op een row in de portal klik, ga je naar de request op de orginele layout.

Jammer dat ik het niet aan de praat krijg. Nu moeten de gebruikers steeds terug naar de findRequest layout om dus een andere te selecteren.

 

Toch bedankt allemaal!

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...