Loop Lentissimo  Risolto!

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

Moderatore: Moderatori

Rispondi
GiuseppeFM
Messaggi: 27
Iscritto il: giovedì 2 giugno 2016, 12:14

Loop Lentissimo  Risolto!

Messaggio da GiuseppeFM » domenica 16 gennaio 2022, 13:45

Ciao Ragazzi,

Innanzi tutto grazie a chiunque abbia voglia di aiutarmi...

Ho ripreso a modificare il mio DB per lo studio medico....
Avevo creato anni fa uno script che cercava e sostituiva una serie di testi "segnaposti" inseriti in un campo, con dei risultati calcolati....
Avevo notato che era estremamente lento, ma non ci davo peso....

Da qualche giorno ho duplicato lo script per fare la stessa cosa per generare i file PDF dei moduli privacy...

con mia sorpresa lo stesso Script per i moduli privacy è una scheggia.....

cosa può causare la lentezza del primo script?

Ho provato a disattivare uno a uno i vari "if", ma la lentezza è proprio intrinseca nella funzione loop....
qualche idea o suggerimento per ovviare??
Thanks.



SCRIPT LENTO

Codice: Seleziona tutto

Imposta cattura errori [ Attivata ]
Blocca finestra
Imposta variabile [ $conteggio; Valore:1 ] Loop
Imposta variabile [ $ricerca; Valore:RicavaRipetizioni ( Dashboard::Variabili ; $conteggio ) ] #Cognome e nome
If [ $conteggio=1 ]
Imposta variabile [ $sost; Valore:Codice Fiscale::Ragione Sociale ] Else If [ $conteggio=2 ]
#DATA VISITA
Imposta variabile [ $sost; Valore:Visita::Data Visita ] Else If [ $conteggio=3 ]
#ORA TONO (si potrebbe disattivare)
Imposta variabile [ $sost; Valore:Casi(
not EVuoto(Visita::Orario Tono);Visita::Orario Tono; EVuoto ( Visita::Orario Tono );"";
)]
Else If [ $conteggio=4 ] #CF
Imposta variabile [ $sost; Valore:Codice Fiscale::CodFisc ] Else If [ $conteggio=5 ]
#LUOGO DI NASCITA
Imposta variabile [ $sost; Valore:Codice Fiscale::Comune 2 ] Else If [ $conteggio=6 ]
#DATA DI NASCITA
Imposta variabile [ $sost; Valore:Codice Fiscale::Data_Nascita ] Else If [ $conteggio=7 ]
#RESIDENZA
Imposta variabile [ $sost; Valore:Codice Fiscale::Luogo di residenza ] Else If [ $conteggio=8 ]
#ODV
Imposta variabile [ $sost; Valore:Casi(
Visita::Lente in uso OD="Nihil"; "ODv: "&Visita::Visus OD& " cc";
EVuoto (Visita::Visus OD);"";
EVuoto (Visita::Visus OD Sf) and EVuoto (Visita::Visus OD Cyl);"ODv: "&Visita::Visus OD& " vn";
not EVuoto (Visita::Visus OD Sf) and not EVuoto (Visita::Visus OD Cyl);"ODv: "&Visita::Visus OD& " Sf:"&Visita:: Visus OD Sf&" =Cyl:"&Visita::Visus OD Cyl&" a:"&Visita::Visus OD Asse;
not EVuoto (Visita::Visus OD Sf) and EVuoto (Visita::Visus OD Cyl);"ODv: "&Visita::Visus OD& " Sf:"&Visita::Visus OD Sf;
EVuoto (Visita::Visus OD Sf) and not EVuoto (Visita::Visus OD Cyl);"ODv: "&Visita::Visus OD & " Cyl:"&Visita::Visus OD Cyl&" a:"&Visita::Visus OD Asse
)]
Else If [ $conteggio=9 ]
#OSV
Imposta variabile [ $sost; Valore:Casi(
Visita::Lente in uso OS="Nihil"; "ODv: "&Visita::Visus OS& " cc";
EVuoto (Visita::Visus OS);"";
EVuoto (Visita::Visus OS Sf) and EVuoto (Visita::Visus OS Cyl);"OSv: "&Visita::Visus OS& " vn";
not EVuoto (Visita::Visus OS Sf) and not EVuoto (Visita::Visus OS Cyl);"OSv: "&Visita::Visus OS& " Sf:"&Visita:: Visus OS Sf&" =Cyl:"&Visita::Visus OS Cyl&" a:"&Visita::Visus OS Asse;
 not EVuoto (Visita::Visus OS Sf) and EVuoto (Visita::Visus OS Cyl);"OSv: "&Visita::Visus OS& " Sf:"&Visita::Visus OS Sf;
16 gennaio 2022 13:39:42 Studio Privato IPAD.fmp12 - Modifica tags -1-
EVuoto (Visita::Visus OS Sf) and not EVuoto (Visita::Visus OS Cyl);"OSv: "&Visita::Visus OS & " Cyl:"&Visita::Visus OS Cyl&" a:"&Visita::Visus OS Asse
)]
EVuoto (Visita::Visus OS Sf) and EVuoto (Visita::Visus OS Cyl);"OSv: "&Visita::Visus OS& " vn";
not EVuoto (Visita::Visus OS Sf) and not EVuoto (Visita::Visus OS Cyl);"OSv: "&Visita::Visus OS& " Sf:"&Visita:: Visus OS Sf&" =Cyl:"&Visita::Visus OS Cyl&" a:"&Visita::Visus OS Asse;
 not EVuoto (Visita::Visus OS Sf) and EVuoto (Visita::Visus OS Cyl);"OSv: "&Visita::Visus OS& " Sf:"&Visita::Visus OS Sf;
