Диплом: Автоматизация учета рабочего времени и расчета заработной платы на предприятии ОАО "Пелла"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
107
begin
run_procedure := False;
form_sotrudnik.Label26.Caption := 'Не введен логин';
end
else
if form_sotrudnik.Button_add.Caption = 'Добавить' then
begin
buf_zapros := 'SELECT login FROM login_password WHERE login =
'+buf_kav+form_sotrudnik.Edit_login.Text+buf_kav+';';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.Open;
if datamodule1.Query_buf.RecordCount <> 0 then begin
run_procedure := False;
form_sotrudnik.Label26.Caption := 'Такой логин есть в БД';
end;
end;
if length(form_sotrudnik.Edit_password.Text) < 8 then
begin
run_procedure := False; form_sotrudnik.Label27.Caption := 'Пароль меньше 8 символов';
end; end;
if form_sotrudnik.DBGrid_dolgnost.DataSource.DataSet.RecordCount = 0 then
begin
run_procedure := False; form_sotrudnik.Label10.Caption := 'Не выбрана должность';
end;
//проверка закнчена
if run_procedure then
begin
if form_sotrudnik.Button_add.Caption = 'Добавить' then
add_sotrudnik;
if form_sotrudnik.Button_add.Caption = 'Исправить' then
update_sotrudnik;
end;
end;
procedure TForm_sotrudnik.update_sotrudnik;
var buf_kav, buf_zapros : string;
begin
buf_kav := '''';
if (length(Form_sotrudnik.Edit_login.Text) <> 0) AND (length(form_sotrudnik.Edit_password.Text) <> 0) then
begin
buf_zapros := 'UPDATE login_password SET login = '+buf_kav+form_sotrudnik.Edit_login.Text+buf_kav+','
108
+'password_user= '+buf_kav+form_sotrudnik.Edit_password.Text+buf_kav
+' WHERE login = '+buf_kav+form_sotrudnik.Label_login.Caption+buf_kav+';';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.ExecSQL;
buf_zapros :='UPDATE sotrudnik SET tabel_nomer = '+buf_kav+form_sotrudnik.Edit_tabel.Text+buf_kav+','
+'Family = '+buf_kav+form_sotrudnik.Edit_family.Text+buf_kav+','
+'First_name ='+buf_kav+form_sotrudnik.Edit_name.Text+buf_kav+','
+'second_name = '+buf_kav+form_sotrudnik.Edit_secondname.Text+buf_kav+','
+'id_dolgnost =
'+form_sotrudnik.DBGrid_dolgnost.DataSource.DataSet.FieldByName('id_dolgnost').AsString+','
+'phone = '+buf_kav+form_sotrudnik.Edit_phone.Text+buf_kav+','
+'login = '+buf_kav+form_sotrudnik.Edit_login.Text+buf_kav+','
+'dostup = ' +form_sotrudnik.DBGrid_dostup.DataSource.DataSet.FieldByName('id_dostup').AsString
+' WHERE tabel_nomer = '+buf_kav+form_sotrudnik.Label_tabel.Caption+buf_kav+';';
end
else
buf_zapros :='UPDATE sotrudnik SET tabel_nomer = '+buf_kav+form_sotrudnik.Edit_tabel.Text+buf_kav+','
+'Family = '+buf_kav+form_sotrudnik.Edit_family.Text+buf_kav+','
+'First_name ='+buf_kav+form_sotrudnik.Edit_name.Text+buf_kav+','
+'second_name = '+buf_kav+form_sotrudnik.Edit_secondname.Text+buf_kav+','
+'id_dolgnost =
'+form_sotrudnik.DBGrid_dolgnost.DataSource.DataSet.FieldByName('id_dolgnost').AsString+','
+'phone = '+buf_kav+form_sotrudnik.Edit_phone.Text+buf_kav
+' WHERE tabel_nomer = '+buf_kav+form_sotrudnik.Label_tabel.Caption+buf_kav+';';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.ExecSQL;
//чищу поля ввода
form_sotrudnik.Edit_tabel.Text := ''; form_sotrudnik.Edit_family.Text := '';
form_sotrudnik.Edit_name.Text := ''; form_sotrudnik.Edit_secondname.Text := '';
form_sotrudnik.Edit_phone.Text := ''; form_sotrudnik.Edit_login.Text := '';
form_sotrudnik.Edit_password.Text := ''; //обновляю данные на фоме
datamodule1.Query_view_sotrudnik.Active := False; datamodule1.Query_view_sotrudnik.Active := True;
view_dbgrid;
//переименовываю кнопку
form_sotrudnik.Button_add.Caption := 'Добавить';
end;
procedure TForm_sotrudnik.add_sotrudnik;
var buf_kav, buf_zapros : string;
begin
buf_kav := '''';
109
if (length(Form_sotrudnik.Edit_login.Text) <> 0) AND (length(form_sotrudnik.Edit_password.Text) <> 0) then
begin
buf_zapros := 'INSERT INTO login_password (login,password_user) VALUES ('
+buf_kav+form_sotrudnik.Edit_login.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_password.Text+buf_kav+');';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.ExecSQL;
buf_zapros :='INSERT INTO sotrudnik (tabel_nomer,Family,First_name,second_name, id_dolgnost, phone,
login,dostup) VALUES ('
+buf_kav+form_sotrudnik.Edit_tabel.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_family.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_name.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_secondname.Text+buf_kav+','
+form_sotrudnik.DBGrid_dolgnost.DataSource.DataSet.FieldByName('id_dolgnost').AsString+','
+buf_kav+form_sotrudnik.Edit_phone.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_login.Text+buf_kav+','
+form_sotrudnik.DBGrid_dostup.DataSource.DataSet.FieldByName('id_dostup').AsString+');';
end
else
buf_zapros :='INSERT INTO sotrudnik (tabel_nomer,Family,First_name,second_name, id_dolgnost, phone)
VALUES ('
+buf_kav+form_sotrudnik.Edit_tabel.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_family.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_name.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_secondname.Text+buf_kav+','
+form_sotrudnik.DBGrid_dolgnost.DataSource.DataSet.FieldByName('id_dolgnost').AsString+','
+buf_kav+form_sotrudnik.Edit_phone.Text+buf_kav
+');';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.ExecSQL;
//чищу поля ввода
form_sotrudnik.Edit_tabel.Text := ''; form_sotrudnik.Edit_family.Text := '';
form_sotrudnik.Edit_name.Text := ''; form_sotrudnik.Edit_secondname.Text := '';
form_sotrudnik.Edit_phone.Text := ''; form_sotrudnik.Edit_login.Text := '';
form_sotrudnik.Edit_password.Text := '';
//обновляю данные на фоме
datamodule1.Query_view_sotrudnik.Active := False; datamodule1.Query_view_sotrudnik.Active := True;
view_dbgrid;
end;
procedure TForm_sotrudnik.Button_deleteClick(Sender: TObject);
110
var buf_zapros, buf_kav, buf_login : string;
begin
buf_kav := '''';
if form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.RecordCount <> 0 then
begin
buf_login := form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Логин').AsString;
buf_zapros := 'DELETE FROM sotrudnik WHERE tabel_nomer
='+buf_kav+form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Табель_номер').AsString+buf_
kav+';';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.ExecSQL;
datamodule1.Query_buf.Close;
buf_zapros := 'DELETE FROM login_password WHERE login = '+buf_kav+buf_login+buf_kav+';';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.ExecSQL;
datamodule1.Query_buf.Close;
datamodule1.Query_view_sotrudnik.Active := False; datamodule1.Query_view_sotrudnik.Active := True;
view_dbgrid;
end;
end;
procedure TForm_sotrudnik.Button_updateClick(Sender: TObject);
begin
form_sotrudnik.Edit_tabel.Text :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Табель_номер').AsString;
form_sotrudnik.Label_tabel.Caption :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Табель_номер').AsString;
form_sotrudnik.Edit_family.Text :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Фамилия').AsString;
form_sotrudnik.Edit_name.Text :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Имя').AsString;
form_sotrudnik.Edit_secondname.Text :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Отчество').AsString;
form_sotrudnik.Edit_phone.Text :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Телефон').AsString;
//вывожу предприятие
form_sotrudnik.DBGrid_zavod.DataSource.DataSet.Locate('name_zavod',form_sotrudnik.DBGrid_sotrudnik.DataS
ource.DataSet.FieldByName('Предприятие').AsString,[]);
//вывожу должность
form_sotrudnik.DBGrid_otdel.DataSource.DataSet.Locate('Название_отдела',form_sotrudnik.DBGrid_sotrudnik.D
ataSource.DataSet.FieldByName('Отдел').AsString,[]);
111
view_dolgnost;
datamodule1.Query_view_dolgnost.Locate('Должность',form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.Fi
eldByName('Должность').AsString,[]);
form_sotrudnik.Edit_login.Text :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Логин').AsString;
datamodule1.Table_dostup.Locate('name_dostup',form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByN
ame('Уровень_доступа').AsString,[]);
form_sotrudnik.Label_login.Caption :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Логин').AsString;
form_sotrudnik.Button_add.Caption := 'Исправить';
end;
procedure TForm_sotrudnik.CheckBox_loginClick(Sender: TObject);
begin
if form_sotrudnik.CheckBox_login.Checked = True then
form_sotrudnik.GroupBox_login.Visible := False
else
form_sotrudnik.GroupBox_login.Visible := True;
end;
procedure TForm_sotrudnik.FormCreate(Sender: TObject);
var buf_zapros : string;
begin clear_label;end;
procedure TForm_sotrudnik.FormShow(Sender: TObject);
begin
datamodule1.Table_zavod.active := False; datamodule1.Table_zavod.active := True;
datamodule1.Table_zavod_view.Active := False; datamodule1.Table_zavod_view.Active := True;
view_sotrudnik; view_otdel; view_dolgnost;
end;
procedure TForm_sotrudnik.view_sotrudnik;
var buf_kav, buf_zapros : string;
begin
buf_zapros := 'SELECT sotrudnik.tabel_nomer as Табель_номер, sotrudnik.family as Фамилия,
sotrudnik.first_name as Имя, '
+' sotrudnik.second_name as Отчество, sotrudnik.phone as Телефон, zavod.name_zavod as Предприятие,
otdel.name_otdel as'
+' Отдел, dolgnost.name_dolgnost as Должность, dolgnost.oklad as Оклад, login_password.login as Логин,
dostup.name_dostup as Уровень_доступа '
+' FROM dostup RIGHT JOIN (login_password RIGHT JOIN ((zavod INNER JOIN (otdel INNER JOIN
dolgnost ON otdel.id_otdel = dolgnost.id_otdel) ON '
+' zavod.id_zavod = otdel.id_zavod) INNER JOIN sotrudnik ON dolgnost.id_dolgnost = sotrudnik.id_dolgnost)
ON login_password.login = sotrudnik.login) ON dostup.id_dostup = sotrudnik.dostup '
112
+' ORDER BY sotrudnik.family, sotrudnik.first_name, sotrudnik.second_name;';
datamodule1.Query_view_sotrudnik.Close; datamodule1.Query_view_sotrudnik.SQL.Clear;
datamodule1.Query_view_sotrudnik.SQL.Text := buf_zapros; datamodule1.Query_view_sotrudnik.Open;
view_dbgrid;end;
procedure TForm_sotrudnik.view_dolgnost;
Var buf_zapros : string;
begin
if form_sotrudnik.DBGrid_otdel.DataSource.DataSet.RecordCount <> 0 then
begin
buf_zapros := 'SELECT dolgnost.id_dolgnost, dolgnost.name_dolgnost as Должность, dolgnost.oklad as Оклад'
+' FROM otdel INNER JOIN dolgnost ON otdel.id_otdel = dolgnost.id_otdel '
+' WHERE otdel.id_otdel =
'+form_sotrudnik.DBGrid_otdel.DataSource.DataSet.FieldByName('id_otdel').AsString
+' ORDER BY dolgnost.name_dolgnost;';
datamodule1.Query_view_dolgnost.Close; datamodule1.Query_view_dolgnost.SQL.Clear;
datamodule1.Query_view_dolgnost.SQL.Text := buf_Zapros; datamodule1.Query_view_dolgnost.Open;
view_dbgrid_dolgnost; end;
end;
procedure TForm_sotrudnik.view_otdel;
var buf_zapros : string;
begin
if form_sotrudnik.DBGrid_zavod.DataSource.DataSet.RecordCount <> 0 then
begin
buf_zapros := 'SELECT otdel.id_otdel, otdel.name_otdel as Название_отдела '
+' FROM otdel '
+' WHERE otdel.id_zavod =
'+form_sotrudnik.DBGrid_zavod.DataSource.DataSet.FieldByName('id_zavod').AsString
+' ORDER BY otdel.name_otdel;'; datamodule1.Query_otdel_view.Close;
datamodule1.Query_otdel_view.SQL.Clear; datamodule1.Query_otdel_view.SQL.Text := buf_zapros;
datamodule1.Query_otdel_view.Open; view_dbgrid_otdel;
view_dolgnost_view; end;
end;
procedure TForm_sotrudnik.view_dbgrid_otdel;
begin
form_sotrudnik.DBGrid_otdel.Columns[0].Visible := False; form_sotrudnik.DBGrid_otdel.Columns[1].Width :=
280;
end;
procedure TForm_sotrudnik.view_dolgnost_view;
var buf_zapros : string;
begin
113
if form_sotrudnik.DBGrid_otdel.DataSource.DataSet.RecordCount <> 0 then
buf_Zapros := 'SELECT dolgnost.id_dolgnost, dolgnost.name_dolgnost as Должность, dolgnost.oklad as Оклад '
+' FROM dolgnost '
+' WHERE dolgnost.id_otdel =
'+form_sotrudnik.DBGrid_otdel.DataSource.DataSet.FieldByName('id_otdel').AsString
+';'
else
buf_Zapros := 'SELECT dolgnost.id_dolgnost, dolgnost.name_dolgnost as Должность, dolgnost.oklad as
Оклад '
+' FROM dolgnost '
+' WHERE dolgnost.id_otdel = -1;'; datamodule1.Query_dolgnost.Close;
datamodule1.Query_dolgnost.SQL.Clear; datamodule1.Query_dolgnost.SQL.Text := buf_zapros;
datamodule1.Query_dolgnost.Open; view_dbgrid_dolgnost;
end;
procedure TForm_sotrudnik.view_dbgrid_dolgnost;
begin
form_sotrudnik.DBGrid_dolgnost.Columns[0].Visible := False;
form_sotrudnik.DBGrid_dolgnost.Columns[1].Width := 200;
form_sotrudnik.DBGrid_dolgnost.Columns[2].Width := 80;
end;
procedure TForm_time.clear_label;
begin
form_time.Label2.Caption := '';
end;
procedure TForm_time.Button1Click(Sender: TObject);
var run_procedure : boolean;
begin
//чищу сообщение об ошибке
clear_label;
//присваиваю начальные значения
run_procedure := True;
try
Strtofloat(form_time.Edit_time.Text);
except
on EConvertError do
begin
run_procedure := False;
form_time.Label2.Caption := 'Не верно введено время';
end; //begib on
end;//try
//проверка закнчена
if run_procedure then
begin
add_time;
114
end;
end;
procedure TForm_time.Button_saveClick(Sender: TObject);
var buf_zapros : string;
i : integer;
buf_kav : string;
myYear, myMonth, myDay : Word;
date_time : string;
begin
if form_time.StringGrid_time.RowCount <> 1 then
begin
buf_kav := '''';
DecodeDate(form_time.MonthCalendar1.Date, myYear, myMonth, myDay);
date_time := buf_kav+inttostr(myYear)+'-'+inttostr(myMonth)+'-'+inttostr(myDay)+buf_kav;//YYYY-MM-DD
for i := 1 to form_time.StringGrid_time.RowCount-1 do
begin
//узнаю есть ли запись за это день. Если есть - то апдейт, если нет - инсерт
buf_zapros := 'SELECT work_time.kolvo_hours '
+' FROM sotrudnik INNER JOIN work_time ON sotrudnik.tabel_nomer = work_time.tabel_nomer '
+' WHERE sotrudnik.tabel_nomer = '+ buf_kav+form_time.StringGrid_time.Cells[0,i]+buf_kav
+' AND work_time.date_work = '+date_time+';';
datamodule1.Query_buf.Close;
datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros;
datamodule1.Query_buf.Open;
if datamodule1.Query_buf.RecordCount = 0 then
buf_zapros := 'INSERT INTO work_time (tabel_nomer,date_work,kolvo_hours) VALUES ('
+buf_kav+form_time.StringGrid_time.Cells[0,i]+buf_kav+','
+date_time+','
+form_time.StringGrid_time.Cells[2,i]+')'
+';'
else
buf_zapros := 'UPDATE work_time SET kolvo_hours = '+form_time.StringGrid_time.Cells[2,i]
+' WHERE tabel_nomer = ' +buf_kav+form_time.StringGrid_time.Cells[0,i]+buf_kav
+' AND date_work = '+date_time
+';';
datamodule1.Query_buf.Close;
datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros;
datamodule1.Query_buf.ExecSQL;
datamodule1.Query_buf.Close;
end;
end;
end;
procedure TForm_time.add_time;
var i : integer;
begin
if form_time.StringGrid_time.RowCount <> 1 then
begin
for i := 1 to form_time.StringGrid_time.RowCount do
begin
form_time.StringGrid_time.Cells[2,i] := form_time.Edit_time.Text;
end;
end;
115
end;
procedure TForm_time.DBGrid_otdelCellClick(Column: TColumn);
begin
view_sotrudnik;
end;
procedure TForm_time.DBGrid_zavodCellClick(Column: TColumn);
begin
view_otdel;
end;
procedure TForm_time.Edit_timeKeyPress(Sender: TObject; var Key: Char);
begin
if Key in ['0'..'9','.',#8] then
else key :=#0
end;
procedure TForm_time.FormCreate(Sender: TObject);
begin
clear_label;
end;
procedure TForm_time.FormShow(Sender: TObject);
begin
view_otdel;
end;
procedure TForm_time.MonthCalendar1Click(Sender: TObject);
begin
view_sotrudnik;
form_time.Label3.Caption := 'Рабочее время за '+datetostr(form_time.MonthCalendar1.Date);
end;
procedure TForm_time.StringGrid_timeKeyPress(Sender: TObject; var Key: Char);
begin
if Key in ['0'..'9','.',#8] then
else key :=#0
end;
procedure TForm_time.view_sotrudnik;
var buf_Zapros : string;
buf_kav : string;
i : integer;
myYear, myMonth, myDay : Word;
date_time : string;
kolvo_hours1 : real;
begin
buf_kav := '''';
form_time.Label3.Caption := 'Количество учтенного времени за '+datetostr(form_time.MonthCalendar1.Date);
//получаю дату
DecodeDate(form_time.MonthCalendar1.Date, myYear, myMonth, myDay);
date_time := buf_kav+inttostr(myYear)+'-'+inttostr(myMonth)+'-'+inttostr(myDay)+buf_kav;//YYYY-MM-DD
Form_time.StringGrid_time.ColWidths[0] := 80;//табельный номер
Form_time.StringGrid_time.ColWidths[1] := 250;//фио
Form_time.StringGrid_time.ColWidths[2] := 70;//время
116
buf_zapros := 'SELECT sotrudnik.tabel_nomer, CONCAT(sotrudnik.family,'+buf_kav+' '+buf_kav+',
sotrudnik.first_name,'+buf_kav+' '+buf_kav+', sotrudnik.second_name) AS FIO '
+' FROM otdel INNER JOIN (dolgnost INNER JOIN sotrudnik ON dolgnost.id_dolgnost =
sotrudnik.id_dolgnost) ON otdel.id_otdel = dolgnost.id_otdel '
+' WHERE otdel.id_otdel = '+form_time.DBGrid_otdel.DataSource.DataSet.FieldByName('id_otdel').AsString
+' ORDER BY sotrudnik.family, sotrudnik.first_name;';
datamodule1.Query_buf.Close;
datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_Zapros;
datamodule1.Query_buf.Open;
//вывожу количество строк
form_time.StringGrid_time.RowCount := datamodule1.Query_buf.RecordCount+1;
//заполняю столбцы
i:= 0;
form_time.StringGrid_time.Cells[0,i] := 'Табель_номер';
form_time.StringGrid_time.Cells[1,i] := 'ФИО';
form_time.StringGrid_time.Cells[2,i] := 'Время';
datamodule1.Query_buf.First;
i := 1;
while not datamodule1.Query_buf.eof do
begin
//узнаю время работы
buf_Zapros := 'SELECT IfNull(kolvo_hours,0) as kolvo_hours1'
+' FROM work_time '
+' WHERE work_time.date_work = '+date_time
+' AND work_time.tabel_nomer =
'+buf_kav+datamodule1.Query_buf.FieldByName('tabel_nomer').AsString+buf_kav+';';
datamodule1.Query_buf1.Close;
datamodule1.Query_buf1.SQL.Clear;
datamodule1.Query_buf1.SQL.Text := buf_Zapros;
datamodule1.Query_buf1.Open;
if datamodule1.Query_buf1.RecordCount = 0 then
kolvo_hours1 := 0
else
kolvo_hours1 := datamodule1.Query_buf1.FieldByName('kolvo_hours1').AsFloat;
form_time.StringGrid_time.Cells[0,i] := datamodule1.Query_buf.FieldByName('tabel_nomer').AsString;
form_time.StringGrid_time.Cells[1,i] := datamodule1.Query_buf.FieldByName('FIO').AsString;
form_time.StringGrid_time.Cells[2,i] := floattostr(kolvo_hours1);
i:= i+1;
datamodule1.Query_buf.Next;
end;
end;
procedure TForm_time.view_otdel;
var buf_zapros : string;
begin
if form_time.DBGrid_zavod.DataSource.DataSet.RecordCount <> 0 then
begin
buf_zapros := 'SELECT otdel.id_otdel, otdel.name_otdel as Название_отдела '
+' FROM otdel '
+' WHERE otdel.id_zavod =
'+form_time.DBGrid_zavod.DataSource.DataSet.FieldByName('id_zavod').AsString
+' ORDER BY otdel.name_otdel;';
datamodule1.Query_otdel_view.Close;
datamodule1.Query_otdel_view.SQL.Clear;
datamodule1.Query_otdel_view.SQL.Text := buf_zapros;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)