Вверх ↑
Ответов: 162
Рейтинг: 24
#1: 2021-03-01 05:55:16 ЛС | профиль | цитата
Пример передачи данных в Excel с помощью формул вида « =server |topic!item »

Add(MainForm,2953706,70,112)
{
Width=389
Height=222
Caption="TestsDDEserver"
Point(onClose)
link(onCreate,13272898:doStart,[])
link(onClose,13272898:doStop,[])
}
Add(DDEServer,13272898,126,126)
{
ServiceName="Test"
TopicList=#5:topic|
link(onGetItem,9994146:doGetIndex,[])
}
Add(Label,7157217,588,140)
{
Left=15
Top=45
Width=125
Caption="=Test|topic!item"
Underline=0
CaptionOnClick=0
Point(onDblClick)
link(onClick,15894363:doWork2,[])
}
Add(StrList,9994146,175,98)
{
Strings=#15:StdDocumentName|4:item|5:item1|5:item2|
Point(doGetIndex)
Point(onGetIndex)
Point(StrToFind)
link(onGetIndex,14199659:doEvent,[])
}
Add(IndexToChanel,14199659,224,105)
{
Count=4
link(onEvent2,342458:doData,[])
link(onEvent3,2228487:doNext,[])
link(onEvent4,9458303:doRandom,[])
}
Add(Random,9458303,378,126)
{
Max=1000
link(onRandom,15574439:doEvent3,[])
}
Add(Clipboard,7091608,651,140)
{
}
Add(Button,9454402,175,259)
{
Left=35
Top=130
Width=84
Caption="Старт"
Point(doCaption)
link(onClick,4396771:doSwitch,[])
}
Add(DDEClient,12344087,406,238)
{
ServiceName="EXCEL"
TopicName="system"
AutoUpdate=1
Point(doExecute)
Point(onError)
}
Add(FormatStr,12590960,357,266)
{
Mask="[UPDATE.LINK("Test|topic!item", 2)][UPDATE.LINK("Test|topic!item1", 2)][UPDATE.LINK("Test|topic!item2", 2)]"
link(onFString,12344087:doExecute,[])
}
Add(Time,5482872,280,56)
{
Format=" D-M-Y h:m:s"
}
Add(DoData,342458,280,112)
{
link(onEventData,15574439:doEvent1,[])
link(Data,5482872:FormatTime,[])
}
Add(ScrollBar,12006976,175,315)
{
Left=145
Top=135
Width=200
Height=10
Max=2000
Min=50
Page=50
Position=500
link(onPosition,14794351:doEvent1,[])
}
Add(Switch,4396771,231,259)
{
DataOn=String(Стоп)
DataOff=String(Старт)
Point(onOn)
Point(onOff)
link(onSwitch,9454402:doCaption,[(277,265)(277,251)(165,251)(165,265)])
link(onOn,11680365:doWork2,[])
link(onOff,3060626:doWork2,[])
}
Add(Hub,14794351,238,315)
{
OutCount=3
link(onEvent1,3060626:doWork3,[(277,321)])
link(onEvent2,5546050:doInterval,[(291,328)(291,286)])
link(onEvent3,11680365:doWork3,[(284,335)])
}
Add(HubEx,3060626,273,273)
{
link(onEvent,5546050:doStop,[])
}
Add(HubEx,11680365,280,266)
{
link(onEvent,5546050:doTimer,[])
}
Add(Label,2692982,588,189)
{
Left=15
Top=60
Width=125
Caption="=Test|topic!item1"
Underline=0
CaptionOnClick=0
Point(onDblClick)
link(onClick,13931715:doWork2,[])
}
Add(Label,6463094,588,238)
{
Left=15
Top=75
Width=125
Caption="=Test|topic!item2"
Underline=0
CaptionOnClick=0
Point(onDblClick)
link(onClick,13931715:doWork3,[(634,244)])
}
Add(CounterEx,2228487,329,119)
{
link(onNext,15574439:doEvent2,[])
}
Add(Hub,15574439,427,112)
{
InCount=3
OutCount=1
link(onEvent1,13272898:doReturnItem,[(473,118)(473,167)(116,167)(116,146)])
}
Add(HubEx,15894363,630,140)
{
link(onEvent,7091608:doPutText,[])
}
Add(HubEx,13931715,630,189)
{
Angle=3
link(onEvent,15894363:doWork3,[])
}
Add(Timer,5546050,308,266)
{
Enable=1
Point(doInterval)
link(onTimer,12590960:doString,[])
}
Add(Label,68095,588,91)
{
Left=15
Top=10
Width=379
Height=32
Caption="Щёлкните по ссылке для копирования в буфер\r\nи вставте в Excel"
AutoSize=1
}
Add(Label,16459944,126,315)
{
Left=150
Top=115
Width=205
Height=17
Caption="Время обновления данных (50-2000 мс)"
}

Запустите программу. Откройте Excel и вставьте в ячейки следующие формулы:
=Test|topic!item
=Test|topic!item1
=Test|topic!item2
Нажмите кнопку «Старт». Также можно менять время обновления данных.
Настройки Excel->Файл->Параметры->Дополнительно->Общие должны быть такими.
Настройки Excel.PNG
Архив с файлами - https://forum.hiasm.com/getfile/39213
карма: 4

0
файлы: 1Hiasm-Excel formulas.zip [21KB] [82]