|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.11.2010, 10:44 | #11 | |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Цитата:
|
|
08.11.2010, 12:09 | #12 |
Форумчанин
Регистрация: 05.02.2010
Сообщений: 153
|
Так. Давайте я еще раз все объясню.
Есть таблица. В ней каждый новый день добавляется новый столбец, в названии которго текущая дата (т.е. каждый новый запуск программа проверяет есть ли столбец на текущий день и если нету, то она создает)(именно поэтому я не могу испольщовать ваш способ - я не могу заранее добавить все столбцы, потомучто как-только программа запустится в таблице появится еще один). Когда пользователь просматривает таблицу, он вводит в любом поле информацию (вида 100 ТК; 75 ИК; 90 РК). В начале таблицы есть четыре столбца с именами ИК, ТК, РК, ДК. Так вот когда пользователь вводит эту информацию, в строке, которую он правил, считается среднее арифметическое всех оценок с одинаковыми буквами после них и результат записывается в соответсвующий столбец. Например в строке уже есть в разных полях информация 100 ИК 80 ИК и ввели еще 70 ИК, тогда в столбце с именем ИК появится среднее арифметическое всех этих значений. Может можно как-то программно сделать чтобы поля в столбцах с именем ИК и т.д. стали калькулируемыми?
Я начинающий web-программист) Не судите строго, плиз! Буду очень стараться!
|
08.11.2010, 13:43 | #13 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
1) я думаю, что Вы придумали плохую структуру данных.
(я про добавляемый ежедневно столбец) 2) в поля Датасета и так можно писать что хочешь. не надо их для этого делать калькулируемыми 3) посмотрите пример. если я Вас правильно понял, то это то, что Вам надо. Т.к. пересчёт висит на событии BeforeScroll, поэтому, чтобы пересчиталось среднее, нужно уйти с той строки, где вносились изменения. ВНИМАНИЕ! побочным действием примера является то, что все изменения в таблице СРАЗУ (автоматически) записываются в таблицу БД... Последний раз редактировалось Serge_Bliznykov; 08.11.2010 в 13:47. |
08.11.2010, 14:08 | #14 |
Форумчанин
Регистрация: 05.02.2010
Сообщений: 153
|
Спасибо огромное за то что вы это для меня сделали.)) Не знаю даже как вас за это отблагодарить))
к 1)Чем чревато добавление столбца? Посоветуйте, пожалуйста) 2) хотелось бы теперь разобраться с кодом... когда происходит действие BeforScroll? 3) вы все правильно поняли, и спасибо вам за это огромное еще раз))
Я начинающий web-программист) Не судите строго, плиз! Буду очень стараться!
|
08.11.2010, 20:24 | #15 |
Пользователь
Регистрация: 12.09.2010
Сообщений: 69
|
Попытаюсь выразить свое мнение на первый вопрос.
Добавление столбца в принципе ничем не чревато для таблицы БД (разве что на это есть ограничения в разных СУБД), но... столбцы - это элемент структуры базы, некая константа, которая определяется при разработке программного продукта. Добавление столбца при поступлении новой информации - очень очень плохой стиль программирования. Вам при такой организации хранения информации в таблице БД - никогда эту информацию не обработать (по крайней мере классическими методами), с чем собственно Вы и столкнулись. Совет: Организуйте правильно Вашу БД и крутите-вертите базу методами SQL.
SELECT BEST FROM LIFE
|
08.11.2010, 20:53 | #16 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Марк Охман
по первому вопросу. полностью согласен с мнением Dimasw! Фактически он выразил то, что я и хотел сказать. есть такая штука, как реляционные БД (ну то, чем мы пользуемся). Подавляющее большинство СУБД предназначено для реализации таких БД. В частности, язык обработки данных, тот же SQL предназначен для работы с подобными БД. И как только Вы отступаете от принципов организации БД, то стандартные средства сразу перестают действовать во всю свою мощь. Смотрите. в вашем случае - нужно добавить данные - добавляете не столбец, а строчку!! Там дата и значение! Нужна привязка к строке? Добавьте туда ссылку на ID вашей основной таблицы. Чем это удобнее, чем Ваша структура, надеюсь, не надо пояснять? событие BeforeScroll возникает, перед тем, как вы переходите с одной записи на другую. В принципе, у Dataset'а много событий, поэкспериментируйте, когда какое вызывается... может быть, Вам будет удобнее повесить обработку на другое событие... 3) не за что. Большое пожалуйста! |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Среднее арифметическое | Seede1 | Помощь студентам | 4 | 10.10.2010 10:29 |
Среднее арифметическое. | Deutch | Помощь студентам | 3 | 16.12.2009 21:18 |
Среднее арифметическое | Golovastik | Общие вопросы C/C++ | 16 | 18.07.2009 16:47 |
среднее арифметическое | Mashul'ka | Помощь студентам | 1 | 14.05.2009 19:33 |