Anlage Table mit Spalten (Spaltensorter wird hier bereits zugewiesen!)

Größe: px
Ab Seite anzeigen:

Download "Anlage Table mit Spalten (Spaltensorter wird hier bereits zugewiesen!)"

Transkript

1 Dokumentiertes Beispiel für die Implementierung eines Viewers als Ergänzung um Folienvortrag SWT / JFace Thomas Bauer, Peli Service Gmbh, tbberg@t-online.de // Class EdbGuiE0100 // Erfassung Tagesprotokoll (Lebensmittelkonsum) // First Created on tbauer // TB Abschluss Ersterstellung public class EdbGuiE0100 extends Window { Anlage Table mit Spalten (Spaltensorter wird hier bereits zugewiesen!) table = new Table(parent, style); // Spalte 0 - MAHLZEIT_COLUMN: Mahlzeit TableColumn column = new TableColumn(table, SWT.LEFT, 0); column.settext("mahlzeit"); column.setwidth(115); // wenn Spalte angeklickt wird: nach Mahlzeiten sortieren column.addselectionlistener(new SelectionAdapter() { public void widgetselected(selectionevent e) { tableviewer.setsorter( new EdbGuiE0100ViewerSorter(EdbGuiE0100ViewerSorter.MAHLZEIT)); ); Anlage TableViewer // *** Anlage des TableViewer auf der zuvor angelegten Table tableviewer = new TableViewer(table); // Übergib ein Array mit Spaltennamen an den TableViewer tableviewer.setcolumnproperties(this.columnnames); Anmerkung: Die Klassenvariable columnnames ist folgendermaßen deklariert // Set the tableger column property names (property name=spaltename) private final String MAHLZEIT_COLUMN = "Mahlzeit"; private final String MENGE_COLUMN = "Verbrauchsmenge"; private final String LMBEZ_COLUMN = "Lebensmittel"; private final String GERICHT_COLUMN = "Gericht"; private final String NMENGE_COLUMN = "Normalverbrauchsmenge"; private final String FETT_COLUMN = "Fettanteil"; private final String WASSER_COLUMN = "Wasserantzeil"; // Set column names private String[] columnnames = new String[] { MAHLZEIT_COLUMN, MENGE_COLUMN, LMBEZ_COLUMN, GERICHT_COLUMN, NMENGE_COLUMN, FETT_COLUMN, WASSER_COLUMN ; Anlage Array mit CellEditor's inkl. Eingabevalidierung // // Lege Array mit cell editoren an (so viele Elemente wie Spalten) // CellEditor[] editors = new CellEditor[this.columnNames.length]; // Column 0 - MAHLZEIT_COLUMN: Mahlzeit Text ComboBoxCellEditor comboeditor = new ComboBoxCellEditor(table, this.arrmahlzeittext, SWT.READ_ONLY SWT.DROP_DOWN); editors[0] = comboeditor; // Column 1 - MENGE_COLUMN: Menge (Text with digits only). Listener für Prüfung // Eingabe (Ziffern, Komma und Tausenderpunkte erlaubt) TextCellEditor texteditor = new TextCellEditor(table);

