Вверх ↑
Этот топик читают: Гость
Ответов: 16795
Рейтинг: 1228
#31: 2020-06-28 13:13:52 ЛС | профиль | цитата
andrestudio писал(а):
Tad вот если бы хоть чем то помог я бы наверно реально удивился, но тебе вероятно больше нравится школьникам мозги пудрить чем просто взять помочь коллеге по цеху
Зачем?
Чтобы быть осчастливенным вот этим?
andrestudio писал(а):
p.s Вам как VIP клиентам можно даже не парится, всё что я доделаю до логического конца будет у Вас как обещал
Как верно заметил (если выбросить слово "Практически")
Gunta писал(а):
Практически всё можно сделать, используя только стандартные компоненты.
Можно и так
ПочтиExcel.jpg
карма: 24
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 4543
Рейтинг: 492
#32: 2020-06-28 14:06:31 ЛС | профиль | цитата
Tad, Вся фишка что из такой таблицы данные упереть как два пальца об асфальт

Редактировалось 1 раз(а), последний 2020-06-28 14:07:08
карма: 5

0
Ответов: 16795
Рейтинг: 1228
#33: 2020-06-28 15:33:42 ЛС | профиль | цитата
Упереть любые данные, ecлм они светятся на мониторе, как два пальца об асфальт.
Это я ещё в DOS-е умел.

Извини, но не чувствую я необходимости в анонсированных тобой 20 компонентах.
Уменьшение числа линков дело хорошее, но не за счёт увеличения в схеме числа компонент.

Редактировалось 1 раз(а), последний 2020-06-28 15:44:07
карма: 24
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 13
Рейтинг: 5
#34: 2020-06-28 18:07:11 ЛС | профиль | цитата
andrestudio, библиотека и правда очень интересная. Огромное спасибо за твою работу. Постоянно пользуюсь некоторыми твоими компонентами (SscanF и др.). Сейчас пытаюсь подключать таблицу к разным базам, затык на SQlite.

Tad, с многострочным текстом в одной ячейке в стандартных элементах как-то не очень. Не понимаю зачем это нужно практически, но на форуме периодически кто-то спрашивает об этом.
Снимок3.PNG
карма: 1

0
Ответов: 4543
Рейтинг: 492
#35: 2020-06-28 19:20:03 ЛС | профиль | цитата
Gunta, у меня пока затык BorderColor всей книги при старте. (только первая страница принимает цвет)
Gunta писал(а):
Tad, с многострочным текстом в одной ячейке в стандартных элементах как-то не очень. Не понимаю зачем это нужно практически, но на форуме периодически кто-то спрашивает об этом.


Есть ещё фишка как в Excel, при выделении листов Ctrl+ЛКМ при вводе текста в лист он зеркально печатается в тех же ячейках других листов

--- Добавлено в 2020-06-28 19:57:53

andrestudio писал(а):
Gunta, у меня пока затык BorderColor всей книги при старте. (только первая страница принимает цвет)

вот я тормоз property Sheet

Редактировалось 1 раз(а), последний 2020-06-28 19:57:53
карма: 5

0
Ответов: 4543
Рейтинг: 492
#36: 2020-06-30 17:10:06 ЛС | профиль | цитата
Допёр таки как красить области заголовков, дизайнер такого не делает...

карма: 5

2
Голосовали:Gunta, Joiner
Ответов: 13
Рейтинг: 5
#37: 2020-06-30 19:24:55 ЛС | профиль | цитата
andrestudio, в твою копилку ещё дополнение для этой библиотеки, можно в таблицу вставлять разные диаграммы и график(хелп прилагается)
https://yadi.sk/d/kjhEnRexSWeeSA

Таблица с диаграммой.PNG

Редактировалось 4 раз(а), последний 2020-06-30 20:37:16
карма: 1

1
Голосовали:andrestudio
Ответов: 4543
Рейтинг: 492
#38: 2020-06-30 21:05:24 ЛС | профиль | цитата
Gunta, спасибо. Не знаешь случаем это не Trial
Завтра постараюсь что нибудь уже детально сделать для тестов. Сможешь потестировать если что

p.s нацеливаюсь отвязаться от дизайнера вообще полностью.
карма: 5

