Table.SaveToBuffer

From SunFlurry wiki
Revision as of 14:02, 20 March 2024 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  SaveToBuffer (Сохранение таблицы)
Объект:Электронная таблица
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число, неверные аргументы
Визуальность:Нет

Функция производит сохранение текущей таблицы в буфер в указанном формате с указанными установками. Внутренний SFT формат все данные хранит в виде строк, поэтому при сохранении в формат, хранящий числа не в текстовом формате (к примеру, в xls), система превращает текст ячейки в число автоматически при отсутствии в строке неверных знаков. Разрешены только знаки -,0..9, . и E, разделителем целой и дробной частей числа всегда принимается точка. Знаки `, пробел и ' также могут принадлежать числам, как разделители разрядов. Если число содержит неверные знаки, оно будет экспортировано как строка, без каких либо изменений. Также если число содержит ведущие нули (к примеру, 000000123456), оно будет экспортировано как строка. Программа экспорта не пытается определять даты и время, даты всегда будут экспортированы как строки.

Синтаксис

Table.SaveToBuffer(<Объект буфера (BUFFER)>,<Начальная позиция буфера (INT)>=0,<Формат (INT,STRING)>=0,<Установки (INT)>=0,<Список таблиц для сохранения в листы книги (LIST)>):<Размер в байтах, добавленный в буфер (INT)>

Аргументы

  • <Объект буфера (BUFFER)> - Аргумент задает объект буфера, куда будет производиться сохранение таблицы.
  • <Начальная позиция буфера (INT)> - (необязательный аргумент) Аргумент задает начальную позицию таблицы в буфере, если аргумент опущен, сохранение будет происходить с начала буфера.
  • <Формат (INT,STRING)> - (необязательный аргумент) Аргумент задает формат загружаемого файла в строковом или числовом виде. Доступны следующие значения:
    • 0 или SFT (по умолчанию) -- файл во внутреннем формате системы (sft)
    • 1 или XLS -- файл в формате Excel (xls). При экспорте в формат xls имеются следующие ограничения:
      • Не экспортируются картинки, внедренные на лист в виде объектов
      • Не экспортируются текст и прямоугольники, внедренные на лист в виде объектов
      • Не экспортируются горизонтальные или вертикальные уровни группировки
      • Не экспортируются OLE-обьекты, внедренные на лист
      • Количество экспортируемых столбцов не будет превышать 256, количество экспортируемых строк -- 65530, если в таблице есть данные вне этого ограничения, они будут игнорированы при экспорте.
    • 2 или XLSX -- файл в формате Excel (xlsx). При экспорте в формат xlsx имеются следующие ограничения:
      • OLE-обьекты, внедренные на лист, будут открываться только в Microsoft Excel начиная с версии 14 (Office 2010).
      • Количество экспортируемых столбцов и количество экспортируемых строк не ограничено, однако Microsoft Excel разных версий обладает встроенным ограничением на количество строк и столбцов, при экспорте очень больших таблиц часть данных может быть не видна. Сама система не может создавать таблицы с количеством столбцов более 2147483647.
  • <Установки (INT)> - (необязательный аргумент) Аргумент задает дополнительные установки при сохранении, и является битовой маской. Доступны следующие значения битов:
    • бит 0 -- запрет сохранения вместе с таблицей картинок, которые были загружены в таблицу с диска или из буфера. По умолчанию режим не активен. Режим может пригодиться, например, если сохраняемая таблица может содержать сканируемые картинки, которые не выгодно отправлять по Интернет для печати на удаленной стороне, и картинки будут передаваться отдельно и только в случае, если они уже не присутствуют на удаленной стороне.
  • <Список таблиц для сохранения в листы книги (LIST)> - (необязательный аргумент) Аргумент может содержать список объектов типа таблица SFT для помещения в виде листов в одну книгу. Если аргумент задан, вызов метода можно произвести непосредственно из интерфейса Table, а не из объекта. Если вызов производится из объекта, этот объект будет использован, как первая страница книги. Наименования списка будут задавать наименования листов. Первый из элементов, имеющих значение галочки (Check), не равным нулю, будет фигурировать, как активная страница. Если все галочки равны нулю, активной будет первая страница. Данный режим сохранения на данный момент поддерживается только ля формата XLSX.

Возвращаемое значение

Возвращает число -- размер данных, сохраненных в буфер.

Примеры

Т:=Table.Create();
Т.SetSourceName("Продажи");
Т.CopyByX("v1",1);
  
Строк:=0;
While З.Next(1) Do
  зДок:=З.Документ;
  If (зДок.DBName()<>"Реализация")And(зДок.DBName()<>"ВозвратОтПокупателя") Then
    Continue;
  EndIf;

  ...
    
  Т.CopyByX("v2",1);
EndDo;
 
аБуф:=Buffer.Create();
Т.SaveToBuffer(аБуф);

//Отправить буфер по TCP/IP
...