record successivo in un portale

Utilizzo dei portali in un database FileMaker

Moderatore: Moderatori

Rispondi
miki63
Messaggi: 7
Iscritto il: sabato 31 marzo 2007, 2:00

record successivo in un portale

Messaggio da miki63 » giovedì 12 aprile 2007, 19:04

Volevo chiedervi...

ho un portale dove inserisco i record correlati ad un'altra tabella selezionandoli con lo stile di controllo lista a discesa.
E' possibile realizzare che all'inserimento del nuovo record (ovvero alla seconda riga) nella lista a discesa non compaia più quel record precedentemente inserito?
Grazie
Miki FMP 11 Adv. Windows 7 Ultimate

raybaudi
Messaggi: 3616
Iscritto il: sabato 7 febbraio 2004, 1:00
Località: Roma
Contatta:

Messaggio da raybaudi » giovedì 12 aprile 2007, 19:27

E' possibile.

Devi trovare il modo di FILTRARE i valori della lista ( aggiungendo un elemento alla relazione, per esempio idRecord ≠ idRecord ) e richiedere che vengano mostati SOLO i valori correlati
Raybaudi FMP 12 Adv. Windows XP SP3

miki63
Messaggi: 7
Iscritto il: sabato 31 marzo 2007, 2:00

Messaggio da miki63 » giovedì 12 aprile 2007, 21:48

Grazie per la risposta... Raybaudi ()
Purtroppo sono alle prime armi... :oops:
non ti seguo... puoi essere più chiaro per favore?

dunque ho tre tabelle:
Tabella Master con ID# seriale collegata con ID numerico indicizzato della tabella secondaria (ID# = ID)
la tabella SECONDARIA ha 2 campi (ID e COD_F (testo)) relazionata alla terza da COD_F=COD_F
la TERZA tabella 2 campi ha (COD_F e descrizione)
solo nella prima relazione sono spuntate
Consenti ed Elimina nella SECONDA TAbella

Ora nella SCHEDA Master creo il Portale:
IMPOSTAZIONE PORTALE: Mostra i record correlati della SECONDA Tabella, seleziono cancella record e mostra barra scorrimento nella successiva schermata aggiungo (tabella2:COD_F e tabella3::descrizione).
Ora imposto il campo di controllo COD_F come lista a discesa e definisco la lista valori:USA i valori del campo: COD_F dellaTERZA TABELLA e visualizza anche i valori del campo descrizione sempre della terza tabella.
Includi tutti i valori e Mostra solo i valori del secondo campo.

QUINDI QUAL'E' LA CORRETTA RELAZIONE PER FILTRARE???
SE HAI UN MINIMO DI PAZIENZA e so che ne hai TANTAAA :)
Ti ringrazio fin d'ora RAYBAUDI...

Miki
Miki FMP 11 Adv. Windows 7 Ultimate

raybaudi
Messaggi: 3616
Iscritto il: sabato 7 febbraio 2004, 1:00
Località: Roma
Contatta:

Messaggio da raybaudi » domenica 15 aprile 2007, 22:27

miki63 ha scritto:QUINDI QUAL'E' LA CORRETTA RELAZIONE PER FILTRARE???
La relazione da creare è tra la prima e la terza tabella, cioè la lista valori andrà a prendere tutti i valori della terza tabella diversi da quelli definiti, con un calcolo, nella prima tabella.

Non ti preoccupare che adesso mi spiegherò meglio e, comunque, ho il file pronto !

Intanto io ho ricondotto il tuo sistema a tre tabelle a quello che normalmente si usa per la fatturazione.

Quindi:
una tabella Fatture, con IdFattura seriale autocalcolato
una tabella RigheFattura, con IdFattura ed IdProdotto
una tabella Prodotti, con IdProdotto e Descrizione

Poichè tu vuoi una lista valori con i Prodotti ma, per ogni fattura, non vuoi che siano visibili i prodotti già presenti in una qualsiasi riga della fattura stessa, avremo bisogno di utilizzare come chiave un campo calcolato.

Questo campo ( Fatture::key ) dovrà far parte della tabella Fatture ( la tua tabella MASTER ) ed avrà questo calcolo:
Lista ( RigheFattura::IdProdotto ) & "¶ " ( per la tua situazione: Lista ( Secondaria::COD_F ) & "¶ "

Duplichiamo la tabella Prodotti ( TERZA ) e colleghiamola con la prima tabella ( con il simbolo : ≠ ) tramite i campi:
Prodotti2::IdProdotto ≠ Fatture::key ( per te: TERZA2::IdProdotto ≠ MASTER::key )

La lista valori dovrà prendere i valori di Prodotti2 ( TERZA2 ), usando solo i correlati partendo da Fattura ( MASTER )

Purtroppo NON abbiamo finito...nel senso che quel calcolo sarà NON MEMORIZZATO e la relazione darà risultati imprevedibili.

A questo punto dovremo trasformare in pulsante il campo del portale RigheFattura::IdProdotto ( SECONDARIA::COD_F ) ed abbinargli questo script:

Codice: Seleziona tutto

Imposta variabile [ $row; Valore: Get ( NumeroRigaPortale) ]
Salva record/richieste [ ]
Aggiorna finestra [ Elimina i risultati dalla cache ]
Vai alla riga del portale [ Senza finestra; $row ]
Vai al campo [ RigheFattura::IdProdotto ] // per te: [ SECONDARIA::COD_F ]
Se avrai seguito tutto fin qui, la lista valori si comporterà come volevi :wink:
Raybaudi FMP 12 Adv. Windows XP SP3

Rispondi