Creazione indice
Moderatore: Moderatori
-
- Messaggi: 26
- Iscritto il: sabato 28 febbraio 2015, 7:52
Creazione indice
Buongiorno Forum,
Tempo fa avevo chiesto aiuto per risolvere il problema descritto di seguito. Non ho ricevuto risposte e lo risottopongo perché ho nuovamente la stessa necessità.
Grazie
Saverio
Ho una lista di nomi a ciascuno dei quali corrisponde un numero; un nome può avere più numeri (in pratica devo fare un indice analitico per nomi indicando tutte le pagine in cui quel nome compare). Devo fare in modo che le duplicazioni dei nomi vengano eliminate mentre le pagine di riferimento iniziali vengano separate da una virgola. Faccio un esempio:
Rossi, 1
Rossi, 5
Verdi, 1
Verdi, 2
Gialli, 3
Il risultato deve essere
Rossi, 1, 5
Verdi, 1, 2
Gialli, 3
Tempo fa avevo chiesto aiuto per risolvere il problema descritto di seguito. Non ho ricevuto risposte e lo risottopongo perché ho nuovamente la stessa necessità.
Grazie
Saverio
Ho una lista di nomi a ciascuno dei quali corrisponde un numero; un nome può avere più numeri (in pratica devo fare un indice analitico per nomi indicando tutte le pagine in cui quel nome compare). Devo fare in modo che le duplicazioni dei nomi vengano eliminate mentre le pagine di riferimento iniziali vengano separate da una virgola. Faccio un esempio:
Rossi, 1
Rossi, 5
Verdi, 1
Verdi, 2
Gialli, 3
Il risultato deve essere
Rossi, 1, 5
Verdi, 1, 2
Gialli, 3
____________________
Saverio Fiore
Neofita
FMPRO Adv, Apple
Saverio Fiore
Neofita
FMPRO Adv, Apple
- fabio.beri
- Messaggi: 1968
- Iscritto il: sabato 4 ottobre 2014, 16:24
- Versione FileMaker: 2023
- Sistema operativo: Win/Mac
Re: Creazione indice
Ciao Saverio. Non ho idea della struttura che hai dato a questo tuo db, però io farei una cosa del genere:
ORDINA I RECORD [TABELLA_CORRENTE::COGNOME]
IMPOSTA VARIABILE $COGNOME ""
IMPOSTA VARIABILE $DATI_COMPLETI ""
LOOP
IMPOSTA VARIABILE $COGNOME [TABELLA_CORRENTE::COGNOME]
IF $COGNOME = TABELLA_CORRENTE::COGNOME ;
IMPOSTA VARIABILE $DATI_COMPLETI [ $COGNOME & "," & CAMPO_NUMERO]
ELSE
IMPOSTA RELAZIONE_COGNOME_CON_COGNOME::COGNOME[TABELLA_CORRENTE::COGNOME]
IMPOSTA RELAZIONE_COGNOME_CON_COGNOME::NUMERI[TABELLA_CORRENTE::NUMERO]
IMPOSTA VARIABILE $DATI_COMPLETI [ $COGNOME]
END IF
END LOOP
Si può fare anche in un altro modo. Tramite una relazione COGNOME con COGNOME, si potrebbe usare l'istruzione LISTA per avvere tutti i numeri di pagina di quel cognome in modo tale poi, da utilizzare la funzione RICAVA RIPETIZIONE e registrarli tutti insieme su una stessa riga.
Ti ho buttato lì un'idea da fare con un loop, perché, RIPETO, non ho idea di come hai strutturato il tuo database. Hai una tabella sola? Ne hai una seconda per mettere i risultati? Non si sa. Forse è per questo che nessuno ti ha risposto...
Parti da questi consigli, ragionandoci sopra...
PS: non mi fare come tanti utenti che pensano di fare copia/incolla che così non funzionerebbe affatto.
ORDINA I RECORD [TABELLA_CORRENTE::COGNOME]
IMPOSTA VARIABILE $COGNOME ""
IMPOSTA VARIABILE $DATI_COMPLETI ""
LOOP
IMPOSTA VARIABILE $COGNOME [TABELLA_CORRENTE::COGNOME]
IF $COGNOME = TABELLA_CORRENTE::COGNOME ;
IMPOSTA VARIABILE $DATI_COMPLETI [ $COGNOME & "," & CAMPO_NUMERO]
ELSE
IMPOSTA RELAZIONE_COGNOME_CON_COGNOME::COGNOME[TABELLA_CORRENTE::COGNOME]
IMPOSTA RELAZIONE_COGNOME_CON_COGNOME::NUMERI[TABELLA_CORRENTE::NUMERO]
IMPOSTA VARIABILE $DATI_COMPLETI [ $COGNOME]
END IF
END LOOP
Si può fare anche in un altro modo. Tramite una relazione COGNOME con COGNOME, si potrebbe usare l'istruzione LISTA per avvere tutti i numeri di pagina di quel cognome in modo tale poi, da utilizzare la funzione RICAVA RIPETIZIONE e registrarli tutti insieme su una stessa riga.
Ti ho buttato lì un'idea da fare con un loop, perché, RIPETO, non ho idea di come hai strutturato il tuo database. Hai una tabella sola? Ne hai una seconda per mettere i risultati? Non si sa. Forse è per questo che nessuno ti ha risposto...
Parti da questi consigli, ragionandoci sopra...
PS: non mi fare come tanti utenti che pensano di fare copia/incolla che così non funzionerebbe affatto.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19
Omnia Studio
-----------------------------------------
http://tinyurl.com/omniagest2024
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19
Omnia Studio
-----------------------------------------
http://tinyurl.com/omniagest2024
-
- Messaggi: 26
- Iscritto il: sabato 28 febbraio 2015, 7:52
Re: Creazione indice
Ciao Fabio,
sempre all'erta e disponibile. Grazie mille per i suggerimenti: vediamo cosa sono in grado di fare.
Saluti,
Saverio
sempre all'erta e disponibile. Grazie mille per i suggerimenti: vediamo cosa sono in grado di fare.
Saluti,
Saverio
____________________
Saverio Fiore
Neofita
FMPRO Adv, Apple
Saverio Fiore
Neofita
FMPRO Adv, Apple
-
- Messaggi: 26
- Iscritto il: sabato 28 febbraio 2015, 7:52
Re: Creazione indice
Buongiorno,
Faccio tesori dell'invito di F. Beri e riprendo la discussione sul forum invece che in PM. Illustro nuovamente il mio problema per spiegarlo meglio ed inserendo questa volta più informazioni (e precise).
Utilizzo FMPro Adv e le mie conoscenze di programmazione sono prossime allo zero.
Il mio file si chiama INDICE e contiene una tabella che si chiama INDICE
Ho due variabili: COGNOME e PAGINA.
COGNOME è una variabile-testo; PAGINA è una variabile-numero
A un valore di COGNOME corrisponde un valore di PAGINA.
COGNOME può comparire in più pagine (per esempio: Rossi -1; Rossi - 5; Bianchi - 1; Bianchi - 3; Verdi - 2). Devo fare in modo che le duplicazioni dei nomi vengano eliminate mentre le pagine di riferimento iniziali vengano separate da una virgola.
Il risultato deve essere
Rossi, 1, 5
Bianchi, 1, 3
Verdi, 2
Grazie ancora per la pazienza.
Faccio tesori dell'invito di F. Beri e riprendo la discussione sul forum invece che in PM. Illustro nuovamente il mio problema per spiegarlo meglio ed inserendo questa volta più informazioni (e precise).
Utilizzo FMPro Adv e le mie conoscenze di programmazione sono prossime allo zero.
Il mio file si chiama INDICE e contiene una tabella che si chiama INDICE
Ho due variabili: COGNOME e PAGINA.
COGNOME è una variabile-testo; PAGINA è una variabile-numero
A un valore di COGNOME corrisponde un valore di PAGINA.
COGNOME può comparire in più pagine (per esempio: Rossi -1; Rossi - 5; Bianchi - 1; Bianchi - 3; Verdi - 2). Devo fare in modo che le duplicazioni dei nomi vengano eliminate mentre le pagine di riferimento iniziali vengano separate da una virgola.
Il risultato deve essere
Rossi, 1, 5
Bianchi, 1, 3
Verdi, 2
Grazie ancora per la pazienza.
____________________
Saverio Fiore
Neofita
FMPRO Adv, Apple
Saverio Fiore
Neofita
FMPRO Adv, Apple