Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Вниз

Формирование расп. занят. в ВУЗе, способом эксп-та из БД в Excel   Найти похожие ветки 

 
Василий   (2006-06-08 18:42) [0]

Ребята помогите пожалуйсто!
Нужно написать программу расписаний занятий для вуза, смысл таков:    
      "Каждый деканат состовляет для своего факультета, расписание, способом набора его в MS Excel. Оно выглядит примерно следующим образом:

|---------------------------------------------------------------
|                               РАСПИСАНИЕ ЗАНЯТИЙ
|---------------------------------------------------------------
| дн|вр|   101       |       102      |      201      |      301
|    |--|--------------------------------------------------------
| п | 1 |               |                  |        |        |
| о |   |  Мат.Лог  |                   |        |  КС  |      Ф-ра
| н |   |       15     |                   |        |   22 |        ст.
| е |   |               |                   |        |        |
| д |**********************************************
| е | 2 |        |      |                  |                 |
| л |   |        |       |                  |                 |    Педагогика
| ь |   | Ф-ра| Физ |                  |                 |           13
| н |   |  ст.  |   17 |                  |                 |
| и |   |        |       |                  |                 |
| к |   |        |       |                  |                 |
----------------------------------------------------------------
| в |
| т |
| о |
| р |
| н |
| и |
| к |
|   |

Где: дн-день недели
      вр-время звонка (1-я пара, 2-я пара и т.д.)
      101-первый курс первая группа
      102-первый курс вторая группа
      201-второй курс первая группа и т.д., надеюсь понятно!
      Мат.Лог, КС, Ф-ра, Физ, Педагогика - это все пары
      15, 22, ст.(стадион), 13, 17- это аудитории

        Это расписание нужно размещать на сайте!
        Т.е. каждому деканату приходиться набирать расписание на ПК в Excel, распичатывать и вывешивать на доску расписаний. При всем приэтом им (деканатам) еще приходиться вбивать все тоже самое, что они набирали в Excel.
        Мной же было предложено разработать программу при помоши которой каждый деканат могбы вбивать это все в какуюто форму(БД), а далее экспортировать в Excel, распичатать, а скрипт вывода на Web-страницу делалбы тожесамое только с БД на Web.
        Вся трудность состои в том, что я немогу сформировать это расписание в Excel-е верным обрасом. Т.е. мне необходим правельный SQL-запрос.
Помогите пожалуйсто!

База:<a href="http://www.agpu.armavir.ru/novoalex/1.gif">1.gif</a>

date- дата
dn-   день недели (1-понедельник, 2-вторник и т.д.)
chet- четная или не четная (0-четная 1-нечетная)
fak- факультет (1-физфак,2-матфак и т.д.)
grup- группа
p_grup -подгруппа (1-первая подгруппа, 2- вторая и т.д., 0-занимаются все и 1-я и 2-я вместе)
time- время звонка (1-первая пара 8:00, 2- вторая пара 9:35 и т.д. [пара длиться 1час 20мин, перемена 15мин])
pred-предмет
aud- аудитория
prep- преподователь
dprep-должность преподователя


 
Virgo_Style ©   (2006-06-08 18:53) [1]

Мне кажется, проще будет заполнить вручную... наверное, стоит при этом воспользоваться генератором отчетов, тогда проблема экспорта в Excel отпадет. Ну зачем, спрашивается, экспортировать только для того, чтобы распечатать.


 
unknown ©   (2006-06-08 18:55) [2]

Мда... Русская языка...
> далее экспортировать в Excel, распичатать, а скрипт вывода
> на Web-страницу делалбы тожесамое только с БД на Web.
>         Вся трудность состои в том, что я немогу сформировать
> это расписание в Excel-е верным обрасом. Т.е. мне необходим
> правельный SQL-запрос.
> Помогите пожалуйсто!

Вот хоть убейте - не понял, что же все-таки не получается - экспортировать?
распечатать? сформировать html страницу или все вместе?


 
unknown ©   (2006-06-08 18:57) [3]

Кстати, из екселя можно напрямую через odbc прилинковаться к m$sql.


 
Василий   (2006-06-08 19:26) [4]

Печатал я быстро, так что может где и неправильно выразился, или допустил кучу ошибок уж извините!
Дело в том, что я хочу что бы база набивалась, один только раз, т.е. секретари не забивали себе голову всякими вещами такими как: "из Excel в БД через odbc, хотя идея неплохая, я бы хотел ее рассмотреть на этом форуме подробней ", прога которая заносит, расписания в базу уже написана и работает отлично, мне необходимо сформировать SQL-запрос, чтобы "как выше указано мной" группа 201 выводилась не на какой ни будь случайной позиции, а именно "просмотрела" по столбцу 102 нет ли там подгрупп, если нет тогда выводила 201 со следующей позиции (по столбцу) , если же группа 102 разбита на 2-ве подгруппы, то 201 выводила с позиции +1 (по столбцу).


 
ANB ©   (2006-06-08 20:06) [5]


