public class GuiSuchen extends JFrame implements ActionListener{
private Connection con;
private ResultSet rs =null;
private ResultSet rsp =null;
private ResultSet rss =null;
private ResultSet rsk =null;
private ResultSet rsa =null;
private ResultSet rso =null;
private Statement stmt;
Personen pid = new Personen();
Vector vplz = new Vector();
private boolean ALLOW_ROW_SELECTION = true;
JTable table;
String srow;
public GuiSuchen(Personen spo) {
super("SUCHEN VERA");
boolean packGui = false;
Object [][] data=new Object[999][4];
String[] columnNames = {"Adress-Nr","Name","Vorname","Ort"};
table=new JTable(data,columnNames);
table.setCellSelectionEnabled(true);
Container cp = getContentPane();
cp.add(new JScrollPane(table),"Center");
JButton sBTok = new JButton("Übernehmen");
sBTok.setToolTipText("Selektierte Adresse übernehmen");
cp.add(sBTok, "South");
int n = 0;
try
{
//System.out.println("Treiber");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException e)
{
System.out.println("Fehler in GuiSuchen bei ODBC-JDBC-Bridge. Class.forName : "+e);
}
try
{
//System.out.println("Connection");
con = DriverManager.getConnection("jdbc:odbc:VSSR", "", "");
}
catch (SQLException sqe)
{
System.out.println("Driver Manager : "+sqe);
}
int zeile = 0;
int zeilep = 0;
String sqlQuery="";
boolean first=true;
sqlQuery = "SELECT * FROM Person WHERE ";
if (!spo.getName().equals(""))
{
sqlQuery = sqlQuery + "name='" + spo.getName() + "' ";
first=false;
}
if (!spo.getVorname().equals(""))
{
if (!first)
{
sqlQuery=sqlQuery+"AND ";
}
sqlQuery = sqlQuery + "vorname='" + spo.getVorname() + "' ";
first=false;
}
if (first)
{
sqlQuery = "SELECT * FROM Person";
}
try
{
if (rs!=null)
{
//rs.close();
}
if (stmt!=null)
{
stmt.close();
}
stmt=con.createStatement();
rs=stmt.executeQuery(sqlQuery);
while (rs.next()){ //ResultSet abarbeiten: jeweils eine Zeile
table.setValueAt(new Integer(rs.getInt(1)),zeile,0); //1. Attribut: Int Adrss-ID
table.setValueAt(rs.getString(3),zeile,1); //2. Attribut: String Name
table.setValueAt(rs.getString(4),zeile,2); //3. Attribut: String Vorname
vplz.addElement(new String(rs.getString(6))); //4. Attribut: String OrtID in Vector abfüllen
zeile++;
}
for (Enumeration el = vplz.elements(); el.hasMoreElements();){
String splz [] = {(String)el.nextElement()};
for(int l=0;l<splz.length;l++){
stmt=con.createStatement();
rso=stmt.executeQuery("SELECT * FROM Ortschaft WHERE ortID="+splz[l]+"");
while(rso.next()){ //ResultSet abarbeiten: jeweils eine Zeile
table.setValueAt(rso.getString(3),zeilep,3); //4. Attribut: String Ort
}
zeilep++;
}
}
}
catch ( SQLException e )
{
System.out.println( "Fehler bei GuiSuchen" + e );
}
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
sBTok.addActionListener(this);
if (ALLOW_ROW_SELECTION) { // true by default
ListSelectionModel rowSM = table.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e)
{
//Ignore extra messages.
if (e.getValueIsAdjusting()) return;
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if (lsm.isSelectionEmpty()) {
System.out.println("No rows are selected.");
}
else
{
int selectedRow = lsm.getMinSelectionIndex();
//System.out.println("Selektierte Adressen-Nr.: "+table.getValueAt(selectedRow,0)+" "+"Selektierte Reihe: "+selectedRow);
srow =""+table.getValueAt(selectedRow,0);
}
}
});
}
else
{
table.setRowSelectionAllowed(false);
}
}
public Personen readPersonen(Personen sp, int i){
Personen temp=sp;
int katcount = 0;
try
{
temp=new Personen();
if (rsp!=null)
{
//rsp.close();
}
if (stmt!=null)
{
stmt.close();
}
stmt=con.createStatement();
rsp=stmt.executeQuery("SELECT * FROM Person WHERE adrID=" + i + " ");
if (rsp.next())
{
temp.personenNr(rsp.getInt("adrID"));
temp.anrede(rsp.getString("anrede"));
temp.name(rsp.getString("name"));
temp.vorname(rsp.getString("vorname"));
temp.adresse(rsp.getString("adresse"));
temp.ortID(rsp.getString("ortID"));
temp.telefon(rsp.getString("telNr"));
temp.fax(rsp.getString("fax"));
temp.natel(rsp.getString("natel"));
temp.email(rsp.getString("eMail"));
temp.geburtsdatum(rsp.getString("geburtstag"));
temp.notiz(rsp.getString("notiz"));
temp.motorrad(rsp.getString("moto"));
temp.startid(rsp.getInt("adrStartID"));
}
rsa=stmt.executeQuery("SELECT * FROM Ortschaft WHERE ortID="+ temp.getOrtID() +" ");
if (rsa.next())
{
temp.plz(rsa.getString("ortPLZ"));
temp.ort(rsa.getString("ortOrt"));
}
rss=stmt.executeQuery("SELECT * FROM StartNr WHERE startID="+ temp.getStartId() +" ");
if (rss.next())
{
temp.startkatid(rss.getInt("startKatID"));
temp.startnr(rss.getInt("startNr"));
}
rsk=stmt.executeQuery("SELECT * FROM Kategorie");
while(rsk.next())
{
if(rsk.getInt(1)<=temp.getStartkatId()){
katcount++;
}
}
}
catch ( SQLException e )
{
System.out.println( "Fehler bei readPersonen in GuiSuchen" + e );
}
return temp;
}
public void actionPerformed(ActionEvent event){
if (srow != null)
readPersonen(pid,Integer.parseInt(srow));
dispose();
}
}