Показать сообщение отдельно
  #19  
Старый 22.02.2012, 00:52
mejikuu mejikuu вне форума
Прохожий
 
Регистрация: 22.02.2012
Сообщения: 1
Репутация: 10
Злость

Ситуация такая: надо сделать что-то вроде расписания

сам "экспорт":
Код:
Sheet.Cells[idn+1,gpi]:=predmet1.text;
 Sheet.Cells[idn+2,gpi]:=prepod1.text;

что касается расположения дней все работает

Код:
//if ComboBoxDen.Text='Понедельник' then idn:=1;
 //if ComboBoxDen.Text='Вторник' then idn:=11;
 //if ComboBoxDen.Text='Среда' then idn:=21;
 //if ComboBoxDen.Text='Четверг' then idn:=31;
 //if ComboBoxDen.Text='Пятница' then idn:=41;
 //if ComboBoxDen.Text='Суббота' then idn:=51;

а вот тут уже проблемка возникает...

в DBLookUpComboBox есть группы: КС-2, КС-1 и т.д.
Код:
if group1.Text='КС-2' then gpi:=3;
 if group1.Text='КС-1' then gpi:=4;


порядок групп идет из БД, т.е. если вначале добавить, например, СТ-1, то он будет заполнять ячейки уже СТ-1, а не КС-2..

т.е. нужно взять позицию из DBLookUpComboBox и указать с какой ячейки начинать..

попытался сделать так:
Код:
 if group1.Text='КС-2' then gpi:=strtoint(inttoStr(strToInt(adotable19.FieldBy Name('ID').AsString)+2));
т.е. выбранная позиция+2 (работает подобно if group1.Text='КС-2' then gpi:=3; )

надо что-то на подобии:
Код:
if adotable19.FieldByName('ID').AsString (или adotable19.Fields.Fields[1]) then gpi:=strtoint(inttoStr(strToInt(adotable19.FieldBy Name('ID').AsString)+2));

если пятая позиция то 5+2(7-й столбец)

при постороении книги группы так же берутся из базы:
Код:
gp:=3;
 ADOTable6.First;
 for gg:=0 to ADOTable6.RecordCount-1 do
 begin
 Sheet:=XLApp.Workbooks[1].WorkSheets['Расписание'];
 Sheet.Cells[1,gp]:=ADOTable6.Fields.Fields[1].AsString;
 Colum.Columns[gp].ColumnWidth:=20;
 Sheet.Cells[gp].HorizontalAlignment:=3;
 Sheet.Cells[gp].Borders.LineStyle:=-4119;
 Sheet.Cells[gp].Interior.Color:=rgb(230,230,230);
 Inc(gp);
 ADOTable6.Next;
 end;
Ответить с цитированием