Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Какже это сделать? / 14 сообщений из 14, страница 1 из 1
07.02.2008, 20:51
    #35118215
RustamK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
Код: 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.
Нижеследующий код это подпрограмма для проверки данных каждого уровня. Она использует функцию $DATA для проверки существования текущего элемента. Если $DATA= 0  на  1 , 2 , и  3  уровнях, это означает, что текущий элемент не существует. Функция $DATA= 10  если на  1  и  2  уровнях есть потомки, но нет данных. Команда WRITE на уров-нях  2  и  3  использует функцию $List для извлечения информации о текущем элементе мас-сива.
Start Read !,"Введите количество записей: ",n 
Read !,"Начать с записи номер: ",s 
For i=s :  1  : s + n { // первый уровень 
If $Data(^client(i)) { 
If $Data(^client(i))= 10  { 
Write !," Имя : Данных нет"}Else {Write !," Имя : " ,^client(i)}

If $Data(^client(i, 1 )) {
//второй уровень
If $Data(^client(i, 1 ))= 10  {Write !,"Адрес: Нет данных" }
Else { // вывод адреса
Write !,"Адрес: ",$List(^client(i, 1 ), 1 )
Write " , ",$List(^client(i, 1 ), 2 )
Write " , ",$List(^client(i, 1 ), 3 )
}
For j= 1 : 1 : 4 
{// третий уровень
If $Data(^client(i, 1 ,j)) { Write !,"Тип счета: ",$List(^client(i, 1 ,j), 1 )
Write ? 30 ," Номер #: ",$List(^client(i, 1 ,j), 2 )
Write ? 50 ," Остаток: ",$List(^client(i, 1 ,j), 3 )
}
}
}
Write !,"Конец" Quit

Люди как мне вывести примерно такие данные в csp т.е. в web страничке чтобы показать иерархическую подчиненность.
больше всего интересует как обращаться к глобали из csp-странички?
Всем кто ответит заранее благодарен.

Пример кода был взят со след ссылки:
http://lusindane.at.tut.by/files/globals.html
http://lusindane.at.tut.by/download/Globals.pdf
...
Рейтинг: 0 / 0
11.02.2008, 09:16
    #35123225
RustamK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
Люди скажите хотябы, можно ли обращаться к глобалям, из csp страничек?
...
Рейтинг: 0 / 0
11.02.2008, 09:17
    #35123228
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
RustamK , ты так неудобно создал сообщение... Читать не возможно.
Приведи пример глобала... И нарисуй как ты хочеш его показать в CSP...

Акуратнее используй БиБиКоды...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
11.02.2008, 09:17
    #35123230
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
RustamKЛюди скажите хотябы, можно ли обращаться к глобалям, из csp страничек?
Можно, можно. Все можно дарагой.
...
Рейтинг: 0 / 0
11.02.2008, 09:29
    #35123243
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
обращение к глобалам в каше:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<html>
<body>

<br>Вот первый глобал: <b>#(^MyGlobal1)#</b>

<server language=Cache>
 w "<br>Вот второй глобал: <b>",^MyGlobal2,"</b>"
</server>

<script language=Cache runat=server>
 w "<br>Вот третий глобал: <b>",^MyGlobal3,"</b>"
</script>


</body>
</html>

Или вы хотели что-то другое?
...
Рейтинг: 0 / 0
11.02.2008, 10:33
    #35123383
RustamK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
спасибо за ответ.
мне нужно вытащить из глобалов значения и выстроить в явескрипте иерархическое дерево.
я сделал через sql запросы, но на обработку уходит много времени, я хотел оптимизировать через глобали.
...
Рейтинг: 0 / 0
11.02.2008, 10:35
    #35123388
RustamK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
попробую использовать ваши советы.
...
Рейтинг: 0 / 0
11.02.2008, 11:20
    #35123531
Александр Коблов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
RustamKна обработку уходит много времени
Если обработка --- это время от начала загрузки до страницы до появления дерева, то главный тормоз здесь, скорее всего, --- яваскрипт, а не SQL, особенно если много узлов.
...
Рейтинг: 0 / 0
11.02.2008, 13:23
    #35124001
RustamK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
Александр Коблов
Если обработка --- это время от начала загрузки до страницы до появления дерева, то главный тормоз здесь, скорее всего, --- яваскрипт, а не SQL, особенно если много узлов.

ты прав но надо попробовать.
...
Рейтинг: 0 / 0
12.02.2008, 07:27
    #35125656
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
Посмотрите время отдачи страницы в логе веб-сервера.
Можно временные метки поставить в глобал в начале и конце работы программы.

А совсем уж по-хорошему - используйте ^%SYS.MONLBL, там вам до строчки все распишет, где на чем тормозит.

SQL доступ достаточно быстрый, сравним с прямым. Только нужно проверить планы запросов.
...
Рейтинг: 0 / 0
10.03.2008, 20:55
    #35181117
RustamK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
Код: 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.
<html>
<body>

<br>Вот первый глобал: <b>#(^Таксоном.ЦарствоD( 61 ,"Надотряд"))#</b>
<server language=Cache>
 w "<br>Вот второй глобал: <b>",$LIST(^Таксоном.ЦарствоD( 61 ), 1 ),"</b>"
</server>

<script language=Cache runat=server>
 w "<br>Вот третий глобал: <b>",$Query(^Таксоном.ЦарствоD( 61 ,"Тип")),"</b>"

</script>
<br>Пример <b>
<script language=Cache runat=server>
set x="^Таксоном.ЦарствоD(61)"
for { set x=$Query(@x) 
Quit:x="" 
Write !,"<br>" 

for multiple= 1 : 1 :$LISTLENGTH(@x)
{
	  if $LISTDATA(@x,multiple)= 1  {
	  w $LIST(@x,multiple)," "
	  }
}
}
</script>
</body>
</html>

Вот что выводит в результат

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Вот первый глобал: Ганоидные
Вот второй глобал: ~Таксономия.Подцарство~Таксономия.Тип~Таксономия.Подтип~Таксономия.Раздел~Таксономия.Надкласс~Таксономия.Класс~Таксономия.Подкласс~Таксономия.Инфракласс~Таксономия.Легион~Таксономия.Кагорта~Таксономия.Надотряд~Таксономия.Отряд~Таксономия.Семейство~Таксономия.Род~Таксономия.Вид~
Вот третий глобал:
Пример
Осетр �^Таксоном.ВидS%GlobalBinaryStream
Костные рыбы
Рыбы
Ганоидные
Осетрообразные
Лучиперые
Позвоночные
Многоклеточные mnogkl
Челюстноротые
Осетры
Осетровые
Хордовые hord

Почему глобал выглядит так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
^Таксоном.ЦарствоD( 61 )=<<$LB("~Таксономия.Подцарство~Таксономия.Тип~Таксономия.Подтип~Таксономия.Раздел~Таксономия.Надкласс~Таксономия.Класс~Таксономия.Подкласс~Таксономия.Инфракласс~Таксономия.Легион~Таксономия.Кагорта~Таксономия.Надотряд~Таксономия.Отряд~Таксономия.Семейство~Таксономия.Род~Таксономия.Вид~","","","","Животные","","Jivotnot")>>
^Таксоном.ЦарствоD( 61 ,"Вид")=<<$LB("","Осетр","","","",$LB("<<$C(0,20,1,16,1)_""^Таксоном.ВидS""_$C(2,1,2,1)>>","%GlobalBinaryStream"))>>
^Таксоном.ЦарствоD( 61 ,"Класс")=<<$LB("","Костные рыбы","")>>
^Таксоном.ЦарствоD( 61 ,"Надкласс")=<<$LB("","Рыбы","")>>
^Таксоном.ЦарствоD( 61 ,"Надотряд")=<<$LB("","Ганоидные","")>>
^Таксоном.ЦарствоD( 61 ,"Отряд")=<<$LB("Осетрообразные","","")>>
^Таксоном.ЦарствоD( 61 ,"Подкласс")=<<$LB("Лучиперые","","")>>
^Таксоном.ЦарствоD( 61 ,"Подтип")=<<$LB("Позвоночные","","")>>
^Таксоном.ЦарствоD( 61 ,"Подцарство")=<<$LB("Многоклеточные","","mnogkl")>>
^Таксоном.ЦарствоD( 61 ,"Раздел")=<<$LB("Челюстноротые","","")>>
^Таксоном.ЦарствоD( 61 ,"Род")=<<$LB("Осетры","","")>>
^Таксоном.ЦарствоD( 61 ,"Семейство")=<<$LB("Осетровые","","")>>
^Таксоном.ЦарствоD( 61 ,"Тип")=<<$LB("Хордовые","","","hord")>>


Как лучше провести обход глобалей и получить вот такое дерево
...
Рейтинг: 0 / 0
11.03.2008, 08:18
    #35181518
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
Советую вам не стоить дерево сразу, а только верхний уровень.
А если надо - подгружать данные при необходимотсти
...
Рейтинг: 0 / 0
11.03.2008, 08:20
    #35181519
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
А также нужно переработать структуру таблиц (именно таблиц), индексы и работать именно через SQL.
...
Рейтинг: 0 / 0
11.03.2008, 10:43
    #35181743
VadimF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какже это сделать?
В ZEN, кстати, есть компонент для работы с деревом.
Так что советую использовать ZEN (Cache' 2007.1 и дальше).

Вадим
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Какже это сделать? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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