0
Ответов: 13
Рейтинг: 5
#39: 2020-07-01 12:11:54 ЛС | профиль | цитата
andrestudio, если я правильно понял, у них есть rtial и maintenance версии, защищённые только лицензионным соглашением. Эти версии вроде как сервисные. Но могу и ошибаться.
карма: 1

0
Ответов: 4543
Рейтинг: 492
#40: 2020-07-02 05:58:25 ЛС | профиль | цитата
Gunta, понятно. Вчера не смог доделать (перевозить помогал) сегодня продолжу
карма: 5

0
Ответов: 4543
Рейтинг: 492
#41: 2020-07-05 05:01:02 ЛС | профиль | цитата
Gunta, Не получается пока со временем (в саду работаю) среди недели попробую
карма: 5

0
Ответов: 4543
Рейтинг: 492
#42: 2020-07-06 21:14:01 ЛС | профиль | цитата
Gunta, блин извини, так и не получается покодить. Загляни в личку, может пригодится...
карма: 5

0
Ответов: 13
Рейтинг: 5
#43: 2020-07-07 12:03:39 ЛС | профиль | цитата
andrestudio, спасибо! Ответил в "личке".


Данная библиотека не плохо работает с файлами XLS напрямую, можно загружать, сохранять и т.д.
Для тех, кто хочет попробовать,
Схема

Add(MainForm,10991964,42,42)
{
Width=861
Height=567
Point(Handle)
link(onCreate,5102647:doEvent1,[])
}
Add(Menu,3505617,49,245)
{
Menu=#13:Сохранить XLS|13:Загрузить XLS|4:Test|
Point(onSelectNum)
link(onSelectNum,10942873:doEvent,[])
}
Add(IndexToChanel,10942873,98,252)
{
Count=4
link(onEvent1,10161142:doString,[])
link(onEvent2,14597536:doString,[(151,265)(151,300)])
}
Add(UseActiveX,15397503,588,266)
{
Top=8
Width=845
Height=520
Align=5
CLSID="TTF161.TTF1.6"
Point(Handle)
}
Add(LineBreakEx,12712413,532,287)
{
Caption="p"
Type=1
link(OnEvent,15397503:doSetProp,[(571,293)(571,286)])
}
Add(LineBreakEx,6623097,504,266)
{
Caption="e"
Type=1
link(OnEvent,15397503:doExecute,[])
}
Add(LineBreakEx,16522725,266,245)
{
Caption="e"
}
Add(Memory,10178505,161,196)
{
Default=String(Смета.xls)
}
Add(FormatStr,10161142,161,252)
{
Mask="WriteEx;%1;11"
link(onFString,8232158:doMT,[])
link(Str1,10178505:Value,[])
}
Add(MT_String,8232158,210,245)
{
link(onResult,16522725:doWork,[])
}
Add(FormatStr,14597536,161,294)
{
Mask="ReadEx;Шаблон.xls"
link(onFString,15709898:doMT,[])
}
Add(MT_String,15709898,210,287)
{
link(onResult,5461950:doWork,[])
}
Add(LineBreakEx,5461950,266,287)
{
Caption="e"
}
Add(Hub,5102647,98,56)
{
OutCount=3
link(onEvent1,4387360:doWork,[(144,62)(144,66)])
link(onEvent2,1512985:doEnum,[(144,69)(144,104)])
link(onEvent3,10727968:doString,[(137,76)(137,132)])
}
Add(StrList,13732325,301,49)
{
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,315,98)
{
link(onItem,9903169:doEnum,[])
link(Array,13732325:Array,[])
}
Add(WinExec,5579035,238,56)
{
FileName="regsvr32.exe"
Param="TTF16.ocx"
}
Add(Check,4387360,164,60)
{
Check=1
link(onEvent,5579035:doExec,[(221,66)(221,62)])
}
Add(FormatStr,10727968,154,126)
{
Mask="SetColWidthAuto;-1;1;-1;6;False"
link(onFString,7297172:doMT,[])
}
Add(MT_String,7297172,203,119)
{
link(onResult,6613276:doWork,[])
}
Add(Str_Enum,9903169,364,98)
{
link(onEnum,313789:doOperation,[])
}
Add(MT_AddData,9295751,462,98)
{
Count=4
link(onAdd,13205398:doWork,[])
link(Data1,2736491:Value,[])
link(Data2,313789:Result,[(475,89)(454,89)(454,138)(412,138)])
link(Data3,9903169:NumSubStr,[(482,82)(514,82)(514,156)(370,156)])
link(Data4,9903169:Part,[(489,89)(503,89)(503,145)(377,145)])
}
Add(Memory,2736491,462,42)
{
Default=String(TextRC)
}
Add(Math,313789,406,98)
{
Op2=1
link(onResult,9295751:doAdd,[])
link(Op1,1512985:Index,[(412,89)(356,89)(356,138)(328,138)])
}
Add(LineBreakEx,13205398,532,98)
{
Caption="p"
}
Add(LineBreakEx,6613276,259,119)
{
Caption="e"
}