> Василий   (08.06.06 19:26) [4]

Ну так пиши, раз взялся.


 
atruhin ©   (2006-06-08 20:24) [6]

Набери в яндексе delphi excel будет много ссылок, статей. А вот когда возникнет конкретный вопрос с примером кода, тогда сюда.


 
Ильш ©   (2006-06-09 06:20) [7]

завязка с Excel главная ошибка! нада формировать отчет в генераторе отчетов типа FastReport (а там уж хошь в Excek сохраняй, хошь куда)... у меня друг делал диплом как раз что-то в этом духе, но у него все было намного кузявее - вводились нагрузки преподов, наличие свободных аудиторий и прочие данные и на их основе автоматически формировалось расписание, вот это вещчь!
да и запрос тут врядли составишь, чудес не бывает... чтобы получить желаемый результат надо данные исходные (структуры базы) затачивать под этот результат...


 
Василий   (2006-06-09 08:02) [8]

Unknown немоглибы по подробней рассказать о odbc, каким конкретно способом можно, цитирую: прилинковаться к m$sql?


 
unknown ©   (2006-06-09 15:46) [9]


> Василий   (09.06.06 08:02) [8]

1) В панели управления выбираем "Источники данных (ODBC)"
2) Добавляем там свой DSN для SQL Server-а
3) В екселе жмем F1 и ищем "источники данных"


 
Василий   (2006-06-09 16:33) [10]

Спасибо unknown, понял как связать!
Хотелось бы услышать еще парочку предложений от посетителей форума.
Может можно пойти например каким-то другим путём?

Заранее благодарен!!!


 
ANB ©   (2006-06-09 16:44) [11]

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


 
Василий   (2006-06-09 17:42) [12]

ВОТ, ВОТ, ВОТ !!!!!!!
Спасибо ANB, за понимание. Это самое я и имел ввиду!!!
Просто не мог правильно выразиться, может из-за того, что думал вы не поймёте, извиняюсь за недооценку.

Меня именно вот этот запрос и интересует, сколько я их не делал, не могу осмыслить хоть убей!, на странице Excel "белиберду выводит и ВСЕ", а каким я путём шел, понял что не верно.
КОНКРЕТНО ВОПРОС:
     Как должен выглядеть SQL- запрос сортирующий таблицу http://www.agpu.armavir.ru/novoalex/1.gif , чтобы я мог одним махом забрать т.е., сколько максимум подгрупп учиться, на всей недели у 101 группы, чтобы вывести обозначение 102 группы уже с Другой позиции (по вертикали! )и т.д., у какой группы максимум предметов в понедельник, чтобы обозначение недели вторник, вывести уже с другой позиции (по горизонтали! ) и т.д., а проблем с формированием шаблона расписания у меня нет.


 
unknown ©   (2006-06-09 20:50) [13]


> Василий   (09.06.06 17:42) [12]
> ВОТ, ВОТ, ВОТ !!!!!!!

http://www.ln.ua/~openxs/articles/smart-questions-ru.html


 
Василий   (2006-06-19 17:43) [14]

Что-то форум замолчал!?


 
Василий   (2006-06-19 18:08) [15]

Нужно составить SQL-запрос, который будет возврощать неделю, при условии, что она будет сортироваться таким образом:
   SELECT * FROM templates WHERE (pon <= vd) AND (vd <= vs) AND (fak = fak_)                   , где fak- выбранный факультет, расписание которого нам нужно;
vd- выбранная дата которая должна входить в ту неделю, которая нам нужна;
далее функциями delphi мы возвращаем: pon(понедельник)- край недели, vs(воскресение)- край недели;
т.е. неделю я оттсортировал без проблем!
Вопрос в том как узнать, сколько максимум занятий вовсех группах по горизонтали? И сколько максимум по каждой группе подгруп?


 
VadimSpb   (2006-06-19 23:41) [16]

завязка с Excel главная ошибка! нада формировать отчет в генераторе отчетов типа FastReport
Бред. Просто надо научиться делать ЭТО правильно. Зависит от того, что надо экспортировать. И далеко не факт, что FastReport сделает это лучше, напр. по соотношению объем/скорость. Скоре наоборот ;-))


 
fantasy ©   (2006-06-20 03:40) [17]

Есть много очень удобных компонетнт по экспорту данных в ехсел
юзай их


 
ANB ©   (2006-06-20 09:15) [18]


> fantasy ©   (20.06.06 03:40) [17]

Тут проблема в составлении запроса.


