Creazione indice

Come utilizzare gli script. Automatizzare gli archivi. Utilizzo dei pulsanti

Moderatore: Moderatori

Rispondi
Saverio Fiore
Messaggi: 26
Iscritto il: sabato 28 febbraio 2015, 7:52

Creazione indice

Messaggio da Saverio Fiore » mercoledì 3 maggio 2017, 16:25

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
____________________
Saverio Fiore
Neofita
FMPRO Adv, Apple

Avatar utente
fabio.beri
Messaggi: 1968
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: Creazione indice

Messaggio da fabio.beri » mercoledì 3 maggio 2017, 18:43

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.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

Saverio Fiore
Messaggi: 26
Iscritto il: sabato 28 febbraio 2015, 7:52

Re: Creazione indice

Messaggio da Saverio Fiore » giovedì 4 maggio 2017, 18:07

Ciao Fabio,
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
Messaggi: 26
Iscritto il: sabato 28 febbraio 2015, 7:52

Re: Creazione indice

Messaggio da Saverio Fiore » sabato 20 maggio 2017, 9:11

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.
____________________
Saverio Fiore
Neofita
FMPRO Adv, Apple

Rispondi