Не, такое мне ни в жисть не воспроизвести
Но код приведу:
Код:
browseQuery = "SELECT fNoPay, fOnlyTeacher, fChecked, ct.order1, ct.date1, ct.time1, ct.LectureHours, ct.PracticalHours, ct.GrConsHours, ct.ExamHours, themes.name, CONCAT_WS(' ', t.surname, t.name, t.patronymic), ct.subgroup FROM coursethemes AS ct, themes, teachers AS t WHERE ct.idCourse=:IroCourseThemes.brw.idCourse AND themes.id=ct.idTheme AND t.id=idTeacher ORDER BY ct.order1";
changeQuery = "SELECT ct.IDTheme, ct.IDTeacher, ct.Order1, ct.Date1, ct.Time1, ct.LectureHours, ct.PracticalHours, ct.GrConsHours, ct.ExamHours, ct.FChecked, ct.FNoPay, ct.FOnlyTeacher, themes.name, CONCAT_WS(' ', t.Surname, t.Name, t.Patronymic), ct.subgroup FROM coursethemes AS ct LEFT JOIN themes ON themes.id=ct.IDTheme LEFT JOIN teachers AS t ON t.ID=ct.IDTeacher WHERE ct.idCourse=:IroCourseThemes.brw.idCourse AND ct.order1=:IroCourseThemes.selected.order1";
updateQuery = "UPDATE coursethemes SET IDTeacher=:IroCourseThemes.frm.rec.idTeacher, IDTheme=:IroCourseThemes.frm.rec.idTheme, Date1=:IroCourseThemes.frm.rec.date1, Time1=:IroCourseThemes.frm.rec.time1, LectureHours=:IroCourseThemes.frm.rec.l, PracticalHours=:IroCourseThemes.frm.rec.p, GrConsHours=:IroCourseThemes.frm.rec.g, ExamHours=:IroCourseThemes.frm.rec.e, FChecked=:IroCourseThemes.frm.rec.fChecked, FNoPay=:IroCourseThemes.frm.rec.fNoPay, FOnlyTeacher=:IroCourseThemes.frm.rec.fOnlyTeacher, subgroup=:IroCourseThemes.frm.rec.subgroup WHERE idCourse=:IroCourseThemes.brw.idCourse AND order1=:IroCourseThemes.frm.rec.order1";
deleteQuery = "DELETE FROM coursethemes WHERE idCourse=:IroCourseThemes.brw.idCourse AND order1=:IroCourseThemes.selected.order1";
insertQuery = "INSERT INTO coursethemes SET idCourse=:IroCourseThemes.brw.idCourse, idTheme=:IroCourseThemes.frm.rec.idTheme, idTeacher=:IroCourseThemes.frm.rec.idTeacher, order1=:IroCourseThemes.frm.rec.order1, date1=:IroCourseThemes.frm.rec.date1, time1=:IroCourseThemes.frm.rec.time1, LectureHours=:IroCourseThemes.frm.rec.l, PracticalHours=:IroCourseThemes.frm.rec.p, fChecked=:IroCourseThemes.frm.rec.fChecked, fNoPay=:IroCourseThemes.frm.rec.fNoPay, fOnlyTeacher=:IroCourseThemes.frm.rec.fOnlyTeacher, GrConsHours=:IroCourseThemes.frm.rec.g, ExamHours=:IroCourseThemes.frm.rec.e, subgroup=:IroCourseThemes.frm.rec.subgroup";
checkQuery = "UPDATE coursethemes SET FChecked=1 WHERE idCourse=:IroCourseThemes.brw.idCourse AND order1=:IroCourseThemes.selected.order1";
uncheckQuery = "UPDATE coursethemes SET FChecked=0 WHERE idCourse=:IroCourseThemes.brw.idCourse AND order1=:IroCourseThemes.selected.order1";
checkAllQuery = "UPDATE coursethemes SET FChecked=1 WHERE idCourse=:IroCourseThemes.brw.idCourse";
uncheckAllQuery = "UPDATE coursethemes SET FChecked=0 WHERE idCourse=:IroCourseThemes.brw.idCourse";
browseCols = 11; (* кол-во столбцов в таблице браузера *)
lightGreen = 14608588;
lightBlue = 14608588;
wrongDateCol = 2;
dateCol = 2;
timeCol = 3;
hrsCol = 9;
settingsBrwThemes* = 'brwthm'; (* экспорт для IroCourses, hook, OnCloseCommon *)
TYPE
BrowseRec = RECORD
fNoPay*: INTEGER;
fOnlyTeacher*: INTEGER;
fChecked*: INTEGER;
order1*: INTEGER;
date1*: Dates.Date;
time1*: INTEGER; (* кларионовский формат времени - кол-во 1/100 сек с полуночи. *)
l*, p*, g*, e*: INTEGER;
themeName*: ARRAY 250 OF CHAR;
fio*: ARRAY 50 OF CHAR; (* фио преподавателя *)
subgroup*: INTEGER; (* 06.02.2009 15:26:18 номер подгруппы *)
END;
FormRec = RECORD
idTheme*: INTEGER;
idTeacher*: INTEGER;
order1*: INTEGER;
date1*: Dates.Date;
time1*: INTEGER; (* кларионовский формат времени - кол-во 1/100 сек с полуночи. *)
l*, p*, g*, e*: INTEGER;
fChecked*: INTEGER;
fNoPay*: INTEGER;
fOnlyTeacher*: INTEGER;
themeName*: ARRAY 250 OF CHAR;
fio*: ARRAY 50 OF CHAR; (* фио преподавателя *)
subgroup*: INTEGER; (* 06.02.2009 15:26:18 номер подгруппы *)
END;
CourseThemeRec = RECORD
fChecked*: INTEGER;
fOnlyTeacher*: INTEGER;
order1*: INTEGER;
date1*: Dates.Date;
time1*: INTEGER; (* кларионовский формат времени - кол-во 1/100 сек с полуночи. *)
l*, p*, g*, e*: INTEGER;
themeName*: ARRAY 256 OF CHAR;
fio*: ARRAY 50 OF CHAR; (* фио преподавателя *)
subgroup*: INTEGER; (* 06.02.2009 15:26:18 номер подгруппы *)
END;
OrderRec = RECORD
order1*: INTEGER;
fChecked*: INTEGER;
END;
MaxOrderRec = RECORD
order1*: INTEGER;
END;
(* Свойство, размещаемое в ячейке для хранения идентификатора записи *)
IdProp = POINTER TO RECORD order1, fChecked: INTEGER END;
SearchTeacherHook = POINTER TO RECORD (IroTeachers.SearchHook) END;
SearchThemeHook = POINTER TO RECORD (IroThemes.SearchHook) END;
(* 06.12.2008 13:32:07 Иван Реализация вытаскивания занятий курса *)
CourseTheme* = POINTER TO RECORD
course*: INTEGER;
order1*: INTEGER;
END;
DragDrop = POINTER TO RECORD (GridTables.DragDrop) END;
DragData = POINTER TO RECORD ct: CourseTheme END;
Pause = POINTER TO RECORD (Services.Action)
on: BOOLEAN;
END;
UpdateHook = POINTER TO RECORD (IroForms.FormHook) END;
InsertHook = POINTER TO RECORD (IroForms.FormHook) END;
CurDates = RECORD
startDate*, endDate*: Dates.Date
END;
(* 07.05.2009 11:08:44 "Подгруппа" здесь - это занятие, проходящее в одно и то же время с остальными. *)
Subgroup = POINTER TO RECORD (ListsCollection.Item)
date: Dates.Date;
time: INTEGER;
hours: INTEGER;
row: INTEGER;
n: BYTE (* количество найденных подгрупп данной темы (тема тут тоже как бы условная, не всегда темы одинаковые) *)
END;
Finder = RECORD (ListsCollection.Comparator)
date: Dates.Date;
time: INTEGER;
row: INTEGER;
END;
Colorator = RECORD (ListsCollection.Action)
t: IroSys.Table
END;
ThmBrowse = POINTER TO RECORD (IroForms.Browse) END;
VAR
(* свойства для выравнивания содержимого ячеек *)
lpCenter, lpLeft, lpRight: GridProps.LabelProp;
iconSel, iconNotSel: GridCells.Bitmap;
(* интерактор браузера *)
brw*: RECORD
browse: ThmBrowse;
idCourse*: INTEGER;
rec: BrowseRec;
t*: GridTables.Table;
dates: CurDates;
(* 05.06.2009 11:46:33 работа с подгруппами *)
finder: Finder;
colorator: Colorator;
subgroups: ListsCollection.Iterable;
END;
(* структура для хранения идентификатора записи, выбранной пользователем в таблице *)
selected*: RECORD
order1*: INTEGER;
fChecked*: INTEGER
END;
frm*: RECORD
rec*: FormRec;
noPay*, onlyTeacher*: BOOLEAN;
total*: INTEGER;
restoreFromPrevInsert*: BOOLEAN;
saveIdTeacher*: INTEGER;
saveDate1*: Dates.Date;
time*: Dates.Time;
pause: Pause;
blanks*: Dialog.List; (* 22.01.2009 11:42:56 печать бланков\документов по списку занятий *)
END;