/** * Ueberschrieben, um einen DisposeListener an das Composite zu haengen. * * @see de.willuhn.jameica.gui.parts.TablePart#paint(org.eclipse.swt.widgets.Composite) */ public synchronized void paint(Composite parent) throws RemoteException { final TabFolder folder = new TabFolder(parent, SWT.NONE); folder.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); TabGroup tab = new TabGroup(folder, i18n.tr("Anzeige einschränken")); ColumnLayout cols = new ColumnLayout(tab.getComposite(), 2); { this.left = new SimpleContainer(cols.getComposite()); Input t = this.getText(); this.left.addInput(t); // Duerfen wir erst nach dem Zeichnen t.getControl().addKeyListener(new DelayedAdapter()); this.left.addInput(this.getKonto()); } { Container right = new SimpleContainer(cols.getComposite()); right.addInput(this.getRange()); MultiInput range = new MultiInput(this.getFrom(), this.getTo()); right.addInput(range); } this.buttons.addButton( i18n.tr("Aktualisieren"), new Action() { public void handleAction(Object context) throws ApplicationException { handleReload(true); } }, null, true, "view-refresh.png"); this.buttons.paint(parent); // Erstbefuellung GenericIterator items = getList( getKonto().getValue(), (Date) getFrom().getValue(), (Date) getTo().getValue(), (String) getText().getValue()); if (items != null) { items.begin(); while (items.hasNext()) addItem(items.next()); } super.paint(parent); }
private void generiereMitglied(Mitglied m, Date von, Date bis) throws RemoteException, DocumentException { rpt.newPage(); rpt.add(Einstellungen.getEinstellung().getName(), 20); rpt.add("Kontoauszug: " + Adressaufbereitung.getVornameName(m), 18); JVDateFormatTTMMJJJJ jv = new JVDateFormatTTMMJJJJ(); rpt.add("Stand: " + jv.format(new Date()), 16); rpt.addHeaderColumn(" ", Element.ALIGN_CENTER, 20, BaseColor.LIGHT_GRAY); rpt.addHeaderColumn("Datum", Element.ALIGN_CENTER, 20, BaseColor.LIGHT_GRAY); rpt.addHeaderColumn("Zweck", Element.ALIGN_LEFT, 50, BaseColor.LIGHT_GRAY); rpt.addHeaderColumn("Zahlungsweg", Element.ALIGN_LEFT, 20, BaseColor.LIGHT_GRAY); rpt.addHeaderColumn("Soll", Element.ALIGN_RIGHT, 20, BaseColor.LIGHT_GRAY); rpt.addHeaderColumn("Ist", Element.ALIGN_RIGHT, 20, BaseColor.LIGHT_GRAY); rpt.addHeaderColumn("Differenz", Element.ALIGN_RIGHT, 20, BaseColor.LIGHT_GRAY); rpt.createHeader(); MitgliedskontoNode node = new MitgliedskontoNode(m, von, bis); generiereZeile(node); GenericIterator gi1 = node.getChildren(); while (gi1.hasNext()) { MitgliedskontoNode n1 = (MitgliedskontoNode) gi1.next(); generiereZeile(n1); GenericIterator gi2 = n1.getChildren(); while (gi2.hasNext()) { MitgliedskontoNode n2 = (MitgliedskontoNode) gi2.next(); generiereZeile(n2); } } rpt.closeTable(); }
/** * @see de.willuhn.jameica.hbci.io.Exporter#doExport(java.lang.Object[], * de.willuhn.jameica.hbci.io.IOFormat, java.io.OutputStream, de.willuhn.util.ProgressMonitor) */ public void doExport(Object[] objects, IOFormat format, OutputStream os, ProgressMonitor monitor) throws RemoteException, ApplicationException { if (os == null) throw new ApplicationException(i18n.tr("Kein Ausgabe-Ziel für die Datei angegeben")); if (format == null) throw new ApplicationException(i18n.tr("Kein Ausgabe-Format angegeben")); if (objects == null || objects.length == 0) throw new ApplicationException(i18n.tr("Keine zu exportierenden Daten angegeben")); if (!(objects instanceof SammelTransfer[])) throw new ApplicationException( i18n.tr("Die zu exportierenden Daten enthalten keine Sammel-Aufträge")); DtausDateiWriter writer = null; try { writer = new DtausDateiWriter(os); for (int i = 0; i < objects.length; ++i) { SammelTransfer transfer = (SammelTransfer) objects[i]; Konto konto = transfer.getKonto(); GenericIterator buchungen = transfer.getBuchungen(); monitor.setPercentComplete(0); monitor.setStatusText(i18n.tr("Exportiere logische Datei Nr. {0}", "" + (i + 1))); double factor = 100d / buchungen.size(); int count = 0; int success = 0; long kundenNummer = 0; String s = konto.getKundennummer(); try { kundenNummer = Long.parseLong(s); } catch (Exception e) { monitor.log(i18n.tr("Ignoriere Kundennummer {0}: ungültig", s)); } long blz = 0; s = konto.getBLZ(); try { blz = Long.parseLong(s); } catch (Exception e) { monitor.log(i18n.tr("Ignoriere BLZ {0}: ungültig", s)); } writer.open(); writer.setAAusfuehrungsdatum(transfer.getTermin()); writer.setABLZBank(blz); String type = (transfer instanceof SammelUeberweisung) ? "GK" : "LK"; writer.setAGutschriftLastschrift(type); writer.setAKonto(Long.parseLong(konto.getKontonummer())); writer.setAKundenname(konto.getName()); writer.writeASatz(); while (buchungen.hasNext()) { // Mit diesem Factor sollte sich der Fortschrittsbalken // bis zum Ende der DTAUS-Datei genau auf 100% bewegen monitor.setPercentComplete((int) ((++count) * factor)); SammelTransferBuchung buchung = (SammelTransferBuchung) buchungen.next(); monitor.log(i18n.tr("Exportiere Datensatz {0}", buchung.getGegenkontoName())); writer.setCBetragInEuro(buchung.getBetrag()); writer.setCBLZEndbeguenstigt(Long.parseLong(buchung.getGegenkontoBLZ())); writer.setCBLZErstbeteiligtesInstitut(blz); writer.setCKonto(Long.parseLong(buchung.getGegenkontoNummer())); writer.setCName(buchung.getGegenkontoName()); writer.setCInterneKundennummer(kundenNummer); writer.setCTextschluessel(mapTextschluesselToDtaus(buchung)); String[] lines = VerwendungszweckUtil.toArray(buchung); for (String line : lines) writer.addCVerwendungszweck(line); writer.writeCSatz(); success++; } monitor.setStatusText(i18n.tr("{0} Aufträge erfolgreich exportiert", "" + success)); } writer.writeESatz(); } catch (OperationCanceledException oce) { Logger.info("operation cancelled"); monitor.setStatusText(i18n.tr("Export abgebrochen")); monitor.setStatus(ProgressMonitor.STATUS_CANCEL); } catch (ApplicationException ae) { throw ae; } catch (DtausException dta) { Logger.error(dta.getMessage(), dta); throw new ApplicationException(i18n.tr(dta.getLocalizedMessage())); } catch (Exception e) { throw new RemoteException(i18n.tr("Fehler beim Export der Daten"), e); } finally { if (writer != null) { try { writer.close(); os = null; } catch (Exception e) { Logger.error("error while closing dtaus writer", e); } } // Outputstream schliessen, falls das noch nicht geschehen ist if (os != null) { try { os.close(); } catch (Throwable t) { Logger.error("unable to close file", t); } } } }