Exempel på uppdatering av plugin-program

I följande exempel jämförs det installerade plugin-programmets version med den version som finns i ett containerfält i FileMaker Pro-filen, och sedan uppdateras plugin-programmet om det behövs.

  1. I den anpassade appfilen skapar du en tabell med namnet Plugin-uppdatering för lagring av plugin-information.
  2. Definiera följande fält:
  3. Fältnamn

    Fälttyp

    Plugin-namn

    text

    Plugin-version som krävs

    nummer

    Installerad plugin-version

    beräkning (ej lagrad). Exempel på kod finns i Beräkning av klienters plugin-version nedan.

    Installerad plugin-status

    beräkning (ej lagrad). Exempel på kod finns i Beräkning av klienters plugin-programs aktiveringsstatus nedan.

    Plugin-fil

    container

  4. Skapa en layout med namnet Information om plugin-uppdatering och lägg till de fält du definierade i steg 2.
  5. Skapa följande script med namnet Installera Plug-In:
    Kopiera
    Manuell felhantering [På]
    Installera Plug-In [Plugin-uppdatering::Plugin-fil]
    #
    #Hantera fel
    If [Get ( SenasteFel ) ≠ 0]
        If [Get ( SenasteFel ) = 3]
            Visa anpassad dialogruta [Plugin-uppdatering::Plugin-fil & " gick inte att installera. Kontrollera att Tillåt lösningar att installera filer är markerat i FileMaker Pro-inställningarna för plugin-program."]
        Else If [Get ( SenasteFel ) = 1550]
            Visa anpassad dialogruta [Plugin-uppdatering::Plugin-fil & " har installerats men kunde inte initieras."]
        Else If [ Get ( SenasteFel ) = 1551]
            Visa anpassad dialogruta [Plugin-uppdatering::Plugin-fil & " kunde inte installeras."]
        Else
            Visa anpassad dialogruta ["Ett allmänt fel " & Get ( SenasteFel ) & " uppstod vid installationen av " & Plugin-uppdatering::Plugin-fil]
        End If
    End If
  6. Skapa följande script med namnet Kontrollera plugin-versioner.
    Kopiera
    Gå till layout ["Information om plugin-uppdatering"]
    Gå till post/sökpost/sida[Första]
    Loop [ Rensa: Alltid ]
        If [Plugin-uppdatering::Installerad plugin-version < Plugin-uppdatering::Krävd plugin-version]
            #Plugin-program måste installeras eller uppdateras.
            Utför script [Angivet: Från lista ; "Installera plugin" ;
            Parameter: ]
        End If
        Gå till post/sökpost/sida [Nästa; Avbryt efter sista: På]
    End Loop
  7. Skapa följande script med namnet Kontrollera aktivering:
    Kopiera
    Manuell felhantering [På]
    Utför sökning [Återställ]
    #Sökning efter "Aktiverad" i statusfältet för det installerade plugin-programmet
    If [Get ( HittadePoster ) < Get ( TotaltAntalPoster )]
        Visa anpassad dialogruta ["Vissa plugin-program som krävs är inte aktiverade. Kontrollera att Tillåt lösningar att installera filer är markerat i FileMaker Pro-inställningarna för plugin-program."]
    End If
  8. Skapa ett startscript med namnet Script för plugin-uppdatering som refererar till ovanstående scripts i rätt ordning när databasen öppnas:
    Kopiera
    Utför script [Angivet: Från lista ; "Kontrollera plugin-versioner" ;
    Parameter: ]
    Utför script [Angivet: Från lista ; "Kontrollera om aktiverad" ;
    Parameter: ]
    Gå till layout [ursprunglig layout ; Animering: Ingen]

Beräkning av klienters plugin-version

Kopiera
Let (
    [
    PluginNamePosition = Position ( Get(InstalleradeFMPlugin); Plugin Name ; 1 ; 1 );
    PluginVersionStart = PluginNamePosition + Length( Plugin Name ) + 1;
    PluginVersionEnd = Position ( Get(InstalleradeFMPlugin); ";" ; PluginNamePosition ; 2 );
    PluginVersionLength = PluginVersionEnd - PluginVersionStart
    ];
    If ( PatternCount ( Get (InstalleradeFMPlugin) ; Plugin Name ) = 0 ; "" ; Middle ( Get(InstalleradeFMPlugin) ; PluginVersionStart ; PluginVersionLength ) )
)

Beräkning av klienters plugin-programs aktiveringsstatus

Kopiera
Let (
    [
    PluginNamePosition = Position ( Get(InstalleradeFMPlugin); Plugin Name ; 1 ; 1 );
    PluginStateStart = Position ( Get(InstalleradeFMPlugin); ";" ; PluginNamePosition ; 2 ) + 1;
    PluginStateEnd = If ( Position ( Get(InstalleradeFMPlugin); "¶" ; PluginNamePosition ; 1 ) > 0; Position ( Get(InstalleradeFMPlugin); "¶" ; PluginNamePosition ; 1 ); Length( Get(InstalleradeFMPlugin) ) + 1 );
    PluginStateLength = PluginStateEnd - PluginStateStart
    ];
    If ( PatternCount ( Get (InstalleradeFMPlugin) ; Plugin Name ) = 0 ;
    "" ; Middle ( Get(InstalleradeFMPlugin) ; PluginStateStart ; PluginStateLength ) )
)

Kommentarer 

  • Om du vill att plugin-program ska installeras, måste alternativet Tillåt lösningar att installera filer vara markerat i klientinställningarna för plugin-program. Mer information finns i Ändra plugin-inställningar.
  • Om ett plugin-program har inaktiverats i klientinställningarna för plugin-program kommer det att installeras, men inte vara tillgängligt förrän det aktiveras manuellt av användaren.
  • Endast ett plugin-program kan lagras i respektive containerfält, men du kan visa all plugin-information genom att skapa flera plugin-containerfält i en och samma layout.