powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Цикл или нет...
6 сообщений из 6, страница 1 из 1
Цикл или нет...
    #32134303
balbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HI господа программёры!!!

Нужно перегнать информацию из базы (Pdox) в Excel делаю ч/з OLE объект....
информация улетает все нормально....
в чем суть т.к. хочется облагородить отчет то нужны наименования колонок и соответственно их (колонок) размеры, а т.к. я даю возможность формировать отчет юзеру самостоятельно то не могу предположить сколько колонок он захочет. Поэтому пытаюсь сделать так.... sch-счетчик кол-ва колонок...
Код: plaintext
1.
2.
//Устанавливаем размер колонки
for I :=  1  to sch do
Sheet.Columns[''+IntToStr(I)+',1'].ColumnWidth := Query1.Fields[I- 1 ].DisplayWidth;

Ошибку выдает 'Variant does not reference an automation object'
Что бы было понятно что есть что, присвоение происходит таким образом работает нормально но нужно знать кол-во колонок.
Код: plaintext
Sheet.Columns['1,1'].ColumnWidth := Query1.Fields[ 0 ].DisplayWidth;

Может кто подскажет иной способ присвоения буду весьма признателен...
...
Рейтинг: 0 / 0
Цикл или нет...
    #32134304
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется так.
Код: plaintext
1.
2.
for I :=  1  to sch do
Sheet.Columns[''+IntToStr(I)+''].ColumnWidth := Query1.Fields[I- 1 ].DisplayWidth;


Второй индекс не нужен
...
Рейтинг: 0 / 0
Цикл или нет...
    #32134306
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и вообще, I в строку не надо переводить
Код: plaintext
1.
2.
for I :=  1  to sch do
Sheet.Columns[I].ColumnWidth := Query1.Fields[I- 1 ].DisplayWidth;
...
Рейтинг: 0 / 0
Цикл или нет...
    #32136141
balbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HI Cat2

СПАСИБО в который раз выручаешь.....
в строку всеже надо преобразовывать т.к. Excelю колько стрингу подовай, ну вобщем в таком варианте попёрло!!!!
Код: plaintext
1.
2.
//Устанавливаем размер колонки
for I :=  1  to sch do
Sheet.Columns['''+IntToStr(I)+'',1'].ColumnWidth := Query1.Fields[I- 1 ].DisplayWidth;
Тут цикл с присвоением простой все ясно, а вот дальше задача усложняется мне этим колонкам надо наименования передать...Вот тоже какой то цикл я думаю но радить ничего не могу...
Допускаю что наименования нужно брать с Caption полей Query но как брать и как присвоить???
В принципе как в Excel передать я знаю
Код: plaintext
1.
2.
//Наименования колонок
Sheet.Cells['1,4']:= 'Фамилия';
Sheet.Cells('1,4'):= cbFAM.Caption;
Но как это сделать заведома не зная сколько и каких колонок будет????
...
Рейтинг: 0 / 0
Цикл или нет...
    #32136164
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, у меня все без стрингов работает. И на 97, и на 2000, и на XP...

==========
В запросе переименуй имена полей на русские названия колонок
Код: plaintext
1.
2.
3.
n:= 5  //строка шапки
for i:=  0  to Query1.FieldCount- 1 
   cells[n,i+ 1 ].value:=Query1.Fields[i- 1 ].FieldName
...
Рейтинг: 0 / 0
Цикл или нет...
    #32136198
balbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ты КРУТ Cat2

Все у тебя легко и просто...
и стрингу у тебя Excel любит.....
ОК спасибо огромное Родина тебя не забудет!!!
п.м. Я в её лице.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Цикл или нет...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]