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

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

Хотелось бы узнать, какими св-ми или методами можно поменять порядок полей в таблице?
...
Рейтинг: 0 / 0
PowerDesigner 15, упорядочить поля скриптом
    #37127745
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
PowerDesigner 15, упорядочить поля скриптом
    #37127778
kunga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Popov,

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

уточню предыдущий вопрос, есть ли функция типа IndexOf, которая возвращает номер поля в таблице по имени?
...
Рейтинг: 0 / 0
PowerDesigner 15, упорядочить поля скриптом
    #37127862
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
PowerDesigner 15, упорядочить поля скриптом
    #37127968
kunga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Popov,

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

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

Ошибся адресом, конечно kunga
...
Рейтинг: 0 / 0
PowerDesigner 15, упорядочить поля скриптом
    #37128483
kunga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
PowerDesigner 15, упорядочить поля скриптом
    #37128691
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
PowerDesigner 15, упорядочить поля скриптом
    #37128830
kunga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis PopovМожет быть пригодится такая штука VBScript как Scripting.Dictionary. Например, я заполнил переменную типа Dictionary списком таблиц по ключу "имя таблицы" и теперь могу их доставать по имени

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


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