![]() |
|
|
|
|
#1
|
|||
|
|||
|
Не могу считать некоторые данные из БД для дальнейшего занесения в Word.
Вот с этой частью базы работаю: http://www.delphisources.ru/forum/at...d=140009331 4 Добавляю в MS WORD: Код:
//Нормально заменяет строки в WORD'е $$$Group$$$ и $$$Course$$$ на данные из таблицы
Group:=DM.FindStudentInfo(DM.qStudents.Fields[0].AsInteger, 3);
FindAndReplace('$$$Group$$$', Group);
Course:=DM.FindStudentInfo(DM.qStudents.Fields[0].AsInteger, 6);
FindAndReplace('$$$Course$$$', Course);
//Оставляет без замены
DateBegin:=DM.FindStudentInfo(DM.qStudents.Fields[0].AsInteger,10);
FindAndReplace('$$$DateBegin$$$', DateBegin);
DateEnd:=DM.FindStudentInfo(DM.qStudents.Fields[0].AsInteger, 11);
FindAndReplace('$$$DateEnd$$$', DateEnd);Сам поиск. Код:
function TDM.FindStudentInfo(ID: integer; N: integer): string;
var LookupRes: Variant; Gr: string;
begin
if not tStudents.Active then tStudents.Open;
LookupRes := tStudents.Lookup ('IDStudent', ID, 'Surname;Name;Patronymic;Group;State');
if not VarIsNull(LookupRes) then
begin
if N>4 then
begin
Gr:=VarToStr(LookupRes[3]);
if not tGroups.Active then tGroups.Open;
LookupRes := tGroups.Lookup ('Group', Gr, 'Speciality;Course;Form;DateBegin;DateEnd');
if not VarIsNull(LookupRes) then result:=VarToStr(LookupRes[N-5])
else result:='';
if (N=5) and (result<>'') then
begin
Gr:=result;
if not tSpeciality.Active then tSpeciality.Open;
LookupRes := tSpeciality.Lookup ('Code', Gr, 'Speciality;Base');
if not VarIsNull(LookupRes) then result:=gr+' '+VarToStr(LookupRes[0])
else result:=Gr;
end;
end
else result:=VarToStr(LookupRes[N]);
end
else result:='';
end;Где что не так? |
|
#2
|
|||
|
|||
|
Вопрос снят. Поторопился. Сидел смотрел на код минут 15.
Пока не написал на форум, не нашел ошибку Код:
DateBegin:=DM.FindStudentInfo(DM.qStudents.Fields[0].AsInteger,8);
FindAndReplace('$$$DateBegin$$$', DateBegin);
DateEnd:=DM.FindStudentInfo(DM.qStudents.Fields[0].AsInteger, 9);
FindAndReplace('$$$DateEnd$$$', DateEnd);![]() |
|
#3
|
|||
|
|||
|
Дабы не создавать новой темы.
Есть форма с компонентами db, все данные обрабатываются нормально помимо одного DBCombobox. Необходимо записать в БД два значения, решил организовать через boolean. Как указать, чтобы из DBCombobox брались не строки, а ItemIndex? По крайней мере при добавлении этого параметра выдает ошибку, что "Выбранная надпись не boolean" Последний раз редактировалось MotoArhangel, 15.05.2014 в 11:09. |
|
#4
|
||||
|
||||
|
А вы пробовали явно привести к Boolean?
Код:
Boolean(ADOQuery1.FieldByName('State').Value) |
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
MotoArhangel (15.05.2014)
| ||
|
#5
|
|||
|
|||
|
Спасибо. Нашел ошибку.
|