Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Evgeniux
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 5
#1

Выборка данных, подсчет и вывод на экран

17.12.2013, 18:29. Просмотров 672. Ответов 1
Метки нет (Все метки)

добрый день, всем! Пишу функцию суть которой:
1. Выбирает из таблицы "сотрудники", номера всех сотрудников
2. Подсчитывает из таблицы "заказы", все заказы с выбранными номерами сотрудников
3. Выводит результат в 4 панели (номер сотрудника, сборка, настройка, тестирование) (первая панель номер сотрудника, вторая сколько он собрал ПК, третья - сколько настроил, четвертая - сколько протестировал).

В чем возникли проблемы:
1. Данные выводятся не корректно (рисунок), в каждой панели выводятся и сборка, и настройка, и тесты.
код функции прилагаю:
Java
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
private void selectUsersSborka() {
        try {
 
            final Connection con = MySQLCon.createCon();
            String fromDay = (String) cmbFromDay.getSelectedItem();
            String fromMonth = ((Item) cmbFromMonth.getSelectedItem()).getId();
            String fromYear = (String) cmbFromYear.getSelectedItem();
 
            String doDay = (String) cmbDoDay.getSelectedItem();
            String doMonth = ((Item) cmbMonthDo.getSelectedItem()).getId();
            String doYear = (String) cmbDoYear.getSelectedItem();
 
            String sql = "SELECT * FROM spr_users WHERE status='1'";
            String dateBegin = "" + fromYear + "-" + fromMonth + "-" + fromDay + "";
            String dateEnd = "" + doYear + "-" + doMonth + "-" + doDay + "";
 
         //  String sql1 = "SELECT count(sborka), count(nastroika), count(testirovanie)  FROM zakaz WHERE sborka = ? and nastroika = ? and testirovanie = ? and data_zakaza BETWEEN '" + dateBegin + "' and '" + dateEnd + "'";
           
          //String  sql1 ="SELECT sborka, COUNT(*) FROM zakaz WHERE sborka = ? UNION SELECT nastroika, COUNT(*) FROM zakaz WHERE nastroika = ? UNION  SELECT testirovanie, COUNT(*) FROM zakaz WHERE testirovanie = ? and data_zakaza BETWEEN '" + dateBegin + "' and '" + dateEnd + "'";
           String sql1 = "(SELECT COUNT(*) FROM zakaz WHERE `sborka` = ? AND data_zakaza BETWEEN '" + dateBegin + "' and '" + dateEnd + "')\n" +
"UNION\n" +
"(SELECT COUNT(*) FROM zakaz WHERE `nastroika` = ? AND data_zakaza BETWEEN '" + dateBegin + "' and '" + dateEnd + "')\n" +
"UNION\n" +
"(SELECT COUNT(*) FROM zakaz WHERE `testirovanie` = ? AND data_zakaza BETWEEN '" + dateBegin + "' and '" + dateEnd + "')";
            Statement stmt = con.createStatement();
            ResultSet res = stmt.executeQuery(sql);
            PreparedStatement prest = con.prepareStatement(sql1);
 
            while (res.next()) {
                String vll = res.getString("user_nomer");
                final Font font = new Font("Verdana", Font.PLAIN, 14);
                showSotrudnik.setLayout(new BoxLayout(showSotrudnik, BoxLayout.Y_AXIS));
                JLabel label = new JLabel(vll);
                label.setSize(100, 30);
                
                label.setAlignmentX(JLabel.CENTER_ALIGNMENT);
                label.setFont(font);
                showSotrudnik.add(label);
                //jPanel2.repaint();
                showSotrudnik.validate();
                prest.setString(1, vll);
                prest.setString(2, vll);
                prest.setString(3, vll);
                ResultSet rs = prest.executeQuery();
                while (rs.next()) {
                    int sborkaCount = rs.getInt(1);
                    String nastroikaCount = rs.getString(1);
                     int testirovanieCount = rs.getInt(1);
                    String userNomerSborka = String.valueOf(sborkaCount);
                    showSborka.setLayout(new BoxLayout(showSborka, BoxLayout.Y_AXIS));
                    JLabel labelSborka = new JLabel(userNomerSborka);
                    labelSborka.setSize(100, 30);
                    labelSborka.setAlignmentX(JLabel.CENTER_ALIGNMENT);
                    labelSborka.setFont(font);
                    showSborka.add(labelSborka);
                    // jPanel3.repaint();
                    showSborka.validate();
                    showNastroika.setLayout(new BoxLayout(showNastroika, BoxLayout.Y_AXIS));
                    JLabel labelNastroika = new JLabel(nastroikaCount);
                    labelNastroika.setSize(100, 30);
                    labelNastroika.setAlignmentX(JLabel.CENTER_ALIGNMENT);
                    labelNastroika.setFont(font);
                    showNastroika.add(labelNastroika);
                    // jPanel3.repaint();
                    showNastroika.validate();
                    String userNomerTestirovanie = String.valueOf(testirovanieCount);
                    showTestirovanie.setLayout(new BoxLayout(showTestirovanie, BoxLayout.Y_AXIS));
                    JLabel labelTestirovanie = new JLabel(userNomerTestirovanie);
                    labelTestirovanie.setSize(100, 30);
                    labelTestirovanie.setAlignmentX(JLabel.CENTER_ALIGNMENT);
                    labelTestirovanie.setFont(font);
                    showTestirovanie.add(labelTestirovanie);
                    // jPanel3.repaint();
                    showTestirovanie.validate();
                     }
               
               
 
            }
 
        } catch (SQLException ex) {
            Logger.getLogger(StatisticUsers.class.getName()).log(Level.SEVERE, null, ex);
        }
 
    }