Файлы
https://yadi.sk/d/GYTJhq46odLlhg

Редактировалось 4 раз(а), последний 2020-07-07 12:08:40
карма: 1

0
Ответов: 4543
Рейтинг: 492
#44: 2020-07-08 05:50:39 ЛС | профиль | цитата
Gunta, Вот от таких (так скажем извращений не в обиду сказано, извиняюсь по другому не могу подобрать слова) я ушёл в своё время. Был создан UseActiveXEx (где то на форуме болтается неприкаянный) который:
1) не требует регистрации ActiveX
2) обрабатывает Tab
3) пытается отрабатывать стандартные для контролов события
4) Содержит указатель (точку Dispatch) для подключения VBJSctript через который в свою очередь удобно
устанавливать свойства, вызывать методы, отрабатывать события

вот кстати первые пробы с этой библиотекой


Add(MainForm,2953706,21,105)
{
Width=668
Height=468
}
Add(UseActiveXEx,4894110,140,56)
{
Left=95
Top=20
Width=530
Height=375
akRight=1
akBottom=1
CLASS="{B0475003-7740-11D1-BDC3-0020AF9F8E6E}"
IID="{B0475001-7740-11D1-BDC3-0020AF9F8E6E}"
FileName="TTF16.ocx"
link(onCreate,9469688:doData,[(182,62)(182,96)(128,96)(128,111)])
}
Add(VBJScript,7665014,189,133)
{
WorkPoints=#4:Init|9:doSetText|
EventPoints=#8:OnRClick|
DataPoints=#5:objF1|4:Text|
Script=#19:Dim objAX, Row, Col|21:'On Error Resume Next|80:' ---------------------- Инициализация и подключение ---------------------------|16:Sub Init(dt,idx)|22: ' подключаем ActiveX|23: Set objAX = sys.objF1|21: ' разрешаем события|24: objAX.DoClick = vbTrue|25: objAX.DoRClick = vbTrue|25: ' подключаем события |42: sys.ConnectActiveX sys.objF1, "Event_" |23: ' настраивем свойства|15: 'objAX.XXX???|30: objAX.ShowGridLines = vbTrue|23: 'MsgBox objAX.DoClick|24: 'objAX.ViewScale = 150|30: objAX.SheetName(1) = "Test1"|24: objAX.EditInsertSheets|30: objAX.SheetName(2) = "Test2"|29: objAX.ShowEditBar = vbTrue |28: objAX.BackColor = 15138303|42: objAX.SetDefaultFont "MS Sans Serif", 10|7:End Sub|0:|22:Sub doSetText(dt, idx)|32: objAX.TextRC( 1, 1) = sys.Text|7:End Sub|0:|0:|80:' ------------------- События --------------------------------------------------|27:Sub Event_Click(nRow, nCol)|20: 'MsgBox("OnClick")|12: Row = nRow|12: Col = nCol|50: 'objAX.SetBorder 2, 1, 1, 1, 1, 1, 3, 4, 4, 4, 4|29: 'objAX.SetPattern 2, 128, 0|25: 'objAX.FormatBorderDlg |0:|0:|7:End Sub|0:|28:Sub Event_RClick(nRow, nCol)|22: 'MsgBox("R_OnClick")|22: sys.OnRClick vbNULL|7:End Sub|
link(objF1,9023022:Var,[])
}
Add(PopupMenu,3788364,301,91)
{
Menu=#5:Test1|5:Test2|5:Test3|
Icons=[]
}
Add(StyleXP,15341251,21,63)
{
}
Add(Button,9889449,28,455)
{
Left=10
Top=20
Caption="Save"
link(onClick,4078209:doExecute,[])
}
Add(StrList,2114058,364,91)
{
Strings=#42:A single cell can contain as many as nine |33:lines or 256 characters of data. |13:When entering|
}
Add(GlobalVar,9023022,189,105)
{
Name="tab"
link(onValue,7665014:Init,[(236,111)(236,125)(177,125)(177,139)])
}
Add(DoData,9469688,140,105)
{
link(onEventData,9023022:doValue,[])
link(Data,4894110:Dispatch,[])
}
Add(VBJScript,3361710,182,413)
{
WorkPoints=#10:doLoadFile|10:doSaveFile|12:doProperties|
EventPoints=#6:OnLoad|
DataPoints=#5:objF1|8:FileName|
Script=#35: Dim objAX, objTimer, iType|21:'On Error Resume Next|0:|22:Sub doSaveFile(dt,idx)|13: Dim t,fname|26: 'objAX.Write CStr(dt), 2|24: objAX.SaveWindowInfo()|32: 'objAX.Write "TestTab.vts", 12|8: t = 12|20: fname = "Test.vst"|44: objAX.SaveFileDlg "Сохранить файл",fname,t|7:End Sub|0:|24:Sub doProperties(dt,idx)|25: 'objAX.LaunchDesigner()|28: 'objAX.OptionsDlg(CInt(1))|26: 'MsgBox objAX.ExtraColor|35: 'objAX.SheetSelected(1) = vbFalse|17: objAX.Sheet = 2|34: 'objAX.SheetSelected(2) = vbTrue|29: 'objAX.BackColor = 15138303|30: objAX.BackColor = 15790320 |7:End Sub|0:|25:Function SetType(ByRef t)|13: SetType = t|12:End Function|0:|22:'Sub LoadFile(ByRef t)|30:' MsgBox(Typename(GetRef(t)))|37:' Call objAX.Read("TestTab.vst", t)|8:'End Sub|0:|22:Sub doLoadFile(dt,idx)|10: Dim file|38: 'MsgBox(Typename(GetRef("SetType")))|14: 't = CInt(2)|23: 'On Error Resume Next|38: 'objAX.Read "TestTab1.xls", CByte(2)|46: 'objAX.Read "TestTab.xls", GetRef("SetType")|43: 'objAX.Read "TestTab.xls", SetType(iType)|29: 'objAX.ReadEx "TestTab.vts"|18: 'LoadFile(iType)|48: 'file = objAX.OpenFileDlgEx("Открыть файл", 0)|26: 'call objAX.ReadEx(file)|7:End Sub|0:|80:' ---------------------- Инициализация и подключение ---------------------------|10:Sub Init()|22: ' подключаем ActiveX|23: Set objAX = sys.objF1|25: ' подключаем события |41: 'sys.ConnectActiveX sys.objF1, "Event_"|17: objTimer.Stop()|17: iType = CInt(2)|7:End Sub|0:|32:Set objTimer = sys.CreateTimer()|23:objTimer.Interval = 200|21:objTimer.AutoStop = 1|25:objTimer.onTimer = "Init"|16:objTimer.Start()|
link(objF1,4847378:Var,[])
}
Add(GlobalVar,4847378,182,385)
{
Name="tab"
}
Add(Button,8387368,28,413)
{
Left=10
Top=50
Caption="Load"
Data=Integer(2)
link(onClick,3361710:doLoadFile,[])
}
Add(ODialog,12842828,84,371)
{
Filter="Excel|*.xls"
Title="Открыть файл"
}
Add(SDialog,4078209,84,455)
{
Filter="Excel|*.vts"
Title="Сохранить файл"
link(onExecute,3361710:doSaveFile,[(135,461)(135,426)])
}
Add(Button,4165857,84,497)
{
Left=10
Top=85
link(onClick,3361710:doProperties,[(149,503)(149,433)])
}

