Verwerkingsopties voor een knop

Op het tabblad Uitvoeren in het palet Object kunt u voor de knop een gegevensverbinding kiezen en opgeven of de bijbehorende verwerking moet worden uitgevoerd op de client-pc, op de server of op beide. De gegevensverbinding moet toegang bieden tot een webservice-interface of een OLEDB-databaseserver die ofwel tijdens het gebruik gegevens naar het formulier terugzendt ofwel elders een actie uitvoert.

Nadat u de gegevensbron hebt opgegeven (zie Werken met gegevensbronnen), kunt u opgeven welke bewerking of query moet worden uitgevoerd. Wanneer tijdens het gebruik van het formulier op de knop wordt gedrukt, wordt de verwerking voltooid op de manier die in de bewerking of query is gedefinieerd.

De gegevens die worden teruggezonden, kunnen met het formulier worden samengevoegd, zodat alleen de gegevens die gekoppeld zijn aan bestaande objecten worden overschreven zonder dat de structuur van het formulier moet worden vernieuwd. U kunt er ook voor kiezen de structuur van het formulier bij te werken op basis van de XML-gegevens die worden teruggezonden. In dat geval wordt de structuur van het formulier bijgewerkt en worden de gegevens die zijn teruggezonden met het formulier, samengevoegd nadat de verwerking is voltooid.

Als u de verwerkingsopties van een knop wilt definiëren, moet u eerst de knop selecteren. U kunt de verwerkingsopties opgeven op het tabblad Uitvoeren van het palet Object. Om het tabblad Uitvoeren weer te geven, moet u op het tabblad Veld onder Type besturingselement de optie Uitvoeren kiezen.

Een webservicebewerking of databasequery uitvoeren met behulp van een knop

Met het knoptype Uitvoeren kunt u een verwerkingsverzoek aan een webservice uitvoeren. Een webservice verwerkt bewerkingen die u er naar toe zendt voor het definiëren van de invoer- en uitvoerinformatie in uw formulier.

U voegt een verbinding toe aan de webservice en maakt of bindt vervolgens velden aan de aanvraag- en responsberichten. De gebonden velden kunnen invoergegevens genereren voor verzending naar de service of gegevens van de service ontvangen. U kunt meerdere velden gebruiken om het aanvraagbericht te maken en het responsbericht kan meerdere velden vullen. Om de bewerking te verwerken kunt u een knop Uitvoeren gebruiken of een script schrijven. U kunt bijvoorbeeld een webservice gebruiken voor het opzoeken van een rentepercentage, een wisselkoers of een koers van een aandeel.

  1. Voeg een knop toe aan het formulierontwerp. Zie Objecten toevoegen aan een formulierontwerp.

  2. Klik in het palet Object op het tabblad Subformulier.

  3. Selecteer Uitvoeren in het gebied Type. Een webservicebewerking of databasequery wordt uitgevoerd met de instellingen die op het tabblad Uitvoeren zijn opgegeven.

  4. Klik op het tabblad Uitvoeren en selecteer Nieuwe gegevensverbinding in de lijst Verbinding.

  5. Kies de optie WSDL-bestand en klik op Volgende.

  6. Typ in het vak WSDL-bestand de URL naar het WSDL-document, of klik op Bladeren  om het document op de vaste schijf van de computer te zoeken en te selecteren. Als het WSDL-document is opgeslagen op een beveiligde server, wordt het dialoogvenster Verificatie vereist of Digitale id selecteren geopend.

  7. Voer één van de volgende acties uit:

    • Typ in het dialoogvenster Verificatie de juiste gebruikersnaam en het wachtwoord en klik op OK.

    • Typ in het dialoogvenster Digitale id selecteren de juiste digitale id voor gebruik als clientcertificaat en klik op OK.

  8. Selecteer de aan te roepen bewerking en klik op Volgende.

    In het rechtervenster worden de detailgegevens van de geselecteerde bewerking weergegeven. Als de geselecteerde bewerking niet met SOAP is gecodeerd of geen document/literal-bewerking is, verschijnt in dit venster een waarschuwing en kunt u niet doorgaan.

  9. (Optioneel) Als u clientverificatie wilt instellen, voert u een van de volgende handelingen uit:

    • Als u HTTP- of HTTPS-verificatie wilt definiëren, selecteert u Vereist HTTP/HTTPS-verificatie en selecteert u desgewenst de referenties voor de verificatie.

    • Als u SOAP-berichtverificatie wilt definiëren, selecteert u Vereist verificatie op berichtniveau en selecteert u desgewenst Accepteert overzicht van gebruikersnaam en wachtwoord.

  10. Klik op Voltooien.

  11. Kies in de lijst Uitvoeropties waar de verwerking moet worden uitgevoerd:

    • Als u wilt dat het verzoek wordt uitgevoerd op de clientcomputer, selecteert u Client.

    • Als u wilt dat het verzoek wordt uitgevoerd op de server, selecteert u Server.

    • Als u wilt dat het verzoek wordt uitgevoerd op de clientcomputer en op de server, selecteert u Client en server.

  12. Als u de structuur van het formulier wilt bijwerken en teruggestuurde gegevens wilt samenvoegen nadat de verwerking is voltooid, selecteert u de optie Formuliergegevens opnieuw samenvoegen. U moet de optie Formuliergegevens opnieuw samenvoegen gebruiken als de responsgegevens de dynamische gegevens gaan vullen (zoals een herhalend subformulier) die zijn gebonden aan WSDL-gegevens. Dit kan een variabel aantal keren voorkomen in de respons. Dynamische gegevens moeten volledig opnieuw worden samengevoegd om het juiste aantal herhalende subformulieren te genereren. Als de WDSL-responsgegevens zijn gebonden aan een vast aantal velden, worden de bestaande velden gevuld met de responsgegevens. U hoeft de formuliergegevens dan niet opnieuw samen te voegen.

Een databasescript koppelen aan een knop

U kunt met scripts ook complexere gegevensbewerkingen uitvoeren in een bedrijfssysteem. In dit voorbeeld zie u hoe u eenvoudige scripts kunt toevoegen aan knopvelden voor het uitvoeren van elementaire databasebewerkingen zoals gaan naar de eerste, de vorige, de volgende en de laatste record, nieuwe records toevoegen, bestaande records bijwerken en records verwijderen.

Opmerking: Dit voorbeeld is gebaseerd op een bepaalde database en configuratie die niet is opgenomen in de Designer-voorbeelden. Het voorbeeld is bedoeld als referentie bij het maken van uw eigen zoekscripts voor databases.

Formulierontwerp met knopvelden voor verplaatsing naar de eerste, vorige, volgende en laatste record, nieuwe records toevoegen, bestaande records bijwerken en records verwijderen.

  1. Klik in het palet Objectbibliotheek op de categorie Standaard en sleep acht knopobjecten naar het formulierontwerp. Als u een knopobject wilt toevoegen, is het standaardbesturingselementtype Standaard. Accepteer de standaardinstelling.

  2. Geef de knoppen de volgende namen: Eerste, Vorige, Volgende, Laatste, Nieuw toevoegen, Bijwerken, Verwijderen en Annuleren.

  3. Selecteer de eerste knop, in dit geval die met de naam Eerste.

  4. Selecteer in de Scripteditor click in de lijst Tonen, selecteer JavaScript in de lijst Taal en selecteer Client in de lijst Uitvoeren op.

  5. Voeg het volgende JavaScript-script toe in de Scripteditor:

    xfa.sourceSet.DataConnection.first();
  6. Herhaal stap 5 voor elk van de resterende knoppen, en gebruik daarbij de volgende scripts:

    • Vorige: xfa.sourceSet.DataConnection.previous();

    • Volgende: xfa.sourceSet.DataConnection.next();

    • Laatste: xfa.sourceSet.DataConnection.last();

    • Nieuw toevoegen: xfa.sourceSet.DataConnection.addNew();

    • Bijwerken: xfa.sourceSet.DataConnection.update();

    • Verwijderen: xfa.sourceSet.DataConnection.delete();

    • Annuleren: xfa.sourceSet.DataConnection.cancel();

  7. Sla het formulierontwerp op.

  8. Test het formulier met het tabblad Voorbeeld-PDF. Als een dergelijk formulier wordt ingevuld in Adobe Reader, moet u gebruikersrechten voor het formulier instellen met Reader Extensions, zodat Adobe Reader toegang tot de database kan krijgen.

  9. Klik op de verschillende knoppen om de gegevens weer te geven die zijn gekoppeld aan elk record. Het voorbeeld toont dat met de knop Laatste de id, het artikelnummer, de beschrijving en de stuksprijs voor de laatste record worden weergegeven in de betreffende velden.

Een knop gebruiken om velden te vullen vanuit een database

U kunt een database gebruiken om de gegevens te leveren voor velden in uw formulier, waaronder tekst en getallen.

In dit voorbeeld worden de knop Record ophalen en de keuzelijst gebonden aan de database (genaamd Gegevensverbinding) die links in het palet Gegevens wordt weergegeven. Aan de knop is tevens een FormCalc-script gekoppeld waarmee informatie wordt opgehaald op basis van het ordernummer dat is geselecteerd in het keuzelijstveld. De opgehaalde bestanden worden weergegeven in de velden ID, PART_NO, UNITPRICE en DESCRIPTION.

  1. Maak verbinding met de database.

  2. Sleep uit het palet Gegevens de elementen UNIT_PRICE, DESCRIPTION, PART_NO en ID onder Gegevensverbinding naar het formulierontwerp. Met elk knooppunt dat naar het formulierontwerp wordt gesleept, wordt een gebonden veld gemaakt.

  3. Klik in het palet Object op het tabblad Standaard en sleep een knopobject naar het formulierontwerp.

  4. Geef een naam op voor de knop. In het voorbeeld wordt Record ophalen gebruikt.

  5. Selecteer de knop in de Scripteditor, selecteer click in de lijst Tonen, selecteer FormCalc in de lijst Taal en selecteer Client in de lijst Uitvoeren op.

  6. Geef een gelijksoortig FormCalc-script op als in het volgende voorbeeld. Het script haalt de gegevens in de opgegeven records op en drukt deze af in de betreffende velden als de gebruiker op de knop klikt.

    //Change the commandType from TABLE to TEXT. TEXT 
    //is the equivalent of SQL Property 
    $sourceSet.DataConnection.#command.query.commandType = "text" 
     
    //Set the Select Node. Select in this case will be  
    //whatever SQL Property you want 
    $sourceSet.DataConnection.#command.query.select.nodes.item(0).value = Concat("Select*from OfficeSupplies Where ID = ", DataListBox1.rawValue,"") 
     
    //Reopen the Data connection 
    $sourceSet.DataConnection.open()
  7. Sla het formulierontwerp op als een PDF-bestand.

  8. Test het formulier met het tabblad Voorbeeld-PDF om te controleren of het script werkt zoals verwacht.