Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 167

Запросы: отчет по сотруднику в указанный интервал времени

30.04.2013, 00:16. Показов 2883. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята можете помочь. Вот делаю проект в С++ builder,


Вот для комбобокс прописал код:
C++
1
2
3
4
5
6
7
8
9
Form1->ADOTable1->Filtered=false;
sComboBox1->Items->Clear();
Form1->ADOTable1->First();
for (int i=0; i<Form1->ADOTable1->RecordCount; i++)
 
{
sComboBox1->Items->Add(Form1->ADOTable1->Fields->Fields[1]->AsString);
Form1->ADOTable1->Next();
}
Для даты сделал запрос
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Form1->ADOQuery2->SQL->Clear();
Form1->ADOQuery2->SQL->Text="SELECT Vipoln.Kod_vipoln, Vipoln.Data, Vipoln.Tab_nomer, Vipoln.Kod_detali, Vipoln.[Kol-vo] FROM Vipoln WHERE Vipoln.Data Between :time1 And :time2";
Form1->ADOQuery2->Parameters->ParamByName("time1")->Value=sDateEdit1->Date.DateString();
Form1->ADOQuery2->Parameters->ParamByName("time2")->Value=sDateEdit2->Date.DateString();
 
Form1->ADOQuery2->Open();
if (Form1->ADOQuery2->RecordCount==0)
{Application->MessageBoxA("По заданному интервалу ничего не найдено!","Внимание",MB_OK);
Form1->DataSource3->DataSet=Form1->ADOTable3;
}
else
{Form1->DataSource3->DataSet=Form1->ADOQuery2;
}
И что я хотел собственно, чтобы я выбрал сотрудника в комбобокс и указал интервал времени и потом щелкал на кнопку отчет, и чтобы он выдавал отчет по сделанной работе этого сотрудника в указанный интервал времени. Как это можно сделать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.04.2013, 00:16
Ответы с готовыми решениями:

Определить, входит ли текущее время в указанный интервал времени
Здравствуйте! Нужно определить или текущее время входит в указанный интервал времени. Делаю от 00:00:00 до 23:00:00 Проблема...

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

Генерация процессов через указанный интервал времени
Подскажите, как правильно составить блок кода на С, использовав fork(), чтобы через 2 с генерировалось 5 процессов, которые останавливались...

27
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 167
30.04.2013, 18:50  [ТС]
Ребята помогите пожалуйста, это срочно надо на диплом
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
30.04.2013, 19:24
Didilom, что конкретно должен в себя включать отчет?
Как вариант, использовать FastReport.

FastReport. Руководство программиста
0
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 167
30.04.2013, 19:33  [ТС]
У меня есть вот запрос на фамилии
C++
1
2
3
4
5
6
7
8
9
10
Form1->ADOQuery1->Close();
Form1->ADOQuery1->SQL->Clear();
Form1->ADOQuery1->SQL->Add("SELECT Sotrud.Tab_nomer, Sotrud.Famil, Sotrud.Name, Sotrud.Otchestvo, Sotrud.Dolghnost, Sotrud.Razrayd, Sotrud.Foto FROM Sotrud WHERE Sotrud.Famil Like '%"+ sComboBox1->Text +"%'");
Form1->ADOQuery1->Open();
if (Form1->ADOQuery1->RecordCount==0)
{Application->MessageBoxA("Нет записей","Внимание",MB_OK);
Form1->DataSource1->DataSet=Form1->ADOTable1;
}
else
{Form1->DataSource1->DataSet=Form1->ADOQuery1;}
И запрос на дату

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Form1->ADOQuery2->SQL->Clear();
Form1->ADOQuery2->SQL->Text="SELECT Vipoln.Kod_vipoln, Vipoln.Data, Vipoln.Tab_nomer, Vipoln.Kod_detali, Vipoln.[Kol-vo] FROM Vipoln WHERE Vipoln.Data Between :time1 And :time2";
Form1->ADOQuery2->Parameters->ParamByName("time1")->Value=sDateEdit1->Date.DateString();
Form1->ADOQuery2->Parameters->ParamByName("time2")->Value=sDateEdit2->Date.DateString();
 