EVuoto (Visita::Visus OS Sf) and not EVuoto (Visita::Visus OS Cyl);"OSv: "&Visita::Visus OS & " Cyl:"&Visita::Visus OS Cyl&" a:"&Visita::Visus OS Asse
)]
Else If [ $conteggio=10 ]
#OFTALMOTONO + ORARIO TONO
Imposta variabile [ $sost; Valore:¶ & Casi(
not EVuoto(Visita::Orario Tono) and (not EVuoto(Visita::Tono OD) or not EVuoto (Visita::Tono OS));"L'oftalmotono alle ore "&Visita::Orario Tono &" è:";
EVuoto ( Visita::Orario Tono )and (not EVuoto(Visita::Tono OD) or not EVuoto (Visita::Tono OS));"Oftalmotono:¶"; EVuoto ( Visita::Tono OS )and EVuoto ( Visita::Tono OD) and EVuoto ( Visita::Orario Tono );"¶";
)
&¶ &
Casi (
not EVuoto ( Visita Passate::Pachimetria OD )and not EVuoto ( Visita::Tono OD ); "ODT: "& Visita::Tono reale non corretto OD & "(CCT: "& Visita Passate::Pachimetria OD & " μm)"& "-> "&Visita::Tono OD &" mmhg"& ¶;
EVuoto ( Visita Passate::Pachimetria OD )and not EVuoto ( Visita::Tono OD ); "ODT: "& Visita::Tono OD & " mmhg"& ¶;
not EVuoto ( Visita Passate::Pachimetria OD )and EVuoto ( Visita::Tono OD ); "" ;
EVuoto ( Visita Passate::Pachimetria OD )and EVuoto ( Visita::Tono OD ); "" ; ""
)
&
Casi (
not EVuoto ( Visita Passate::Pachimetria OS )and not EVuoto ( Visita::Tono OS ); "OST: "& Visita::Tono reale non corretto OS & " (CCT: "& Visita Passate::Pachimetria OS & " μm)"& "-> "&Visita::Tono OS &" mmhg"& ¶;
EVuoto ( Visita Passate::Pachimetria OS )and not EVuoto ( Visita::Tono OS ); "OST: "& Visita::Tono OS &" mmhg"& ¶;
not EVuoto ( Visita Passate::Pachimetria OS )and EVuoto ( Visita::Tono OS ); "¶" ; EVuoto ( Visita Passate::Pachimetria OS )and EVuoto ( Visita::Tono OS ); "¶" ; ""
)]
Else If [ $conteggio=11 ]
#VISUS VN e/o CSL
#Formula OLD:
Imposta variabile [ $sost; Valore:Casi(
EVuoto (Visita::ODvn)and EVuoto (Visita::ODcsl);"";
not EVuoto (Visita::ODvn)and EVuoto (Visita::ODcsl);"ODvn: "& Visita::ODvn;
EVuoto (Visita::ODvn)and not EVuoto (Visita::ODcsl); "ODv: "& Visita::ODcsl&" csl";
not EVuoto (Visita::ODvn)and not EVuoto (Visita::ODcsl);"ODvn: "& Visita::ODvn & "¶"& "ODv:"& Visita::ODcsl & " csl";
) & "¶"&
Casi(
EVuoto (Visita::OSvn)and EVuoto (Visita::OScsl);"";
not EVuoto (Visita::OSvn)and EVuoto (Visita::OScsl); "OSvn: "& Visita::OSvn; EVuoto (Visita::OSvn)and not EVuoto (Visita::OScsl); "OSv: "& Visita::OScsl&" csl";
not EVuoto (Visita::OSvn)and not EVuoto (Visita::OScsl); "OSvn: "& Visita::OSvn & "¶"& "OSv:"& Visita::OScsl &"
16 gennaio 2022 13:39:42 Studio Privato IPAD.fmp12 - Modifica tags -2-
csl"; )]
not EVuoto (Visita::OSvn)and EVuoto (Visita::OScsl); "OSvn: "& Visita::OSvn; EVuoto (Visita::OSvn)and not EVuoto (Visita::OScsl); "OSv: "& Visita::OScsl&" csl";
 not EVuoto (Visita::OSvn)and not EVuoto (Visita::OScsl); "OSvn: "& Visita::OSvn & "¶"& "OSv:"& Visita::OScsl &" csl";
)]
#Formula new (Verticale):
Imposta variabile [ $sost; Valore:Casi(
EVuoto (Visita::ODvn)and EVuoto (Visita::ODcsl) and EVuoto (Visita::OSvn)and EVuoto (Visita::OScsl); "";
not EVuoto (Visita::ODvn)and EVuoto (Visita::ODcsl) and not EVuoto (Visita::OSvn)and EVuoto (Visita::OScsl); "ODvn: "& Visita::ODvn &¶& "OSvn: "& Visita::OSvn;
EVuoto (Visita::ODvn)and not EVuoto (Visita::ODcsl) and EVuoto (Visita::OSvn)and not EVuoto (Visita::OScsl); "ODv: "& Visita::ODcsl&" csl" &¶& "OSv: "& Visita::OScsl&" csl";
not EVuoto (Visita::ODvn)and not EVuoto (Visita::ODcsl) and not EVuoto (Visita::OSvn)and not EVuoto (Visita:: OScsl);
"ODvn: "& Visita::ODvn &¶& "OSvn: "& Visita::OSvn &¶&¶& "ODv:"& Visita::ODcsl & " csl" &¶& "OSv:"& Visita:: OScsl &" csl";
)]
#Formula new (orizzontale):
Imposta variabile [ $sost; Valore:Casi(
EVuoto (Visita::ODvn)and EVuoto (Visita::ODcsl);"";
not EVuoto (Visita::ODvn)and EVuoto (Visita::ODcsl);"ODvn: "& Visita::ODvn;
EVuoto (Visita::ODvn)and not EVuoto (Visita::ODcsl); "ODv: "& Visita::ODcsl&" csl";
not EVuoto (Visita::ODvn)and not EVuoto (Visita::ODcsl);"ODvn: "& Visita::ODvn & " -> "& Visita::ODcsl & " csl"; ) & "¶"&
Casi(
EVuoto (Visita::OSvn)and EVuoto (Visita::OScsl);"";
not EVuoto (Visita::OSvn)and EVuoto (Visita::OScsl); "OSvn: "& Visita::OSvn; EVuoto (Visita::OSvn)and not EVuoto (Visita::OScsl); "OSv: "& Visita::OScsl&" csl";
not EVuoto (Visita::OSvn)and not EVuoto (Visita::OScsl); "OSvn: "& Visita::OSvn &" -> "& Visita::OScsl &" csl";
)]
#Formula new (orizzontale) con nmcf/lnm: Imposta variabile [ $sost; Valore:Casi(
EVuoto (Visita::ODvn)and EVuoto (Visita::ODcsl);"";
not EVuoto (Visita::ODvn)and EVuoto (Visita::ODcsl);"ODvn: "& Visita::ODvn;
EVuoto (Visita::ODvn)and not EVuoto (Visita::ODcsl); "ODv: "& Visita::ODcsl&" csl";
not EVuoto (Visita::ODvn)and not EVuoto (Visita::ODcsl);"ODvn: "& Visita::ODvn & " -> "& Visita::ODcsl & " csl";
16 gennaio 202)2&13:39:42 Studio Privato IPAD.fmp12 - Modifica tags -3- Casi ( not EVuoto ( Visita::OD Foro_Lente ); " -> "&CercaeSost ( Visita::OD Foro_Lente ; "¶" ; "," ) ;"")&
Casi ( not EVuoto ( Visita::ODcf );" -> "&Visita::ODcf;"")
not EVuoto (Visita::ODvn)and EVuoto (Visita::ODcsl);"ODvn: "& Visita::ODvn; EVuoto (Visita::ODvn)and not EVuoto (Visita::ODcsl); "ODv: "& Visita::ODcsl&" csl";
 not EVuoto (Visita::ODvn)and not EVuoto (Visita::ODcsl);"ODvn: "& Visita::ODvn & " -> "& Visita::ODcsl & " csl"; )&
