AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.09.2003, 13:20   #1  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
? Auto, но не более чем... Можно сделать?
Добрый день!

Можно ли управлять свойством Высота (Height) формы так чтобы моделировалась ситуация: Высота = Auto, но не более чем, например, 250...?

Описание поведения:
Есть нестандартная лукап форма, в которой есть контрол Table...
Table заполняется динамически набором значений.
Устанавливаю в лукап форме все значения для высоты как Auto.
Все работает как ожидается, т.е. если в таблице 3 строки, то лукап форма откроется на вытоту таблицы, т.е. на 3 строки...
НО... если в таблице, например, 50 строк, то форма пытается открыться на 50 строк таблицы, не входит в указанные рамки для фрейма аксапты и самопроизвольно закрывается...

Хочется сделать так чтобы высота формы работала как авто, но не превышала определенный предел...

В данный момент установил значение высоты жестко, но это немного выглядит не красиво если строк в таблице мало...
__________________
Дмитрий Гришин
Старый 09.10.2003, 15:53   #2  
Zom is offline
Zom
Участник
 
41 / 11 (1) +
Регистрация: 28.08.2003
Адрес: Denmark
Re: Auto, но не более чем... Можно сделать?
Цитата:
Изначально опубликовано SnowMan
Добрый день!

Можно ли управлять свойством Высота (Height) формы так чтобы моделировалась ситуация: Высота = Auto, но не более чем, например, 250...?

Если я правильно понял что тебе нужно, попробуй создать следующий метод на форме. При этом можно оставить свойство Height = Auto.