Form1->ADOQuery2->Open();
if (Form1->ADOQuery2->RecordCount==0)
{Application->MessageBoxA("По заданному интервалу ничего не найдено!","Внимание",MB_OK);
Form1->DataSource3->DataSet=Form1->ADOTable3;
}
else
{Form1->DataSource3->DataSet=Form1->ADOQuery2;
}
Отчет должен содержать: Фамилие того кого я выберу в комбобокс на форме, дата, наименование деталей какие он делал в период который тоже выбираю на форме и кол-во. Ну отчет я и буду делать в Fastreporte. Просто не знаю как это осуществить.
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
30.04.2013, 21:23
Didilom,
Цитата Сообщение от Didilom Посмотреть сообщение
Фамилие того кого я выберу в комбобокс на форме, дата, наименование деталей какие он делал в период который тоже выбираю на форме и кол-во.
Насколько я вижу у Вас получились независимые друг от друга запросы.
Результатом первого является детализированная информация о выбранном сотруднике.
Результатом второго является информация о выполненных работах (по идее по всем сотрудникам).
Интуитивно их надо объединить.

Но может я что-то не так понял.

А вообще было бы неплохо увидеть структуру БД.
0
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 167
30.04.2013, 21:32  [ТС]
Вот моя база вся для этого проекта, там таблицы и запросы.
BD.rar
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
30.04.2013, 21:42
Didilom, среди представленных запросов я не вижу ни одного, который соединяет таблицу.

Постройте мне следующий запрос: что конкретно выполнил Иванов с 11.04.2013 по 12.04.2013?
0
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 167
30.04.2013, 21:48  [ТС]
Окей, попробовал кое что
BD.rar
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
30.04.2013, 21:57
Didilom, ну отлично. Я правда немного по-другому это дело рассмотрел (без диапазона дат):
SQL
1
SELECT  Vipolnenie.Data, Detal.Name_detal, Vipolnenie.[Kol-vo], Vipolnenie.[Kol-vo] * Detal.Stoimost AS Obsh_Stoimost FROM Sotrudniki,  Vipolnenie, Detal WHERE Sotrudniki.Tab_nomer = Vipolnenie.Tab_nomer AND Vipolnenie.Kod_detali = Detal.Kod_detali AND Sotrudniki.Famil = 'Иванов'
Только с выводом общей стоимости надо еще поработать. Хотя не знаю, нужна ли она вообще.

Вот теперь подобный запрос и организовывайте в программе.
1
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 167
30.04.2013, 22:06  [ТС]
А вы этот запрос в Accesse или сами написали на SQL ? Если в Acesse? то хотел бы просмотреть как сделали, для себя чисто.

И еще хотел спросить, если я вставлю этот запрос, то он мне не будет выдавать только "Иванова"?
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
30.04.2013, 22:10
Didilom, в общем, Ваш уровень подготовки мне понятен - только не в обиду.
Буду поздно. Но постараюсь накидать проект с отчетом. Возможно, сделаю видео.

Но, повторюсь, это будет ночью.

