Вверх ↑
Ответов: 783
Рейтинг: 168
#1: 2020-09-29 10:53:00 ЛС | профиль | цитата
Ещё один способ нестандартной передачи данных из Hiasm в Excel.

Add(FindWindow,9431484,322,259)
{
ClassName="XLMAIN"
SkipParam=1
link(onFind,3035978:doFindChild,[])
}
Add(FindWindow,3035978,371,252)
{
ClassName="XLDESK"
SkipParam=1
link(onFind,9555062:doFindChild,[])
}
Add(Hub,13132817,273,259)
{
link(onEvent1,9431484:doFind,[])
link(onEvent2,8986682:doPress,[(312,272)(312,300)])
}
Add(FindWindow,9555062,420,245)
{
ClassName="EXCEL7"
SkipParam=1
link(onFind,12592200:doActive,[])
}
Add(KeyEvent,8986682,420,294)
{
Code=86
Ctrl=1
link(Handle,9555062:Handle,[])
}
Add(MainForm,4844206,63,91)
{
Left=20
Top=105
Width=444
Height=437
Caption="Пример передачи таблицы в/из Excel."
Point(Handle)
Point(onClose)
link(onCreate,9404130:doEvent1,[])
}
Add(WinTools,6027587,63,140)
{
link(Handle,4844206:Handle,[])
}
Add(MTStrTbl,5816951,364,91)
{
Top=115
Width=428
Height=283
Align=5
Name="excel"
Columns=#7:Артикул|8:Название|6:Кол-во|7:Ед.изм.|4:Цена|5:Сумма|0:|
Redaction=0
}
Add(Hub,9404130,119,105)
{
link(onEvent1,5432892:doWork,[])
link(onEvent2,6027587:doPopup,[(144,118)(144,132)(53,132)(53,153)])
}
Add(StrList,13732325,203,56)
{
Strings=#56:23544122;Carbon disc ?44,7/38,3x5,8mm;10;PC;16,92;169,20|56:23544122;Carbon disc ?44,7/38,3x5,8mm;10;PC;16,92;169,20|54:23544122;Carbon disc ?44,7/38,3x5,8mm;2;PC;16,92;33,84|64:21200159;Top part UNIFL3/4 for steel bot.part;25;PC;30,09;752,25|57:24400111;Hose f. pump compl. UNIWASH;153;PC;10,58;1618,74|58:13225;Piston complete for valve UNIWASH3;4;PC;27,09;108,36|60:12200105;Vacuumgauge glycerine ?100mm 3/8";5;PC;40,57;202,85|54:21200141;Thread bush UNIFLOW3 steel;130;PC;1,93;250,90|45:25100146;O-ring ?16,1x1,6mm;175;PC;0,36;63,00|57:21200127;Holder rocking lever, UNIFLOW3;170;PC;0,26;44,20|50:21200131;Rocking lever UNIFLOW3;150;PC;0,89;133,50|65:25200132;Valve button inside UNIFLOW3 steel FA;225;PC;0,72;162,00|61:21200129;Bar closing device UNIFLOW3 steel;225;PC;1,09;245,25|55:25200124;Valve flap outside UNIFLOW3;225;PC;1,56;351,00|60:14400212;Solenoid valve sgl. invensys 230vac;5;PC;8,50;42,50|62:14400213;Solenoid valve dobb. invensys 230vac;5;PC;14,13;70,65|48:21200131;Rocking lever UNIFLOW3;20;PC;0,89;17,80|63:25200132;Valve button inside UNIFLOW3 steel FA;20;PC;0,72;14,40|43:25100146;O-ring ?16,1x1,6mm;20;PC;0,36;7,20|55:21200127;Holder rocking lever, UNIFLOW3;20;PC;0,26;5,20|58:21200130;Bar closing device UNIFLOW3 steel;20;PC;0,34;6,80|58:25200119;Guard bracket UNIFLOW3 steel SBS;20;PC;3,38;67,60|55:13474;Valve flap exterior UNIFLOW3 SBS;20;PC;1,56;31,20|59:26400104;Terminal wheel for lock guide str;20;PC;1,12;22,40|67:25215022;Rubber liner UNIFL. 15022-?22 UNIFLEX FA;96;PC;2,39;229,44|55:14800695;Hose guide f. SAC115 complete;10;PC;9,17;91,70|36:14306;Filter for IDC;20;PC;0,40;8,00|51:25515435;Rubber hose ?27/16 mm - FA;15;M;5,24;78,60|63:13930;Double-action Quickstart II rem. L=740mm;1;PC;98,66;98,66|54:13100201;Spray gun for udder washer;20;PC;17,77;355,40|0:|
}
Add(ArrayEnum,1512985,217,105)
{
link(onItem,7011876:doMTString,[])
link(onEndEnum,4139610:doColAction,[(256,118)(256,146)])
link(Array,13732325:Array,[])
}
Add(MT_String,7011876,266,91)
{
link(onResult,3501424:doRowAction,[])
}
Add(MST_RowAction,3501424,315,91)
{
MSTControl="excel"
}
Add(Menu,11693391,63,217)
{
Menu=#15:Export to Excel|0:|
Point(onSelectNum)
link(onSelectNum,7434029:doEvent1,[])
}
Add(MST_ColAction,4139610,315,140)
{
Action=9
Index=-2
MSTControl="excel"
}
Add(Hub,7434029,119,224)
{
link(onEvent1,4863595:doTabToHTML,[])
link(onEvent2,13132817:doEvent1,[(156,237)(156,265)])
}
Add(MST_HTML,4863595,161,224)
{
TitleText="Передача данных из Hiasm в Excel"
TitleFont=[MS Sans Serif,12,1,0,1]
HeadBorderColor=0
HeadBackColor=12632256
CellsBorderWeight=2
CellsBorderColor=0
CellsColor=1
MSTControl="excel"
link(onTabToHTML,3823625:doPutText,[])
}
Add(Clipboard,3823625,217,224)
{
}
Add(WinTools,12592200,476,231)
{
}
Add(VBJScript,5432892,161,105)
{
@Hint=#16:Query SQL Server|
WorkPoints=#6:doWork|
EventPoints=#6:onLoad|
Script=#25:Dim objExcel, objWorkbook|22:Sub doWork(Data,Index)|52: Set objExcel = CreateObject("Excel.Application")|46: Set objWorkbook = objExcel.Workbooks.Add()|24: objExcel.Visible = True|15: sys.onLoad nil|7:End Sub|0:|
UseName=0
link(onLoad,1512985:doEnum,[])
}


Некоторые пояснения:
1.Убеждён что, с документами MS Office нужно работать через VBJScript (примеров очень много).
2.Стараюсь выкладывать другие способы работы с Excel которые не попадались мне на форуме ранее.
3.Пытаюсь показать, что для решения какой-либо задачи можно использовать очень разные подходы(компоненты).
карма: 15

0