*** empty log message ***
[thera-pi.git] / Reha / src / systemEinstellungen / SysUtilKalenderanlegen.java
blob638a32b1d6b3e4e25b414c9c867c2e0df510917e
1 package systemEinstellungen;
3 import hauptFenster.AktiveFenster;
4 import hauptFenster.Reha;
6 import java.awt.Color;
7 import java.awt.Component;
8 import java.awt.Dimension;
9 import java.awt.Font;
10 import java.awt.GridLayout;
11 import java.awt.LinearGradientPaint;
12 import java.awt.Rectangle;
13 import java.awt.event.ActionEvent;
14 import java.awt.event.ActionListener;
15 import java.awt.event.KeyEvent;
16 import java.awt.event.KeyListener;
17 import java.awt.event.MouseEvent;
18 import java.awt.event.MouseListener;
19 import java.awt.geom.Point2D;
20 import java.io.BufferedReader;
21 import java.io.BufferedWriter;
22 import java.io.FileWriter;
23 import java.io.IOException;
24 import java.io.InputStream;
25 import java.io.InputStreamReader;
26 import java.io.Reader;
27 import java.io.UnsupportedEncodingException;
28 import java.net.MalformedURLException;
29 import java.net.URL;
30 import java.net.URLConnection;
31 import java.net.URLDecoder;
32 import java.net.URLEncoder;
33 import java.sql.ResultSet;
34 import java.sql.SQLException;
35 import java.sql.Statement;
36 import java.util.ArrayList;
37 import java.util.Arrays;
38 import java.util.Vector;
40 import javax.swing.BorderFactory;
41 import javax.swing.ImageIcon;
42 import javax.swing.JButton;
43 import javax.swing.JCheckBox;
44 import javax.swing.JComboBox;
45 import javax.swing.JComponent;
46 import javax.swing.JLabel;
47 import javax.swing.JList;
48 import javax.swing.JOptionPane;
49 import javax.swing.JPanel;
50 import javax.swing.JProgressBar;
51 import javax.swing.JScrollPane;
52 import javax.swing.JTable;
53 import javax.swing.JViewport;
54 import javax.swing.ListCellRenderer;
55 import javax.swing.SwingUtilities;
56 import org.jdesktop.swingworker.SwingWorker;
57 import javax.swing.UIManager;
58 import javax.swing.plaf.ColorUIResource;
59 import javax.swing.table.DefaultTableModel;
61 import org.jdesktop.swingx.JXLabel;
62 import org.jdesktop.swingx.JXPanel;
63 import org.jdesktop.swingx.JXTable;
64 import org.jdesktop.swingx.painter.CompoundPainter;
65 import org.jdesktop.swingx.painter.MattePainter;
67 //import roogle.SuchenSeite;
68 import CommonTools.SqlInfo;
69 import CommonTools.JRtaTextField;
70 import terminKalender.ParameterLaden;
71 //import terminKalender.TerminFenster;
72 import terminKalender.DatFunk;
74 import com.jgoodies.forms.builder.PanelBuilder;
75 import com.jgoodies.forms.layout.CellConstraints;
76 import com.jgoodies.forms.layout.FormLayout;
78 public class SysUtilKalenderanlegen extends JXPanel implements KeyListener, ActionListener {
81 JButton knopf1 = null;
82 JButton knopf2 = null;
83 JButton knopf3 = null;
84 JButton knopf4 = null;
85 JButton knopf5 = null;
86 JButton knopf6 = null;
87 static JXLabel KalMake = null;
88 static JXLabel FeierTag = null;
89 static int anzahlLastDate = -1;
91 static String repairDateStart = "";
92 static String repairDateEnd = "";
94 JCheckBox AZPlan = null;
96 JScrollPane listscr = null;
97 JLabel Datum = null;
98 static JProgressBar Fortschritt = null;
99 static JProgressBar Fortschritt2 = null;
100 static boolean dblaeuft = false;
101 static int progress = 0;
103 JComboBox Netz = null;
104 JComboBox BuLand = null;
105 static JComboBox FJahr = null;
107 static int speed = 100;
109 JXTable FreiTage = null;
111 static JXLabel KalBis = null;
113 FeiertagTableModel ftm = null;
115 static String bisDatum = null;
116 static int kalTage;
117 static Vector<Object> vecMasken = new Vector<Object>();
118 Vector vecLeer = new Vector();
119 public static boolean jahrOk = false;
121 //static Vector<Object> aMaskenDaten = new Vector<Object>();
123 String[] laender = {"BW","BY","BE","BB","HB","HH","HE","MV","NI","NW","RP","SL","SN","ST","SH","TH"};
124 String[] netz = {"DSL","LAN"};
127 SysUtilKalenderanlegen(){
128 super(new GridLayout(1,1));
129 ////System.out.println("Aufruf SysUtilKalenderanlagen");
130 this.setBorder(BorderFactory.createEmptyBorder(20, 40, 20, 0));
131 /****/
132 setBackgroundPainter(Reha.thisClass.compoundPainter.get("SystemInit"));
133 /****/
134 JScrollPane jscr = new JScrollPane();
135 jscr.setBorder(null);
136 jscr.setOpaque(false);
137 jscr.getViewport().setOpaque(false);
138 jscr.setViewportView(getAnlegenSeite());
139 jscr.getVerticalScrollBar().setUnitIncrement(15);
140 jscr.validate();
142 add(jscr);
143 HoleMaxDatum hmd = new HoleMaxDatum();
144 hmd.setzeStatement("select max(DATUM) from flexkc");
145 new SwingWorker<Void,Void>(){
146 @Override
147 protected Void doInBackground() throws Exception {
148 doSucheNachFeiertagen();
149 return null;
152 }.execute();
153 return;
155 private String setNewRange(boolean begin,String datum){
156 Object ret = null;
157 if(begin){
158 ret = JOptionPane.showInputDialog(null, "<html>Geben Sie bitte das neue <b>Startdatum</b> ein: </html>", datum);
159 }else{
160 ret = JOptionPane.showInputDialog(null, "<html>Geben Sie bitte das neue <b>Endedatum</b> ein: </html>", datum);
162 if(ret==null){return datum;}
163 return (String) ret;
165 /************** Beginn der Methode für die Objekterstellung und -platzierung *********/
166 private JPanel getAnlegenSeite(){
168 knopf1 = new JButton("los"); // neues Jahr in Datenbank anlegen
169 knopf1.setPreferredSize(new Dimension(70, 20));
170 knopf1.addActionListener(this);
171 knopf1.setActionCommand("NeuJahr");
172 knopf1.addKeyListener(this);
174 knopf2 = new JButton("los"); // Feiertage importieren
175 knopf2.setPreferredSize(new Dimension(70, 20));
176 knopf2.addActionListener(this);
177 knopf2.setActionCommand("FTimport");
178 knopf2.addKeyListener(this);
180 knopf3 = new JButton("hinzufügen"); // Feiertage oder Betr.-Ferien in Tabelle zuf�gen
181 knopf3.setPreferredSize(new Dimension(70, 20));
182 knopf3.addActionListener(this);
183 knopf3.setActionCommand("add");
184 knopf3.addKeyListener(this);
186 knopf4 = new JButton("entfernen"); // Feiertage oder Betr.-Ferien in Tabelle entfernen
187 knopf4.setPreferredSize(new Dimension(70, 20));
188 knopf4.addActionListener(this);
189 knopf4.setActionCommand("delete");
190 knopf4.addKeyListener(this);
192 knopf5 = new JButton("FERTIG"); // Feiertage oder Betr.-Ferien in Datenbank schreiben
193 knopf5.setPreferredSize(new Dimension(70, 20));
194 knopf5.addActionListener(this);
195 knopf5.setActionCommand("take");
196 knopf5.addKeyListener(this);
198 knopf6 = new JButton("speichern"); // Feiertage oder Betr.-Ferien in Datenbank schreiben
199 knopf6.setPreferredSize(new Dimension(70, 20));
200 knopf6.addActionListener(this);
201 knopf6.setActionCommand("indbspeichern");
202 knopf6.addKeyListener(this);
204 FreiTage = new JXTable();
206 KalBis = new JXLabel("");
207 KalBis.setName("KalBis");
208 KalBis.addMouseListener(new MouseListener(){
209 @Override
210 public void mouseClicked(MouseEvent e) {
211 if(e.getClickCount()==2){
212 repairDateStart = setNewRange(true,repairDateStart);
215 @Override
216 public void mousePressed(MouseEvent e) {
218 @Override
219 public void mouseReleased(MouseEvent e) {
221 @Override
222 public void mouseEntered(MouseEvent e) {
224 @Override
225 public void mouseExited(MouseEvent e) {
228 KalMake = new JXLabel("");
229 KalMake.setName("KalMake");
230 KalMake.addMouseListener(new MouseListener(){
231 @Override
232 public void mouseClicked(MouseEvent e) {
233 if(e.getClickCount()==2){
234 repairDateEnd = setNewRange(false,repairDateEnd);
237 @Override
238 public void mousePressed(MouseEvent e) {
240 @Override
241 public void mouseReleased(MouseEvent e) {
243 @Override
244 public void mouseEntered(MouseEvent e) {
246 @Override
247 public void mouseExited(MouseEvent e) {
251 AZPlan = new JCheckBox("");
252 AZPlan.setOpaque(false);
254 // 1. 2. 3. 4 5.
255 FormLayout lay = new FormLayout("8dlu, p:g, 130dlu, 40dlu,20dlu",
256 //1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
257 "p, 10dlu, p, 10dlu, p, 2dlu, p, 2dlu, p, 2dlu, p, 2dlu, p, 10dlu, p, 10dlu, p, 2dlu, p, 2dlu, p, 10dlu, p, 10dlu, p, 10dlu, p, 15dlu, p, 10dlu, p, 2dlu, p, 10dlu, p, 10dlu, p, 2dlu, 80dlu, 2dlu, p, 10dlu, p, 10dlu, p,2dlu, p, 2dlu, p, 2dlu, p, 2dlu, p, 2dlu, p, 10dlu, p, 10dlu, p, 10dlu, p, 10dlu");
259 PanelBuilder builder = new PanelBuilder(lay);
260 builder.setDefaultDialogBorder();
261 builder.getPanel().setOpaque(false);
262 CellConstraints cc = new CellConstraints();
264 builder.addSeparator("0. Voreinstellung", cc.xyw(1, 1, 4));
265 Netz = new JComboBox(netz);
266 Netz.setActionCommand("netz");
267 Netz.addActionListener(this);
268 builder.addLabel("Art der Netzwerkverbindung", cc.xyw(2, 3,2));
269 builder.add(Netz, cc.xy(4, 3));
270 builder.addLabel("Sollte Ihr Rechner mit der Datenbank in einem lokalen", cc.xyw(2, 5, 2));
271 builder.addLabel("Netzwerk verbunden sein, können Sie die Einstellung LAN", cc.xyw(2, 7, 2));
272 builder.addLabel("wählen.", cc.xy(2,9));
273 builder.addLabel("Bei jeder anderen Art der Verbindung sind Sie mit DSL", cc.xyw(2,11,2));
274 builder.addLabel("auf der SICHEREN Seite!", cc.xyw(2,13,2));
276 builder.addSeparator("1. Kalenderdatenbank anlegen", cc.xyw(1, 15, 4));
277 builder.addLabel("Daten sind aktuell vorhanden bis zum Jahr ", cc.xyw(2, 17, 2));
278 KalBis.setForeground(Color.RED);
279 KalBis.setFont(new Font("Arial",Font.BOLD,11));
280 KalBis.setText("");
281 builder.add(KalBis, cc.xy(4,17));
283 builder.addLabel("Arbeitszeitpläne berücksichtigen? (empfohlen)", cc.xyw(2,19,2));
284 AZPlan.setSelected(true);
285 builder.add(AZPlan, cc.xy(4,19));
286 AZPlan.setEnabled(false);
288 builder.addLabel("Datenbank wird angelegt für das Jahr ", cc.xyw(2, 21,2));
289 KalMake.setText("");
290 KalMake.setFont(new Font("Arial",Font.BOLD,11));
291 KalMake.setForeground(Color.RED);
292 builder.add(KalMake, cc.xy(4,21));
294 builder.addLabel("Datenbank anlegen", cc.xyw(2,23,2));
295 builder.add(knopf1, cc.xy(4,23));
297 builder.addSeparator("Prozessfortschritt / Datenbank", cc.xyw(2,25,3));
299 Fortschritt = new JProgressBar ();
300 builder.add(Fortschritt, cc.xyw(2, 27, 3));
303 builder.addSeparator("2. Feiertage importieren", cc.xyw(1, 29, 4));
305 builder.addLabel("Bundesland auswählen", cc.xyw(2,31,2));
306 String[] bula = {"Baden-Württemberg","Bayern","Berlin","Brandenburg","Bremen",
307 "Hamburg","Hessen","Meckl.-Vorpommern","Niedersachsen","Rheinland-Pfalz",
308 "Saarlan","Sachsen","Sachs.-Anhalt","Schleswig-Holstein","Thüringen"};
309 //BuLand = new JComboBox(bula);
310 BuLand = new JComboBox(laender);
311 BuLand.setSelectedIndex(0);
312 builder.add(BuLand, cc.xy(4,31));
314 builder.addLabel("Kalenderjahr auswählen", cc.xyw(2, 33,2));
315 String[] jahr = {"2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020"};
316 FJahr = new JComboBox(jahr);
317 FJahr.setSelectedIndex(0);
318 FJahr.setActionCommand("jahr");
319 FJahr.addActionListener(this);
320 builder.add(FJahr, cc.xy(4, 33));
322 builder.addLabel("Feiertage einlesen", cc.xyw(2,35,2));
323 builder.add(knopf2, cc.xy(4,35));
326 builder.addSeparator("3. Feiertagsliste / Betriebsferien bearbeiten", cc.xyw(1, 37, 4));
327 ftm = new FeiertagTableModel();
328 String[] dat = {"Datum","Feiertag/Ferien","Bundesland"};
329 ftm.setColumnIdentifiers(getColVector(dat));
330 //klm.setDataVector((Vector) vkollegen.clone(), getColVector(kcolumn));
331 //ftm.setDataVector((Vector)vec.clone(),getColVector(dat));
332 //ftm.setDataVector((Vector)vec.clone(),getColVector(dat));
333 FreiTage.setModel(ftm);
334 FreiTage.validate();
335 listscr = new JScrollPane(FreiTage);
336 //builder.add(FreiTage, cc.xyw(2, 39,3));
337 builder.add(listscr, cc.xyw(2, 39,3));
339 //FormLayout lay = new FormLayout("8dlu, p:g, 130dlu, 40dlu,20dlu",
340 /********hier neues JXPanel einbauen*******************/
341 JXPanel butpan = new JXPanel();
342 butpan.setOpaque(false);
343 FormLayout lay2 = new FormLayout("8dlu, p:g, 86dlu, 40dlu,4dlu,40dlu,20dlu","p");
344 CellConstraints cc2 = new CellConstraints();
345 butpan.setLayout(lay2);
346 butpan.add(knopf3, cc2.xy(2, 1));
347 butpan.add(knopf6, cc2.xy(4, 1));
348 butpan.add(knopf4, cc2.xy(6, 1));
349 butpan.validate();
350 builder.add(butpan, cc.xyw(1, 41,5));
351 //builder.add(knopf3, cc.xy(2, 41));
352 //builder.add(knopf4, cc.xy(4,41));
355 builder.addSeparator("4. Daten in Kalender übernehmen", cc.xyw(1, 43, 4));
357 builder.addLabel("Die Daten aus der Liste werden in den Kalender eingetragen.", cc.xyw(2, 45, 2));
358 //builder.addLabel("", cc.xyw(2, 47, 2));
359 builder.addLabel("Änderungen können danach nur noch manuell im Terminplan ", cc.xyw(2, 51, 2));
360 builder.addLabel("oder über den Arbeitszeitplan vorgenommen werden.", cc.xyw(2, 53, 2));
361 //builder.addLabel("", cc.xyw(2, 55, 2));
364 FeierTag = new JXLabel("Feiertagsliste für das Jahr 9999 eintragen.");
365 builder.add(FeierTag, cc.xyw(2,57,2));
366 builder.add(knopf5, cc.xy(4, 57));
368 builder.addSeparator("Prozessfortschritt / Feiertage eintragen", cc.xyw(2,59,3));
370 Fortschritt2 = new JProgressBar ();
371 builder.add(Fortschritt2, cc.xyw(2, 61, 3));
373 return builder.getPanel();
375 private Vector getColVector(String[] cols){
376 Vector col = new Vector();
377 for(int i = 0;i<cols.length;i++){
378 col.add(cols[i]);
380 return col;
384 @Override
385 public void keyPressed(KeyEvent arg0) {
386 // TODO Auto-generated method stub
390 @Override
391 public void keyReleased(KeyEvent arg0) {
392 // TODO Auto-generated method stub
396 @Override
397 public void keyTyped(KeyEvent arg0) {
398 // TODO Auto-generated method stub
402 @Override
403 public void actionPerformed(ActionEvent arg0) {
404 // TODO Auto-generated method stub
405 int i;
406 for(i=0;i<1;i++){
407 if(arg0.getActionCommand().equals("FTimport")){
408 SwingUtilities.invokeLater(new Runnable(){
409 public void run(){
410 try {
411 starteSession((String)BuLand.getSelectedItem(),(String)FJahr.getSelectedItem());
412 FeierTag.setText("Feiertagsliste für das Jahr -> "+FJahr.getSelectedItem()+" <- eintragen.");
413 } catch (IOException e) {
414 // TODO Auto-generated catch block
415 ftm.getDataVector().clear();
416 FreiTage.validate();
417 JOptionPane.showMessageDialog(null, "Verbindung zu www.feiertage.net konnte nicht aufgebaut werden\n"+
418 "Ist Ihre Internetverbindung o.k.???");
423 break;
427 if(arg0.getActionCommand().equals("NeuJahr")){
428 JComponent termin = AktiveFenster.getFensterAlle("TerminFenster");
429 if(termin != null){
430 JOptionPane.showMessageDialog (null, "Achtung!!!!! \n\nWährend der Anlage eines Kalenderjahres\n" +
431 "darf der Terminkalender aus Sicherheitsgründen nicht geöffnet sein.\n"+
432 "Beenden Sie den Terminkalender und rufen Sie diese Funktion erneut auf.\n\n");
433 break;
435 String frage = "Bitte beachten Sie!\n\n"+
436 "1. Stellen Sie sicher, dass Sie zum Zeitpunkt der Kalenderanlage möglichst der einzige Benutzer im Netzwerk sind\n"+
437 "2. Wurde die Kalenderanlage gestartet, brechen Sie den Vorgang bitte keinesfalls ab\n"+
438 "3. Die Kalenderanlage kann einige Zeit in Anspruch nehmen. Sie sehen den Fortschritt anhand des 'Laufbalkens'\n"+
439 "4. Verlassen Sie diese Seite nicht, bis das Kalenderjahr vollständig angelegt wurde\n\n"+
440 "Wollen Sie jetzt das Kalenderjahr wie folgt anlegen:\n"+
441 "angelegt wird das Jahr -> "+KalMake.getText()+" <- \n"+
442 "automatische Übernahme der Wochenarbeitszeit -> "+(AZPlan.isSelected() ? "JA" : "NEIN")+" <-" ;
443 int anfrage = JOptionPane.showConfirmDialog(null, frage, "Achtung wichtige Benutzeranfrage!!!!", JOptionPane.YES_NO_OPTION);
444 if(anfrage == JOptionPane.YES_OPTION){
445 SwingUtilities.invokeLater(new Runnable(){
446 public void run(){
447 new Thread(){
448 public void run(){
449 knopfGedoense(false);
451 }.start();
453 starteKraftakt();
456 break;
457 }else{
458 break;
461 if(arg0.getActionCommand().equals("add")){
462 String[] inhalt = {"","",""};
463 ftm.addRow(new Vector(Arrays.asList(inhalt)));
464 int aktrow = FreiTage.getRowCount()-1;
465 FreiTage.setRowSelectionInterval(aktrow, aktrow);
466 FreiTage.validate();
467 Rectangle re = FreiTage.getCellRect(aktrow+1, 1, false);
468 JViewport vp = listscr.getViewport();
469 vp.setView(FreiTage);
470 vp.setViewPosition(re.getLocation());
471 //FreiTage.changeSelection(FreiTage.getRowCount()-1, 0, false, false);
473 //FreiTage.setEditingRow(FreiTage.getRowCount()-1);
474 break;
476 if(arg0.getActionCommand().equals("delete")){
478 while(FreiTage.getSelectedRows().length > 0){;
479 int[] select = FreiTage.getSelectedRows();
480 doAusDbLoeschen(select[0]);
481 //ftm.removeRow(FreiTage.convertRowIndexToModel(select[0]));
482 ftm.removeRow(select[0]);
484 break;
486 if(arg0.getActionCommand().equals("take")){
487 SwingUtilities.invokeLater(new Runnable(){
488 public void run(){
489 knopfGedoense(false);
490 starteFTEintragen();
493 break;
495 if(arg0.getActionCommand().equals("jahr")){
496 SwingUtilities.invokeLater(new Runnable(){
497 public void run(){
498 if(FJahr != null){
499 FeierTag.setText("Feiertagsliste für das Jahr -> "+FJahr.getSelectedItem()+" <- eintragen.");
500 doSucheNachFeiertagen();
501 //System.out.println("nach doSucheNachFeiertagen");
505 break;
507 if(arg0.getActionCommand().equals("netz")){
508 if(arg0.getSource() instanceof JComboBox){
509 if ( ((JComboBox)arg0.getSource()).getSelectedItem().equals("DSL") ){
510 speed = 100;
511 }else{
512 speed = 40;
514 ////System.out.println("Dauer der Pause = "+speed+" Millisekunden");
517 if(arg0.getActionCommand().equals("indbspeichern")){
518 doInDbSpeichern();
523 private void doInDbSpeichern(){
524 if(FreiTage.getRowCount() <= 0){
525 JOptionPane.showMessageDialog(null,"Keine Feiertage zum Speichern vorhanden");
526 return;
528 String ftjahr = FreiTage.getValueAt(0,0).toString().trim().substring(6);
529 //Erst alle bisherigen löschen;
530 String cmd = "delete from feiertage where jahr='"+ftjahr+"'";
531 SqlInfo.sqlAusfuehren(cmd);
532 String deutschdat = "",sqldat = "",feiertag = "",buland="";
533 for(int i = 0; i < FreiTage.getRowCount();i++){
534 try{
535 deutschdat = FreiTage.getValueAt(i,0).toString();
536 sqldat = DatFunk.sDatInSQL(deutschdat);
537 feiertag = FreiTage.getValueAt(i,1).toString().trim();
538 buland = FreiTage.getValueAt(i,2).toString().trim();
539 cmd = "insert into feiertage set datdeutsch='"+deutschdat+"', datsql='"+sqldat+"', "+
540 "feiertag='"+feiertag+"', buland='"+buland+"', jahr='"+ftjahr+"'";
541 SqlInfo.sqlAusfuehren(cmd);
542 //System.out.println(cmd);
543 }catch(Exception ex){
544 JOptionPane.showMessageDialog(null, "Fehler bei der Anlage des Feiertages -> "+feiertag);
547 JOptionPane.showMessageDialog(null,"Feiertage für das Jahr "+ftjahr+" wurden gespeichert!");
549 private void doSucheNachFeiertagen(){
550 long zeit = System.currentTimeMillis();
551 while(! SysUtilKalenderanlegen.jahrOk){
552 try {
553 Thread.sleep(50);
554 if(System.currentTimeMillis()-zeit > 5000){
555 JOptionPane.showMessageDialog(null,"Fehler bei der Datenbank-Recherche nach Feiertagen");
557 } catch (InterruptedException e) {
558 e.printStackTrace();
561 doErmittleFeiertage(FJahr.getSelectedItem().toString().trim());
563 private void doErmittleFeiertage(String jahr){
564 String cmd = "select * from feiertage where jahr='"+jahr+"' order by datsql";
565 Vector<Vector<String>> vec = SqlInfo.holeFelder(cmd);
566 ftm.setRowCount(0);
567 Vector<String> dummyvec = new Vector<String>();
568 for(int i = 0;i < vec.size();i++){
569 dummyvec.clear();
570 dummyvec.add(vec.get(i).get(0));
571 dummyvec.add(vec.get(i).get(2));
572 dummyvec.add(vec.get(i).get(3));
573 ftm.addRow((Vector<?>)dummyvec.clone());
575 FreiTage.validate();
577 private void doAusDbLoeschen(int row){
578 if(row < 0){
579 //JOptionPane.showMessageDialog(null,"Kein Feiertag zum Löschen ausgewählt");
580 return;
582 String datum = ftm.getValueAt(FreiTage.convertRowIndexToModel(row), 0).toString();
583 String feiertag = ftm.getValueAt(FreiTage.convertRowIndexToModel(row), 1).toString();
584 String cmd = "delete from feiertage where datdeutsch='"+datum+"', and feiertag='"+feiertag+"' LIMIT 1";
585 SqlInfo.sqlAusfuehren(cmd);
588 private void starteFTEintragen(){
589 int max = FreiTage.getRowCount();
590 int i;
591 long zeit1 = System.currentTimeMillis();
592 String fdatum=null, ftext=null,sret =null,sqldat=null ;
593 //StringBuffer sbuf = new StringBuffer();
594 if(max==0){
595 knopfGedoense(true);
596 return;
599 ftext = (String) FreiTage.getValueAt(0,1);
600 if(ftext.trim().equals("")){
601 JOptionPane.showMessageDialog(null,"Bitte geben Sie eine Bezeichnung für den Feiertag/Betriebsurlaub an");
602 return;
605 Fortschritt2.setMinimum(0);
606 Fortschritt2.setMaximum(max-1);
607 Fortschritt2.setStringPainted(true);
608 dblaeuft = true;
609 progress = 0;
610 ProgressVerarbeiten pv = new ProgressVerarbeiten(Fortschritt2);
611 pv.execute();
612 String tstart = SystemConfig.KalenderUmfang[0];
613 String tend = SystemConfig.KalenderUmfang[1];
614 String tdauer = new Long(SystemConfig.KalenderMilli[1]-SystemConfig.KalenderMilli[0]).toString();
616 for(i=0;i<max;i++){
617 progress = i;
618 fdatum = (String) FreiTage.getValueAt(i,0);
619 ftext = (String) FreiTage.getValueAt(i,1);
621 if(! fdatum.trim().equals("")){
622 sqldat = DatFunk.sDatInSQL(fdatum);
623 sret = "Update flexkc set ";
624 sret = sret + "T1='"+"FTG "+ftext.trim().toUpperCase()+"', N1='@FREI', TS1='"+tstart+"', TD1='"+tdauer+"', TE1='"+tend+"',";
625 sret = sret + "BELEGT='1' Where DATUM='"+sqldat+"'";
626 ////System.out.println(sret);
627 SchreibeNeuenKalender snk = new SchreibeNeuenKalender();
628 snk.setzeStatement(String.valueOf(sret));
629 try {
630 Thread.sleep(speed);
631 } catch (InterruptedException e) {
632 // TODO Auto-generated catch block
633 e.printStackTrace();
637 JOptionPane.showMessageDialog(null, "Feiertagübernahme beendet nach "+((System.currentTimeMillis()-zeit1))+" Millisekunden");
638 dblaeuft = false;
639 knopfGedoense(true);
642 private void starteKraftakt(){
644 int i;
645 if(AZPlan.isSelected()){
646 Fortschritt.setMinimum(1);
647 Fortschritt.setMaximum(99);
648 dblaeuft = true;
649 progress = 1;
650 ProgressVerarbeiten pv = new ProgressVerarbeiten(Fortschritt);
651 pv.execute();
652 for(i = 1;i<100;i++){
654 String sbehandler = (i<10 ? "0"+Integer.valueOf(i).toString()+"BEHANDLER" : Integer.valueOf(i).toString()+"BEHANDLER");
655 String stmtmaske = "select * from masken where behandler = '"+sbehandler+"' ORDER BY art";
656 new HoleMasken(stmtmaske);
657 try {
658 Thread.sleep(15);
659 progress = i;
660 } catch (InterruptedException e) {
661 // TODO Auto-generated catch block
662 e.printStackTrace();
665 dblaeuft = false;
667 new Thread(){
668 public void run(){
669 // ab hier geht's dann zur Sache
670 starteDbAppend();
672 }.start();
675 //xxxx
677 private void knopfGedoense(boolean einschalten){
678 if(einschalten){
679 knopf1.setEnabled(false);
680 }else{
681 knopf1.setEnabled(false);
683 knopf2.setEnabled(einschalten);
684 knopf3.setEnabled(einschalten);
685 knopf4.setEnabled(einschalten);
686 knopf5.setEnabled(einschalten);
687 AZPlan.setEnabled(einschalten);
688 BuLand.setEnabled(einschalten);
689 FJahr.setEnabled(einschalten);
693 private void starteDbAppend(){
694 // new Thread(){
695 // public void run(){
696 int durchgang = 0;
697 long zeit1=System.currentTimeMillis();
698 dblaeuft = true;
699 if(KalMake.getText().equals("")){
700 dblaeuft = false;
701 return;
705 kalTage = (DatFunk.Schaltjahr( Integer.valueOf(KalMake.getText())) ? (366) : (365));
706 Fortschritt.setMinimum(1);
707 Fortschritt.setMaximum(kalTage*99 );
708 Fortschritt.setStringPainted(true);
710 String starttag = "01.01."+KalMake.getText();
711 String stoptag = "31.12."+KalMake.getText();
713 if(repairDateStart.trim().length() == 10 && repairDateEnd.trim().length()==10){
714 int frage = JOptionPane.showConfirmDialog(null,"Vermutlich wollen Sie einen vorhandenen Kalender reparieren\n"+
715 "Der von Ihnen festgelegte Starttag = "+repairDateStart+"\n"+
716 "Der von Ihnen festgelegte Endtag = "+repairDateEnd+"\n"+
717 "Wollen Sie mit diesen Parametern starten?","Achtung wichtige Benutzeranfrage",JOptionPane.YES_NO_CANCEL_OPTION);
718 if(frage==JOptionPane.YES_OPTION){
719 starttag = repairDateStart;
720 stoptag = repairDateEnd;
721 KalMake.setText(stoptag.substring(6));
722 }else if(frage == JOptionPane.CANCEL_OPTION){
723 dblaeuft = false;
724 return;
728 kalTage = (DatFunk.Schaltjahr( Integer.valueOf(KalMake.getText())) ? (366) : (365));
729 Fortschritt.setMinimum(1);
730 Fortschritt.setMaximum(kalTage*99 );
731 Fortschritt.setStringPainted(true);
734 //String stoptag = "02.01."+KalMake.getText();
735 String akttag = String.valueOf(starttag);
736 progress = 0;
737 int i;
738 ProgressVerarbeiten pv = new ProgressVerarbeiten(Fortschritt);
739 pv.execute();
740 String stmt = null;
741 while(DatFunk.DatumsWert(akttag) <= DatFunk.DatumsWert(stoptag)){
742 for(i=1;i<100;i++){
743 durchgang ++;
744 if(durchgang > 200){
745 durchgang = 0;
746 Runtime r = Runtime.getRuntime();
747 r.gc();
750 stmt = macheStatement(DatFunk.sDatInSQL(akttag),
751 (ArrayList)((Vector)vecMasken.get(i-1)).get(DatFunk.TagDerWoche(akttag)-1),
752 (i<10 ? "0"+Integer.valueOf(i).toString()+"BEHANDLER" :Integer.valueOf(i).toString()+"BEHANDLER"),
753 AZPlan.isSelected());
754 ////System.out.println(stmt);
755 SqlInfo.sqlAusfuehren(stmt);
756 //SchreibeNeuenKalender snk = new SchreibeNeuenKalender();
757 //snk.setzeStatement(String.valueOf(stmt));
758 try {
759 Thread.sleep(speed);
760 //Thread.sleep(15);
761 ++progress;
762 } catch (InterruptedException e) {
763 // TODO Auto-generated catch block
764 e.printStackTrace();
767 akttag = DatFunk.sDatPlusTage(akttag,1);
769 dblaeuft = false;
770 JOptionPane.showMessageDialog(null, "Kalenderanlegen beendet nach "+((System.currentTimeMillis()-zeit1)/1000)+" Sekunden\n\n"+"Kalender wird jetzt auf Integrität geprüft!");
772 knopfGedoense(true);
773 Vector vec = SqlInfo.holeFelder("select min(datum),max(datum) from flexkc");
774 Reha.kalMin = DatFunk.sDatInDeutsch( ((String)((Vector)vec.get(0)).get(0)) );
775 Reha.kalMax = DatFunk.sDatInDeutsch( ((String)((Vector)vec.get(0)).get(1)) );
776 //long anztage = DatFunk.TageDifferenz(Reha.k, sneudatum)
777 //kalTage
778 int testanzahl = 0;
779 try{
781 String sstmt = "select count(*) from flexkc where datum >='"+DatFunk.sDatInSQL("01.01."+KalMake.getText())+"' and datum <= '"+
782 DatFunk.sDatInSQL("31.12."+KalMake.getText())+"'" ;
783 String sanzahl = SqlInfo.holeEinzelFeld(sstmt);
784 //System.out.println("sstmt = "+sstmt);
785 //System.out.println("sanzahl = "+sanzahl);
786 testanzahl = Integer.parseInt(sanzahl);
788 }catch(Exception ex){
789 ex.printStackTrace();
791 SysUtilKalenderanlegen.anzahlLastDate = Integer.parseInt(SqlInfo.holeEinzelFeld("select count(*) from flexkc where datum = '"+((String)((Vector)vec.get(0)).get(1))+"'"));
792 if( (!Reha.kalMax.startsWith("31.12.")) || (SysUtilKalenderanlegen.anzahlLastDate != 99) || (testanzahl != kalTage*99) ){
793 JOptionPane.showMessageDialog(null,"Achtung Ihr Kalender wurde nicht korrekt angelegt!\nBitte melden Sie sich im Anwenderforum und fragen Sie nach Unterstützung");
794 }else{
795 JOptionPane.showMessageDialog(null,"Der Kalender wurde korrekt angelegt, frohes Schaffen und gute Geschäfte.");
798 System.out.println("Reha.kalMax = "+Reha.kalMax);
799 System.out.println("SysUtioKalenderanlegen.anzahlLastDate = "+SysUtilKalenderanlegen.anzahlLastDate);
800 System.out.println("testeanzhl = "+testanzahl);
801 System.out.println("kalTage*99 = "+(kalTage*99));
802 System.out.println("kalTage = "+(kalTage));
803 System.out.println("KalMake.getText() = "+KalMake.getText());
805 //System.out.println("Kalenderspanne = von "+Reha.kalMin+" bis "+Reha.kalMax);
806 // }
807 // }.start();
811 private String macheStatement(String sqldat,ArrayList list,String sBehandler,boolean mitmaske){
812 String sret = null;
813 int i,j;
814 int bloecke =Integer.valueOf( (String) ((Vector) list.get(5)).get(0) );
815 String nummer;
816 if(mitmaske){
817 sret = "Insert into flexkc set ";
818 for (i = 0; i<bloecke;i++){
819 if(((String)((Vector) list.get(1)).get(i)).contains("\\")){
820 String replace = ((String)((Vector) list.get(1)).get(i));
821 String [] split = {null,null};
822 split = replace.split("\\\\");
823 nummer = split[0]+"\\\\"+split[1];
824 ////System.out.println("Backslashtermin = "+nummer);
826 }else{
827 nummer = ((String)((Vector) list.get(1)).get(i));
830 sret = sret + "T"+ (i+1) + "='" + ((Vector) list.get(0)).get(i) + "', " ;
831 sret = sret + "N"+ (i+1) + "='" + nummer + "', ";
832 sret = sret + "TS"+ (i+1) + "='" + ((Vector) list.get(2)).get(i) + "', ";
833 sret = sret + "TD"+ (i+1) + "='" + ((Vector) list.get(3)).get(i) + "', ";
834 sret = sret + "TE"+ (i+1) + "='" + ((Vector) list.get(4)).get(i) + "', ";
836 sret = sret + "BELEGT='"+Integer.valueOf(bloecke).toString()+"', DATUM='"+sqldat+"' , BEHANDLER='"+sBehandler+"'";
837 }else{
839 String tstart = SystemConfig.KalenderUmfang[0];
840 String tend = SystemConfig.KalenderUmfang[1];
841 String tdauer = new Long(SystemConfig.KalenderMilli[1]-SystemConfig.KalenderMilli[0]).toString();
842 sret = "Insert into flexkc set ";
843 sret = sret + "T1='', N1='@FREI', TS1='"+tstart+"', TD1='"+tdauer+"', TE1='"+tend+"',";
844 sret = sret + "BELEGT='1', DATUM='"+sqldat+"' , BEHANDLER='"+sBehandler+"'";
846 return sret;
849 private String macheStatement2(String sqldat,ArrayList list,String sBehandler,boolean mitmaske){
850 String sret = "";
851 int i,j;
852 int bloecke =Integer.valueOf( (String) ((Vector) list.get(5)).get(0) );
853 String nummer;
854 if(mitmaske){
855 //sret = "Insert into flexkc set ";
856 for (i = 0; i<bloecke;i++){
857 if(((String)((Vector) list.get(1)).get(i)).contains("\\")){
858 String replace = ((String)((Vector) list.get(1)).get(i));
859 String [] split = {null,null};
860 split = replace.split("\\\\");
861 nummer = split[0]+"\\\\"+split[1];
862 ////System.out.println("Backslashtermin = "+nummer);
864 }else{
865 nummer = ((String)((Vector) list.get(1)).get(i));
868 sret = sret + "T"+ (i+1) + "='" + ((Vector) list.get(0)).get(i) + "', " ;
869 sret = sret + "N"+ (i+1) + "='" + nummer + "', ";
870 sret = sret + "TS"+ (i+1) + "='" + ((Vector) list.get(2)).get(i) + "', ";
871 sret = sret + "TD"+ (i+1) + "='" + ((Vector) list.get(3)).get(i) + "', ";
872 sret = sret + "TE"+ (i+1) + "='" + ((Vector) list.get(4)).get(i) + "', ";
874 sret = sret + "BELEGT='"+Integer.valueOf(bloecke).toString()+"', DATUM='"+sqldat+"' , BEHANDLER='"+sBehandler+"'";
875 }else{
877 String tstart = SystemConfig.KalenderUmfang[0];
878 String tend = SystemConfig.KalenderUmfang[1];
879 String tdauer = new Long(SystemConfig.KalenderMilli[1]-SystemConfig.KalenderMilli[0]).toString();
880 //sret = "Insert into flexkc set ";
881 sret = sret + "T1='', N1='@FREI', TS1='"+tstart+"', TD1='"+tdauer+"', TE1='"+tend+"',";
882 sret = sret + "BELEGT='1', DATUM='"+sqldat+"' , BEHANDLER='"+sBehandler+"'";
884 return sret;
887 private void starteSession(String land,String jahr) throws IOException{
888 String urltext = null;
889 try{
890 urltext = "http://www.feiertage.net/csvfile.php?state="+land+"&year="+jahr+"&type=csv";
891 //System.out.println("Öffne Seite: "+urltext);
892 String text = null;
893 //ftm.getDataVector().clear();
894 ftm.setRowCount(0);
895 FreiTage.validate();
896 URL url = new URL(urltext);
898 URLConnection conn = url.openConnection();
899 ////System.out.println(conn.getContentEncoding());
902 BufferedReader inS = new BufferedReader( new InputStreamReader( conn.getInputStream() ));
903 int durchlauf = 0;
904 while ( (text = inS.readLine())!= null ) {
905 String s = makeUTF8(text);
906 //System.out.println(s);
907 String [] spl = s.split(";");
908 if(durchlauf > 0){
909 Vector reihe = new Vector(Arrays.asList(spl));
910 ftm.addRow((Vector)reihe.clone());
911 FreiTage.setRowSelectionInterval(0, 0);
913 ++durchlauf;
915 inS.close();
916 }catch(Exception ex){
917 JOptionPane.showMessageDialog(null,"Fehler bei der Auswertung von "+urltext+"\nFehlertext: "+ex.getMessage());
918 ex.printStackTrace();
922 public static String makeUTF8(final String toConvert){
923 try {
924 return new String(toConvert.getBytes("ISO-8859-1"), "UTF-8");
925 } catch (UnsupportedEncodingException e) {
926 e.printStackTrace();
928 return null;
931 // und dann zum testen vielleicht
933 public static void setJahr(String item){
934 FJahr.setSelectedItem(item);
935 String ftext = "Feiertagsliste für das Jahr "+item+" eintragen";
936 FeierTag.setText(ftext);
937 //doErmittleFeiertage(item);
942 /***********************************/
943 class FeiertagTableModel extends DefaultTableModel{
944 public Class getColumnClass(int columnIndex) {
945 return String.class;
948 public boolean isCellEditable(int row, int col) {
949 //Note that the data/cell address is constant,
950 //no matter where the cell appears onscreen.
951 return true;
955 /***********************************/
956 class HoleMaxDatum extends Thread implements Runnable{
957 Statement stmt = null;
958 ResultSet rs = null;
959 String statement;
960 boolean geklappt = false;
962 public void setzeStatement(String statement){
963 this.statement = statement;
964 start();
966 public void run(){
968 try {
969 stmt = (Statement) Reha.thisClass.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
970 ResultSet.CONCUR_UPDATABLE );
971 try{
972 rs = stmt.executeQuery(this.statement);
973 if(rs.next()){
974 if(rs.getString(1) != null){
975 String datum = rs.getString(1);
976 int altjahr = Integer.valueOf(datum.substring(0,4));
977 SysUtilKalenderanlegen.KalBis.setText(Integer.valueOf(altjahr).toString());
978 SysUtilKalenderanlegen.KalMake.setText(Integer.valueOf(altjahr+1).toString());
979 //SysUtilKalenderanlegen.setJahr(Integer.valueOf(altjahr+1).toString());
980 SysUtilKalenderanlegen.setJahr(Integer.valueOf(altjahr+1).toString());
981 SysUtilKalenderanlegen.jahrOk = true;
983 }else{
984 String datum = DatFunk.sHeute().substring(6);
985 SysUtilKalenderanlegen.KalBis.setText("leer");
986 SysUtilKalenderanlegen.KalMake.setText(datum);
987 SysUtilKalenderanlegen.setJahr(datum);
988 SysUtilKalenderanlegen.jahrOk = true;
991 }catch(SQLException ev){
992 //System.out.println("SQLException: " + ev.getMessage());
993 //System.out.println("SQLState: " + ev.getSQLState());
994 //System.out.println("VendorError: " + ev.getErrorCode());
997 }catch(SQLException ex) {
998 //System.out.println("von stmt -SQLState: " + ex.getSQLState());
1001 finally {
1002 if (rs != null) {
1003 try {
1004 rs.close();
1005 } catch (SQLException sqlEx) { // ignore }
1006 rs = null;
1009 if (stmt != null) {
1010 try {
1011 stmt.close();
1012 } catch (SQLException sqlEx) { // ignore }
1013 stmt = null;
1021 /******************************************************************************/
1022 /******************************/
1023 class HoleMasken{
1024 HoleMasken(String sstmt){
1026 // TODO Auto-generated method stub
1027 Statement stmt = null;
1028 ResultSet rs = null;
1030 try {
1031 stmt = Reha.thisClass.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
1032 ResultSet.CONCUR_UPDATABLE );
1033 try{
1034 rs = stmt.executeQuery(sstmt);
1035 int i = 0;
1036 int durchlauf = 0;
1037 int maxbehandler = 7;
1039 int maxblock = 0;
1040 int aktbehandler = 1;
1041 ArrayList <Object>aKalList = new ArrayList<Object>();
1042 Vector<Object> aMaskenDaten = new Vector<Object>();
1043 //SysUtilKalenderanlegen.aMaskenDaten.clear();
1044 //*******************SysUtilKalenderanlegen.aMaskenDaten.clear();
1045 while( (rs.next()) ){
1046 Vector<String> v1 = new Vector<String>();
1047 Vector<String> v2 = new Vector<String>();
1048 Vector<String> v3 = new Vector<String>();
1049 Vector<String> v4 = new Vector<String>();
1050 Vector<String> v5 = new Vector<String>();
1051 Vector<String> v6 = new Vector<String>();
1053 /*in Spalte 301 steht die Anzahl der belegten Bl�cke*/
1054 int belegt = rs.getInt(226);
1055 /*letzte zu durchsuchende Spalte festlegen*/
1056 int ende = (5*belegt);
1057 maxblock = maxblock + (ende+5);
1058 durchlauf = 1;
1059 /* abgeschaltet f�r Performance-Check
1060 if (aktbehandler == 1){
1061 Titel.setText(rs.getString(305));
1065 if (!SystemConfig.vDatenBank.get(0).get(2).equals("ADS")){
1066 for(i=1;i<ende;i=i+5){
1067 v1.addElement(rs.getString(i)!= null ? rs.getString(i) : "");
1068 v2.addElement(rs.getString(i+1)!= null ? rs.getString(i+1) : "");
1069 v3.addElement(rs.getString(i+2));
1070 v4.addElement(rs.getString(i+3));
1071 v5.addElement(rs.getString(i+4));
1072 durchlauf = durchlauf+1;
1074 }else{ // ADS
1075 for(i=1;i<ende;i=i+5){
1076 v1.addElement(rs.getString(i)!= null ? rs.getString(i) : "");
1077 v2.addElement(rs.getString(i+1)!= null ? rs.getString(i+1) : "");
1078 v3.addElement(rs.getString(i+2));
1079 v4.addElement(rs.getString(i+3));
1080 v5.addElement(rs.getString(i+4));
1081 durchlauf = durchlauf+1;
1085 v6.addElement(rs.getString(226)); //Anzahl
1086 v6.addElement(rs.getString(227)); //Art
1087 v6.addElement(rs.getString(228)); //Behandler
1088 v6.addElement(rs.getString(229)); //MEMO
1089 v6.addElement(rs.getString(230)); //Datum
1091 aKalList.add(v1.clone());
1092 aKalList.add(v2.clone());
1093 aKalList.add(v3.clone());
1094 aKalList.add(v4.clone());
1095 aKalList.add(v5.clone());
1096 aKalList.add(v6.clone());
1097 aMaskenDaten.add(aKalList.clone());
1098 aKalList.clear();
1099 aktbehandler++;
1101 SysUtilKalenderanlegen.vecMasken.add(aMaskenDaten.clone());
1102 //aSpaltenDaten.add(aKalList.clone());
1104 if(maxblock > 0){
1105 //datenZeichnen(aSpaltenDaten);
1106 //TerminFenster.rechneMaske();
1107 ////System.out.println("Anzahl Tage = "+SysUtilKalenderanlegen.aMaskenDaten.size());
1108 ////System.out.println("Inhalt = "+SysUtilKalenderanlegen.aMaskenDaten);
1110 } catch(SQLException ex){
1111 //System.out.println("von ResultSet SQLState: " + ex.getSQLState());
1112 //System.out.println("von ResultSet ErrorCode: " + ex.getErrorCode ());
1113 //System.out.println("ErrorCode: " + ex.getErrorCode ());
1114 //System.out.println("von ResultSet ErrorMessage: " + ex.getMessage ());
1117 } catch(SQLException ex) {
1118 //System.out.println("von stmt -SQLState: " + ex.getSQLState());
1120 finally {
1121 if (rs != null) {
1122 try {
1123 rs.close();
1124 } catch (SQLException sqlEx) { // ignore }
1125 rs = null;
1128 if (stmt != null) {
1129 try {
1130 stmt.close();
1131 } catch (SQLException sqlEx) { // ignore }
1132 stmt = null;
1140 /******************************/
1141 class TesteKalender{
1142 TesteKalender(String sstmt){
1144 // TODO Auto-generated method stub
1145 Statement stmt = null;
1146 ResultSet rs = null;
1147 int tage = 0;
1149 try {
1150 stmt = Reha.thisClass.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
1151 ResultSet.CONCUR_UPDATABLE );
1152 try{
1153 rs = stmt.executeQuery(sstmt);
1154 if(rs.next()){
1155 tage = rs.getInt(1);
1156 if( tage != (SysUtilKalenderanlegen.kalTage*60) ){
1157 JOptionPane.showMessageDialog(null,"Fehler!!!!! ---- Der Kalender wurde unvollständig angelegt!\n\n"+
1158 "Zur Sicherheit wird der fehlerhafte Kalender wieder gelöscht\n\n"+
1159 "Stellen Sie bei einem neuen Versuch die Einstellung\n"+
1160 "'Art der Netzwerkverbindung' auf -> DSL");
1161 }else{
1162 JOptionPane.showMessageDialog(null,"Kalender wurde perfekt angelegt");
1165 } catch(SQLException ex){
1166 //System.out.println("von ResultSet SQLState: " + ex.getSQLState());
1167 //System.out.println("von ResultSet ErrorCode: " + ex.getErrorCode ());
1168 //System.out.println("ErrorCode: " + ex.getErrorCode ());
1169 //System.out.println("von ResultSet ErrorMessage: " + ex.getMessage ());
1172 } catch(SQLException ex) {
1173 //System.out.println("von stmt -SQLState: " + ex.getSQLState());
1175 finally {
1176 if (rs != null) {
1177 try {
1178 rs.close();
1179 } catch (SQLException sqlEx) { // ignore }
1180 rs = null;
1183 if (stmt != null) {
1184 try {
1185 stmt.close();
1186 } catch (SQLException sqlEx) { // ignore }
1187 stmt = null;
1195 /******************************/
1198 class ProgressVerarbeiten extends SwingWorker<Void,JComponent>{
1199 JProgressBar jpb = null;
1200 ProgressVerarbeiten(JComponent laufbalken){
1201 jpb = (JProgressBar) laufbalken;
1203 @Override
1204 protected synchronized Void doInBackground() throws Exception {
1205 while(SysUtilKalenderanlegen.dblaeuft){
1207 SysUtilKalenderanlegen.Fortschritt.setValue(SysUtilKalenderanlegen.progress);
1208 SysUtilKalenderanlegen.Fortschritt.repaint();
1210 jpb.setValue(SysUtilKalenderanlegen.progress);
1211 jpb.repaint();
1213 Thread.sleep(10);
1215 return null;
1220 class SchreibeNeuenKalender extends Thread implements Runnable{
1221 Statement stmt = null;
1222 ResultSet rs = null;
1223 String statement;
1224 boolean geklappt = false;
1226 public void setzeStatement(String statement){
1227 this.statement = statement;
1228 start();
1230 public synchronized void run(){
1231 //Vector treadVect = new Vector();
1232 try {
1233 stmt = (Statement) Reha.thisClass.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
1234 ResultSet.CONCUR_UPDATABLE );
1235 try{
1236 geklappt = stmt.execute(this.statement);
1238 }catch(SQLException ev){
1239 //System.out.println("SQLException: " + ev.getMessage());
1240 //System.out.println("SQLState: " + ev.getSQLState());
1241 //System.out.println("VendorError: " + ev.getErrorCode());
1244 }catch(SQLException ex) {
1245 //System.out.println("von stmt -SQLState: " + ex.getSQLState());
1248 finally {
1249 if (rs != null) {
1250 try {
1251 rs.close();
1252 } catch (SQLException sqlEx) { // ignore }
1253 rs = null;
1256 if (stmt != null) {
1257 try {
1258 stmt.close();
1259 } catch (SQLException sqlEx) { // ignore }
1260 stmt = null;