вторник, 9 апреля 2013 г.

Использования XlTable для Quik

      Передача информации из таблиц QUIK во внешние приложения осуществляется по протоколу DDE в формате данных XlTable.

     Microsoft Windows предлагает несколько способов для передачи данных между приложениями. Один из способов передачи данных является использование Windows динамического обмена данными (DDE). В QUIK используется передача данных в DDE форматах Microsoft Excel версии 5.0 и более поздних.


Fast Table формат (XlTable)
fast table формат, XlTable, обеспечивает максимальную скорость передачи данных по протоколу DDE Microsoft Excel. XlTable состоит из блоков данных содержащих данные об обновляемых ячейках таблиц. 

Каждый блок данных состоит из трех частей:
WORD tdt /* тип данных */
WORD cb /* размер блока в байтах */
BYTE data[cb] /* данные */

Тип блока

Значение

Описание




tdtTable

16

Размер таблицы. Данные (4 байта,cb=4) содержат 2 слова.Первое слово – число строк, второе слово – число столбцов.




tdtFloat

1

Число с плавающей точкой IEEE-формат. Размер числа 8 байт на ячейку.




tdtString

2

Строка в st(байт-счетчик) формате. Первый байт содержит длину строки(cch). Строка не завершается нулем.




tdtBool

3

Логические значения 1 = TRUE 0 = FALSEДлина данных два байта на ячейку




TdtError

4

Error : 0 = #NULL!
7 = #DIV/0!
15 = #VALUE!
23 = #REF!
29 = #NAME?
36 = #NUM!
42 = #N/AЗначение ошибки. Длина 2 байта на ячейку




TdtBlank

5

Счетчик числа последовательных неопределенных (пустых) ячеек. Данные(2 байта,cb=2) содержат число пустых ячеек.


TdtInt

6

Беззнаковое целое. Длина данных 2 байта на ячейку. Microsoft Excel может читать число в этом формате, но никогда не пишет числа в этом формате.


TdtSkip

7

Число пропущенных ячеек. Пропущенные ячейки сохраняют свои предыдущие значения. В других словах,пропущенные ячейки не изменяются WM_DDE_DATA сообщением. Вы можите использовать tdtSkip для увеличения DDE производительности в Выших приложениях изменяя только одну или две ячейки в середине большой таблицы. Microsoft Excel не поддерживает tdtSkip кода новая ячейка является частью WM_DDE_POKE сообщения. Длина данных 2 байта (cb=2).



Первый дата блок всегда типа tdtTable, который определяет число строк и число столбцов в таблице. Все следующие за tdtTable дата блоки представляют ячейки таблицы.


Microsoft Excel отдает ссылку на ячейку в таблице (например,R1C1:R2C4) как iterm часть DDE сообщения.
Передача данных производится построчно. Сначала все ячейки первой строки в таблице , затем все ячейки второй строки и так далее. Минимальные затраты времени на передачу данных обеспечивается передачей одного tdt для множества ячеек, передаваемых вместе в одном боке данных, даже если ячейки из разных строк, но одного типа.
Для передачи данных из QUIK во внешние приложения используется лишь два формата tdtFloat и tdtString.
Алгоритм взаимодействия приложения с QUIK в общем виде выглядит следующим образов:
1) зарегистрировать сервис с указанием программы обратного вызова
2) принять блок данных , передаваемый Windows
3) определить имя обновляемой таблицы
4) принять R1C1: R2C2 - области таблицы
5) Преобразовать данные из блока согласно принимаемым tdt форматам ( tdtFloat и tdtString).
6) Поместить данные в таблицы приложения

1 комментарий:

  1. Casino site - ChoiceCasino
    2020 ➜ 바카라 사이트 We've partnered with Bet365, an online sports betting and casino site in partnership with Bet365. choegocasino In the future, our players 1xbet korean will enjoy

    ОтветитьУдалить