Только уточните, что Вам нужно:
Цитата Сообщение от Didilom Посмотреть сообщение
Отчет должен содержать: Фамилие того кого я выберу в комбобокс на форме, дата, наименование деталей какие он делал в период который тоже выбираю на форме и кол-во.
- это точно все?
1
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 167
30.04.2013, 22:44  [ТС]
Immortal, вот я взял код запроса, который я делал последним
C++
1
2
3
SELECT Фам.Famil, дата.Data, дата.Kod_detali, дата.[Kol-vo]
FROM дата, Фам
WHERE (((Фам.Famil) Like "Иванов") AND ((дата.Data) Between #4/11/2013# And #4/12/2013#));
и он мне выдает в отчете только Иванова и к нему же приписывает детали других сотрудников периода с 11.04.2013 по 12.04.20013

А как сделать чтобы он мне выдавал того который я выбираю в комбобокс и именно его детали с указанного периода?

Добавлено через 2 минуты
Immortal, да точно все. Окей, спасибо большое! Буду ждать
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
01.05.2013, 10:46
Didilom, в общем, Вам не повезло. У меня неожиданно навернулась IDE, так что сделать ничего не удалось.
Возможно, проблему решу в течение дня, но пока давайте сами.


Цитата Сообщение от Didilom Посмотреть сообщение
А как сделать чтобы он мне выдавал того который я выбираю в комбобокс и именно его детали с указанного периода?
SQL
1
2
3
4
SELECT Sotrudniki.Famil, Vipolnenie.Data, Detal.Name_detal, Vipolnenie.[Kol-vo] \
 FROM Sotrudniki, Vipolnenie, Detal WHERE Sotrudniki.Tab_nomer = Vipolnenie.Tab_nomer AND \
 Vipolnenie.Kod_detali = Detal.Kod_detali AND Sotrudniki.Famil = :lastname AND Vipolnenie.Data \
 BETWEEN :time1 AND :time2
C++
1
2
3
4
5
Form1->ADOQuery2->Parameters->ParamByName("lastname")->Value=sComboBox1->Text;
Form1->ADOQuery2->Parameters->ParamByName("time1")->Value=sDateEdit1->Date.DateString();
Form1->ADOQuery2->Parameters->ParamByName("time2")->Value=sDateEdit2->Date.DateString();
Form1->ADOQuery2->Open();
frxReport1->ShowReport();
Сейчас объясню так.

1. Запрос помещаете в свойство SQL компоненты ADOQuery2 (не забудьте убрать косые черточки).
2. Код вешаете на кнопку "Отчет".
3. В компоненте frxDBDataset1 в свойстве DataSet выбираете ADOQuery2.
4. Два раза щелкаете по frxReport1 - откроется дизайнер.
5. Если не сообразите, что делать в дизайнере, то пишите.
6. Реал Мадрид - засранцы. Я спать.
1
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 167
01.05.2013, 10:57  [ТС]
Цитата Сообщение от The_Immortal Посмотреть сообщение
6. Реал Мадрид - засранцы. Я спать.
Ахаххаа
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
01.05.2013, 16:22
Didilom, кое-что забыл:
C++
1
2
3
4
5
6
Form1->ADOQuery2->Close();
Form1->ADOQuery2->Parameters->ParamByName("lastname")->Value=sComboBox1->Text;
Form1->ADOQuery2->Parameters->ParamByName("time1")->Value=sDateEdit1->Date.DateString();
Form1->ADOQuery2->Parameters->ParamByName("time2")->Value=sDateEdit2->Date.DateString();
Form1->ADOQuery2->Open();
frxReport1->ShowReport();
- в данном случае при вызове отчета НД надо обязательно каждый раз закрывать.


Если очень горит, то могу помочь удаленно.
Смотрите ПМ.
1
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 167
02.05.2013, 16:59  [ТС]
Immortal, ты не поверишь на сколько сильно горит, через неделю диплом защищать, а я до сих пор с этой программой вожусь
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
02.05.2013, 19:59
Didilom,
Цитата Сообщение от Didilom Посмотреть сообщение
сильно горит
Так я же Вам написал личное сообщение с предложением помочь. Читайте.
0
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 167
03.05.2013, 23:49  [ТС]
Вот Бд, запрос называется "на проверку"
BD.rar
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
04.05.2013, 00:07
Didilom, ух ты! Джоины пошли - одобряю
Однако результат не соотвтетствует действительности: подсчитайте сами сколько Иванов заработал за апрель (вручную) и сравните с результатом Вашего запроса.
0
4 / 4 / 0
Регистрация: 23.01.2013
Сообщений: 167
04.05.2013, 00:10  [ТС]
До этого (незнаю что я сделал), были две строчки и одну из них я проверил было правильно. Потом что то сделал появилась одна строчка и неправильно :-)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.05.2013, 00:10
Помогаю со студенческими работами здесь

Выдавать сообщение через интервал времени, указанный в TextBox
Даны textbox1,2 и 1 timer1. в textbox1 задается начальное время а в textbox2 минуты. Надо чтобы timer1 выводил msgbox() каждые...

Отчет за указанный период времени QuickReport
Помогите пожалуйста разобраться с ошибкой при нажатии Кнопки Отчет. Выскакивает такая ошибка.Вот код программыprocedure...

Отчет по выбранному сотруднику
Лабораторная работа. Считаю зар.плату сотрудникам. Есть отчет, который выводит список всех сотрудников и их зар.платы, можно ли как то...

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

Определить, сколько будет времени через заданный интервал времени
Текущее показание электронных часов: m часов, n минут и k секунд. Какое время будут показывать часы через p ч q мин и r c? Помогите,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru