powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Activate.Excel
30 сообщений из 30, показаны все 2 страниц
Activate.Excel
    #36323059
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
народ кто использовал??
задача такая:
есть некий файл Excel, необходимо из него загружать информацию в базу данных

как записать в ячейку данные вроде бы разобрался

а вот как прочитать из вполне определенной ячейки данные???
...
Рейтинг: 0 / 0
Activate.Excel
    #36324859
gr_vl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе так же как и записывать,
наприер
s a=mywr.cell(3,1).Formular1c1

где mywr - текущая книга (или активная книга)
...
Рейтинг: 0 / 0
Activate.Excel
    #36324885
MX - 9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ymka2007народ кто использовал??
задача такая:
есть некий файл Excel, необходимо из него загружать информацию в базу данных

как записать в ячейку данные вроде бы разобрался

а вот как прочитать из вполне определенной ячейки данные???

Забрасывает весь лист EXCEL в указанную глобаль CACHE
Или сразу всю книгу - каждай лист в свой узел
Последние индексы - строка и колонка - числа - но можно и буквы для колонок
С перекодировкой в 8-bit если надо (сам EXCEL работает на unicode)
Быстро. Пустые ячейки пропускает.
После обработки в CACHE вываливает готовый отчет обратно в EXCEL

EXCEL 2007 продвинут - 16 000 колонок и миллион строк на листе.
Рекомендую.
...
Рейтинг: 0 / 0
Activate.Excel
    #36325597
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а код какой нить можно?
...
Рейтинг: 0 / 0
Activate.Excel
    #36325800
Alexandr Minzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как очень давно писал.
Привожу весь метод целиком, может для себя что-нибудь найдете полезного

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
ClassMethod Load(patch As %String, changefile As %Boolean =  1 )
{
	Try {
		Set rowb= 8 ,rowe= 55 
		Set fn=##class(%File).GetFilename(patch)
		Set dir=##class(%File).GetDirectory(patch)
		Set contract=$p(fn,"_", 2 ),ym=$p(fn,"_", 4 ),y=$e(ym, 1 , 4 ),m=+$e(ym, 5 , 6 ),codereg=$p(fn,"_", 3 )
		// удаляем данные перед загрузкой
		&sql(delete from vendors.f322 where contract = :contract and year = :y and month = :m)
		If SQLCODE< 0  Write $system.SQL.SQLCODE(SQLCODE),! Quit
		//
		Set xapp=##class(Activate.Excel.Application).%New()
		Set xapp.Visible=- 1 
		//
		Set workbooks=xapp.Workbooks
		Set workbook=workbooks.Open(patch)
		// So excel won't ask to save
		Set workbook.Saved = -1
		//
		Set worksheets=workbook.Worksheets
		Set worksheet=worksheets.ItemGet("F22_1")
		//
		Set worksheet=worksheet.Become("Activate.Excel.uWorksheet")
		Do worksheet.Activate()
		Set cells = worksheet.Cells
		//
		For row=rowb:1:rowe {
			Set f322=..%New()
			Set f322.Contract=contract
			Set f322.Year=y
			Set f322.Month=m
			/*
			For col=2:1:26 {
				Do cells.ItemGet(row,col).Become("Activate.Excel.Range").Activate()
				Set ^str(row,col)=xapp.ActiveCell.Text
				//Set ^str(row,col)=cells.ItemGet(row,col).Become("Activate.Excel.Range").Formula
			}
			Continue
			*/
			// Использую свойство Text т.к. при использовании свойства Value на значения 0.08 программа вылетает
			Set f322.YearHis=+$tr(cells.ItemGet(row,3).Become("Activate.Excel.Range").Text," ","")
			Set f322.MonthHis=+$tr(cells.ItemGet(row,2).Become("Activate.Excel.Range").Text," ","")
			Set f322.InS=+$fn(+$tr(cells.ItemGet(row,4).Become("Activate.Excel.Range").Text," ",""),"",2)
			Set f322.InSNDS=+$fn(+$tr(cells.ItemGet(row,5).Become("Activate.Excel.Range").Text," ",""),"",2)
			Set f322.AvC=+$fn(+$tr(cells.ItemGet(row,8).Become("Activate.Excel.Range").Text," ",""),"",2)
			Set f322.AvCNDS=+$fn(+$tr(cells.ItemGet(row,9).Become("Activate.Excel.Range").Text," ",""),"",2)
			Set f322.Av=+$fn(+$tr(cells.ItemGet(row,12).Become("Activate.Excel.Range").Text," ",""),"",2)
			Set f322.AvNDS=+$fn(+$tr(cells.ItemGet(row,13).Become("Activate.Excel.Range").Text," ",""),"",2)
			Set f322.Corr=+$fn(+$tr(cells.ItemGet(row,16).Become("Activate.Excel.Range").Text," ",""),"",2)
			Set f322.CorrNDS=+$fn(+$tr(cells.ItemGet(row,17).Become("Activate.Excel.Range").Text," ",""),"",2)
			Set f322.Sp=+$fn(+$tr(cells.ItemGet(row,20).Become("Activate.Excel.Range").Text," ",""),"",2)
			Set f322.SpNDS=+$fn(+$tr(cells.ItemGet(row,21).Become("Activate.Excel.Range").Text," ",""),"",2)
			Set f322.OutS=+$fn(+$tr(cells.ItemGet(row,24).Become("Activate.Excel.Range").Text," ",""),"",2)
			Set f322.OutSNDS=+$fn(+$tr(cells.ItemGet(row,25).Become("Activate.Excel.Range").Text," ",""),"",2)
			Set sc=f322.%Save()
			If $$$ISERR(sc) {
				Do $system.OBJ.DisplayError(sc)
			} ElseIf changefile {
				Set diff=f322.DiffInSNDS()
				If diff'= 0  {
					Set cells.ItemGet(row, 5 ).Become("Activate.Excel.Range").Formula="="_f322.InSNDS_$fn(diff,"+")
					Set cells.ItemGet(row, 13 ).Become("Activate.Excel.Range").Formula="="_f322.AvNDS_$fn(diff,"+")
				}
			}
			Set f322=$$$NULLOREF
		}
		// Лист TITUL
		Set worksheet=worksheets.ItemGet("TITUL")
		Set worksheet=worksheet.Become("Activate.Excel.uWorksheet")
		Do ##class(Utils).Titul(worksheet,codereg,contract,y,m)
		If changefile {
			Hang  2 
			Do workbook.Save()
		}
	} Catch(ex) {
		Write ex.DisplayString(),!
	}
	//
	Set (workbooks,workbook)=$$$NULLOREF
	Set (worksheets,worksheet)=$$$NULLOREF
	Set cells=$$$NULLOREF
	Set range=$$$NULLOREF
	//
	If $isobject($g(xapp)) Do xapp.Quit()
	Set xapp=$$$NULLOREF
}
...
Рейтинг: 0 / 0
Activate.Excel
    #36325921
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр, опишите пожалуйста что делает код.
зачем &sql(delete ...)
для чего set cells
куда потом set f322
спасибо
...
Рейтинг: 0 / 0
Activate.Excel
    #36325962
MX - 9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ymka2007а код какой нить можно?

?$$ReadSheet \\bacunova\m\Pasutijumi.xlsm#* ^MEHCEHo(%USID, *ToText

записывает всю книгу EXCEL-2007 в глобаль, преобразуя ячейки в текст



?$$ReadSheet \\servermx\m\ALG_?%gm?.xls#Z35 ^MEHCEHa(?%gm?) *ToValue

записывает лист Z35 из книги ALG_[год-месяц] в глобаль ^MEHCEHa
формулы превращает в значения
год-месяц находится в локальной переменной Cache "%gm"



?$$ReadSheet \\ivanov\Darbi?year?.xls#* ^MEHCEHd(%USID, *Formula

записывает всю книгу в глобаль преобразуя формулы из ячеек в текст
(но не в значения)

книги должны быть доступны по сети КЛИЕНТУ, с которого идет запрос

время выполнения - примерно секунда на каждый лист книги
...
Рейтинг: 0 / 0
Activate.Excel
    #36325979
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007Александр, опишите пожалуйста что делает код.
зачем &sql(delete ...)
для чего set cells
куда потом set f322
спасибо

судя по всему этот метод содержится в классе vendors.f322
и перед загрузкой он просто чистит содержимое
Set cells = worksheet.Cells
явно указывает на область с ячейками, чтобы можно было брать данные из нужной ячейки
set f322 - сохранение загруженных данных
...
Рейтинг: 0 / 0
Activate.Excel
    #36326010
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MX - 9,
а версия cache какая?
и где бы это почитать?
...
Рейтинг: 0 / 0
Activate.Excel
    #36326011
Alexandr Minzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Метод загружает данные из Excel файла в БД.

В начале метода чистится таблица в которую пишутся данные xls-файла
Код: plaintext
1.
2.
// удаляем данные перед загрузкой
&sql(delete from vendors.f322 where contract = :contract and year = :y and month = :m)

Остальное вроде должно быть все понятно

Создаем экземпляр Excel на сервере
Код: plaintext
1.
Set xapp=##class(Activate.Excel.Application).%New()
делаем Excel видимым (или невидимым, не помню)
Код: plaintext
1.
Set xapp.Visible=- 1 
открываем xls-файл
Код: plaintext
1.
Set workbook=workbooks.Open(patch)
выбираем нужный лист
Код: plaintext
1.
2.
Set worksheets=workbook.Worksheets
Set worksheet=worksheets.ItemGet("F22_1")
транслируем экземпляр класса Activate.Excel.Worksheet (объектная переменная worksheet) в экземпляр класса Activate.Excel.uWorksheet
Код: plaintext
1.
Set worksheet=worksheet.Become("Activate.Excel.uWorksheet")
делаем лист активным
Код: plaintext
1.
Do worksheet.Activate()
инициализируем объектную переменную cells для работы с диапазоном ячеек
Код: plaintext
1.
Set cells = worksheet.Cells
в цикле читаем данные и записываем в БД
Код: plaintext
1.
2.
3.
For row=rowb: 1 :rowe {
...
}


читаем данные так:
Код: plaintext
1.
cells.ItemGet(row, 3 ).Become("Activate.Excel.Range").Text
...
Рейтинг: 0 / 0
Activate.Excel
    #36326014
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

это я ужо понял, теперь проблема с
Код: plaintext
1.
2.
3.
4.
Set (workbooks,workbook)=$$$NULLOREF
	Set (worksheets,worksheet)=$$$NULLOREF
	Set cells=$$$NULLOREF
	Set range=$$$NULLOREF
ругается на $$$NULLOREF
какую библиотеку подключить нужно?
...
Рейтинг: 0 / 0
Activate.Excel
    #36326028
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexandr Minzer,

вопрос если ячейки объединенные, то как мне обратится к такой ячейке и выбрать данные?
...
Рейтинг: 0 / 0
Activate.Excel
    #36326032
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007DAiMor,

это я ужо понял, теперь проблема с
Код: plaintext
1.
2.
3.
4.
Set (workbooks,workbook)=$$$NULLOREF
	Set (worksheets,worksheet)=$$$NULLOREF
	Set cells=$$$NULLOREF
	Set range=$$$NULLOREF
ругается на $$$NULLOREF
какую библиотеку подключить нужно?
$$$NULLOREF прописан в %occConstant.INC
#include "%occConstant"
можешь просто заменить на ""
...
Рейтинг: 0 / 0
Activate.Excel
    #36326079
Alexandr Minzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ymka2007Alexandr Minzer,

вопрос если ячейки объединенные, то как мне обратится к такой ячейке и выбрать данные?

запустите Excel,
объедините ячейки,
запишите макрос,
затем посмотрите в редакторе Visual Basic сгенерированный код
повторите его в cache
...
Рейтинг: 0 / 0
Activate.Excel
    #36326119
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007Alexandr Minzer,

вопрос если ячейки объединенные, то как мне обратится к такой ячейке и выбрать данные?
либо к ячейке с наименьшими координатами,
либо к любой ячейке
...
Рейтинг: 0 / 0
Activate.Excel
    #36326121
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок
заработало
спасибо всем
...
Рейтинг: 0 / 0
Activate.Excel
    #36357267
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть такая запись открытия объекта:
Set xapp=##class(Activate.Excel.Application).%New()
q:'$IsObject(xapp) $$$ERROR($$$GeneralError,"Не удалось активировать ""Activate.Excel.Application""!")
на что компилятор выдает ошибку:
Код: plaintext
1.
RTT.ImportXLSNew. 1 .INT( 34 ) ERROR # 1043 : QUIT argument not allowed : '$$Error^%apiOBJ(5001,"Не удалось астивировать ""Activate.Excel.Application""!")' : Offset: 100  [zLoad+ 5 ^RTT.ImportXLSNew. 1 ]
 TEXT: 		q:'$IsObject(xapp) $$Error^%apiOBJ( 5001 ,"Не удалось астивировать ""Activate.Excel.Application""!")
так как правильно организовать проверку на открытие объекта?
...
Рейтинг: 0 / 0
Activate.Excel
    #36357323
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уточняю, все находится в конструкции try-catch
Код: plaintext
1.
2.
3.
4.
5.
Try {
Set xapp=##class(Activate.Excel.Application).%New()
q:'$IsObject(xapp) $$$ERROR($$$GeneralError,"Не удалось активировать ""Activate.Excel.Application""!")
Catch(ex) {
 s sc=ex.AsStatus()
}
...
Рейтинг: 0 / 0
Activate.Excel
    #36357554
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ошибка возникает на %New(), то возможно Excel остался в памяти с предыдущего раза или у Вас не настроен Excel в DCOM (cmd> dcomcnfg.exe).
Здесь лежит рабочий пример работы с Excel через Activate.

PS: я в свое время отказался от такого способа работы с Excel, так как на сервере требуется наличие MS Excel. К тому же он не предназначен для работы на стороне сервера и работает медленно через ActiveX.
Используя "нативные" компоненты, отчёты можно экспортировать в pdf, html, image; добавлять в них электронную цифровую подпись; формировать отчёт на основе шаблонов с тегами или вручную и многое другое.
...
Рейтинг: 0 / 0
Activate.Excel
    #36357581
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо
этим я уже воспользовался
возникла ошибка в следующем:
у меня жестко прописано, что имя листа должно быть таким
Set worksheet=worksheets.ItemGet("ЗаявкаЛичногоТурнираФ1")
некотрые умельцы присылают совсем другое, т.е. переименовывают
соответственно возникает ошибка при открытии несуществующего листа
вся загрузка в try-catch скобках
так вот именно эту ошибку try-catch не "переваривает"
и вылетает сообщение ZEN об ошибке с выводом всего стека

как это преодолеть? есть ли метод проверки на наличие такого листа?
...
Рейтинг: 0 / 0
Activate.Excel
    #36358822
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если нет такого листа
выдает ошибку в классе Class Activate.Excel.Sheets Extends %Activate.Interface
в методе:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Method ItemGet(Index As %Activate.Variant) As %Activate.IDispatch [ Final, Language = cache ]
{
 ;#define ComException  6101 
 New %result,%parms
 Set %parms=$ListBuild(i%%IDispatchPtr,$$$INVOKEPROPERTYGET, 170 )
 Set %parms=%parms_..%FormatKnownParam(.Index, 1 , 12 )
 k ^Aa
 s ^Aa("%parms")=$LB($$$ORDINAL,$$$HANDLE,$$$ActXInvoke,%parms)
 Set %result=$ZF($$$ORDINAL,$$$HANDLE,$$$ActXInvoke,%parms)
 

 If $List(%result, 1 )'= 0  {
	 ;$$$ActXRaise(%result)
	 ;s ^Aa("%result")=%result
	 ;Set sc=$$$ERROR($$$ComException,$LG(%result, 1 )_" "_$LG(%result, 2 )_" "_$LG(%result, 3 ))
	 ;$$$ActXError(%p) 
	 ;ZT "ACTX"
 }
 
 New %retval If $List(%result, 3 )= 0  Set %retval=$$$NULLOREF
 Else  Do
 . Set %retval=##Class(%Activate.IDispatch).%New($List(%result, 3 ))
 . If %retval=$$$NULLOREF $$$ActXRaise($ListBuild("Cannot Create Dispatch Object"))
 s ^Aa("%retval")=%retval
 Quit %retval
}
при выполнении команды: ZT "ACTX"
что бы это могло значить? и как исправить?
...
Рейтинг: 0 / 0
Activate.Excel
    #36359615
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот что нарыл:
для того чтобы промсотреть все имена листов нужно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Set xapp=##class(Activate.Excel.Application).%New()
Set xapp.Visible= 0 
Set workbooks=xapp.Workbooks
Set workbook=workbooks.Open(path)
Set workbook.Saved = - 1 
Set worksheets=workbook.Worksheets
s sc=$$$OK
f i= 1 : 1 :worksheets.CountGet() {
 if (worksheets.ItemGet(i).GetProperty("Name")'["Лист1") {
  s sc=$$$ERROR($$$GeneralError,"Не найден лист") 
  q
 }
}

теперь вопрос для гуру:
приведенный выше код находится в рамках try-catch механизма
как мне правильно сделать выход из try-catch , при условии что такого имени листа не нашлось?
...
Рейтинг: 0 / 0
Activate.Excel
    #36360534
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QUIT within a TRY-CATCH Block
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
try{
  основная работа
  ...
  если возникла ощибка, то выполняем quit или throw (удобные макросы для генерации ошибок 
  или выхода можно найти в %occStatus.inc, если подсказчика кода нет)
}catch ex{
  обработка ошибки (если надо)
}
финальная обработка (закрытие объектов, освобождение ресурсов и т.д.), если не было исключения в блоке catch
возврат вызывающей стороне результата выполнения процедуры
...
Рейтинг: 0 / 0
Activate.Excel
    #36361678
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, quit обычный заработал, а вот с throw не разобрался
...
Рейтинг: 0 / 0
Activate.Excel
    #36566538
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вновь поднимаю тему

конфигурация: MS2008, Cache2010, MS Office 2003 SP3
накатил DLL
получил новый пакет Activate

запускаю старый метод похожий как в 5 посте
выскакивает ошибка: zOpen...Activate.Excel.Workbooks
на строчке:
Set workbook=workbooks.Open(patch)

в чем может быть проблема? как подойти к решению?

PS - конфирурация: MS2003, Cache2007, MS Office 2003 SP3 работает как нужно.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Activate.Excel
    #37542665
Nelegalka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexandr Minzeк,
прошу прощения, я вот пытаюсь импорт из Excel в Cache' сделать, не могли бы вы пояснить функцию записи из ячеек в поля таблицы Cache' : Set Info.Sotrudnik=cells.ItemGet(row,25).Become("Activate.Excel.Range").Tуче
что за параметры в ItemGet(row,25)
...
Рейтинг: 0 / 0
Activate.Excel
    #37543240
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nelegalka, используется объектная модель Excel. Просмотреть ее можно так - Запустить Excel и нажать Alt+F11. Должен появиться редактор проектов VisualBasic. В нем нажимаем F2 (View-ObjectBrowser) - объектный браузер.
Дальше смотрим на код Alexandr Minzeк
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
                Set xapp=##class(Activate.Excel.Application).%New()  ;последовательно проваливаемся в объектную модель Excel
                ...
		Set workbooks=xapp.Workbooks ;Это книги приложения Excel
                ...  
		Set workbook=workbooks.Open(patch) ;Это конкретная книга Excel, которую открывают из файла
                ...
                Set worksheets=workbook.Worksheets ;Здесь ссылка на все страницы книги 
		....
		Set cells = worksheet.Cells ;
                ...
                s var = cells.ItemGet(row, 25 )


В окошке поиска объектного браузера вводим [Worksheet] и нажимаем ввод. Оказывается, что у объекта Worksheet есть свойство с именем Cells и типом Range. Вводим в окошко поиска объектного браузера слово Range - оказывается что это массив ячеек с свойством-методом Item, который принимает параметры (RowIndex, [ColumnIndex]) и который тоже вернет массив ячеек. А так как в Cache мы работаем со сгенерированной оберткой вокруг объекта Excel, то это будет метод ItemGet (можно посмотреть в классе Activate.Excel.Range)
...
Рейтинг: 0 / 0
Activate.Excel
    #37549496
Nelegalka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefштеб

спасибо огромное, а может еще подскажете какой функцией получить количество заполненных строк в файле Excel? для столбцов нашла, для строк - нет
...
Рейтинг: 0 / 0
Activate.Excel
    #37549666
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
???
Код: plaintext
MyExcel.ActiveSheet.UsedRange.Rows.Count
...
Рейтинг: 0 / 0
Activate.Excel
    #37549741
Nelegalka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valeriu, спасибо, помогло)
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Activate.Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]