карма: 5

0
Ответов: 13
Рейтинг: 5
#45: 2020-07-08 22:35:14 ЛС | профиль | цитата
andrestudio, В моём примере я хотел показать, что в загруженном XLS-файле работают формулы на любом листе (Ванна, Туалет, Комната, Кухня), меняем «Количество» или «Стоимость» меняются «Сумма» и «Итоги», потом это всё можно сохранить. Для этого выложил архив с примером.
Для себя я часто использую в схемах нестандартные компоненты (которые удобны в некоторых случаях) но для форума я стараюсь использовать только стандартные.

С удивлением узнал, что данная библиотека доступна через DDE.
Add(MainForm,15775911,112,70)
{
Width=616
Caption="DDE команды для зарегистрированных программ"
}
Add(VBJScript,5432892,350,77)
{
@Hint=#16:Query SQL Server|
WorkPoints=#6:doWork|
EventPoints=#6:onRead|7:onClear|5:onCol|
Script=#0:|23:Dim arrKeys, arrSubKeys|18:Dim blnFullCmdOnly|8:Dim i, j|18:Dim objDic, objReg|50:Dim strCommand, strDDEApp, strDDEExec, strDDETopic|48:Dim strFileType, strKey, strSubKey, strSubSubKey|1: |23:Const HKCR = &H80000000|0:|23:Sub doWork(Data,Index) |22:blnFullCmdOnly = False|0:|15:sys.onClear nil|1: |42:ColName = "Extension=40" & ";" _|38: & "File Type=150" & ";" _|38: & "Shell Command=100" & ";" _|38: & "DDE Server Command=700" & ";" _|37: & "DDE Application=80" & ";" _|37: & "DDE Topic=80" & ";" _|30: & "DDE Client Command=250"|18:sys.onCol ColName |1: |97:Set objReg = GetObject( "winmgmts:{impersonationLevel=impersonate}!//./root/default:StdRegProv" )|51:Set objDic = CreateObject( "Scripting.Dictionary" )|1: |32:objReg.EnumKey HKCR, "", arrKeys|1: |30:For i = 0 To UBound( arrKeys )|36: If Left( arrKeys(i), 1 ) = "." Then|57: objReg.GetStringValue HKCR, arrKeys(i), "", strFileType|41: objDic.Item( strFileType ) = arrKeys(i)|7: End If|34: strSubKey = arrKeys(i) & "\shell"|43: objReg.EnumKey HKCR, strSubKey, arrSubKeys|30: If IsArray( arrSubKeys ) Then|35: For j = 0 To UBound( arrSubKeys )|69: strSubSubKey = arrKeys(i) & "\shell\" & arrSubKeys(j) & "\ddeexec"|59: objReg.GetStringValue HKCR, strSubSubKey, "", strDDEExec|22: ' DDE commands only|40: If IsNull( strDDEExec ) Then Exit For|69: strSubSubKey = arrKeys(i) & "\shell\" & arrSubKeys(j) & "\command"|59: objReg.GetStringValue HKCR, strSubSubKey, "", strCommand|81: strSubSubKey = arrKeys(i) & "\shell\" & arrSubKeys(j) & "\ddeexec\Application"|58: objReg.GetStringValue HKCR, strSubSubKey, "", strDDEApp|75: strSubSubKey = arrKeys(i) & "\shell\" & arrSubKeys(j) & "\ddeexec\Topic"|60: objReg.GetStringValue HKCR, strSubSubKey, "", strDDETopic|25: If blnFullCmdOnly Then|42: If IsNull( strDDEApp ) Then Exit For|42: If IsNull( strDDETopic ) Then Exit For|9: End If|43:strFileType = Split( strSubSubKey, "\" )(0)|43:strOut = objDic.Item( strFileType ) & ";" _|27: & strFileType & ";" _|27: & arrSubKeys(j) & ";" _|27: & strCommand & ";" _|27: & strDDEApp & ";" _|27: & strDDETopic & ";" _|16: & strDDEExec|29:sys.onRead strOut |14: |6: Next|7: End If|16: arrSubKeys = ""|4:Next|1: |20:Set objDic = Nothing|20:Set objReg = Nothing|1: |8:End Sub |
UseName=0
link(onRead,2269637:doAdd,[])
link(onClear,2269637:doClear,[])
link(onCol,9744198:doEnum,[(424,97)(424,104)])
}
Add(StringTable,2269637,518,77)
{
Top=20
Width=600
Height=241
Align=5
ClearAll=0
Point(doAddColumn)
}
Add(Str_Enum,9744198,434,98)
{
link(onEnum,2269637:doAddColumn,[])
}
Add(Menu,2924481,189,70)
{
Menu=#5:Поиск|
Point(onSelectNum)
link(onSelectNum,16262240:doEvent,[])
}
Add(IndexToChanel,16262240,252,77)
{
link(onEvent1,5432892:doWork,[])
}



Редактировалось 1 раз(а), последний 2020-07-08 22:37:21
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)