Перейти к содержимому


Фотография

Организация ведения конкурса прогнозов на форуме SPORTBOX.ru в базе данных OpenOffice.org Base


  • Закрытая тема Тема закрыта
Сообщений в теме: 64

#41 Rok18-_

Rok18-_

    Sportboks Liga

  • Люди с клюшками
  • PipPipPipPipPipPipPipPip
  • 12779 сообщений

Отправлено 06 June 2013 - 21:12

Этот топик я нашел. Исходя из него и прошу разъяснить.
1. Если прогноз 4:3+, а результат 4:3. Как я понял, это 2 балла за верно угаданный исход. Так?
2. Если прогноз 4:3, а результат 4:3+. Тоже самое.
5 баллов, если угадан не только счет, но и прогноз на то, что он был установлен в основное время или в овертайме. Верно?

Верно.
  • 0

#42 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 12 June 2013 - 20:09

Изображение

2 пробела только

С пробелами разобрался. Как ни странно - но это все таки "проделки" браузеров.
Давно уже привык к Опере, другими браузерами пользуюсь редко.... Оказывается, это после Оперы в тексте 3 пробела перед именем автора, а в Хроме и Файерфоксе, например, только два.
Но программа теперь "понимает" и 3 и 2...
  • 1

#43 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 17 June 2013 - 12:45

Из личной почты:

... я не понял, как получить общую турнирную таблицу за все туры? При экспорте тура формируется 3 таблицы, 2 из них одинаковые.


Недоработка имела место. Вместо турнирной таблицы дублировалась таблица тура. Архив исправлен и доступен для скачивания по тому же адресу.

Если Вы уже ввели данные в базу и не хотели бы их потерять, можете внести исправление самостоятельно.

Откройте редактор программного модуля. Для этого:

Зайдите в меню "Сервис" > "Макросы" > "Управление диалогами". Выберите вкладку "Модули". Раскройте список "demo.odb" > "Standard" > "Module1". Нажмите "Редактировать".

В меню программного модуля выберите "Правка" > "Найти..." (Ctrl+F)

Введите строку поиска нижеследующее:
REM --- Турнирная таблица ---

После найденной строки увидите такие строки:
strline = strline & "Таблица " & tour & "-го тура" & tab & tab & tab & tab & tab & tab & tab & tab & crcf & _
  "#" & tab & "Участники" & tab & "Балл" & tab & "Игр" & tab & "[>0]" & tab & "[5]" & tab & _
  "[3]" & tab & "[2]" & tab & "[0]" & crcf
Замените их на нижеследующие строки:
strline = strline & "Турнирная таблица" & tab & tab & tab & tab & tab & tab & tab & tab & crcf & _
  "#" & tab & "Участники" & tab & "Балл" & tab & "Игр" & tab & "[>0]" & tab & "[5]" & tab & _
  "[3]" & tab & "[2]" & tab & "[0]" & crcf

Еще ниже увидите такие строки:
sql = "SELECT users.id, users.uname, SUM( bets.ball ) AS Balls, " & _
  "( SELECT COUNT( bets.b1 ) FROM matches, bets WHERE bets.matchid = matches.id AND " & _
  "matches.g1 IS NOT NULL AND matches.tourid = '" & tour & "' AND bets.userid = users.id ) AS Igr, " & _
  "( SELECT COUNT( bets.ball ) FROM matches, bets WHERE bets.ball > '0' AND bets.userid = users.id AND " & _
  "matches.tourid = '" & tour & "' AND matches.id = bets.matchid ) AS BallsP, " & _
  "( SELECT COUNT( bets.ball ) FROM matches, bets WHERE bets.ball = '5' AND bets.userid = users.id AND " & _
  "matches.tourid = '" & tour & "' AND matches.id = bets.matchid ) AS Balls5, " & _
  "( SELECT COUNT( bets.ball ) FROM matches, bets WHERE bets.ball = '3' AND bets.userid = users.id AND " & _
  "matches.tourid = '" & tour & "' AND matches.id = bets.matchid ) AS Balls3, " & _
  "( SELECT COUNT( bets.ball ) FROM matches, bets WHERE bets.ball = '2' AND bets.userid = users.id AND " & _
  "matches.tourid = '" & tour & "' AND matches.id = bets.matchid ) AS Balls2, " & _
  "( SELECT COUNT( bets.ball ) FROM matches, bets WHERE bets.ball = '0' AND bets.userid = users.id AND " & _
  "matches.tourid = '" & tour & "' AND matches.id = bets.matchid ) AS Ballsm1 " & _
  "FROM users, matches, bets " & _
  "WHERE matches.tourid = '" & tour & "' AND matches.id = bets.matchid AND users.id = bets.userid " & _
  "GROUP BY users.id, users.uname " & _
  "ORDER BY 3 DESC, 5 DESC, 6 DESC, 7 DESC"
