93
date_time_begin := buf_kav+inttostr(myYear)+'-'+inttostr(myMonth)+'-'+inttostr(myDay)+buf_kav;//YYYY-
MM-DD
DecodeDate(form_zapros1.MonthCalendar_end.Date, myYear, myMonth, myDay);
date_time_end := buf_kav+inttostr(myYear)+'-'+inttostr(myMonth)+'-'+inttostr(myDay)+buf_kav;//YYYY-MM-
DD
form_zapros1.StringGrid_time.ColWidths[0] := 90;//табельный номер
form_zapros1.StringGrid_time.ColWidths[1] := 250;//фио
form_zapros1.StringGrid_time.ColWidths[2] := 70;//время
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_zapros1.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_zapros1.StringGrid_time.RowCount := datamodule1.Query_buf.RecordCount+1;
//вывожу количество столбцов
form_zapros1.StringGrid_time.ColCount :=
DaysBetween(form_zapros1.MonthCalendar_end.Date,form_zapros1.MonthCalendar_begin.Date)+3+2;
//заполняю нулями
for i := 1 to form_zapros1.StringGrid_time.RowCount do
for j := 1 to form_zapros1.StringGrid_time.ColCount do
form_zapros1.StringGrid_time.Cells[j,i] := '0';
//заполняю столбцы
i:= 0; form_zapros1.StringGrid_time.Cells[0,i] := 'Табель_номер';
form_zapros1.StringGrid_time.Cells[1,i] := 'ФИО'; datamodule1.Query_buf.First;
i := 1;
//вывожу фио и табельный номер
while not datamodule1.Query_buf.eof do begin
form_zapros1.StringGrid_time.Cells[0,i] := datamodule1.Query_buf.FieldByName('tabel_nomer').AsString;
form_zapros1.StringGrid_time.Cells[1,i] := datamodule1.Query_buf.FieldByName('FIO').AsString;
i:= i+1; datamodule1.Query_buf.Next;
end;
//вывожу даты в загаловки
for i := 0 to form_zapros1.StringGrid_time.colCount-1 do
form_zapros1.StringGrid_time.Cells[i+2+2,0] := datetostr(incday(form_zapros1.MonthCalendar_begin.Date,i));