Casi ( not EVuoto ( Visita::OD Foro_Lente ); " -> "&CercaeSost ( Visita::OD Foro_Lente ; "¶" ; "," ) ;"")&
Casi ( not EVuoto ( Visita::ODcf );" -> "&Visita::ODcf;"")
&"¶"&
Casi(
EVuoto (Visita::OSvn)and EVuoto (Visita::OScsl);"";
not EVuoto (Visita::OSvn)and EVuoto (Visita::OScsl); "OSvn: "& Visita::OSvn; EVuoto (Visita::OSvn)and not EVuoto (Visita::OScsl); "OSv: "& Visita::OScsl&" csl";
not EVuoto (Visita::OSvn)and not EVuoto (Visita::OScsl); "OSvn: "& Visita::OSvn &" -> "& Visita::OScsl &" csl";
)&
Casi ( not EVuoto ( Visita::OS Foro_Lente ); " -> "&CercaeSost ( Visita::OS Foro_Lente ; "¶" ; "," ) ;"")& Casi ( not EVuoto ( Visita::ODcf );" -> "&Visita::ODcf;"") ]
#Formula new (orizzontale) con nmcf/lnm e Visus con foro:
Imposta variabile [ $sost; Valore:Casi(
EVuoto (Visita::ODvn)and EVuoto (Visita::ODcsl);"";
not EVuoto (Visita::ODvn)and EVuoto (Visita::ODcsl);"ODvn: "& Visita::ODvn;
EVuoto (Visita::ODvn)and not EVuoto (Visita::ODcsl); "ODv: "& Visita::ODcsl&" csl";
not EVuoto (Visita::ODvn)and not EVuoto (Visita::ODcsl);"ODvn: "& Visita::ODvn & " -> "& Visita::ODcsl & " csl"; )&
Casi ( not EVuoto ( Visita::OD Foro_Lente ); " -> "&CercaeSost ( Visita::OD Foro_Lente ; "¶" ; ", " ) ;"")&
Casi ( not EVuoto ( Visita::ODcf );" -> con foro: "&Visita::ODcf;"")
&"¶"&
Casi(
EVuoto (Visita::OSvn)and EVuoto (Visita::OScsl);"";
not EVuoto (Visita::OSvn)and EVuoto (Visita::OScsl); "OSvn: "& Visita::OSvn; EVuoto (Visita::OSvn)and not EVuoto (Visita::OScsl); "OSv: "& Visita::OScsl&" csl";
not EVuoto (Visita::OSvn)and not EVuoto (Visita::OScsl); "OSvn: "& Visita::OSvn &" -> "& Visita::OScsl &" csl";
)&
Casi ( not EVuoto ( Visita::OS Foro_Lente ); " -> "&CercaeSost ( Visita::OS Foro_Lente ; "¶" ; ", " ) ;"")& Casi ( not EVuoto ( Visita::OScf );" -> con foro: "&Visita::OScf;"") ]
Else If [ $conteggio=12 ]
#SEGMENTO ANTERIORE
Imposta variabile [ $sost; Valore:Visita::Riassunto_Segmento Anteriore ]
Else If [ $conteggio=13 ]
16 gennaio 2022 13:39:42 Studio Privato IPAD.fmp12 - Modifica tags -4-
Else If [ $conteggio=13 ]
#SEGMENTO POSTERIORE
Imposta variabile [ $sost; Valore:Visita::Riassunto_Segmento Posteriore ]
Else If [ $conteggio=14 ] #TERAPIA
Imposta variabile [ $sost; Valore:Lista ( Terapie associative::Campo multiplo) ] Else If [ $conteggio=15 ]
#REFRAZIONE
Imposta variabile [ $sost; Valore:Casi(
not EVuoto (Prescrizione Lenti::Refrazione OD 2) and not EVuoto ( Prescrizione Lenti::Refrazione OS 2 ); "OD: "& Prescrizione Lenti::Refrazione OD 2& ¶& "OS: "&Prescrizione Lenti::Refrazione OS 2;
EVuoto (Prescrizione Lenti::Refrazione OD 2) and not EVuoto ( Prescrizione Lenti::Refrazione OS 2 ); "OS: "&Prescrizione Lenti::Refrazione OS 2;
not EVuoto (Prescrizione Lenti::Refrazione OD 2) and EVuoto ( Prescrizione Lenti::Refrazione OS 2 ); "OD: "& Prescrizione Lenti::Refrazione OD 2;
)]
Else If [ $conteggio=16 ] #COMMENTI
Imposta variabile [ $sost; Valore:Casi(
EVuoto (Visita::Commento);"";"Si consiglia:¶"& Visita::Commento
)]
Else If [ $conteggio=17 ]
#ORA CORRENTE
Imposta variabile [ $sost; Valore:Ore ( Get ( OraCorrente )) &":"& Minuti ( Get ( OraCorrente )) ] Else If [ $conteggio=18 ]
#ORA VISITA
Imposta variabile [ $sost; Valore:Visita::Ora_Visita ] Else If [ $conteggio=19 ]
#REFERTI STRUMENTALI
Imposta variabile [ $id_anagrafica; Valore:Visita::Id_Anagrafica ] Imposta variabile [ $id_visita; Valore:Visita::Id_Visita ]
Vai al formato [ “Diagnostica” (Diagnostica) ]
Passa al modo Trova [ ]
Imposta campo [ Diagnostica::Id_Anagrafica; $id_anagrafica ]
Imposta campo [ Diagnostica::Id_visita; $id_visita ]
Esegui la ricerca [ ]
Imposta variabile [ $sost; Valore:Diagnostica::Riassunto Referti Visita Corrente ] Vai al formato [ formato originale ]
Else If [ $conteggio=20 ] #AMSLER
Imposta variabile [ $sost; Valore:Visita::Amsler Riassunto & ¶ ] Else If [ $conteggio=21 ]
#PVP
Imposta variabile [ $sost; Valore:Casi(
EVuoto (Visita::PVP Visus OD);"";
EVuoto (Visita::PVP OD Sf) and EVuoto (Visita::PVP OD cyl);"Pvp ODv: "&Visita::PVP Visus OD& " vn";
not EVuoto (Visita::PVP OD Sf) or not EVuoto (Visita::PVP OD cyl);"Pvp ODv: "&Visita::PVP Visus OD& " cc";
) &¶& Casi(
EVuoto (Visita::PVP Visus OS);"";
EVuoto (Visita::PVP OS Sf) and EVuoto (Visita::PVP OS cyl);"Pvp OSv: "&Visita::PVP Visus OS& " vn";
not EVuoto (Visita::PVP OS Sf) or not EVuoto (Visita::PVP OS cyl);"Pvp OSv: "&Visita::PVP Visus OS& " cc";
16 gennaio 2022 13:39:42 Studio Privato IPAD.fmp12 - Modifica tags -5- )]
Casi(
EVuoto (Visita::PVP Visus OS);"";
EVuoto (Visita::PVP OS Sf) and EVuoto (Visita::PVP OS cyl);"Pvp OSv: "&Visita::PVP Visus OS& " vn";
not EVuoto (Visita::PVP OS Sf) or not EVuoto (Visita::PVP OS cyl);"Pvp OSv: "&Visita::PVP Visus OS& " cc";
)]
Else If [ $conteggio=22 ]
#LISTA TONOMETRIE
Imposta variabile [ $sost; Valore:"Tono OD:" & Visita::Riassunto Tono OD &¶ & "Tono OS:" & Visita::Riassunto Tono OS ]
Else If [ $conteggio=23 ]
Else If [ $conteggio=24 ]
End If
Imposta variabile [ $conteggio; Valore:$conteggio+1 ] Vai al campo [ Certificazioni Associativa::Certificato ]
Sostituisci contenuto campo [ Certificazioni Associativa::Certificato; Sostituisci con calcolo: CercaeSost ( Certificazioni Associativa::Certificato ; $ricerca ; $sost ) ]
[ Senza finestra ]
Exit Loop If [ $conteggio= Conteggio (Dashboard::Variabili)+1 ] End Loop
If [ $$nomecertificato= "Malattia" ]
Vai al campo [ Certificazioni Associativa::Certificato ]
Sostituisci contenuto campo [ Certificazioni Associativa::Certificato; Sostituisci con calcolo: CercaeSost ( Certificazioni Associativa::Certificato ; "Numerogiorni" ; Certificazioni Associativa::NomeCampo ) ]
[ Senza finestra ]
Sostituisci contenuto campo [ Certificazioni Associativa::Certificato; Sostituisci con calcolo: CercaeSost ( Certificazioni Associativa::Certificato ; "testogiorni" ; $$Malattiatesto ) ]
[ Senza finestra ]
End If
      