2 ((Text) texteditor.getcontrol()).addverifylistener(new VerifyListener() { public void verifytext(verifyevent e) { // Zahl wird im Format 1000,99 oder (Beispiel) eingegeben boolean isok = true; if (!e.text.equals("")) { char[] arrtext = e.text.tochararray(); for (int i = 0; i < arrtext.length; i++) { if (" ,.".indexOf(arrText[i]) < 0) { isok = false; e.doit = isok; ); editors[1] = texteditor; CellEditor's dem Viewer zuordnen // Assign the cell editors to the viewer tableviewer.setcelleditors(editors); CellModifier dem Viewer zuordnen // Set the cell modifier for the viewer tableviewer.setcellmodifier(new EdbGuiE0100CellModifier(this)); DefaultSorter dem Viewer zuordnen // Set the default sorter for the viewer tableviewer.setsorter(new dbguie0100viewersorter(edbguie0100viewersorter.mahlzeit)); Getter für ColumnNames // getcolumnnames (Aufruf durch EdbGuiE0100CellModifier) Array mit Spaltennamen als List */ public List getcolumnnames() { return Arrays.asList(this.columnNames); Getter, der dem CellModifier Zugriff gewährt auf die Texte (Werte- Repräsentation) in Multiple-Choice-Zellen (Auswahllisten) // getchoices (wird von EdbGuiE0100CellModifier aufgerufen) property Spaltenname array of choices for a multiple choice cell */ public String[] getchoices(string property) { if (this.mahlzeit_column.equals(property)) return this.arrmahlzeittext; else return new String[] {; Getter, der dem CellModifier Zugriff gewährt auf das Datenmodell // getdbcursor (wird von EdbGuiE0100CellModifier aufgerufen) Array mit Spaltennamen als List */ public EdbModTagProtokollCur getedbmodtagprotokollcur() { return edbmodtagprotokollcur; Nach Änderung im CellModifier: Aufruf satzchanged() aus EdbModTagProtokollCur, der wiederum ruft updatesatz() aus dem Content-Provider und der wiederum ruft update() aus dem TableViewer ContentProvider-Implementierung

3 Der ContentProvider ist der Bestandteil der Verbindung zur Model-Ebene, der dem Viewer "am nahesten" ist //###################################################################### // Klasse EdbGuiE0100ContentProvider // Die Klasse fungiert als Proxy für die EdbModTagProtokollCur // aus der Model-Ebene. Sie stellt den Inhalt für die Tabelle zur // Verfügung. Sie implementiert das Interface IEdbModTagProtokollViewer, // um changelisteners bei der EdbModTagProtokollCur anmelden zu können // Diese Interface definiert die Methoden addsatz(), removesatz() und // updatesatz(), die hier in der Klasse implementiert werden //###################################################################### class EdbGuiE0100ContentProvider implements IStructuredContentProvider, IEdbModTagProtokollViewer { public void inputchanged(viewer inviewer, Object inoldinput, Object innewinput) { // Wird aus der JFace-Ebene vom ContentViewer aufgerufen. // Handling von inputchanged()-calls indem sich die ContentProvider- // Instanz beim model (model ist hier der TagProtokoll-edbModTagProtokollCur) // in der Liste der beim model angemeldeten Viewer einträgt bzw. // austrägt. Jede eingetragene ContentProvider-Instanz repräsentiert // dann einen beim model angemeldeten Viewer. // Diese Vorgehensweise entspricht dem Listener-Pattern, daher // "addchangelistener" und "removechangelistener". Listener-Pattern: The pattern is based on these simple concepts: events, event producer, and event listener. Events are messages that are sent from one object to another. The component that sends the event is said to "fire" the event, while the component that receives the event is said to "handle" the event. An event producer is a class that fires events. It also has the ability to add and delete event listeners (components that receive events). Event listeners, also known as event consumers, "listen" for an event. In programmatic terms, a method on the event listener object is called when an event that it is listening for is fired. ( if (innewinput!= null) ((EdbModTagProtokollCur) innewinput).addchangelistener(this); if (inoldinput!= null) ((EdbModTagProtokollCur) inoldinput).removechangelistener(this); public void dispose() { // Wird aus der JFace-Ebene aufgerufen. // Handling von dispose()-calls // Durch removechangelistener wird die ContentProvider-Instanz // aus der Liste der beim model angemeldeten Viewer entfernt // (model ist hier der TagProtokoll-edbModTagProtokollCur) edbmodtagprotokollcur.removechangelistener(this); // Return the Sätze as an array of Objects public Object[] getelements(object parent) { // Wird aus der JFace-Ebene aufgerufen (vom StructuredViewer). // Weiterleitung des getelements()-request an das model (also an // ein TagProtokoll-edbModTagProtokollCur) return edbmodtagprotokollcur.getcursor().toarray(); // holt zuerst die DB-Cursor-Instanz und dann daraus den edbmodtagprotokollcur // (List-Instanz) um diese List-Instanz dann in ein Array umzuwandeln // *** Implementierung der Methoden aus IEdbModTagProtokollViewer Ermöglichung des Zugriffes auf den TabelViewer von der Model-Ebene aus public void addsatz(edbmodtagprotokollsatz satz) { // wird aus EdbModTagProtokollCur aufgerufen // ergänze Satz auf Ebene des TableViewer tableviewer.add(satz); public void removesatz(edbmodtagprotokollsatz satz) { // wird aus EdbModTagProtokollCur aufgerufen // entferne Satz auf Ebene des TableViewer tableviewer.remove(satz);

4 public void updatesatz(edbmodtagprotokollsatz satz) { // wird aus EdbModTagProtokollCur aufgerufen // update Satz auf Ebene des TableViewer tableviewer.update(satz, null); lastmahlzeitnr = satz.getmahlzeitnr(); LabelProvider-Implementierung Liefert die in der Table darzustellenden Werte in der darzustellenden Form (formatiert). Die beiden Getter werden vom TableViewer aufgerufen. // Class EdbGuiE0100LabelProvider // LabelProvider für die Tabelle (TableViewer) in EdbGuiE0100 // Die Klasse implementiert die Schnittstelle ITableLabelProvider und // muß daher folgende Methoden implementieren: // -- getcolumntext() // -- getcolumnimage() // First Created on tbauer // TB Abschluss Ersterstellung org.eclipse.jface.viewers.labelprovider */ public class EdbGuiE0100LabelProvider extends LabelProvider implements ITableLabelProvider { private EdbGuiE0100 e0100; // Constructor ine0100 Instanz der Maske, welche TableViewer enthält*/ public EdbGuiE0100LabelProvider(EdbGuiE0100 ine0100) { super(); this.e0100 = ine0100; // getcolumntext // wird durch TableViewer aufgerufen // Gibt den darzustellenden Wert zurück org.eclipse.jface.viewers.itablelabelprovider#getcolumntext(java.lang.object,int) */ public String getcolumntext(object element, int columnindex) { String result = ""; float wertfloat; float teiler; // übergebenes Element ist vom Typ EdbModTagProtokollSatz Es wird letztendlich ein Satz im Rohdatenformat übergeben und für die gewünscht Spalte wird der formatierte darzustellende Wert zurückgeliefert EdbModTagProtokollSatz satz = (EdbModTagProtokollSatz) element; switch (columnindex) { case 0: // MAHLZEIT_COLUMN break; case 1: // MENGE_COLUMN // formatiert mit Tausenderpunkten und 2 Stellen nach Komma result = DbTools.formatDezimal(satz.getMenge_gr(), 2, true, false); break; case 2: // SBLS_COLUMN default: break; return result;

5 // getcolumnimage // wird durch TableViewer aufgerufen // Gibt das darzustellenden Image zurück org.eclipse.jface.viewers.itablelabelprovider#getcolumnimage(java.lang.object, int) */ public Image getcolumnimage(object element, int columnindex) { return null; CellModifier-Implementierung Der CellModifier wird gerufen, wenn der User eine Zelle im TableViewer ändert. Der Aufruf der Methoden erfolgt aus einer internen JFace-Klasse heraus (TableViewerImpl) // Class EdbGuiE0100CellModifier // CellModifier für die Tabelle (TableViewer) in EdbGuiE0100 // Der CellModifier wird gerufen, wenn der User eine Zelle im TableViewer ändert. // Die Klasse implementiert die Schnittstelle ICellModifier und // muß daher folgende Methoden implementieren: // -- canmodify() // -- modify() // -- getvalue() // First Created on tbauer // TB Abschluss Ersterstellung public class EdbGuiE0100CellModifier implements ICellModifier { private EdbGuiE0100 e0100; // Constructor ine0100 Instanz der Maske, welche TabelViewer enthält*/ public EdbGuiE0100CellModifier(EdbGuiE0100 ine0100) { super(); this.e0100 = ine0100; // canmodify // Erhält ein Element (TableRow) und eine SpaltenName (property) und // gibt die Info zurück, ob die Zelle geändert werden darf. org.eclipse.jface.viewers.icellmodifier#canmodify(java.lang.object, java.lang.string) */ public boolean canmodify(object element, String property) { // Find the index of the column int columnindex = e0100.getcolumnnames().indexof(property); switch (columnindex) { case 2: // LMBEZ_COLUMN return false; case 3: // GERICHT_COLUMN return false; // Rest darf geändert werden default: // Rest darf geändert werden return true; // getvalue // Erhält ein Element (TableRow) und eine SpaltenName (property) und // gibt den aktuellen Wert der Zelle zurück (unformatiert, aber als Text).

6 org.eclipse.jface.viewers.icellmodifier#getvalue(java.lang.object, java.lang.string) */ public Object getvalue(object element, String property) { // Find the index of the column int columnindex = e0100.getcolumnnames().indexof(property); Object result = null; // Cast das Input-Element in eine Instanz der Model-seitigen Klasse // (hier EdbModTagProtokollSatz), um dessen Interface // (IEdbModTagProtokollViewer) zugreifen zu können. Es wird letztendlich ein Satz im Rohdatenformat übergeben und für die gewünscht Spalte wird der Wert zurückgeliefert EdbModTagProtokollSatz satz = (EdbModTagProtokollSatz) element; switch (columnindex) { case 0: // MAHLZEIT_COLUMN break; case 1: // MENGE_COLUMN // mit + "" Konvertierung zu String :-) result = satz.getmenge_gr() + ""; break; default: result = ""; return result; // modify // Erhält ein Element (Tabellenzeile) und eine SpaltenName (property) und // zusätzlich einen Wert. Dieser Wert wird auf die "Model-Ebene" // (also hier EdbModTagProtokollSatz) durchgeschrieben. org.eclipse.jface.viewers.icellmodifier#modify(java.lang.object, java.lang.string, java.lang.object) */ public void modify(object element, String property, Object value) { // Find the index of the column int columnindex = e0100.getcolumnnames().indexof(property); // Das übergebene Element ist ein TableItem (Tabellenzeile) TableItem item = (TableItem) element; // Cast das Input-Element in eine Instanz der Model-seitigen Klasse // (hier EdbModTagProtokollSatz), um dessen Interface // (IEdbModTagProtokollViewer) zugreifen zu können. EdbModTagProtokollSatz satz = (EdbModTagProtokollSatz) item.getdata(); // // Update jetzt auf model-ebene den geänderte Wert durch // die entsprechende set-methode // String valuestring; switch (columnindex) { case 0: // MAHLZEIT_COLUMN case 1: // MENGE_COLUMN // der übergebne value ist ein String-Objekt, welcher in eine // Floatzahl umgewandelt werden muß valuestring = ((String) value).trim(); float zahl; if (valuestring.length() == 0) { zahl = 0.0F;

7 else { if (valuestring.indexof(",") > -1) { // Zahl kommt im Format 1470,22 (d.h. mit Dezimalkomma) zahl = (float) DbTools.strDezimalToDouble(valueString); else { // Zahl kommt im Format (d.h. mit Dezimalpunkt) zahl = Float.parseFloat(valueString); satz.setmenge_gr(zahl); break; default: // restliche Felder können nicht geändert werden // // Aufruf der auf model-ebene definierten Methode satzchanged() // Dort wird die im ContendProvider implementierte Methode // updatesatz() aufgerufen, die wiederum die update()-methode // des TableViewer aufruft wodurch der Viewer dann aktualisiert wird // e0100.getedbmodtagprotokollcur().satzchanged(satz); ViewerSorter-Implementierung // Class EdbGuiE0100ViewerSorter // Sorter zum TableViewer in Maske E0100 // First Created on tbauer // TB Abschluss Ersterstellung public class EdbGuiE0100ViewerSorter extends ViewerSorter { public final static int MAHLZEIT = 0; // Criteria that the instance uses private int criteria; // Constructor // Erzeugt einen resource sorter, der das gegebene Sortierkriterium // verwendet. // criteria ist die Nummer der Sortierspalte für die speziell diese // Sorter-Instanz angelegt wurde (wird angegeben, wenn der Sorter // für eine Spalte im SelectionListener oder als Standard-Sorter des // Viewer angelegt wird) criteria Nummer der Standard-Sortierspalte */ public EdbGuiE0100ViewerSorter(int criteria) { super(); this.criteria = criteria; // compare // wird im TableViewer verwendet org.eclipse.jface.viewers.viewersorter#compare(org.eclipse.jface.viewers.viewer, java.lang.object, java.lang.object) */ public int compare(viewer viewer, Object o1, Object o2) { EdbModTagProtokollSatz satz1 = (EdbModTagProtokollSatz) o1; EdbModTagProtokollSatz satz2 = (EdbModTagProtokollSatz) o2; switch (criteria) { case MAHLZEIT:

8 return comparemahlzeitnr(satz1, satz2); default: return 0; // comparemahlzeitnr // Returns a number reflecting the collation order of the given sätze // based on the MahlzeitNr. a negative number if the first element is less than the // second element; the value <code>0</code> if the first element is // equal to the second element; and a positive number if the first // element is greater than the second element private int comparemahlzeitnr(edbmodtagprotokollsatz satz1, EdbModTagProtokollSatz satz2) { int mahlzeitnr1 = satz1.getmahlzeitnr(); int mahlzeitnr2 = satz2.getmahlzeitnr(); if (mahlzeitnr1 < 1) { // ohne Zuordnung => ganz hinten einreihen mahlzeitnr1 = 99999; if (mahlzeitnr2 < 1) { // ohne Zuordnung => ganz hinten einreihen mahlzeitnr2 = 99999; int result = mahlzeitnr1 - mahlzeitnr2; result = result < 0? -1 : (result > 0)? 1 : 0; return result; // getcriteria the sort criterion */ public int getcriteria() { return criteria; Model: Interface /// // Interface IEdbModTagProtokollViewer // Model-Ebene für Viewer zur Bearbeitung von DB-Tabelle TagProtokoll // notwendiges Interface für die Bearbeitung der Tabelle TagProtokoll in // einem Viewer // First Created on tbauer // TB Abschluss Ersterstellung public interface IEdbModTagProtokollViewer { // addsatz // Update des View, um die Tatsache zu reflektieren, daß ein Datensatz // ergänzt wurde. satz */ public void addsatz(edbmodtagprotokollsatz satz); // removesatz // Update des View, um die Tatsache zu reflektieren, daß ein Datensatz // gelöscht wurde. satz */

9 public void removesatz(edbmodtagprotokollsatz satz); // updatesatz // Update des View, um die Tatsache zu reflektieren, daß ein Datensatz // geändert wurde. satz */ public void updatesatz(edbmodtagprotokollsatz satz); Model: Implementierung der Zugriffe auf den Datenbestand // Class EdbModTagProtokollCur // Model-Ebene für Viewer zur Bearbeitung von DB-Tabelle TagProtokoll // Klasse repräsentiert eine Cursor mit Datensätzen aus TagProtokoll // Die Klasse ist von DbCursor abgeleitet. Die Datensätze werden // in der Klassenvariable von DbCursor, welche den Cursor repräsentiert, // gehalten. Allerdings werden in den Cursor keine DbSatz-Instanzen, // sondern Instanzen der von DbSatz abgeleiteten Klasse EdbModTagProtokollSatz // eingetragen. Damit können alle Sätze aus dem Cursor an den relevanten // Stellen auf EdbModTagProtokollSatz gecastet werden. // First Created on tbauer // TB Abschluss Ersterstellung public class EdbModTagProtokollCur extends DbCursor { // Tabellename (wird auch in EdbModTagProtokollSatz verwendet!!) static final String TABNAME = "TagProtokoll"; // Liste von Referenzen auf ContendProvider-Instanzen (jw. gecasted // auf IEdbModTagProtokollViewer), wobei jede dieser Instanz einen // angemeldeten Viewer repräsentiert private Set changelisteners = new HashSet(); private int userid; private String datum; // Konstruktor // Erzeuge einen Cursor, welcher die Daten zu User/Datum enthält // (Instanz von DbCursor) inuserid indatum */ public EdbModTagProtokollCur(int inuserid, String indatum) { super(tabname, "TABELLE"); // Lese zu UserId und Datum, order by UserId,Datum,MahlzeitNr,ID // keine Exception, wenn keine Daten vorhanden this.userid = inuserid; this.datum = indatum; DbCursor dbcursor = new DbZugTagProtokoll(10, 11, "", 0, inuserid, indatum, indatum, ""); // DbZugTagProtokoll liefert Cursor mit DbSatz-Instanzen // in den Cursor dieses Objektes sollen jedoch EdbModTagProtokollSatz-Instanzen // eintragen werden ListIterator it = dbcursor.getit(); while (it.hasnext()) { DbSatz dbsatz = (DbSatz) it.next(); // Konstruktor baut EdbModTagProtokoll-Instanz auf mit den // Daten aus der DbSatz-Instanz

10 super.satzeintragen(new EdbModTagProtokollSatz(dbSatz)); // addsatz // Wird aus dem Add-Button (widgetselected-listener) aufgerufen // ergänze neuen Satz im edbmodtagprotokollcur // Zudem wird der Satz in jedem Viewer eingetragen, der angemeldet ist public void addsatz(string insbls, float inmenge, int ingerichtnr, int inmahlzeitnr) { EdbModTagProtokollSatz satz = null; satz = new EdbModTagProtokollSatz(0, // ID this.userid, // User-ID this.datum, // Datum inmahlzeitnr, // Mahlzeiten-Nr insbls, // SBLS inmenge, // Menge ingerichtnr); // GerichtNr super.satzeintragen(satz); Iterator iterator = changelisteners.iterator(); while (iterator.hasnext()) { IEdbModTagProtokollViewer viewer; viewer = (IEdbModTagProtokollViewer) iterator.next(); // Eintrag Satz auf Viewer-Ebene (Methode aus ContendProvider) viewer.addsatz(satz); // ruft tableviewerger.add(satz) // removesatz // Wird aus dem Delete-Button (widgetselected-listener) aufgerufen // Der übergebene Satz wird aus Cursor und Db gelöscht // Zudem wird der Satz aus jedem Viewer gelöscht, der angemeldet ist satz */ public void removesatz(edbmodtagprotokollsatz satz) { super.satzloeschendb(satz); // löscht Satz in Db und aus Cursor Iterator iterator = changelisteners.iterator(); while (iterator.hasnext()) { IEdbModTagProtokollViewer viewer; viewer = (IEdbModTagProtokollViewer) iterator.next(); // Löschung Satz auf Viewer-Ebene (Methode aus ContendProvider) viewer.removesatz(satz); // ruft tableviewerger.remove(satz) // satzchanged // Wird durch den CellModifier aufgerufen // Die übergebene Instanz des Satzes ist bereits geändert // Löst den Update des Satzes in jedem Viewer aus, der angemeldet ist satz */ public void satzchanged(edbmodtagprotokollsatz satz) { Iterator iterator = changelisteners.iterator(); while (iterator.hasnext()) { IEdbModTagProtokollViewer viewer; viewer = (IEdbModTagProtokollViewer) iterator.next(); // Update Satz auf Viewer-Ebene (Methode aus ContendProvider) viewer.updatesatz(satz); // ruft tableviewerger.update(satz,null)

11 // removechangelistener // Aufruf durch dispose() sowie inputchangend() der ContentProvider- // Implementierung // Übergeben wird die (auf IEdbModTagProtokollViewer gecastete) Instanz des // ContentProvider. In changelisteners ist eine Referenz auf diese Instanz // gespeichert. Diese Referenz wird entfernt. viewer */ public void removechangelistener(iedbmodtagprotokollviewer viewer) { changelisteners.remove(viewer); // addchangelistener // Aufruf durch inputchangend() der ContentProvider-Implementierung // Übergeben wird die (auf IEdbModTagProtokollViewer gecastete) Instanz des // ContentProvider. In changelisteners wird eine Referenz auf diese Instanz // gespeichert. Diese Referenz steht stellvertretend für einen angemeldeten Viewer. viewer */ public void addchangelistener(iedbmodtagprotokollviewer viewer) { changelisteners.add(viewer); // Class EdbModTagProtokollSatz // Model-Ebene für Viewer zur Bearbeitung von DB-Tabelle TagProtokoll // Klasse repräsentiert eine Datensatz aus TagProtokoll // Die Klasse ist eine Erweiterung zur allgemeinen DB-Zugriffsklasse DbSatz // First Created on tbauer // TB Abschluss Ersterstellung public class EdbModTagProtokollSatz extends DbSatz { // ergänzend dazu gelesene Daten private String skt; // Lebenmittelbezeichnung private float gp; // Standard-Portionsgröße private float zf; // Fettanteil private float zw; // Wasseranteil // Konstruktor // Erzeugt einen neuen Datensatz (Daten für die Felder werden übergeben) inid inuserid indatum inmahlzeitnr insbls inmenge_gr ingerichtnr */ public EdbModTagProtokollSatz(int inid, int inuserid, String indatum, int inmahlzeitnr, String insbls, float inmenge_gr, int ingerichtnr) { // DbSatz-Instanz anlegen super(edbmodtagprotokollcur.tabname, "TABELLE"); // Zusatzwerten ermitteln und Klassenvariablen damit füllen this.leszusatzwerte(insbls, ingerichtnr);

12 // Feld ID eintragen int id = inid; if (inid == 0) { id = DbZugTagProtokoll.maxID() + 1; DbFeld feldid = new DbFeld("ID", EdbModTagProtokollCur.TABNAME, id, false, java.sql.types.integer); super.feldeintragen(feldid); // Feld UserID eintragen // Satz in Datenbank eintragen super.insertsatzindb(null); // Konstruktor // Erzeugt aus einer DbSatz-Instanz einen neue EdbModTagProtokoll-Instanz public EdbModTagProtokollSatz(DbSatz indbsatz) { // DbSatz-Instanz anlegen super(edbmodtagprotokollcur.tabname, "TABELLE"); // Feldliste aus übergebenen Satz übernehmen super.feldlisteeintragen(indbsatz.getfeldliste(), "", ""); // Zusatzwerten ermitteln und Klassenvariablen damit füllen String sbls = indbsatz.getfeld("sbls", "", "").getstringwert(); this.leszusatzwerte(sbls, 0); // leszusatzwerte // lese Zusatzwerte und speichere in Klassenvariablen private void leszusatzwerte(string insbls, int ingerichtnr) { // ergänzende Werte if (insbls!= null && (!insbls.equals(""))) { // Lese Lebenmittel ein // Lese nur Felder SBLS,SKT,ZF,ZE,ZK,ZW,GPUSER,GCAL // Lese zu Key(SBLS) ohne order by / Exception, wenn keine Daten String[] arrfelder = { "SBLS", "SKT", "ZF", "ZE", "ZK", "ZW", "GPUSER", "GCAL" ; DbCursor cur = new DbZugBLS_DATEN(2, 0, "NODAT_EXCEP", arrfelder, insbls, "", ""); DbSatz satz = cur.getfirstsatz(); // SKT: Lebensmittelbezeichnung this.skt = satz.getfeld("skt", "", "").getstringwert(); // ZF: Fettanteil this.zf = satz.getfeld("zf", "", "").getfloat(); // ZW: Wasseranteil this.zw = satz.getfeld("zw", "", "").getfloat(); if (ingerichtnr > 0) { // wenn gerichtnr > 0, dann verwende für durchschnittl. Portionsgröße // den Wert aus GerichtPositionen // Lesen zu Primary Key (GerichtNr, SBLS) ohne order by // Exception, wenn keine Daten cur = new DbZugGericht_Positionen(2, 0, "", ingerichtnr, insbls); satz = cur.getfirstsatz(); this.gp = satz.getfeld("menge", "", "").getfloat(); else { // GP: durchschnittliche Portionsgröße

13 this.gp = satz.getfeld("gpuser", "", "").getfloat(); else { this.skt = ""; this.gp = 0; this.zf = 0; this.zw = 0; // Getter auf die Feldwerte TagProtokoll.ID */ public int getid() { return super.getfeld("id", "", "").getint(); TagProtokoll.UserID */ public int getuserid() { return super.getfeld("userid", "", "").getint(); // Setter für die Feldwerte inid */ public void setid(int inid) { super.getfeld("id", "", "").setwert(inid); inuserid */ public void setuserid(int inuserid) { super.getfeld("userid", "", "").setwert(inuserid);

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

188.154 Einführung in die Programmierung für Wirtschaftsinformatik

188.154 Einführung in die Programmierung für Wirtschaftsinformatik Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Kostenstellen verwalten. Tipps & Tricks

Kostenstellen verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

IBIS Professional. z Dokumentation zur Dublettenprüfung

IBIS Professional. z Dokumentation zur Dublettenprüfung z Dokumentation zur Dublettenprüfung Die Dublettenprüfung ist ein Zusatzpaket zur IBIS-Shopverwaltung für die Classic Line 3.4 und höher. Dubletten entstehen dadurch, dass viele Kunden beim Bestellvorgang

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Informationen aus der Datenbank lesen Klasse SQLiteDatabase enthält die Methode query(..) 1. Parameter: Tabellenname

Mehr

Anleitung für das Content Management System

Anleitung für das Content Management System Homepage der Pfarre Maria Treu Anleitung für das Content Management System Teil 4 Kalendereinträge Erstellen eines Kalender-Eintrages 1. Anmeldung Die Anmeldung zum Backend der Homepage erfolgt wie gewohnt

Mehr

Applet Firewall und Freigabe der Objekte

Applet Firewall und Freigabe der Objekte Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Bedienungsanleitung für den Online-Shop

Bedienungsanleitung für den Online-Shop Hier sind die Produktgruppen zu finden. Zur Produktgruppe gibt es eine Besonderheit: - Seite 1 von 18 - Zuerst wählen Sie einen Drucker-Hersteller aus. Dann wählen Sie das entsprechende Drucker- Modell

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Anwendungsbeispiele Buchhaltung

Anwendungsbeispiele Buchhaltung Rechnungen erstellen mit Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Rechnungen erstellen mit Webling 1.1 Rechnung erstellen und ausdrucken 1.2 Rechnung mit Einzahlungsschein erstellen

Mehr

WPF Steuerelemente Listbox, ComboBox, ListView,

WPF Steuerelemente Listbox, ComboBox, ListView, WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,

Mehr

Handbuch zum Excel Formular Editor

Handbuch zum Excel Formular Editor Handbuch zum Excel Formular Editor Mit diesem Programm können Sie die Zellen von ihrer Excel Datei automatisch befüllen lassen. Die Daten können aus der Coffee Datenbank, oder einer weiteren Excel Datendatei

Mehr

Aufklappelemente anlegen

Aufklappelemente anlegen Aufklappelemente anlegen Dieses Dokument beschreibt die grundsätzliche Erstellung der Aufklappelemente in der mittleren und rechten Spalte. Login Melden Sie sich an der jeweiligen Website an, in dem Sie

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Hilfedatei der Oden$-Börse Stand Juni 2014

Hilfedatei der Oden$-Börse Stand Juni 2014 Hilfedatei der Oden$-Börse Stand Juni 2014 Inhalt 1. Einleitung... 2 2. Die Anmeldung... 2 2.1 Die Erstregistrierung... 3 2.2 Die Mitgliedsnummer anfordern... 4 3. Die Funktionen für Nutzer... 5 3.1 Arbeiten

Mehr

Werbemittelverwaltung

Werbemittelverwaltung Werbemittelverwaltung 1 Inhaltsverzeichnis Werbemittelverwaltung...1 Ihr Nutzen...3 Notwendige Stammdateneinstellungen...4 Das Anlegen einer Gruppe:... 4 Das Anlegen der Gruppeneinträge (Auswahl):... 4

Mehr

Android Java Specifics / Basic IO

Android Java Specifics / Basic IO Dalvik virtual machine Registermaschine anstelle einer Stackmaschine Optimiert für geringen Speicherverbrauch Umwandlung von.class Dateien in.dex-format mit Hilfe von dx Jedes Programm läuft als eigener

Mehr

Anbindung an easybill.de

Anbindung an easybill.de Anbindung an easybill.de Stand: 14. Dezember 2011 2011 Virthos Systems GmbH www.pixtacy.de Einleitung Pixtacy verfügt ab Version 2.3 über eine Schnittstelle zu dem Online-Fakturierungsprogramm easybill.de.

Mehr

IAWWeb PDFManager. - Kurzanleitung -

IAWWeb PDFManager. - Kurzanleitung - IAWWeb PDFManager - Kurzanleitung - 1. Einleitung Dieses Dokument beschreibt kurz die grundlegenden Funktionen des PDFManager. Der PDF Manager dient zur Pflege des Dokumentenbestandes. Er kann über die

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

AZK 1- Freistil. Der Dialog Arbeitszeitkonten Grundsätzliches zum Dialog Arbeitszeitkonten AZK 1- Freistil Nur bei Bedarf werden dafür gekennzeichnete Lohnbestandteile (Stundenzahl und Stundensatz) zwischen dem aktuellen Bruttolohnjournal und dem AZK ausgetauscht. Das Ansparen und das Auszahlen

Mehr

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2 Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung

Mehr

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt

Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 26. April 2013 Programmieren II 10. Übungsblatt Hinweis: Insgesamt werden in diesem Semester fünf

Mehr

Upgrade-Leitfaden. Apparo Fast Edit 1 / 7

Upgrade-Leitfaden. Apparo Fast Edit 1 / 7 Upgrade-Leitfaden Apparo Fast Edit 1 / 7 Inhaltsverzeichnis 1 Download der neuen Version... 4 2 Sicherung des Apparo Datenbank-Repository... 4 3 De-Installation der installierten Apparo Fast Edit Version...

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

SJ OFFICE - Update 3.0

SJ OFFICE - Update 3.0 SJ OFFICE - Update 3.0 Das Update auf die vorherige Version 2.0 kostet netto Euro 75,00 für die erste Lizenz. Das Update für weitere Lizenzen kostet jeweils netto Euro 18,75 (25%). inkl. Programmsupport

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü. Programm Die Bedienung des Programms geht über das Hauptmenü. Datenbank Schnittstelle Die Datenbank wir über die Datenbank- Schnittstelle von Office angesprochen. Von Office 2000-2003 gab es die Datenbank

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Bedienungsanleitung CAD-KAS Reklamationserfassung. Einen neuen Datensatz anlegen. Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen.

Bedienungsanleitung CAD-KAS Reklamationserfassung. Einen neuen Datensatz anlegen. Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen. Bedienungsanleitung CAD-KAS Reklamationserfassung Einen neuen Datensatz anlegen Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen. Datensatz löschen Daten hier erfassen. Automatische Reklamationsnummer

Mehr

E-MAIL VERWALTUNG. Postfächer, Autoresponder, Weiterleitungen, Aliases. http://www.athost.at. Bachstraße 47, 3580 Mödring office@athost.

E-MAIL VERWALTUNG. Postfächer, Autoresponder, Weiterleitungen, Aliases. http://www.athost.at. Bachstraße 47, 3580 Mödring office@athost. E-MAIL VERWALTUNG Postfächer, Autoresponder, Weiterleitungen, Aliases http://www.athost.at Bachstraße 47, 3580 Mödring office@athost.at Loggen Sie sich zunächst unter http://www.athost.at/kundencenter

Mehr

How-to: Webserver NAT. Securepoint Security System Version 2007nx

How-to: Webserver NAT. Securepoint Security System Version 2007nx Securepoint Security System Inhaltsverzeichnis Webserver NAT... 3 1 Konfiguration einer Webserver NAT... 4 1.1 Einrichten von Netzwerkobjekten... 4 1.2 Erstellen von Firewall-Regeln... 6 Seite 2 Webserver

Mehr

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Faktura. IT.S FAIR Faktura. Handbuch. Dauner Str.12, D-41236 Mönchengladbach, Hotline: 0900/1 296 607 (1,30 /Min)

Faktura. IT.S FAIR Faktura. Handbuch. Dauner Str.12, D-41236 Mönchengladbach, Hotline: 0900/1 296 607 (1,30 /Min) IT.S FAIR Faktura Handbuch Dauner Str.12, D-41236 Mönchengladbach, Hotline: 0900/1 296 607 (1,30 /Min) 1. Inhalt 1. Inhalt... 2 2. Wie lege ich einen Kontakt an?... 3 3. Wie erstelle ich eine Aktion für

Mehr

SRM - Supplier Self Service (Lieferant) Author: Dennis Vater; Version: 01, January 1th, 2013

SRM - Supplier Self Service (Lieferant) Author: Dennis Vater; Version: 01, January 1th, 2013 Inhalt 0. Systemlandschaft 2 1. Benachrichtigung über neue oder geänderte Belege 2 2. Anmeldung am Lieferantenportal 2 2.1 Erläuterungen der Bereiche 3 2.2 Erläuterungen des Status 4 3. Bestätigung pflegen

Mehr

Vorgehensweise für die Umstellung von Quicken-Konten bei Bargeldbuchungen auf ein Wertpapierkonto

Vorgehensweise für die Umstellung von Quicken-Konten bei Bargeldbuchungen auf ein Wertpapierkonto Vorgehensweise für die Umstellung von Quicken-Konten bei Bargeldbuchungen auf ein Wertpapierkonto Bevor Sie Ihre Datei nach Quicken 2010, bzw. 2011 konvertieren, können Sie in Ihrer jetzt benutzten Version

Mehr

tentoinfinity Apps 1.0 EINFÜHRUNG

tentoinfinity Apps 1.0 EINFÜHRUNG tentoinfinity Apps Una Hilfe Inhalt Copyright 2013-2015 von tentoinfinity Apps. Alle Rechte vorbehalten. Inhalt der online-hilfe wurde zuletzt aktualisiert am August 6, 2015. Zusätzlicher Support Ressourcen

Mehr

ecaros2 - Accountmanager

ecaros2 - Accountmanager ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

SCHNELLEINSTIEG ZUM TOOL NODEBUILDER

SCHNELLEINSTIEG ZUM TOOL NODEBUILDER Fakultät Informatik, Institut für Angewandte Informatik, Professur Technische Informationssysteme SCHNELLEINSTIEG ZUM TOOL NODEBUILDER Betreuer: Dipl.-Ing. A. Cemal Özlük Dipl.-Inf. Uwe Ryssel ALLGEMEINE

Mehr

Typumwandlungen bei Referenztypen

Typumwandlungen bei Referenztypen Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei

Mehr

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung Ablauf für die Erfassung der Fehler in der Fertigung Voraussetzung ist die Zuordnung der Erzeugnisse zu Produktgruppen. Wie das funktioniert ist der Anleitung Neue Produktgruppe anlegen und mit Erzeugnissen

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift. Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung

Mehr

Fachhochschule Deggendorf Platzziffer:...

Fachhochschule Deggendorf Platzziffer:... Sommersemester 2008 Zahl der Blätter: 9 Fachbereich: Betriebswirtschaft WI Bachelor Hilfsmittel: alles ohne Computer Zeit: 90 Minuten 1 Betrachten Sie die drei markierten Zeilen. 1. Angenommen Sie hätten

Mehr

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012 Access 2010 Grundlagen für Anwender inkl. zusätzlichem Übungsanhang ACC2010-UA 3 Access 2010 - Grundlagen für Anwender 3 Daten in Formularen bearbeiten

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:

Mehr

1. Einführung. 2. Weitere Konten anlegen

1. Einführung. 2. Weitere Konten anlegen 1. Einführung In orgamax stehen Ihnen die gängigsten Konten des Kontenrahmens SKR03 und SKR04 zur Verfügung. Damit sind im Normalfall alle Konten abgedeckt, die Sie zur Verbuchung benötigen. Eine ausführliche

Mehr

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung Seite 1 Inhalt Allgemein...3 Installation...3 manuelle Eingabe von alten und neuen Adressnummern...4 Vorbereiten von Adressnummern-Änderungen in Tabellen...5 Seite 2 Allgemein Das INKS-Modul ermöglicht

Mehr

Beschaffung mit. Auszug aus dem Schulungshandbuch: Erste Schritte im UniKat-System

Beschaffung mit. Auszug aus dem Schulungshandbuch: Erste Schritte im UniKat-System Beschaffung mit Auszug aus dem Schulungshandbuch: Erste Schritte im UniKat-System Stand: 31. Oktober 2014 Inhaltsverzeichnis 1 Erste Schritte im UniKat-System... 2 1.1 Aufruf des Systems... 2 1.2 Personalisierung...

Mehr

Benutzerhandbuch - Elterliche Kontrolle

Benutzerhandbuch - Elterliche Kontrolle Benutzerhandbuch - Elterliche Kontrolle Verzeichnis Was ist die mymaga-startseite? 1. erste Anmeldung - Administrator 2. schnittstelle 2.1 Administrator - Hautbildschirm 2.2 Administrator - rechtes Menü

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

1 Lieferantenbewertung

1 Lieferantenbewertung 1 Lieferantenbewertung Mit Hilfe der Lieferantenbewertung können alle aktiven Lieferanten nach ISO Kriterien bewertet werden. Die zur Bewertung hinterlegten Faktoren können individuell vorgegeben werden.

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und

Mehr

desk.modul : WaWi- Export

desk.modul : WaWi- Export desk.modul : WaWi- Export Die Schnittstelle besteht aus einem Programm, welches die Daten aus der OfficeLine ausliest und in eine XML-Datei exportiert. Die Schnittstelle ist als ein eigenständiges Programm

Mehr

Eigene Seiten erstellen

Eigene Seiten erstellen PhPepperShop Anleitung Datum: 3. Oktober 2013 Version: 2.1 Eigene Seiten erstellen Eigene Inhalte / CMS Glarotech GmbH Inhaltsverzeichnis Anleitung zur Erstellung von eigenen Inhalten/Links...3 1. Anmeldung

Mehr

inviu routes Installation und Erstellung einer ENAiKOON id

inviu routes Installation und Erstellung einer ENAiKOON id inviu routes Installation und Erstellung einer ENAiKOON id Inhaltsverzeichnis inviu routes... 1 Installation und Erstellung einer ENAiKOON id... 1 1 Installation... 1 2 Start der App... 1 3 inviu routes

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

U08 Entwurfsmuster (II)

U08 Entwurfsmuster (II) U08 Entwurfsmuster (II) Inhalt der Übung Diskussion und Implementierung von Entwurfsmustern Übungsaufgaben Aufgabe 1 (Queue) Gegeben ist das folgende Analysemodell einer Warteschlange (Queue): Eine Warteschlange

Mehr

Anleitung OpenCms 8 Webformular Auswertung

Anleitung OpenCms 8 Webformular Auswertung Anleitung OpenCms 8 Webformular Auswertung 1 Erzbistum Köln Webformular Auswertung 15. August 2014 Inhalt 1. Allgemeines zum Webformular Auswertung... 3 2. Verwendung des Webformulars... 4 2.1. Reiter

Mehr

Eine Anwendung mit InstantRails 1.7

Eine Anwendung mit InstantRails 1.7 Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen

Mehr

FlowFact Alle Versionen

FlowFact Alle Versionen Training FlowFact Alle Versionen Stand: 29.09.2005 Rechnung schreiben Einführung Wie Sie inzwischen wissen, können die unterschiedlichsten Daten über verknüpfte Fenster miteinander verbunden werden. Für

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Anleitung zur Anmeldung beim EPA zur Nutzung von OPS 3.1

Anleitung zur Anmeldung beim EPA zur Nutzung von OPS 3.1 Anleitung zur Anmeldung beim EPA zur Nutzung von OPS 3.1 Mit der Version 3.1 des OPS hat das EPO eine Begrenzung des Download-Volumens bei der kostenlosen Nutzung eingeführt. Um die Datenmengen zuordnen

Mehr

Kurzanleitung OOVS. Reseller Interface. Allgemein

Kurzanleitung OOVS. Reseller Interface. Allgemein Kurzanleitung OOVS Reseller Interface Allgemein Durch die Einführung des neuen Interfaces hat sich für Reseller von Syswebcom etwas geändert. Die Struktur der Kundenverwaltung ist einprägsamer, wenn man

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

Grundsätzliche Informationen zu SpAz

Grundsätzliche Informationen zu SpAz Grundsätzliche Informationen zu SpAz SpAz steht Ihnen zur Eingabe der Personen- und Leistungsdaten Ihrer Absolventen zur Verfügung. Die erforderlichen Daten zur Eingabe entsprechen dabei den Angaben von

Mehr

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

Mehr

Zur drittletzten Zeile scrollen

Zur drittletzten Zeile scrollen 1 Fragen und Antworten zur Computerbedienung Thema : Zur drittletzten Zeile scrollen Thema Stichwort Programm Letzte Anpassung Zur drittletzten Zeile scrollen Scrollen VBA Excel 1.02.2014 Kurzbeschreibung:

Mehr

Installation des edu- sharing Plug- Ins für Moodle

Installation des edu- sharing Plug- Ins für Moodle Installation des edu- sharing Plug- Ins für Moodle [edu-sharing Team] [Dieses Dokument beschreibt die Installation und Konfiguration des edu-sharing Plug-Ins für das LMS Moodle.] edu- sharing / metaventis

Mehr

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich Mitgliederbereich (Version 1.0) Bitte loggen Sie sich in den Mitgliederbereich mit den Ihnen bekannten Zugangsdaten

Mehr

Stand: 26.09.2012. Dokumentenverwaltung Modulbeschreibung

Stand: 26.09.2012. Dokumentenverwaltung Modulbeschreibung Seite 1 Inhalt Allgemein...3 Installation...3 So nutzen Sie die...4 Dokumente an andere INKS-Benutzer melden...7 Dokumentenliste ausdrucken...9 Konfiguration der... 10 Seite 2 Allgemein Die bietet Ihnen

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Kulturobjekte der Donau Das ContentManagementSystem (CMS)

Kulturobjekte der Donau Das ContentManagementSystem (CMS) Kulturobjekte der Donau Das ContentManagementSystem (CMS) Kurzanleitung Inhalt: LogIn 1 Objektverwaltung - Übersicht 2 - Neue Objekte 3 - Eigenschaften ändern 4 - Objekte löschen 5 Benutzerverwaltung -

Mehr