Вывод MEMO поля в Excel Atl 5.4

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
masygreen
партнер
Сообщения: 112
Зарегистрирован: Чт, 20/03/2008 09:10
Имя Фамилия: Максим Черепанов
Откуда: IT
Контактная информация:

Вывод MEMO поля в Excel Atl 5.4

Сообщение masygreen »

День добрый!
К новым патчам заявлено обновление функций вывода Excel
(Галактика 8.1(отпатченая по 30/12/2008), vip 5.4.14, Pervasive)
  • №5
    * ПРОБЛЕМА В ПИР: 103.3292
    * ПЕРВОЕ РЕШЕНИЕ: EXCELLIB3X_DLL_81010
    * КРАТКОЕ ОПИСАНИЕ: Функция для мемо-поля
    * ПРОЕКТ: Отчеты в XLS
    * ДЕТАЛИЗАЦИЯ: Отчеты в XLS в целом
    # ЧТО ИЗМЕНЕНО: Требуется вывод Memo-полей в Excel
    # КАК ИЗМЕНЕНО: Добавлена функция:
    xlAddCellStringValue(Value : shortstring; Row : longint = 0; Col : longint = 0)
    * * *

Пробую реализовать..........

Код: Выделить всё

.form 'test_2009'
.ard
.nameinlist 'Тест'
.var
Row_Count:integer;
.endvar
.create view a1 as select docinfo.textdata
from DocInfo
where ((281474976715921==DocInfo.cDoc
and word(0)==DocInfo.DocType
));
.begin
  xlCreateExcel('rep.xls',true);
  xlCreateMatrix(10,10);
  xlSTWriteToMatrix(1,1,'Привет!!!!!!!!!!!!');
  Row_Count:=2;
  _loop DocInfo
  {
  xlAddCellStringValue(docinfo.textdata,Row_Count,1);
  Row_Count:=Row_Count+1;
  }
  xlWriteMatrixToExcel(1,1);
  xlFreeMatrix;
  xlKillExcel;
  test_2009.fexit;
end.
.endform
Ошибка - немогу осуществить преобразование типа на строке xlAddCellStringValue(docinfo.textdata,Row_Count,1);


Кто нибудь уже победил данный функционал?
sanny
топ-софт
Сообщения: 9
Зарегистрирован: Ср, 06/02/2008 11:56
Имя Фамилия: Александр Позднев
Откуда: ТопСофт
Контактная информация:

Сообщение sanny »

Для решения проблемы вывода содержимого Memo-полей, добавлена функция:
xlAddCellStringValue(Value : shortstring; Row : longint = 0; Col : longint = 0)
Данная функция добавляет к содеримому ячейки значения типа shortstring (в атлантисе это тип string). Т.е. добавляет строку максимум 255 символов.
Разбор содержимого Memo-поля на строки по прежнему лежит на прикладном программисте.

Прежняя функция:
xlSetCellStringValue(Value : shortstring; Row1 : longint = 0; Col1 : longint = 0; Row2 : longint = 0; Col2 : longint = 0)
Устанавлявает в ячейку/ячейки значение типа shortstring.

Таким образом чтобы вывести "длинный текст" в ячейку. следует
0. разбить его на строки типа shortstring
1. 1-ю строку установить функцией xlSetCellStringValue
2. остальные строки добавить функцией xlAddCellStringValue
masygreen
партнер
Сообщения: 112
Зарегистрирован: Чт, 20/03/2008 09:10
Имя Фамилия: Максим Черепанов
Откуда: IT
Контактная информация:

Сообщение masygreen »

Спасибо :)
Ответить