Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PowerDesigner 15, упорядочить поля скриптом / 11 сообщений из 11, страница 1 из 1
21.02.2011, 10:20
    #37127553
kunga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15, упорядочить поля скриптом
Добрый день.

У меня возникла следующая проблема. Есть несколько таблиц с большим количеством полей (~70-100). Поля в этих таблицах располагаются совершенно произвольным образом.
У меня стоит задача некоторым образом упорядочить поля (например, сначала должны идти поля ПК, потом ВК, потом остальные). Сделать это надо с помощью скрипта.
В справке я нужных свойств и методов не нашёл. Хотел применить стандартные методы коллекций VB, дизайнер пишет, что таких методов не знает.

Хотелось бы узнать, какими св-ми или методами можно поменять порядок полей в таблице?
...
Рейтинг: 0 / 0
21.02.2011, 11:36
    #37127745
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15, упорядочить поля скриптом
On 21.02.2011 10:20, kunga wrote:

> Хотелось бы узнать, какими св-ми или методами можно поменять порядок полей в таблице?

Если вкратце, то есть метод table.Columns.Move(source As Long, dest As Long) где table - требуемая таблица.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
21.02.2011, 11:45
    #37127778
kunga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15, упорядочить поля скриптом
Denis Popov,

а свойство, возвращающее порядковый номер поля в таблице существует?
...
Рейтинг: 0 / 0
21.02.2011, 11:47
    #37127787
kunga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15, упорядочить поля скриптом
Denis Popov,

уточню предыдущий вопрос, есть ли функция типа IndexOf, которая возвращает номер поля в таблице по имени?
...
Рейтинг: 0 / 0
21.02.2011, 12:10
    #37127862
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15, упорядочить поля скриптом
On 21.02.2011 11:47, kunga wrote:

> уточню предыдущий вопрос, есть ли функция типа IndexOf, которая возвращает номер поля в таблице по имени?

Я не нашел. Columns это свойство типа Collections:

http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc38628.1530/doc/html/rad1232022712430.html

и в нем такого метода нет.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
21.02.2011, 12:41
    #37127968
kunga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15, упорядочить поля скриптом
Denis Popov,

благодарю, буду копать дальше -)
...
Рейтинг: 0 / 0
21.02.2011, 13:05
    #37128041
Kasper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15, упорядочить поля скриптом
Denis Popov,

Metamodel Objects helpColumns As ObjectCol Ordered composition collection of Base Column (BaseColumn).
Вам все равно надо будет обходить коллекцию для сортировки, а номер в коллекции и есть Ваш IndexOf
...
Рейтинг: 0 / 0
21.02.2011, 13:07
    #37128046
Kasper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15, упорядочить поля скриптом
Denis Popov,

Ошибся адресом, конечно kunga
...
Рейтинг: 0 / 0
21.02.2011, 15:11
    #37128483
kunga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15, упорядочить поля скриптом
Kasper
Metamodel Objects helpColumns As ObjectCol Ordered composition collection of Base Column (BaseColumn).
Вам все равно надо будет обходить коллекцию для сортировки, а номер в коллекции и есть Ваш IndexOf

Ну при прохождении коллекции полей я, сделав переменную-счётчик, определяю номер по ней. А хотелось бы определять не по-индусски, а типа

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Set MyModel = ActiveModel

for each T in MyModel.Tables
  for each C in T.Columns

      if C.Primary  then 
        T.Columns.Move  0 ,T.Columns.IndexOf(C.Name)
      end if
   next
next
...
Рейтинг: 0 / 0
21.02.2011, 16:23
    #37128691
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15, упорядочить поля скриптом
kungaНу при прохождении коллекции полей я, сделав переменную-счётчик, определяю номер по ней. А хотелось бы определять не по-индусски
Может быть пригодится такая штука VBScript как Scripting.Dictionary. Например, я заполнил переменную типа Dictionary списком таблиц по ключу "имя таблицы" и теперь могу их доставать по имени:

Код: 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.
option explicit
ValidationMode = true
InteractiveMode = im_Batch

dim mdl ' the current model

' get the current active model
set mdl = ActiveModel
if mdl is nothing then
  msgBox "There is no current Model"
elseif not mdl.isKindOf(PdPDM.cls_Model) then
  msgBox "The current model is not an Physical Data model."
else
  dim mapTable ' Map for all tables
  set mapTable = createObject("Scripting.Dictionary")
  
  ' Заполнение списка таблиц.
  fillTableMap mapTable, mdl
  
  ' Вывод свойства CODE таблицы.
  output mapTable("MY_TABLE").code
end if  

private sub fillTableMap(mapTable, folder)
  dim tab     'running table  
  for each tab in folder.tables
    if not tab.isShortcut then
      'Add table to map
      mapTable.add tab.name, tab  
    end if
  next
  
  ' Go into the sub-packages
  dim childFolder ' running folder
  for each childFolder in folder.Packages
     if not childFolder.IsShortcut then
        fillTableMap mapTable, childFolder
     end if
  next  
end sub
...
Рейтинг: 0 / 0
21.02.2011, 17:12
    #37128830
kunga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerDesigner 15, упорядочить поля скриптом
Denis PopovМожет быть пригодится такая штука VBScript как Scripting.Dictionary. Например, я заполнил переменную типа Dictionary списком таблиц по ключу "имя таблицы" и теперь могу их доставать по имени

Спасибо, интересная штука.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PowerDesigner 15, упорядочить поля скриптом / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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