(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 

Конференция "Gupta/Centura (Gupta Technologies)"

Обсуждение вопросов, связанных с компанией Unify/Gupta (Gupta Technologies), ее продуктами Team Developer, SQLBase и др.

 
 
Добавить сообщение »

Тема: CDK

Автор:  Валерий Дата: 01.11.2000 08:57
>>Если получен hItem таблицы, то можно с помощью функции cBaseTable.EnumColumnObjects () получить массив с hItem'ами столбцов таблицы и всех делов-то. Кстати, то же самое можно сделать вручную, получая последовательно сначала GetFirstChild ()из Contents секции таблицы и затем в цикле получать GetNextSibling (), пока эта функция возвращает осмысленный hItem
>>
>>Geos
>>:)
>> Пытаюсь использовать следующий вариат:
>
>Window Variable
> cdkItem: aItem
> cdkItem: Children[*]
> string: sNames[*]
>
>Action
> On SAM_Click
> Set nCount = aForm.EnumChildWindowObjects( Children )
> Set n = 0
> While n <= nCount
> Set nType = Children[n].GetItemType()
> Set sType = aForm.GetStringFromValue( nType )
> Set sName = Children[n].GetName()
> Set sNames[n1] = sName
> Set sValue[n1]= sType
> Set df2 = Children[n].GetItem()
> If Children[n].GetItemType() = CDK_IT_ChildTable
> Set n2 = 0
> If Children[n].GetFirstChild( aItem )
> Loop
> Set sNames[n2] = aItem.GetName()
> Set n2 = n2 + 1
> If not aItem.GetNextSibling( aItem )
> Break
>но массив sNames не заполняется , что я делаю не так ?
>> Валерий

> Не буду утверждать, но этот вариант , по моему мнению, не рабочий. Предлогаю использовать следующее:

Window Variable
cdkItem: Children[*]
cdkChildTable: aTbl
String: sNames[*]
Number: n2
Number: n
Number: n1
Number: nCount
Action
On SAM_Click
Set nCount = aForm.EnumChildWindowObjects( Children )
Set n = 0
While n <= nCount
If Children[n].GetItemType() = CDK_IT_ChildTable
Call aTbl.InitializeFromObject( Children[n] )
Call aTbl.EnumColumns( sNames )
Call SalQueryArrayBounds( sNames, nLowBound, n2)
Set n1 = 0
While n1 <= n2
Call SalListAdd( lb5, sNames[n1] )
Set n1 = n1 + 1
n = n + 1
Проверено, работает !!!
>> А.О.
Ответить на сообщение »
 
Автор:  Валерий Дата: 01.11.2000 08:49
>>Если получен hItem таблицы, то можно с помощью функции cBaseTable.EnumColumnObjects () получить массив с hItem'ами столбцов таблицы и всех делов-то. Кстати, то же самое можно сделать вручную, получая последовательно сначала GetFirstChild ()из Contents секции таблицы и затем в цикле получать GetNextSibling (), пока эта функция возвращает осмысленный hItem
>>
>>Geos
>>:)
>> Пытаюсь использовать следующий вариат:
>
>Window Variable
> cdkItem: aItem
> cdkItem: Children[*]
> string: sNames[*]
>
>Action
> On SAM_Click
> Set nCount = aForm.EnumChildWindowObjects( Children )
> Set n = 0
> While n <= nCount
> Set nType = Children[n].GetItemType()
> Set sType = aForm.GetStringFromValue( nType )
> Set sName = Children[n].GetName()
> Set sNames[n1] = sName
> Set sValue[n1]= sType
> Set df2 = Children[n].GetItem()
> If Children[n].GetItemType() = CDK_IT_ChildTable
> Set n2 = 0
> If Children[n].GetFirstChild( aItem )
> Loop
> Set sNames[n2] = aItem.GetName()
> Set n2 = n2 + 1
> If not aItem.GetNextSibling( aItem )
> Break
>но массив sNames не заполняется , что я делаю не так ?
>> Валерий
Ответить на сообщение »
 
Автор:  George Panov Дата: 31.10.2000 13:59
Судя по примеру и не должен, точнее должен, но, очевидно, не так, как задумывалось :)По идее так, как я написал, правильней, хотя тоже может не работать ибо писано на коленке:

-----------------------------------------
Window Variable
cdkItem: aItem
cdkItem: Children[*]
String: sNames[*]
String: sValues[*]
Number: nType
Number: n
Number: n1
Action
On SAM_Click
Set nCount = aForm.EnumChildWindowObjects( Children )
Set n = 0
While n <= nCount
Set nType = Children[n].GetItemType()
Set sNames[n] = Children[n].GetName()
Set sValue[n]= aForm.GetStringFromValue( nType )
Set df2 = Children[n].GetItem()
If nType = CDK_IT_ChildTable and Children[n].GetFirstChild( aItem )
Set n1 = 0
Loop
Set sNames[n1+ n + 1] = aItem.GetName()
Set sValues[n1 + n + 1] = aItem.GetStringFromValue( aItem.GetItemType() )
If not aItem.GetNextSibling( aItem )
Break
Set n1 = n1 + 1
Set n = n + 1

-----------------------------------------
Geos
:)
Ответить на сообщение »
 
Автор:  Валерий Дата: 31.10.2000 12:44
>Если получен hItem таблицы, то можно с помощью функции cBaseTable.EnumColumnObjects () получить массив с hItem'ами столбцов таблицы и всех делов-то. Кстати, то же самое можно сделать вручную, получая последовательно сначала GetFirstChild ()из Contents секции таблицы и затем в цикле получать GetNextSibling (), пока эта функция возвращает осмысленный hItem
>
>Geos
>:)
> Пытаюсь использовать следующий вариат:

Window Variable
cdkItem: aItem
cdkItem: Children[*]
string: sNames[*]

Action
On SAM_Click
Set nCount = aForm.EnumChildWindowObjects( Children )
Set n = 0
While n <= nCount
Set nType = Children[n].GetItemType()
Set sType = aForm.GetStringFromValue( nType )
Set sName = Children[n].GetName()
Set sNames[n1] = sName
Set sValue[n1]= sType
Set df2 = Children[n].GetItem()
If Children[n].GetItemType() = CDK_IT_ChildTable
Set n2 = 0
If Children[n].GetFirstChild( aItem )
Loop
Set sNames[n2] = aItem.GetName()
Set n2 = n2 + 1
If not aItem.GetNextSibling( aItem )
Break
но массив sNames не заполняется , что я делаю не так ?
> Валерий
Ответить на сообщение »
 
Автор:  les Дата: 31.10.2000 11:25
В принципе (не с помощью CDK) можно поизвращаться - если заполняем с помощью SalTblPopulate и select разный,
то можно с помощью
! SalTblGetColumnWindow
Пример (взят из хелпа)
Set nColID = 0
Loop

Set hWndCol = SalTblGetColumnWindow ( tbl1, nColID, COL_GetID )
If hWndCol = hWndNULL
Break
Set nColID = nColID + 1
Ответить на сообщение »
 
Автор:  George Panov Дата: 30.10.2000 19:11
Если получен hItem таблицы, то можно с помощью функции cBaseTable.EnumColumnObjects () получить массив с hItem'ами столбцов таблицы и всех делов-то. Кстати, то же самое можно сделать вручную, получая последовательно сначала GetFirstChild ()из Contents секции таблицы и затем в цикле получать GetNextSibling (), пока эта функция возвращает осмысленный hItem

Geos
:)
Ответить на сообщение »
 
Автор:  Валерий Дата: 26.10.2000 10:54
Как, используя функции CDK, получить список дочерник колонок таблицы.
Ответить на сообщение »
 

Добавить сообщение »

 Распечатать »
 Правила публикации »
   
 Рекомендовать »  
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Q 1.0 for Windows Single User
TeeChart Pro VCL/FMX with source code single license
EMS Data Export for PostgreSQL (Business) + 1 Year Maintenance
Toad Data Modeler Per Seat License/Maint
СУБД Линтер Бастион. Серверная лицензия. 5 клиентских подключений
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Реестр Windows. Секреты работы на компьютере
СУБД Oracle "с нуля"
Мир OLAP и Business Intelligence: новости, статьи, обзоры
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
ODBC: dBase CREATE TABLE... (8)
Есть проблема Из программы на CTD 2.0 PTF3 подключаемся к DBF-файлам Set SqlDatabase='Файлы...
 
TD 6.2 SP4 Ошибка при установке (5)
Добрый день! Кто-нибудь устанавливал TD 6.2 SP4 на Win7? В конце процесса установке выдаётся...
 
PMC (4)
Подскажите как формируется Product Media Code или ключик к SqlWindows 510 ( CTD510)
 
Работа клиента Сеntura с клиентами Оракл 10, тонким клиентом, net client (3)
Есть клиент, написанный на Centura, исходников нет Работает только с клиентами Оракл 8 и 9 Ни...
 
подключение к Centura SQLBase server 6.1.2 (3)
есть приложение (клиент-банк) с вышеуказанной базой. В приложении для подключения к базе...
 
 
 



    
rambler's top100 Rambler's Top100