> Василий   (19.06.06 18:08) [15]

Я думаю, есть смысл сначала привести таблицу в порядок, т.к. БД явно требует нормализации. В такой структуре очень велика вероятность мелкой ошибки оператора из-за которой расписание будет печататься неверно


 
ANB ©   (2006-06-20 09:33) [19]

Значится, ответ примерно такой (делал в оракле, но без фичей) :
Таблица :

create table Rasp
(
Gr_No integer,
Predm varchar2(40),
dt    Date,
dn    integer,
tm    integer
)


Затем выбираешь все группы

select distinct R.GR_NO from Rasp R

На основании этого запроса формируешь динамически запрос примерно по образцу :

select   R.Dt, R.Dn, R.Tm,
        min ((case
              when R.Gr_No = 101
  then R.Predm
              else null
              end)) Gr_101,
        min ((case
              when R.Gr_No = 102
              then R.Predm
              else null
              end)) Gr_102,
        min ((case
              when R.Gr_No = 103
              then R.Predm
              else null
              end)) Gr_103
   from Rasp R
group by R.Dt, R.Dn, R.Tm

Ну, под свою стркутуру сам подкрутишь.


 
evvcom ©   (2006-06-20 09:47) [20]

Особо не въезжал в структуру и как надо, но думаю генератор отчетов с возможностью создания кросстаблиц юзать проще будет. Тогда SQL будет элементарным, независимым от количества и номеров групп, а всю работу выполнит чужой код, который к тому же, наверняка, будет надежнее, чем код начинающего автора.


 
Василий   (2006-07-09 15:38) [21]

Здравствуйте ребята!
Прошу прощения, что поднимаю старую тему!
Но всеже хотелось бы увидеть на данном форуме решение моей проблемы по базе расписания!
Кто может составить запрос тот который будет выводить данные за неделю, пускай не в Excel, а так как вы это представляете!
Пускай к примеру отображает данные FastReport!
Помогите пожалуйста! Работа горит!


 
Virgo_Style ©   (2006-07-09 16:31) [22]

Василий   (09.07.06 15:38) [21]

Месяц уже прошел, выведи его наконец хоть в StringGrid и будь счастлив


 
unknown ©   (2006-07-09 17:11) [23]


> Василий   (09.07.06 15:38) [21]
> Помогите пожалуйста! Работа горит!

Ты чем целый месяц занимался?
Можно было как минимум прочитать книжку по SQL.


 
Василий   (2006-07-10 13:23) [24]


> Virgo_Style ©


> unknown ©  

Вот втом все и дело что я все это время другим занимался!
А вопрос этот тогда постараюсь сам решить!
Если вы не можете помочь!
Чтож извените что поднял данную тему!


 
sniknik ©   (2006-07-10 14:04) [25]

> Если вы не можете помочь!
лениво... вот прикинь насколько нам лениво, если тебе тоже настолько, что не делаеш, хотя и очень нужно..., а нам то это еще и не нужно...

> А вопрос этот тогда постараюсь сам решить!
посмотри раздел "Cross-Tab Reports" в BOL. должно помочь.


 
PEAKTOP ©   (2006-07-10 14:40) [26]

Твоя проблема в том, что ты пытаешься сначала собрать разобщенные данные с разных файлов xls по всему институту (универу, и т.д....) с разных факультетов, обработать их и вставить в базу, а потом - выкинуть в ВЭБ расписание.
Не проще ли пойти путем создания централизованной базы расписания на весь ВУЗ, пускай прямо в нее вставляют записи, а потом из нее генерь расписание и на печать и на ВЭБ. В таком случае снижается вероятность получения противоречивых данных, т.к. какая-то тетка поправила файл расписания, а подгрузить в базу его забыла.
А уж потом, из базы данных, хочешь FastReport печатай, хочешь xlReport, да прямо из броузера можно послать на печать. А если делашь свою архитектуру на MySQL или FireBird, то в принципе и exe-шника клиентского не надо, можно легко обойтись броузером и сервером в связке Apache+PHP+[Firebird|MySQL|M$SQL] и все сделать на одних скриптах.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.045 c
15-1156327419
dera
2006-08-23 14:03
2006.09.17
Вопрос для тех, кто учился на Украине.


8-1141248230
ShAB_v2.0
2006-03-02 00:23
2006.09.17
Как усреднить цвета до одного цвета?


15-1156310755
Rentgen
2006-08-23 09:25
2006.09.17
Кому не сложно, помогите узнать певицу или название песни!


1-1154434680
Darvin
2006-08-01 16:18
2006.09.17
Особенности поддержки стиля WinXP + Manifest


2-1156405706
Дырчик
2006-08-24 11:48
2006.09.17
ADO и dbf





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский