Перейти до основного вмісту

OLE інтерфейс WinCalc

Ідентифікатор OLE

  • Ідентифікатор виробничоі версії: wincalc.wincalcsrv
  • Ідентифікатор дилерської версії: wincalc.wincalcsrvD

Процедури та функції

procedure ExpandFile(const inFile, outFile: WideString);

Розпакування ZLIB файлу.

Дані ZLIB також можливо розпакувати власноруч. Назва алгоритму:

zlib (RFC 1950), deflate (RFC 1951) и gzip (RFC 1952)

Приклади процедур на деяких платформах:

Dart: archive.ZLibEncoder()
Java: java.util.zip.DeflaterInputStream()
Php: gzuncompress()
Delphi: System.ZLib

function SaveOfferToFile(OfferID: Integer; const FileName: WideString): WordBool;

Зберігає замовлення у форматі WXO.

function ExecuteReport(const params: WideString): WideString;

Виконує звіт над поточним замовленням. Значення Params:

<root>
<report_number>1</report_number> // номер звіту
<hide_report>1</hide_report> // не відображати звіт на екрані після виконання
<export_file_name>1.pdf</export_file_name> // назва файлу для збереження, в pdf або fr3
</root>

function ExecQueryO(const SQL: WideString): OleVariant;

Виконує SQL-запит до бази wcoffers.fdb.

Результат (Result) SQL запиту (OleVariant[3]):

  • Result[1]: 1
  • Result[2]: кількість рядків в результаті
  • Result[3]: OleVariant[Result[2] + 1]
    • Result[3][0][1..XX]: назва стовпчика у вибірці
    • Result[3][1 .. Result[2]][1..XX]: значення стовпчика для рядка 1..XX у вибірці

Наприклад, Result = ExecQueryO('select id, actdate from offers where id = 1'):

  • Result[1]: 1
  • Result[2]: 1
  • Result[3]: OleVariant[2]
    • Result[3][0][1]: ID
    • Result[3][0][2]: ACTDATE
    • Result[3][1][1]: 1
    • Result[3][2][2]: 2024-01-01

Приклад обробки на BAS:

функция ЗапросВинКалкВТаблицуЗначений(ЗапросВинКалк) Экспорт

Если ЗапросВинКалк.GetValue(1) = 1 тогда

ТЗ = Новый ТаблицаЗначений;

для й = 1 по ЗапросВинКалк.GetValue(3).GetValue(0).GetUpperBound() цикл
ТЗ.Колонки.Добавить(ЗапросВинКалк.GetValue(3).GetValue(0).GetValue(й));
КонецЦикла;

для ц = 1 по ЗапросВинКалк.GetValue(2) цикл

Строка = ТЗ.Добавить();
для й = 1 по ЗапросВинКалк.GetValue(3).GetValue(0).GetUpperBound() цикл
Строка[й - 1] = ЗапросВинКалк.GetValue(3).GetValue(ц).GetValue(й);
КонецЦикла;

КонецЦикла;

возврат ТЗ;

иначе
возврат Неопределено;
конецесли;

конецфункции