Gustav Posted February 7, 2015 Share Posted February 7, 2015 Maar nu zit ik met volgend probleem. Tabel 1 vragenlijst - overzicht van vragen, categorie en vermenigvuldigingsfactor. (120 records). Een vraag wordt ingedeeld in een categorie en krijgt een vermenigvuldigingsfactor (VF). De waarde van deze factor wordt bepaald door de categorie. Relevante Veldnamen: TekstVraag, LabelVraag, Categorie, VF. Tabel 2 antwoordenlijst. 120 antwoorden op vragen uit vragenlijst (aantal records = aantal respondenten). Deze antwoorden worden genormeerd (ja - nee wordt 1 - 0, en 25% - 0,25 etc). Deze genormeerde antwoorden worden vermenigvuldigt met VF. Relevante Veldnamen: LabelVraag (ingevoerd antwoord) en cLabelVraag (berekend antwoord) Tabel 3 respondenten. Aantal respondenten met contact en adresgegevens. Probleem: De inhoud het veld van Vragenlijst - LabelVraag, wordt in tabel Antwoordenlijst gebruikt als veldnaam. Ik wil de antwoorden per respondent per categorie kunnen sorteren en zo sommeren - per categorie een score. Een sortering kan via de tabel 1 Vragenlijst plaatsvinden. Maar hoe dan te koppelen met de Tabel 2 Antwoordenlijst. In de Antwoordenlijst staan slechts de antwoorden, zonder andere ‘beschrijvende’ velden. Is de oplossing dan door de veldnaam in de Antwoordenlijst te gebruiken in combinatie met de Vragenlijst. Zo ja, hoe gaat dit zijn werk? Zo nee, heeft iemand een ander idee? Groet, Gustav Quote Link to comment
0 menno Posted February 7, 2015 Share Posted February 7, 2015 Maak in de tabel antwoordenlijst een resumé-veld aan met het totaal van het resultaat. Maak op je rapportagelayout 2 subresumé's 1 met sortering op respondent en 1 met sortering op categorie en plaats in beide subresumé's het zojuist gemaakte resumé-veld Sorteer nu op respondenten en daarbinnen op categorie Quote Link to comment
0 Gustav Posted February 7, 2015 Author Share Posted February 7, 2015 Dank Menno. Ik ben bezig geweest met je antwoord. Ik wil zo lang mogelijk proberen om de scorebepaling zo dynamisch mogelijk te houden. Maar tot nu toe is de enige informatie die tot een sortering kan leiden, is het veldnaam van antwoorden in de Antwoordenlijst in combinatie met de inhoud van Veldnaam LabelVraag. Zal dit gaan lukken met een resumé veld? Zoals ik het nu zie, wordt het een statische analyse, en verliest het de dynamiek die ik zoek. Maar ik ga het uitzoeken. Quote Link to comment
0 menno Posted February 7, 2015 Share Posted February 7, 2015 Als je het dynamisch wilt houden dan is het niet handig om 120 antwoorden op één record te hebben. Dat kan je beter (zoals in het voorbeeld van Ruben) opsplitsen in één antwoord per record (en per respondent uiteraard). Zoals jij het nu hebt opgezet is het vind ik een statisch geheel. Bijgaand een bestand het een en andere wél dynamisch is opgebouwd. Op de layout respondent staat een portaal met de vragen. Iedere keer dat je een nieuwe respondent aanmaakt, wordt er in de tabel antwoord een import van alle vragen gedaan. De vragen zijn gekoppeld aan een categorie, zodat aan iedere vraag een gewicht is gekoppeld wat je kan resumeren. Het resultaat kan je zien op de layout antwoord, door het script "Toon antwoordoverzicht" te draaien .... die gaat naar de layout, toont alle records en sorteert ze vervolgens. Vraag_maar.fmp12 Quote Link to comment
0 Gustav Posted February 8, 2015 Author Share Posted February 8, 2015 Geweldig. Ik ga vandaag er met een aantal koppen koffie rustig naar kijken en proberen te implementeren. Volgens mij begint mijn probleem met de aanlevering van de antwoorden. Deze komen binnen via een Excelbestand, met per rij de respondenten, en per kolom de antwoorden (kolomnaam = LabelVraag). Maar goed,eerst maar eens de oplossing van Ruben en Menno gebruiken. Volgens mij gaat dit nu lukken - door los te komen van mijn eigen opzet. Dank! Quote Link to comment
0 menno Posted February 8, 2015 Share Posted February 8, 2015 Ik vind jouw probleem wel grappig dus heb ik even een excel-bestandje (antwoorden.xlsx) gemaakt met 4 rijen met 120 kolommen met antwoorden, dat in het fm-bestand "Vraag_maar_met_import.fmp12" kan worden geïmporteerd. Dat laatste bestand is identiek aan die van de vorige post, maar bevat 1 extra tabel waarmee alleen maar de excel wordt geïmporteerd. De werking: druk op de knop in de layout respondent en wijs het bestand "antwoorden.xlsx" aan en klik op importeer, that's it. De antwoorden worden in tijdelijke records geïmporteerd, met een lusje worden van ieder record van ieder veld variabelen gemaakt. Vervolgens wordt er een respondent-record aangemaakt en worden er vanuit de vragen-tabel 120 antwoord-record voor de nieuw aangemaakte respondent geïmporteerd. De volgende stap vult alle antwoorden in die in de variabelen zijn opgeslagen en dat gaat door totdat alle tijdelijk antwoord-records zijn verwerkt. Daarna worden alle tijdelijke records verwijderd en het script eindigt op de layout waar je was begonnen. Kijk in het script voor de uitleg, want er komen aardig wat filemaker-technieken bij kijken: (Sub-)Scripting Fout-afvanging Importeren uit excel If-functie Get-functie Programmalussen Evaluate-functie Variabelen instellen Variabelen maken met evaluate/let Velden vullen met variabelen Archief.zip Quote Link to comment
0 Gustav Posted February 8, 2015 Author Share Posted February 8, 2015 Waanzinnig Menno! Alsof de zon weer gaat schijnen! Ik heb de afgelopen maanden me suf zitten denken voor een oplossing - en kwam niet. Vandaag kwam de mantra: "bagger in geeft bagger uit" steeds terug in mijn hoofd. Ik ben ook nog op het engelstalige fileMaker forum gaan zoeken op 'survey design'. Ook daar geen duidelijke oplossingen te vinden. De bron van het probleem begint bij de input - de vragenlijst komt van een website, in .xlsx, en is ongeordend. De enige ordening die ik kon bedenken om de kolomnaam in Excel (Veldnaam in tabel) te gebruiken om te categoriseren in FMP. Voor het eten was is begonnen om jullie adviezen te implementeren, en de input beter te organiseren: dan maar in het excel bestand. Per categorie 1 werkblad, handmatig te ordenen/coderen. Ik had me erbij neergelegd dat het er gewoon niet in zat... Met een kop koffie na het eten maar weer begonnen. En dan nu deze oplossing: Ik heb met mijn beginnend FMP brein nog niet helemaal duidelijk hoe het gebeurt, maar het werkt. Ik ben blij dat jij het probleem 'wel grappig' vindt. Ik ben er meer dan blij mee, en kan slechts met verwondering kijken. Het zal wel even duren voordat ik je gebruikte technieken kan snappen (fout-afvanging, programmalussen etc.), maar heb er zin in. Maar nu eerst aan de slag. Dank! Quote Link to comment
0 menno Posted February 8, 2015 Share Posted February 8, 2015 Het enige dat je bij dit soort problemen moet doen is voor jezelf in stappen duidelijk maken wát je precies probeert te doen en je vooral niet laten beperken door genomen stappen uit het verleden. Dat natuurlijk altijd nog opduiken, maar je kan het beste starten met te doen alsof dat niet zo is. Je zal mijn oplossing misschien niet zomaar kunnen implementeren in de db-sctructuur die je al hebt, maar het gaat om het idee en wellicht kan je de bestanden structuur zo aanpassen dat je het kan gebruiken. De kern van mijn suggestie is uitgegaan van de door jou beschreven excel. Het kan zijn dat er nog meer kolommen in staan, zoals een naam en een datum en andere informatie. Je zal dan de import moeten aanpassen om jouw situatie te accomoderen, maar het principe blijft overeind: je importeert de antwoorden in met nummers geïndexeerde veld(nam)en f1...fn zodat je later in een lus van die structuur gebruik kan maken met een oplopend tellertje etc. etc. en dat is dus anders dan de structuur van jouw gegevens. Je moet dus "out of the box" denken eigenlijk, maar vooral zo simpel mogelijk. Laat je ook vooral niet beperken door het feit dat je niet alle commando's van je software (in dit geval Filemaker) kent, maar bedenk gewoon de stappen die je wilt doen, bijvoorbeeld: Importeren Uit elkaar halen Wegschrijven voor een respondent Rapporteren en die stappen kan je ook weer verfijnen, daarna ge je het gewoon programmeren (en de juiste stappen en commando's erbij zoeken) Gebruik je filemaker 13 of 13 Advanced? Je kan om dit goed te ontwikkelen eigenlijk niet zonder script-debugger en gegevens-inzage. Het wordt anders best lastig om scripts zoals dit import-script goed op te zetten en te debuggen met het gebruik van variabelen en zo, want ipv de gegevens-inzage moet je dan tijdelijk waarden in global-fields gaan zetten en escapes in je script inbouwen waarmee je kan kijken wat er met je db gebeurt tijdens de uitvoer. Het is wel te doen hoor, want pre-FM6 hadden wij FM-ontwikkelaars geen debugger en geen gegevens-inzage en gegeven-inzage kregen we pas met FM7 en variabelen pas sinds FM8, maar het is allemaal véél ingewikkelder .... dus als je het nog niet gebruikt, stap dan over op Filemaker Pro Advanced, het is het extra geld beslist waard Quote Link to comment
Question
Gustav
Maar nu zit ik met volgend probleem.
Tabel 1 vragenlijst - overzicht van vragen, categorie en vermenigvuldigingsfactor. (120 records).
Een vraag wordt ingedeeld in een categorie en krijgt een vermenigvuldigingsfactor (VF). De waarde van deze factor wordt bepaald door de categorie.
Relevante Veldnamen: TekstVraag, LabelVraag, Categorie, VF.
Tabel 2 antwoordenlijst. 120 antwoorden op vragen uit vragenlijst (aantal records = aantal respondenten).
Deze antwoorden worden genormeerd (ja - nee wordt 1 - 0, en 25% - 0,25 etc). Deze genormeerde antwoorden worden vermenigvuldigt met VF.
Relevante Veldnamen: LabelVraag (ingevoerd antwoord) en cLabelVraag (berekend antwoord)
Tabel 3 respondenten. Aantal respondenten met contact en adresgegevens.
Probleem:
De inhoud het veld van Vragenlijst - LabelVraag, wordt in tabel Antwoordenlijst gebruikt als veldnaam.
Ik wil de antwoorden per respondent per categorie kunnen sorteren en zo sommeren - per categorie een score.
Een sortering kan via de tabel 1 Vragenlijst plaatsvinden.
Maar hoe dan te koppelen met de Tabel 2 Antwoordenlijst.
In de Antwoordenlijst staan slechts de antwoorden, zonder andere ‘beschrijvende’ velden.
Is de oplossing dan door de veldnaam in de Antwoordenlijst te gebruiken in combinatie met de Vragenlijst.
Zo ja, hoe gaat dit zijn werk?
Zo nee, heeft iemand een ander idee?
Groet, Gustav
Link to comment
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.