SCRIPT VELOCE

Codice: Seleziona tutto

Imposta cattura errori [ Attivata ]
Blocca finestra
Imposta variabile [ $conteggio; Valore:1 ] Loop
Imposta variabile [ $ricerca; Valore:RicavaRipetizioni ( Dashboard::Variabili Privacy ; $conteggio ) ] #Cognome e nome
If [ $conteggio=1 ]
Imposta variabile [ $sost; Valore:Codice Fiscale::Ragione Sociale ] Else If [ $conteggio=2 ]
#nome
Imposta variabile [ $sost; Valore:Codice Fiscale::Nome ] Else If [ $conteggio=3 ]
#Cognome
Imposta variabile [ $sost; Valore:Codice Fiscale::Cognome ] Else If [ $conteggio=4 ]
#DAta creazione
Imposta variabile [ $sost; Valore:Get (DataCorrente) ] Else If [ $conteggio=5 ]
#LUOGO DI NASCITA
Imposta variabile [ $sost; Valore:Codice Fiscale::Comune 2 ] Else If [ $conteggio=6 ]
#Comune di nascita
Imposta variabile [ $sost; Valore:Comuni::Comune ] Else If [ $conteggio=7 ]
#Prov nascita
Imposta variabile [ $sost; Valore:Comuni::Prov ] Else If [ $conteggio=8 ]
#data di nascita
Imposta variabile [ $sost; Valore:Codice Fiscale::Data_Nascita ] Else If [ $conteggio=9 ]
#residenza
Imposta variabile [ $sost; Valore:Codice Fiscale::Luogo di residenza ] Else If [ $conteggio=10 ]
#città di residenza
Imposta variabile [ $sost; Valore:Codice Fiscale::Città ] Else If [ $conteggio=11 ]
#prov residenza
Imposta variabile [ $sost; Valore:Codice Fiscale::Provincia ] Else If [ $conteggio=12 ]
#cap residenza
Imposta variabile [ $sost; Valore:Codice Fiscale::Cap ] Else If [ $conteggio=13 ]
#telefono
Imposta variabile [ $sost; Valore:Casi ( not EVuoto ( Codice Fiscale::Telefono )and not EVuoto ( Codice Fiscale:: Cellulare ); Codice Fiscale::Telefono& " / "& Codice Fiscale::Cellulare;
EVuoto ( Codice Fiscale::Telefono )and not EVuoto ( Codice Fiscale::Cellulare ); Codice Fiscale::Cellulare; not EVuoto ( Codice Fiscale::Telefono )and EVuoto ( Codice Fiscale::Cellulare ); Codice Fiscale::Telefono;
)]
Else If [ $conteggio=14 ]
#e mail
Imposta variabile [ $sost; Valore:Codice Fiscale::Email ]
16 gennaio 2022 13:40:01 Studio Privato IPAD.fmp12 - Modifica tags Privacy -1-
Else If [ $conteggio=15 ] #CF
Imposta variabile [ $sost; Valore:Codice Fiscale::CodFisc ] End If
Imposta variabile [ $conteggio; Valore:$conteggio+1 ]
Vai al campo [ Privacy associativa::Modulo Privacy ]
Sostituisci contenuto campo [ Privacy associativa::Modulo Privacy; Sostituisci con calcolo: CercaeSost ( Privacy associativa:: Modulo Privacy ; $ricerca ; $sost ) ]
[ Senza finestra ]
Exit Loop If [ $conteggio= Conteggio (Dashboard::Variabili Privacy)+1 ] End Loop
FM Pro 13 Advanced

GiuseppeFM
Messaggi: 27
Iscritto il: giovedì 2 giugno 2016, 12:14

Re: Loop Lentissimo

Messaggio da GiuseppeFM » domenica 23 gennaio 2022, 2:31

Ho risolto.
Ho capito l’errore, ma me ne sfugge ancora la logica….

Scrivo qui la soluzione così che possa servire a qualcuno, e nella speranza che chi è più competente dì me mi possa spiegarne la logica…

In pratica lo script lento, al conto 19 del loop, faceva una ricerca nella tabella “diagnosi strumentale” per cercare eventuali esami svolti e riportarli nel referto.

Ora questa tabella era collegata con la tabella in cui avviene il loop (certificazione associativa) ma non direttamente, ma tramite la tabella “visita” con il seguente collegamento: visita::ID_anagrafica & IDVISITA = diagnostica:: ID_anagrafica & IDVISITA
visita::ID_anagrafica & IDVISITA = certificazione:: ID_anagrafica & IDVISITA

Inserendo una nuova auto relazione direttamente tra:

certificazione:: ID_anagrafica & IDVISITA = diagnostica:: ID_anagrafica & IDVISITA

Lo script è diventato un fulmine….
FM Pro 13 Advanced

Rispondi