0
Миниатюры
Выборка данных, подсчет и вывод на экран  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 18:29
Ответы с готовыми решениями:

выборка данных
итак здраствуйте... Требуется написать скрипт для Greasemonkey Что должен...

JDBC: эфективная выборка данных
Необходимо получить много данных (миллионы строк) из субд оракл через jdbc. Как...

StringGrid анализ, выборка и подсчет данных
Доброго времени суток! Такой вопрос: у меня есть StringGrid в который...

Моментальный подсчет и вывод на экран
Добрый день! Каким образом в JS реализуется моментальный подсчет, то есть я...

Подсчет ФПС и вывод на экран
Задача состоит в том , чтобы подсчитать ФПС в игре, подсчитанное значение...

1
MLPMan
18.12.2013, 12:20     Выборка данных, подсчет и вывод на экран
  #2

Не по теме:

Лучше бы выводить результат в таблице...

Кликните здесь для просмотра всего текста
Java
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
63
import javax.swing.table.*;
import java.sql.*;
import java.util.*;
import javax.swing.event.TableModelEvent;
 
public class RSTableModel  extends AbstractTableModel {
 
    private ResultSet set;
    private ArrayList<Object[]> myRows = new ArrayList();
    private String[] colNames;
    
    @Override
    public void fireTableChanged(TableModelEvent e) {
    try {refresh();} catch (SQLException ee) {ee.printStackTrace();}
        super.fireTableChanged(e);
    }
    
    public RSTableModel(ResultSet r) {
    set = r;
    try {refresh();} catch (SQLException e) {e.printStackTrace();}
    }
    
    @Override
    public int getRowCount() {
        return myRows.size();
    }
 
    @Override
    public int getColumnCount() {
        return colNames.length;
    }
 
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        return myRows.get(rowIndex)[columnIndex];
    }
    
    public Object getValueAt(int rowIndex, String colName) {
        int ind = -1;
        for (int i=0; i<colNames.length; i++) if (colNames[i].equals(colName)) {ind = i; break;}
        if (ind== -1) return null;
        return getValueAt(rowIndex, ind);
    }
    
    @Override
    public String getColumnName(int ind) {
        return colNames[ind];
    }
    
    public void refresh() throws SQLException {
    myRows.clear();
    ResultSetMetaData mdata = set.getMetaData();
    colNames = new String[mdata.getColumnCount()];
    for (int i=0; i<getColumnCount(); i++) colNames[i] = mdata.getColumnName(i+1);
    set.beforeFirst();
    while (set.next()) {
        Object[] row = new Object[getColumnCount()];
        for (int i=0; i<getColumnCount(); i++) row[i] = set.getObject(i+1);
        myRows.add(row);
    }
    }
    
}

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2013, 12:20
Привет! Вот еще темы с ответами:

Подсчет количества полей в таблице и вывод значения на экран( Access)
Добрый день! Вот пришлось написать маленький модуль для accessa, все не могу...

Подсчет и вывод на экран суммы элементов массива с нечётными значениями
Составьте программу , которая заполняет массив a случайными целыми числами в...

Ввод структурированных данных в файл и вывод данных из этого файла на экран (сделать хранилище данных в файле)
Здравствуйте) помогите написать программу, осуществляющую ввод...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru