Заказ звонка

Закрыть

*
*
*

AddScriptCommand

Страницы: 1 2 3 4 5 6 След.
RSS
AddScriptCommand
Использую пользователький грид не в макросах TCS, а во внешнем приложении. Где мне описывать команду? Что указывать в качестве имени модуля? Хочется, чтобы вызываемая процедура работала с объектами TCSApp
Пользовательский грид, по-моему, был создан для использования в скриптах. И всё в нём по-спартански ограничено smile:D. Во внешних приложениях-то всё гораздо гибче можно сделать, красивее и удобнее. Можно любые гриды приладить. Ну и потом, есть интерфейс ICsdnAxDbGrid специально для внешних приложений.
Понятно. Этот грид во внешних тоже работает, только не работают скрипты объявленные в нем (точнее они работают, только без использования TCSApp и их надо прописать в модулях TCS).
А есть примерчики для VB6?
А то этот что-то не пошел из вашего хелпа:
Код
Dim TCS As CSDN.TCS

Dim App As CSDN.Tcs_Application

Set TCS = CreateObject("CSDN.TCS")

Set App = TCS.Login

'Получим справочник единиц измерения

Dim Mes As CSDN.Mesuriments

Set Mes = App.Mesuriments

'Создадим форму для отображения справочника единиц измерения

Dim MyForm As UserForm1 'для такого определения в VBA проекте необходимо иметь форму с именем UserForm1

Set MyForm = New UserForm1

MyForm.Caption = "Отображение сетки TCS на форме VB"

MyForm.Left = 10

MyForm.Top = 10

MyForm.Width = 600

MyForm.Height = 400

'Создадим сетку (грид) TCS, которая будет отображать наш справочник

Dim TCSCsdnAxGrid As CSDN.CsdnAxDbGrid

MyForm.Controls.Add "CSDN.CsdnAxDbGrid", "MyTCSGrid", True

Set TCSCsdnAxGrid = MyForm.Controls.Item(MyForm.Controls.Count - 1)

TCSCsdnAxGrid.Top = 5

TCSCsdnAxGrid.Left = 5

TCSCsdnAxGrid.Width = MyForm.Width - 10

TCSCsdnAxGrid.Height = MyForm.Height - 10

'Присоеденим справочник единиц измерения к сетке (гриду)

TCSCsdnAxGrid.DataSource = Mes

'Сделаем первоначальную очистку

Call TCSCsdnAxGrid.Columns.Clear

'Создаем колонки для пользователя

Call TCSCsdnAxGrid.Columns.Add(Mes.Properties("ID"))

Call TCSCsdnAxGrid.Columns.Add(Mes.Properties("NOTE"))

Call TCSCsdnAxGrid.Columns.Add(Mes.Properties("NAME"))

MyForm.Show vbModal

Set TCSCsdnAxGrid = Nothing

Set MyForm = Nothing

Set Mes = Nothing

Set App = Nothing

Set TCS = Nothing

Сругался на строчке MyForm.Controls.Add "CSDN.CsdnAxDbGrid", "MyTCSGrid", True - Type mismatch
VB6 нету, но попробовал на VBA. Код отработал без запинки.
Могу предположить, что параметры этой строчки в скобочки надо заключить. Может ещё Call приписать.
Ваши предположения не верны. Пробовал убрать последний True - прокатило, но сругалось на
Set TCSCsdnAxGrid = MyForm.Controls.Item(MyForm.Controls.Count - 1) - типа нет такого метода Controls, зато есть MyForm.Object.Controls. Пробовал заменить. В итоге получил свернутую нулевую форму без всякой сетки (((
Цитата
Станислав Белоусов пишет:
Пробовал убрать последний True - прокатило
Третий параметр(опциональный) – это контейнер для контрола.
Цитата
Станислав Белоусов пишет:
, но сругалось на
Set TCSCsdnAxGrid = MyForm.Controls.Item(MyForm.Controls.Count - 1) - типа нет такого метода Controls
"сругалось", вероятно, не на это, а на несовпадение типов(хотя кто его знает, что это за тип такой "UserForm1"). Теоретически так должно работать:
Код
Set TCSCsdnAxGrid = MyForm.Controls.Item(MyForm.Controls.Count - 1).Object

Цитата
Станислав Белоусов пишет:
, зато есть MyForm.Object.Controls. Пробовал заменить.
лучше не пробовать
Цитата
Станислав Белоусов пишет:
В итоге получил свернутую нулевую форму без всякой сетки (((
не понял про "свёрнутую нулевую", но учитывая
Код
MyForm.Left = 10 
MyForm.Top = 10 
MyForm.Width = 600 
MyForm.Height = 400
форма уж точно не на весь экран будет.
По поводу
Код
TCSCsdnAxGrid.Top = 5 
TCSCsdnAxGrid.Left = 5 
TCSCsdnAxGrid.Width = MyForm.Width - 10 
TCSCsdnAxGrid.Height = MyForm.Height - 10
в данном случае у TCSCsdnAxGrid нет этих пропертей. Они есть у контейнера
Код
MyForm.Controls.Item(MyForm.Controls.Count - 1)
Вот что я имел в виду про свернутую форму
Form.PNG (726 Б) [ Скачать ]
Цитата
Сергей пишет:
Третий параметр(опциональный) – это контейнер для контрола.

Дак что мне с ним делать? или забить на него?
Пробовал подправить код на то, что вы посоветовали. Все равно: форма свернутая, а при развороте грида нет
Подправил
.Width = 4800
.Height = 3600
Форма стала широкой. Теперь понятно в чем измеряется ширина/высота.
но сетки по прежднему не видать (((
Страницы: 1 2 3 4 5 6 След.
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)