PHP код:
public void init()
{
    
int maxHeight 250;

    
super();

    if (
element.design().heightValue() > maxHeight)
    {
        
element.design().height(maxHeight);
    }

Старый 13.10.2003, 16:18   #3  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
Re: Re: Auto, но не более чем... Можно сделать?
PHP код:
public void init()
{
    
int maxHeight 250;

    
super();

    if (
element.design().heightValue() > maxHeight)
    {
        
element.design().height(maxHeight);
    }

Да, мне нужно было сделать что-то подобное, но в методе init формы значение element.design().heightValue() всегда рано нулю и поэтому код, стоящий внутри условия никогда не выполняется...

Неужели у тебя данный код работает корректно?

Мой вопрос можно перефразировать:
"Как получить реальное значение свойства Height формы, до ее открытия?"
__________________
Дмитрий Гришин
Старый 13.10.2003, 17:36   #4  
Zom is offline
Zom
Участник
 
41 / 11 (1) +
Регистрация: 28.08.2003
Адрес: Denmark
Я тебе кинул код, который у меня нормально работал в Аксапте 3.0 SP1

После вызова super() в методе init() у тебя уже все свойства выставлены.
Старый 15.10.2003, 10:33   #5  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
Цитата:
Изначально опубликовано Zom

... При этом можно оставить свойство Height = Auto.
Я тебе кинул код, который у меня нормально работал в Аксапте 3.0 SP1
После вызова super() в методе init() у тебя уже все свойства выставлены.
У меня такая же версия аксапты, но при установленном свойстве дизайна формы Height =Auto, выражение element.design().heightValue() в методе init после super() ВСЕГДА возвращает 0...
и как получить фактическую высоту формы до ее отображения при установленном Height =Auto я не знаю...
а вот если, после открытия формы, опросить ее высоту, то фактическое значение получить можно (см прилагаемый проект)
Вложения
Тип файла: xpo formheight.xpo (5.2 Кб, 329 просмотров)
__________________
Дмитрий Гришин
Старый 15.10.2003, 12:04   #6  
Zom is offline
Zom
Участник
 
41 / 11 (1) +
Регистрация: 28.08.2003
Адрес: Denmark
Значит тебе придется переопределить метод Run()

Вот код для твоего примера

PHP код:
public void run()
{
    
super();

    
infoint2strelement.design().heightValue()));
    
button.clicked();

После открытия формы у меня выводит 0 0 38 38.
Старый 15.10.2003, 12:37   #7  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
Цитата:
Изначально опубликовано Zom
Значит тебе придется переопределить метод Run()
Да, можно переопределить и этот метод, я пробовал, но в таком случае форма сначала прорисовывается, а потом меняет свой размер...
для пользователей, да и для меня, такое поведение лукап формы выглядит диким...

склоняюсь к мнению, что такое в аксапте реализовать нельзя, т.е. нельзя анализировать размеры формы и управлять ими до ее открытия...
__________________
Дмитрий Гришин
Старый 15.10.2003, 13:06   #8  
Zom is offline
Zom
Участник
 
41 / 11 (1) +
Регистрация: 28.08.2003
Адрес: Denmark
Выложи XPO файл с той формой, которую ты хочешь изменить.
Посмотрю что можно сделать.
Старый 15.10.2003, 14:17   #9  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
Цитата:
Изначально опубликовано Zom
Выложи XPO файл с той формой, которую ты хочешь изменить.
Посмотрю что можно сделать.
свой проект выложить не могу, слишком много лишнего и резать, а вот на одном из примеров из этого форума можно обкатывать поведение, то которое я хотел смоделировать - смотри прикрепленный проект
Вложения
Тип файла: xpo hb_lookup_temp.xpo (19.8 Кб, 461 просмотров)
__________________
Дмитрий Гришин
Старый 15.10.2003, 17:32   #10  
Zom is offline
Zom
Участник
 
41 / 11 (1) +
Регистрация: 28.08.2003
Адрес: Denmark
У меня 2 твои формы в проекте были не связаны между собой. Я так понял, что та, которая называется ...Lokup должна выпадать при нажатии Lookup Button на маленькой форме с одним контролом.

Посмотри приаттаченый файл, у меня Lookup Form все время остается небольшого размера, независимо от кол-ва в ней эл-ов.
Старый 15.10.2003, 18:16   #11  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
Цитата:
Изначально опубликовано Zom
У меня 2 твои формы в проекте были не связаны между собой. Я так понял, что та, которая называется ...Lokup должна выпадать при нажатии Lookup Button на маленькой форме с одним контролом.

Посмотри приаттаченый файл, у меня Lookup Form все время остается небольшого размера, независимо от кол-ва в ней эл-ов.
Да я видно забыл выгрузить EDT, на основе которого объединялись две формы...
сейчас исправился (см прикрепленный проект)
Наблюдаемое поведение: при нажатии lookup button в первой форме происходит выпадание лукап формы со стандартной высотой грида
в методе run лукап формы я просто уменьщаю это высоту до 150, тем самым происходит перерисовывание лукап формы, что мне не подходит...

PS
если не ошибаюсь, Grid в аксапте всегда открывается с одной и той же высотой независимо от количества строк - поэтому лукап формы всегда одной и той же высоты. Но контрол Grid мне не подходит и в своей лукап форме я использую контрол Table, который, в свою очередь, пытается открыться на высоту всех строк, которые в нем находятся. Поэтому его надо ограничивать...
Вложения
Тип файла: xpo hb_lookup_temp.xpo (20.8 Кб, 317 просмотров)
__________________
Дмитрий Гришин
Старый 16.10.2003, 13:30   #12  
Zom is offline
Zom
Участник
 
41 / 11 (1) +
Регистрация: 28.08.2003
Адрес: Denmark
Цитата:
Изначально опубликовано SnowMan

если не ошибаюсь, Grid в аксапте всегда открывается с одной и той же высотой независимо от количества строк - поэтому лукап формы всегда одной и той же высоты. Но контрол Grid мне не подходит и в своей лукап форме я использую контрол Table, который, в свою очередь, пытается открыться на высоту всех строк, которые в нем находятся. Поэтому его надо ограничивать...
Та форма, которую ты приаттачил, использует Grid и она отлично работает.
Так что выложи форму с Table.
Старый 16.10.2003, 15:00   #13  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
Цитата:
Изначально опубликовано Zom
Так что выложи форму с Table.
выкладываю
Вложения
Тип файла: xpo hb_lookup_temp.xpo (17.4 Кб, 367 просмотров)
__________________
Дмитрий Гришин
Старый 16.10.2003, 19:05   #14  
Zom is offline
Zom
Участник
 
41 / 11 (1) +
Регистрация: 28.08.2003
Адрес: Denmark
Цитата:
Изначально опубликовано SnowMan


выкладываю
Дааа, все оказалось не так просто. Но вроде получилось что тебе надо.

Обрати внимание на init() в главной форме и run() в lookup форме.
Вложения
Тип файла: xpo hb_lookup_temp (2).xpo (19.8 Кб, 275 просмотров)
Старый 17.10.2003, 15:10   #15  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
Цитата:
Изначально опубликовано Zom

Дааа, все оказалось не так просто. Но вроде получилось что тебе надо.
Спасибо за несколько идей из твоей реализации, но остается проблема с определением координат для открытия лукап формы... попробуй переместить лукап поле в первой форме в середину формы, путем добавления каких-нибудь других контролов... при открытии лукап форма уплывет...
__________________
Дмитрий Гришин
Старый 17.10.2003, 15:27   #16  
Zom is offline
Zom
Участник
 
41 / 11 (1) +
Регистрация: 28.08.2003
Адрес: Denmark
Цитата:
Изначально опубликовано SnowMan


Спасибо за несколько идей из твоей реализации, но остается проблема с определением координат для открытия лукап формы... попробуй переместить лукап поле в первой форме в середину формы, путем добавления каких-нибудь других контролов... при открытии лукап форма уплывет...
Да, я тоже столкнулся с этой проблемой.
Наверно надо брать координаты parent-окна, добавлять к ним координаты контрола и передавать это через GlobalCache...

Вобщем, это уже на твое усмотрение
Старый 17.10.2003, 15:45   #17  
SnowMan is offline
SnowMan
Участник
 
57 / 10 (1) +
Регистрация: 15.08.2003
Адрес: Москва
Цитата:
Изначально опубликовано Zom
Да, я тоже столкнулся с этой проблемой.
Наверно надо брать координаты parent-окна, добавлять к ним координаты контрола и передавать это через GlobalCache...

Вобщем, это уже на твое усмотрение
я поигрался в очередной раз и ... оставил до лучших времен
__________________
Дмитрий Гришин
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вопрос по поводу "Модификации были отменены". Что можно сделать? Hans DAX: Программирование 23 22.12.2005 16:34
Книга Покупок можно ли не закрывать? asabin DAX: Функционал 1 18.11.2005 17:50
Вопрос: Кто чем пользуется для отчетов? BVN DAX: Программирование 10 26.10.2005 09:12
Как сделать вертикальную ориентацию метки ? Zabr DAX: Программирование 11 30.04.2004 15:32
Как сделать такое: номенклатура по времени. IS DAX: Функционал 12 28.04.2004 12:50
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:28.