Помогите, пожалуйста, сделать сортировку и отчет на печать...

Milaya2015

Привет всем помогите пожалуйста сделать сортировку и отчет на печать, для Form 2. Пример ,как примерно выглядит скинула вместе с программой. Помогите пожалуйста.
14 ответов

Milaya2015

лучше скопируй сюда код который не работает


Milaya2015

Помогите пожалуйста с сортировкой и отчетом. Это от другой программы код (Кнопка сортировка) :
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
Form2.ADOQuery1.Close;
Form2.ADOQuery1.SQL.Clear;
Form2.ADOQuery1.SQL.Add('Select * from Медперсонал ORDER BY');
case form2.RadioGroup1.ItemIndex of
0:Form2.ADOQuery1.SQL.Add(' №_медработника');
1:Form2.ADOQuery1.SQL.Add(' Фамилия');
2:Form2.ADOQuery1.SQL.Add (' Имя');
3:Form2.ADOQuery1.SQL.Add (' Отчество');
4:Form2.ADOQuery1.SQL.Add (' Адрес');
5:Form2.ADOQuery1.SQL.Add (' Телефон');
6:Form2.ADOQuery1.SQL.Add( '№_пациента');
7:Form2.ADOQuery1.SQL.Add( ' Должность ');
end;
IF Form2.RadioGroup2.ItemIndex= 1 then  Form2.ADOQuery1.SQL.Add('Desc');
Form2.ADOQuery1.Open;
form2.DBGrid1.Fields[0].DisplayWidth:=5 ;
form2.DBGrid1.Fields[1].DisplayWidth:=20;
form2.DBGrid1.Fields[2].DisplayWidth:=20;
form2.DBGrid1.Fields[3].DisplayWidth:=20;
form2.DBGrid1.Fields[4].DisplayWidth:=30;
form2.DBGrid1.Fields[5].DisplayWidth:=10;
form2.DBGrid1.Fields[6].DisplayWidth:=10;
form2.DBGrid1.Fields[7].DisplayWidth:=15;
 
end;


Milaya2015

до 5й строки и от 17 все правильноа вот кусок
case form2.RadioGroup1.ItemIndex of 0:Form2.ADOQuery1.SQL.Add(' №_медработника'); 1:Form2.ADOQuery1.SQL.Add(' Фамилия'); 2:Form2.ADOQuery1.SQL.Add (' Имя'); 3:Form2.ADOQuery1.SQL.Add (' Отчество'); 4:Form2.ADOQuery1.SQL.Add (' Адрес'); 5:Form2.ADOQuery1.SQL.Add (' Телефон'); 6:Form2.ADOQuery1.SQL.Add( '№_пациента'); 7:Form2.ADOQuery1.SQL.Add( ' Должность '); end; IF Form2.RadioGroup2.ItemIndex= 1 then *Form2.ADOQuery1.SQL.Add('Desc');
это ВСЕ неправильноты знаешь что такое SQL запрос?


Milaya2015

Нет, не знаю. Помогите мне пожалуйста


Milaya2015

хе хе я ошибся))) ORDER BY не заметилперед
Form2.ADOQuery1.Open;
вставь строку
Showmessage(Form2.ADOQuery1.SQL.text);
сделай скрин и выложи сюда


Milaya2015

Вот так должно быть? Как это сделать в своей программе? Помогите на моей программе.
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
Form2.ADOQuery1.Close;
Form2.ADOQuery1.SQL.Clear;
Form2.ADOQuery1.SQL.Add('Select * from Сотрудники ORDER BY');
case form2.RadioGroup1.ItemIndex of
0:Form2.ADOQuery1.SQL.Add(' Код_сотрудника');
1:Form2.ADOQuery1.SQL.Add(' Фамилия');
2:Form2.ADOQuery1.SQL.Add (' Имя');
3:Form2.ADOQuery1.SQL.Add (' Отчество');
4:Form2.ADOQuery1.SQL.Add (' Пол');
5:Form2.ADOQuery1.SQL.Add (' Возраст');
6:Form2.ADOQuery1.SQL.Add( 'Телефон');
7:Form2.ADOQuery1.SQL.Add( ' Адрес ');
8:Form2.ADOQuery1.SQL.Add( ' Код_должности ');
9:Form2.ADOQuery1.SQL.Add( ' Код ученой_степени ');
end;
IF Form2.RadioGroup2.ItemIndex= 1 then  Form2.ADOQuery1.SQL.Add('Desc');
Showmessage(Form2.ADOQuery1.SQL.text)
Form2.ADOQuery1.Open;
form2.DBGrid1.Fields[0].DisplayWidth:=5 ;
form2.DBGrid1.Fields[1].DisplayWidth:=20;
form2.DBGrid1.Fields[2].DisplayWidth:=20;
form2.DBGrid1.Fields[3].DisplayWidth:=20;
form2.DBGrid1.Fields[4].DisplayWidth:=30;
form2.DBGrid1.Fields[5].DisplayWidth:=10;
form2.DBGrid1.Fields[6].DisplayWidth:=10;
form2.DBGrid1.Fields[7].DisplayWidth:=15;
 
end;
Помогите пожалуйста с моим приложением , с Form2


Milaya2015

0:Form2.ADOQuery1.SQL.Add(' Код_сотрудника'); 1:Form2.ADOQuery1.SQL.Add(' Фамилия'); 2:Form2.ADOQuery1.SQL.Add (' Имя'); 3:Form2.ADOQuery1.SQL.Add (' Отчество'); 4:Form2.ADOQuery1.SQL.Add (' Пол'); 5:Form2.ADOQuery1.SQL.Add (' Возраст'); 6:Form2.ADOQuery1.SQL.Add( 'Телефон');
нет пробелов в конце строки. А в 6 и в начале. У тебя получается
SELECT * FROM Сотрудники ORDER BY Код_сотрудникаDESC
а это ошибка синтаксиса. А еще при использовании кириллицы и имен полей с пробелами данные имена необходимо обрамлять квадратными скобками [Код_сотрудника]


Milaya2015

А вот SpeedButton можно заменить на Button? Можете помочь на моей программе с сортировкой, я не знаю как дальше делать, помогите пожалуйста.


Milaya2015

А вот SpeedButton можно заменить на Button
да хоть на bitBtn. Можно, конечно.
я не знаю как дальше делать,
Что именно делать? На ошибки в запросе я указал. Что еще нужно? БД где? Где данные?


Milaya2015

Я все сбросила в Сортировка.zip и БД.


Milaya2015

Milaya2015, может я в чем-то и не прав, но я в упор не вижу в архиве файл labor.accdb


Milaya2015

Извините, вот.


Milaya2015

посмотрю.


Milaya2015

1. Забываем навсегда про компоненты тапа Table (AdoTable). Есть Query и SQL 2. Я создал тебе DataModule (Unit6). Отныне и навсегда Connection должен быть один и желательно на этой форме (как сейчас) Если квери не создаешь программно, тогда и все квери тоже туда. Остальные AdoConnection и Adotable я тоже удалил. Надеюсь по примеру на Form2 поймешь, как прикрутить Query к остальным таблицам. В коде написал парочку комментариев, но без фанатизма. Новый проект во вложении. Свою БД тоже замени, у тебя там ошибка была я поправил.