Замените их на нижеследующие строки:
sql = "SELECT users.id, users.uname, SUM( bets.ball ) AS Balls, " & _
  "( SELECT COUNT( bets.b1 ) FROM matches, bets WHERE bets.matchid = matches.id AND " & _
  "matches.g1 IS NOT NULL AND matches.tourid <= '" & tour & "' AND bets.userid = users.id ) AS Igr, " & _
  "( SELECT COUNT( bets.ball ) FROM matches, bets WHERE bets.ball > '0' AND bets.userid = users.id AND " & _
  "matches.tourid <= '" & tour & "' AND matches.id = bets.matchid ) AS BallsP, " & _
  "( SELECT COUNT( bets.ball ) FROM matches, bets WHERE bets.ball = '5' AND bets.userid = users.id AND " & _
  "matches.tourid <= '" & tour & "' AND matches.id = bets.matchid ) AS Balls5, " & _
  "( SELECT COUNT( bets.ball ) FROM matches, bets WHERE bets.ball = '3' AND bets.userid = users.id AND " & _
  "matches.tourid <= '" & tour & "' AND matches.id = bets.matchid ) AS Balls3, " & _
  "( SELECT COUNT( bets.ball ) FROM matches, bets WHERE bets.ball = '2' AND bets.userid = users.id AND " & _
  "matches.tourid <= '" & tour & "' AND matches.id = bets.matchid ) AS Balls2, " & _
  "( SELECT COUNT( bets.ball ) FROM matches, bets WHERE bets.ball = '0' AND bets.userid = users.id AND " & _
  "matches.tourid <= '" & tour & "' AND matches.id = bets.matchid ) AS Ballsm1 " & _
  "FROM users, matches, bets " & _
  "WHERE matches.tourid <= '" & tour & "' AND matches.id = bets.matchid AND users.id = bets.userid " & _
  "GROUP BY users.id, users.uname " & _
  "ORDER BY 3 DESC, 5 DESC, 6 DESC, 7 DESC"

Обязательно сохраните изменения (Меню "Файл" > "Сохранить"). Закройте редактор программного модуля.

Теперь, если у Вас введено более 1-го тура, две последние таблицы будут отличаться.
  • 1

#44 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 17 June 2013 - 13:24

P.S. Как следует из предыдущего поста, программный модуль абсолютно открыт и любой желающий может вносить в него любые изменения, дополнения, "подгоняя" его под собственные конкретные предпочтения.
  • 1

#45 fc-slavyane

fc-slavyane

    МС

  • Пользователи
  • PipPipPipPipPipPip
  • 2927 сообщений

Отправлено 17 June 2013 - 14:57

P.S. Как следует из предыдущего поста, программный модуль абсолютно открыт и любой желающий может вносить в него любые изменения, дополнения, "подгоняя" его под собственные конкретные предпочтения.

Во всех конкурсах клуба если участник "отметился" (набирал очки) во всех матчах тура он получает бонусные баллы (в РПЛ - 8, Германии - 9, в других по 10).
Володь, а можно в программный модуль внести эти изменения? Конечно это случается очень редко, но бывает.
  • 1

#46 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 19 June 2013 - 01:14

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

В базе подсчитаны баллы по 13-му и 14-му туру конкурса ЧР. Лидер 13-го тура "отметился" в семи матчах из восьми. Для проверки работы подсчета я ему искусственно в файле импорта подправил прогноз на матч Волга - Краснодар с 1:2 на 2:2 (счет матча 1:1), в результате чего его баллы увеличились с 29 до 40 баллов. Если запустить запрос "Прогнозы и Баллы" и найти там его прогнозы, то в поле "Балл" можно увидеть, что за угаданные счета у него значится по 6 баллов вместо 5-ти, а за угаданные разницы - по 4 вместо 3-х. :)

Архив с дополнением по прежнему адресу: http://dndn.dp.ua/ooobase/demo.zip
  • 1

#47 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 19 June 2013 - 01:41

Для справки. Результаты запроса можно легко перенести в электронную таблицу.
Для этого надо запустить электронную таблицу Calc из пакета OpenOffice.org и в меню "Вид" выбрать "Источники данных". В верхней части окна появятся таблицы и запросы зарегистрированных баз данных.
Выбираем "demo", "Запросы", "Прогнозы и Баллы". Прокручиваем до нужного места и выделяем записи для переноса. Затем просто перетаскиваем выделенные записи в ячейки таблицы, как на следующем скрин-шоте:

Изображение
  • 1

#48 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 21 June 2013 - 06:35

Ниже кнопки "Экспорт Результатов" добавлена кнопка "Экспорт с Группировкой".
По ее нажатию производится запрос на ввод через пробел начального и конечного номера туров для группировки. В генерируемом файле экспорта таблица представлена в виде, обычно формируемом ведущим конкурса - туры с первого по указанный начальным суммируются, далее по отдельности результаты туров вплоть до конечного, сумма всех баллов и количество побед в турах.

Фрагмент вставленной в электронную таблицу OpenOffice.org Calc и слегка обработанной турнирки представлен на скриншоте:

Изображение

Примечание. Данные по турам с 15-го по 20-й не претендуют на полноту, т.к. обработаны только принятые программой прогнозы.

Архив с базой данных обновлен.
  • 1

#49 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 23 June 2013 - 12:18

Попытаемся сделать процесс сбора прогнозов еще более комфортнее. :rolleyes:

Лично меня давно напрягали повторяющиеся, монотонные, однообразные действия - сначала в браузере надо выделить и скопировать страницу с прогнозами, затем переключиться в окно текстового редактора, очистить от прежнего содержимого файл импорта, вставить из буфера обмена новое содержимое, сохранить его, затем наконец переключиться в окно формы базы данных и импортировать новые прогнозы. Так было до тех пор, пока в сети случайно не нактнулся на методы для работы с содержимым буфера обмена. Но то было для VBA от Microsoft, для OpenOffice.org Basic они не работают... :(

Но решение есть! Необходимый нам программный код прямого чтения содержимого буфера обмена найден в книге "Andrew Pitonyak: OpenOffice.org Macros Explained", за что особая благодарность ее автору.

Теперь "посреднические" услуги файла импорта нам больше не понадобятся. В новой редакции базы данных конкурса достаточно выделить страницу форума с прогнозами, скопировать ее в буфер обмена и сразу нажать кнопку "Импорт Прогнозов".

Обновленный архив с базой конкурса можно скачать по прежнему адресу: http://dndn.dp.ua/ooobase/demo.zip
  • 1

#50 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 24 June 2013 - 09:02

С каждым улучшением наша база данных становится все совершеннее. Но в этом есть и отрицательный момент. Если Вы ввели в базу свои данные, то скачав новую, усовершенствованную версию, Ваши данные теряются. Приходится выбирать между новым, усовершенствованным интерфейсом и уже введенными данными.

Следующим пунктом совершенствования нашей программы будет ее разделение на интерфейс и данные. После этого разделения мы безущербно сможем продолжать совершенствование интерфейса без боязни утратить введенные данные. О расположении файлов разделенной базы будет сообщено дополнительно.
  • 1

#51 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 25 June 2013 - 03:43

Итак, переходим от демо-версии к рабочей. Разделение базы на интерфейс и данные произведено и доступно для скачивания:
http://dndn.dp.ua/ooobase/win.odb - собственно база данных;
http://dndn.dp.ua/ooobase/win.odt - документ OpenOffice.org Writer с главной формой и программным модулем.

Размер обоих файлов около 23 кбайт. Теперь базу данных (файл win.odb) достаточно скачать один раз и начинать вводить данные. Все изменения интерфейса будут производиться в файле win.odt.

Оба файла необходимо скачать в рабочую папку. Запуск программы производится двойным щелчком по файлу win.odt. После запуска необходимо зайти в программный модуль (меню "Сервис" > "Макросы" > "Управление макросами" > "OpenOffice.org Basic", в левом окне открыть список "win.odt" > "Standard" > "Module1" и нажать кнопку "Редактирование"). В верхней части программного модуля Вам возможно понадобится изменить 3 настраиваемых параметра (на скриншоте изображены красным цветом):

Изображение

BasePath = "D:\OOoBase\"
- путь к файлам импорта и экспорта. Если Вы разместили их в другой папке - замените значение в кавычках.

CurrentDB = "win"
- имя зарегистрированной базы данных. Если Ваша база зарегистрирована под этим именем - ничего менять не нужно. Изменения могут понадобиться, если Вы, например, ведете несколько конкурсов и установили несколько копий базы под своими, специфическими именами ("win_rus", "win_eng", "win_ger" и т.д.). Не забудьте при этом каждую копию зарегистрировать как источник данных (см. пункт "Регистрация источника данных" в мануале).

CurrentLeague = "none"
- строка-идентификатор лиги. Если в конкурсе нет специфических Правил, отличных от стандартных, можете оставить значение по умолчанию. Пока изменение потребуется для ведения конкурса Бундеслиги, в Правилах которого предусмотрены дополнительные бонусные баллы за угаданные счета, сумма голов в которых составляет 5 и более. Для Бундеслиги измените значение в кавычках на "ger":
CurrentLeague = "ger"

После произведенных изменений параметров не забудьте сохранить программный модуль (меню "Файл > "Сохранить"). Закройте редактор программного модуля и приступайте к работе с базой.

Удачи!
  • 1

#52 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 02 July 2013 - 09:07

Выложил 3 пары сконфигурированных файлов для чемпионатов России, Англии и Германии:

http://dndn.dp.ua/ooobase/win_rus.odt
http://dndn.dp.ua/ooobase/win_rus.odb

http://dndn.dp.ua/ooobase/win_eng.odt
http://dndn.dp.ua/ooobase/win_eng.odb

http://dndn.dp.ua/ooobase/win_ger.odt
http://dndn.dp.ua/ooobase/win_ger.odb

Все пары сконфигурированы к папке по умолчанию D:\OOoBase\

Единственное, что требуется - зарегистрировать их как источник данных, как описано в мануале для demo.odb. Меню "Сервис", "Параметры...", "OpenOffice Base", "Базы данных", кнопка "Создать...". В открывшемся окне "Обзор...", находим соответствующую базу данных, "Ok". За один сеанс можно зарегистрировать все три.

Если все сделано правильно, то при последующем открытии соответствующих файлов-форм *.odt увидите линии матчей на 1-й тур соответствующих чемпионатов. Если кому-то нужно еще какая-то лига - заказывайте...
  • 0

#53 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 02 July 2013 - 09:22

Для чемпионатов России и Германии работают кнопки "Импорт календаря".
Импорт производится из соответствующих офсайтов лиг, для России:
http://rus.rfpl.org/.../index/calendar
для Германии:
http://www.bundeslig...stats/matchday/
Для импорта/корректировки необходимо выделить все матчи соответствующего тура, от начала первой строки и до конца последней, скопировать в буфер обмена (Ctrl+C) и нажать кнопку "Импорт календаря".
  • 0

#54 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 06 July 2013 - 12:06

Тестируется обновление. В обновленной версии предусматриваются следующие изменения:

1. Отказ от файлов импорта и экспорта "import.txt", "export.txt" - все операции импорта и экспорта будут производиться через системный буфер обмена. Для импорта - все, что требовалось предварительно сохранять в файле "import.txt" теперь будет приниматься предварительно сохраненным в буфер обмена.
Все операции экспорта также будут выводиться не в файл "export.txt", а в буфер обмена.

2. Автоматическое обновление таблиц матчей и результатов по результатам следующих операций:
- после импорта календаря таблица матчей обновляется автоматически;
- после импорта прогнозов таблица результатов обновляется автоматически;
- после расчета баллов таблица результатов обновляется автоматически.

3. Перед подавляющим большинством функций импорта и экспорта не нужно вводить монотонную, повторяющуюся процедуру ввода номера тура - теперь он будет производиться над текущим туром, - тем, который высвечивается в поле "Тур" главной формы. Исключение составляет лишь операция "Экспорт с Группировкой" - там эта функция полностью отдана на откуп ведущему.

4. Кнопки "Обновить Матчи" и "Обновить Результаты" удалены за ненадобностью.

5. Добавлена кнопка "Копирование Линии". Результат работы - копирование в буфер обмена линии матчей на текущий тур. По нажатию на кнопку линия матчей сохраняется в буфере обмена, после чего можно открывать в форуме тему прогнозов на новый тур и сразу же забивать линию матчей из буфера обмена в сообщение форума.
Результат действия - не только упрощения действий ведущего, но и гарантия того, что линия, поданная на форум будет полностью соответствовать линии, сохраненной в базе данных.

Может чего упустил, но результат должен получиться положительный.
Изменения не коснутся файлов базы (расширение *.odb), только лишь форм и модулей (файл *.odt). А это в свою очередь означает обновление новых функций и интерфейса без "ломки" введенных данных.

О доступности изменений будет сообщено дополнительно
  • 0

#55 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 07 July 2013 - 11:28

Обновляемся:

http://dndn.dp.ua/ooobase/win_rus.odt
http://dndn.dp.ua/ooobase/win_eng.odt
http://dndn.dp.ua/ooobase/win_ger.odt
  • 0

#56 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 09 July 2013 - 22:49

Не хочу называть громким словом "финальная версия", но по сути оно ближе к тому.

Рекомендуемые обновления:

Для Чемпионата России - http://dndn.dp.ua/ooobase/win_rus.odt.

Для Чемпионата Германии - http://dndn.dp.ua/ooobase/win_ger.odt

Для Чемпионата Англии - файлы базы данных http://dndn.dp.ua/ooobase/win_eng.odb в связке с файлом главной формы http://dndn.dp.ua/ooobase/win_eng.odt - обязательно (!!! иначе календать не будет работать !!!)

Завтра будет подробное описание обновлений
  • 0

#57 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 10 July 2013 - 08:39

1. "Подчищен" весь программный код.

2. Исправлена функция экспорта с группировкой. В старой редакции при определенных обстоятельствах могла вызывать ошибку.

3. В импорте календаря для бундеслиги добавлена поддержка браузеров Хром и Файерфокс. В старой редакции работала только под Оперой. В процессе тестирования обнаружился факт различий при преобразовании вэб-формата в текст различными браузерами. О специфике работы см. обновленный мануал.

4. Добавлена функция корректировки календаря для Английской Премьер-Лиги. Специфика календаря данной лиги в том, что в нем отсутствует привязка матчей к туру, что идет вразрез с логикой работы программы. Для реализации корректировки дат/времен начала матчей пришлось ввести весь календарь, привязав в "ручном" режиме матчи к турам. Поэтому для этой лиги необходима загрузка обоих файлов, и win_eng.obt, и win_eng.obd. Функция импорта календаря теперь будет рабочей в режиме корректировки дат-времен начала матчей. Тем не менее она представляется весьма полезной, учитывая тот факт, что в АПЛ изменения к календарю очень часты.

5. Исправлен и дополнен мануал.

6. Выполнению функций импорта предшествует вывод окна с напоминанием о том, что входные данные должны находиться в буфере обмена.

7. По окончанию работы функций экспорта всплывает окно с информацией об окончании работы.
  • 0

#58 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 19 July 2013 - 02:01

Свежеиспеченный демо-ролик на примере 1-го тура ЧР (без двух сегодняшних матчей).

Возможно те, кто считал, что это сложно, изменят свое мнение... :)


  • 3

#59 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 23 July 2013 - 22:55

23 июля 2013 г. вышла версия офисного пакета Apache OpenOffice 4.0 для Windows, Linux и Mac OS X. Загрузить русскую версию можно с официального сайта. Среди новшеств заметно ускорена загрузка приложений, а также улучшена поддержка Java 7 (актуальная версия) . Рекомендую обновиться.

Также рекомендуется обновить файлы форм для всех локализаций:

http://dndn.dp.ua/ooobase/win_rus.odt - для Чемпионата России

http://dndn.dp.ua/ooobase/win_eng.odt - для Английской Премьер-Лиги

http://dndn.dp.ua/ooobase/win_ger.odt - для Немецкой Бундеслиги.

Помимо общей оптимизации программного кода исправлена ошибка ввода даты прогноза при импорте из браузеров Google Chrome и Mozilla Firefox.

Сообщение отредактировал fc-slavyane: 25 July 2013 - 17:49

  • 3

#60 tv1311

tv1311

    Перворазрядник

  • Пользователи
  • PipPipPipPip
  • 624 сообщений

Отправлено 06 August 2013 - 14:29

Добавлено:

- в таблице экспорта с группировкой туров в колонке "Место" отображаются разделенные места участников с одинаковым количеством баллов и побед (образец фрагмента таблицы на скриншоте).

Изображение
  • 4


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей