Kom ihåg följande tips när du felsöker beräkningar och skript.
Exempeldata
Kom ihåg att specificera en datafil för förhandsgranskning i dialogrutan Formuläregenskaper. Att du anger en datafil för förhandsgranskning innebär inte att data sparas i den slutliga PDF:en.
Mallsidor
Vid felsökning av mallsidor kan du släppa olika objekt på varje mallsida för att se vilket som är angivet.
Första sidan i ett formulär
Designer tittar på rotdelformuläret för att avgöra vilken sida formuläret börjar med. Om rotdelformuläret inte visar vilken som är den första sidan används den första mallsidan som standard.
Inkrementell felsökning
När en formulärdesign felsöks kan man börja med att ta bort delar av formuläret till felet inte längre går att reproducera. Försök isolera källan till problemet när du gått igenom varje skript och objektegenskap. Vid felsökning av delformulär kan du specificera att en tjock, färgad kantlinje skall användas runt delformuläret, eller använda fyllning. Färger eller fyllning kan hjälpa till att indikera vilket delformulär som används och dess utsträckning. Denna teknik fungerar oftast bra när du vill avgöra var ett objekts gränser går och kan visa varför det placerats på en viss plats.
Hierarkisk visning
Visa formulärdesignen genom att använda hierarkivyn för att bättre förstå den. Den ordning som objekten visas i hierarkin indikerar hur de placerats på sidan. Vissa objekt är inte klickbara om de ligger under ett annat objekt.
Skriptfelmeddelanden
I Designer visas skriptfelmeddelanden på fliken Logg på paletten Rapport när formuläret förhandsgranskas. Om formulärdesignen innehåller FormCalc-skript och felet uppstår på servern så visas varningar på Logg-fliken. Om FormCalc-skriptfelet uppstår i klienten visas meddelandet i Adobe Reader eller Acrobat.
Ett fel i ett FormCalc-skript gör att körning av hela skriptet inte körs.
JavaScript kör tills dess felet nås.
Syntaxfel i FormCalc
Syntaxfel i FormCalc är ibland svåra att lösa. När "Syntaxfel nära token '%1' på rad %2, kolumn %3" visas, innehåller %1 oftast token (ordet) närmast felet. Därför kan just detta token vara rätt och token har inte alls med felet att göra förutom att vara nära felet. Följande skript genererar exempelvis fel 7008: "Syntaxfel nära token 'then' på rad x, kolumn y."
var b = abc(1)
if (b ne 1) then
//comment
Problemet är att en endif-token saknas i skriptet. Den senaste korrekta token är then (kommentarer räknas inte som tokens). Om man lägger till ett endif i slutet av skriptet rättar felet.
Funktioner definierade i ett skriptobjekt.
Du kan endast anropa en funktion som är definierad i ett skriptobjekt med ett skript i JavaScript. Se till att du ändrar skriptspråk till JavaScript i skriptredigeraren. Annars kan du få ett meddelande som visar att Designer inte kan tolka skriptobjektet. Samma fel kan uppstå när ett syntaxproblem uppstår i ett skriptobjekt.
Anrop av webbtjänst
När du skapar anrop till webbtjänster skall händelsen postExecute användas för att se vad som returnerades och om webbtjänsten skickade några felmeddelanden.
Långa SOM-uttryck
När du skriver långa SOM-uttryck med flera lager kan du trycka på Ctrl och klicka på objektet på arbetsytan. Kommandot infogar objektets SOM-uttryck i skriptet. SOM-uttrycket är relativt till objektet som är värd för skriptet. För att infoga ett absolut SOM trycker du på Ctrl+Shift och klicka på objektet. Dessa kommandon fungerar när du klickar på objekt i designvy, inte i hierarkivy.
Testa SOM-uttryck
När ett långt SOM-uttryck inte fungerar skall du börja vid uttryckets rot och testa varje punkt med className tills du når problemet. Testa exempelvis a.b.c.d genom att börja vid roten:
console.println(a.className)
console.println(a.b.className)
console.println(a.b.c.className)
console.println(a.b.c.d.className)
Använda skriptobjekt för att felsöka formulärdesigner
Använd ett skriptobjekt, exempelvis ett fragment, som hjälp vid felsökning av formulärdesigner:
Dumpa en nodhierarki under en nod.
Mata ut en egenskaps värde eller en nods attribut.
Mata ut huruvida en nod har en specificerad egenskap eller ett attribut.
Mata ut SOM-uttrycket för noden.
Dumpa xml src för en given nod.
Här är ett exempel på ett skriptobjekt som innehåller flera felsökningsfunktioner:
<script contentType="application/x-javascript" name="XFADEBUG">
//This script object provides several tracing functions to help debug a form design
//Dump out node hierarchy to console.println()
function printNode(node) {... }
//Dump out SOM expression to console.println() function printSOM(node) {... }
//Dump out property or attribute value function printValue(node, attrOrPropertyName) {...}
function printXMLSource(node) { ....}
function printHasPropertySpecified(node, prop) {...}\\
</script>
Saker som skall undvikas vid formulärbyggnad
Anrop av xfa.layout.relayout(). på docReady even orsakar problem eftersom händelsen docReady triggas varje gång layouten är klar.
Att placera en flödande behållare inuti en placerad behållare orsakar problem med sidbrytningar, objekt som ligger på varandra och repeterande delformulär. Rotdelformuläret är en flödande behållare. Dra nytta av det och placera dina flödande behållare inuti rotdelformuläret genom att skala av siddelformulären när layouten är klar. Som alternativ kan flödet i siddelformulär ställas in som flödande.
Problem med tom sida (Acrobat 7.1 eller tidigare). Vid designtidpunkten visas en tom sida när delformuläret inte får plats inom innehållsområdets kanter. För att laga den tomma sidan kan du antingen anpassa storleken på delformuläret eller låta det sidbrytas mellan sidorna. Om en användare kör Acrobat 7.1 eller tidigare så visas andranivå-delformuläret på en annan sida.