From 4137259fa6071d2790173f7935f06465df324264 Mon Sep 17 00:00:00 2001
From: deva <deva>
Date: Thu, 12 Feb 2009 15:29:50 +0000
Subject: Lots of changes in the widget documentation...

---
 design/widgets/dbwidget.tex | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 design/widgets/dbwidget.tex

(limited to 'design/widgets/dbwidget.tex')

diff --git a/design/widgets/dbwidget.tex b/design/widgets/dbwidget.tex
new file mode 100644
index 0000000..10c1e5b
--- /dev/null
+++ b/design/widgets/dbwidget.tex
@@ -0,0 +1,45 @@
+% -*- coding: utf-8 -*-
+\subsubsection{\texttt{dbwidget} elementet}
+En dbwidget fungerer på overfladen som en combobox i search mode
+(med type attributten sat til search), den har dog inden item tags
+som beskriver hvilke valgmuligheder der er.\\
+Istedet benytter den sig af lacy-fetch kald til en posgresql database.\\
+En dbwidget har flg. attributter:
+\begin{itemize}
+\item \textit{driver} - Den database driver som skal benyttes. I øjeblikket
+  kun ``QPSQL'' som er postgresql driveren.
+\item \textit{server} - Addressen på den server som driver databasen.
+\item \textit{port} - Portnummeret hvorpå databasen kan kontaktes.
+\item \textit{user} - Brugeren som databasen skal kontaktes med.
+\item \textit{password} - Det tilhørende password.
+\item \textit{database} - Databasen som skal kontaktes.
+\item \textit{select} - Et udtryk som svarer til SELECT delen af en SQL statement.
+\item \textit{from} - Navnet på den tabel som der skal selectes fra.
+\item \textit{where} - Den del af resultatet fra select som skal sammenlignes med
+  indholdet fra tekstfeltet i dbwidgeten. Hvis f.eks tekstfeltet indeholder
+  teksten ``ab'' og from attributen indeholder ``foo'', vil den konstruerede WHERE
+  statement til serveren blive ``WHERE foo = 'abc' ''. For at gøre søgningen
+  case-insensitiv bliver strengen fra tekstfeltet og resultatet i WHERE statementen
+  konverteret til lowercase indne sammenligningen udføres. 
+\item \textit{format} - Formatstrengen som bruges til at formatere datafelterne
+  fra databaseopslagene inden de indsættes i dbwidgetens tekstfelt. Modsat ander
+  steder i systemet er de tilrådighedværende navne de samme som dem i select
+  attributen og ikke navnene på de widgets som findes makroen. Med den ene forskel
+  fungerer formatstrengen som dokumenteret i kapitel \ref{format}.
+\end{itemize}
+
+\begin{lstlisting}[title={Et eksempel på et dbwidget tag, som laver søgning i en pilledatabase}]
+<dbwidget name="pille" driver="QPSQL" server="medicindb.dk"
+          user="postgres" database="medicin"
+          select="drugname" from="pills" where="drugname"
+          format="${drugname}"/>
+\end{lstlisting}
+
+\begin{lstlisting}[title={Et mere kompliceret eksempel som viser sammensatte strenge}]
+<dbwidget name="pille" driver="QPSQL" server="medicindb.dk"
+          user="postgres" database="medicin"
+          select="drugname, dosage" from="pills"
+          where="drugname || ' (' || dosage || ')'"
+          format="${drugname} (${dosage})"/>
+\end{lstlisting}
+
-- 
cgit v1.2.3

