1 package rehaKassenbuch
;
3 import java
.awt
.BorderLayout
;
4 import java
.awt
.event
.ActionEvent
;
5 import java
.awt
.event
.ActionListener
;
6 import java
.util
.Vector
;
8 import javax
.swing
.ImageIcon
;
9 import javax
.swing
.JButton
;
10 import javax
.swing
.JLabel
;
11 import javax
.swing
.JList
;
12 import javax
.swing
.JOptionPane
;
13 import javax
.swing
.JScrollPane
;
15 import org
.jdesktop
.swingworker
.SwingWorker
;
16 import org
.jdesktop
.swingx
.JXPanel
;
18 import CommonTools
.ButtonTools
;
19 import CommonTools
.DatFunk
;
20 import CommonTools
.JCompTools
;
21 import CommonTools
.JRtaTextField
;
22 import CommonTools
.SqlInfo
;
24 import com
.jgoodies
.forms
.layout
.CellConstraints
;
25 import com
.jgoodies
.forms
.layout
.FormLayout
;
27 public class RehaKassenbuchPanel
extends JXPanel
{
32 private static final long serialVersionUID
= -5639305640753853306L;
34 RehaKassenbuchTab eltern
= null;
35 JXPanel content
= null;
36 JList kbvorhanden
= null;
37 JRtaTextField
[] tfs
= {null,null,null,null};
38 JButton
[] buts
= {null,null,null,null};
39 ActionListener al
= null;
40 Vector
<String
> datavec
= new Vector
<String
>();
42 public RehaKassenbuchPanel(RehaKassenbuchTab rkbtab
){
45 setLayout(new BorderLayout());
47 add(getContent(),BorderLayout
.CENTER
);
50 private JXPanel
getContent(){
52 String xwerte
= "10dlu,200dlu,40dlu,120dlu,40dlu,65dlu,2dlu,60dlu,10dlu";
53 // 1 2 3 4 5 6 7 8 9 10 11 12 13
54 String ywerte
= "10dlu,p,2dlu,p,2dlu,p,2dlu,p,2dlu,p,2dlu:g,2dlu,p,10dlu";
55 FormLayout lay
= new FormLayout(xwerte
,ywerte
);
56 CellConstraints cc
= new CellConstraints();
57 JXPanel jpan
= new JXPanel();
59 /*** rechte Seite ***/
60 tfs
[0] = new JRtaTextField("DATUM",true);
61 tfs
[0].setText(DatFunk
.sHeute());
62 tfs
[1] = new JRtaTextField("DATUM",true);
63 tfs
[1].setText(DatFunk
.sHeute());
64 tfs
[2] = new JRtaTextField("nix",true);
65 JLabel lab
= new JLabel("neues Kassenbuch erzeugen");
66 jpan
.add(lab
,cc
.xyw(6, 2,3));
67 lab
= new JLabel("von Datum");
68 jpan
.add(lab
,cc
.xy(6, 4));
69 jpan
.add(tfs
[0],cc
.xy(8, 4));
70 lab
= new JLabel("bis Datum");
71 jpan
.add(lab
,cc
.xy(6, 6));
72 jpan
.add(tfs
[1],cc
.xy(8, 6));
73 lab
= new JLabel("Name d. Kassenbuches");
74 jpan
.add(lab
,cc
.xy(6, 8));
75 jpan
.add(tfs
[2],cc
.xy(8, 8));
76 buts
[1] = ButtonTools
.macheButton("erzeugen", "newtable", al
);
77 jpan
.add(buts
[1],cc
.xy(8, 10));
79 lab
= new JLabel("bislang vorhandene Kassenbücher");
80 jpan
.add(lab
,cc
.xy(4, 2));
82 kbvorhanden
= new JList();
83 JScrollPane jscr
= JCompTools
.getTransparentScrollPane(kbvorhanden
);
85 jpan
.add(jscr
,cc
.xywh(4,4,1,8,CellConstraints
.DEFAULT
,CellConstraints
.FILL
));
86 new SwingWorker
<Void
,Void
>(){
88 protected Void
doInBackground() throws Exception
{
89 long zeit
= System
.currentTimeMillis();
90 while(!RehaKassenbuch
.DbOk
){
92 if(System
.currentTimeMillis()-zeit
> 10000){
96 if(RehaKassenbuch
.DbOk
){
105 buts
[0] = ButtonTools
.macheButton("löschen", "deletetable", al
);
106 jpan
.add(buts
[0],cc
.xy(4,13));
108 /*** Linke Seite ***/
109 lab
= new JLabel("");
110 lab
.setIcon(new ImageIcon(RehaKassenbuch
.progHome
+"icons/GutenbergBibel.png"));
111 jpan
.add(lab
,cc
.xywh(2,2,1,11,CellConstraints
.DEFAULT
,CellConstraints
.CENTER
));
117 private void activateListener(){
118 al
= new ActionListener(){
120 public void actionPerformed(ActionEvent arg0
) {
121 String cmd
= arg0
.getActionCommand();
122 if(cmd
.equals("deletetable")){
126 if(cmd
.equals("newtable")){
134 private void doKBErmitteln(){
135 Vector
<Vector
<String
>> vec
= SqlInfo
.holeFelder("show tables");
137 for(int i
= 0; i
< vec
.size();i
++){
138 if(vec
.get(i
).get(0).startsWith("kb_")){
139 datavec
.add(vec
.get(i
).get(0));
142 kbvorhanden
.setListData(datavec
);
143 eltern
.tabellenAktualisieren();
145 private void doDelete(){
146 int item
= kbvorhanden
.getSelectedIndex();
148 int anfrage
= JOptionPane
.showConfirmDialog(null, "Wollen Sie das Kassenbuch --> "+kbvorhanden
.getSelectedValue().toString()+" <-- wirklich löschen?", "Achtung wichtige Benutzeranfrage", JOptionPane
.YES_NO_OPTION
);
149 if(anfrage
== JOptionPane
.YES_OPTION
){
150 String cmd
= "drop table "+ kbvorhanden
.getSelectedValue().toString();
151 SqlInfo
.sqlAusfuehren(cmd
);
156 private void doNew(){
158 if(tfs
[2].getText().trim().equals("")){
159 JOptionPane
.showMessageDialog(null,"Depp!!\nWie soll das Kassenbuch nochmal hei�en????");
162 if(tfs
[2].getText().trim().indexOf(" ") >= 0){
163 JOptionPane
.showMessageDialog(null,"Depp!!\nKeine Leerzeichen im Namen des Kassenbuches");
166 String von
= DatFunk
.sDatInSQL(tfs
[0].getText());
167 String bis
= DatFunk
.sDatInSQL(tfs
[1].getText());
168 String tabelle
= "kb_"+tfs
[2].getText().trim();
169 if(datavec
.contains(tabelle
)){
170 JOptionPane
.showMessageDialog(null,"Ein Kassenbuch mit diesem Namen existiert bereits");
173 //doKBErzeugen(tabelle);
174 doKBFuellen(tabelle
,von
, bis
);
176 }catch(Exception ex
){
177 JOptionPane
.showMessageDialog(null,"Fehler bei der Ausführung neues Kassenbuch erzeugen");
180 public void doKBErzeugen(String tabelle
){
181 StringBuffer buf
= new StringBuffer();
183 buf
.append("CREATE TABLE IF NOT EXISTS "+tabelle
+" (" );
184 buf
.append("EINNAHME decimal(12,2) DEFAULT NULL,");
185 buf
.append("AUSGABE decimal(12,2) DEFAULT NULL,");
186 buf
.append("DATUM date DEFAULT NULL,");
187 buf
.append("KTEXT varchar(50) DEFAULT NULL,");
188 buf
.append("KTO varchar(20) DEFAULT NULL,");
189 buf
.append("KSTAND decimal(12,2) DEFAULT NULL,");
190 buf
.append("id int(11) NOT NULL AUTO_INCREMENT,");
191 buf
.append("PAT_INTERN int(11) NOT NULL DEFAULT '0',");
192 buf
.append("REZ_NR varchar(25) DEFAULT NULL,");
193 buf
.append("PRIMARY KEY (id),");
194 buf
.append("KEY REZ_NR (REZ_NR)");
195 buf
.append(") ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=41552") ;
196 SqlInfo
.sqlAusfuehren(buf
.toString());
199 private void doKBFuellen(String tabelle
,String von
,String bis
){
200 //String cmd = "insert intoselect * into '"+tabelle+"' from kasse where datum >= '"+von+"' and datum <= '"+bis+"'";
201 String cmd2
= "CREATE TABLE "+tabelle
+" SELECT * FROM kasse where datum >= '"+von
+"' and datum <= '"+bis
+"'";
202 System
.out
.println(cmd2
);
203 SqlInfo
.sqlAusfuehren(cmd2
);
204 SqlInfo
.sqlAusfuehren("ALTER TABLE "+tabelle
+" ADD PRIMARY KEY (ID)");
205 SqlInfo
.sqlAusfuehren("ALTER TABLE "+tabelle
+" CHANGE ID ID INT( 11 ) NOT NULL AUTO_INCREMENT");
206 SqlInfo
.sqlAusfuehren("ALTER TABLE "+tabelle
+" CHANGE KTEXT KTEXT VARCHAR(50) NULL DEFAULT NULL");