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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.01.2003, 11:23   #1  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Регистрация: 17.12.2002
Адрес: Saint-Petersburg
Ширина колонок в отчете для memo - бред какой-то
Понятно, что мемо может быть и 5 символов и 125.. Если ставить фиксированную ширину колонки, а высоту Column height - страшно смотреть что получается. А хочется чтобы именно растягивалось по необходимости на те хх5 символов, сколько надо. В чем прикол? Да - в секции выводится и мемо и не мемо, в разных колонках иссесно.
Спасибо.
Старый 08.01.2003, 11:47   #2  
PlasticinE is offline
PlasticinE
Смотрящий поверх деревьев (Варварский отморозок)
 
243 / 10 (1) +
Регистрация: 06.12.2001
<Зохавано мудератором>
за неуплату
__________________
It's a dirty job, but someone's got to do it. So?
Старый 08.01.2003, 11:50   #3  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Регистрация: 17.12.2002
Адрес: Saint-Petersburg
Ну-да, ну-да.. а если их три мемо и одна колонка фиксированной длины? Мне звездочки рисовать тогда? )
Старый 08.01.2003, 11:58   #4  
PlasticinE is offline
PlasticinE
Смотрящий поверх деревьев (Варварский отморозок)
 
243 / 10 (1) +
Регистрация: 06.12.2001
<Зохавано мудератором>
за неуплату
__________________
It's a dirty job, but someone's got to do it. So?
Старый 08.01.2003, 12:22   #5  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Регистрация: 17.12.2002
Адрес: Saint-Petersburg
Можеь глупый вопрос, но я разработчик Аксапты зело начинающий - до супера, или после?
Старый 08.01.2003, 12:36   #6  
PlasticinE is offline
PlasticinE
Смотрящий поверх деревьев (Варварский отморозок)
 
243 / 10 (1) +
Регистрация: 06.12.2001
<Зохавано мудератором>
за неуплату
__________________
It's a dirty job, but someone's got to do it. So?
Старый 08.01.2003, 13:25   #7  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
В executeSection той секции отчета, где выводятся мемо можно узнать/изтменить высоту/ширину элементов секции и поправить их. Я вот только не помню (давно отчетами не занимался ) длина мемо видна или нет оттуда.
Сорри, если я не про то.... Но вот так я менял высоту всех элементов в накладной - в зависимости от длины выводимого текста(названия номенклатуры) секция отчета увеличиваласть в высоту:

PHP код:
public void executeSection()
{
    
ReportStringControl        itemNameControlstringControl;
    
ReportShapeControl         shapeControl;
    
str                        itemName;
    
int                        newHeightChar;
    ;
    
itemNameControl this.controlName("Control_1");
    
itemName        element.dem_ItemName();
    
newHeightChar   itemNameControl.widthOfString100mm(itemName) / itemNameControl.width100mm() + 1;
    
itemNameControl.height(newHeightCharUnits::CHAR);

    
stringControl this.controlName("Quantity_RU");
    
stringControl.height(newHeightCharUnits::CHAR);
    
stringControl this.controlName("Qty_RU");
    
stringControl.height(newHeightCharUnits::CHAR);
    
stringControl this.controlName("LineAmount_RU");
    
stringControl.height(newHeightCharUnits::CHAR);
    
stringControl this.controlName("VATAmount_RU");
    
stringControl.height(newHeightCharUnits::CHAR);
    
stringControl this.controlName("StrAmount_RU");
    
stringControl.height(newHeightCharUnits::CHAR);
    
stringControl this.controlName("QtyNumber");
    
stringControl.height(newHeightCharUnits::CHAR);
    
stringControl this.controlName("Control_10");
    
stringControl.height(newHeightCharUnits::CHAR);

  .......................

     
super(); 
Старый 08.01.2003, 13:47   #8  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Регистрация: 17.12.2002
Адрес: Saint-Petersburg
Спасибо огромное
Старый 08.01.2003, 19:48   #9  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Регистрация: 17.12.2002
Адрес: Saint-Petersburg
Извини еще пристану.

PHP код:
itemName        element.dem_ItemName(); 
вот это самое element.dem_ItemName() - це метод чего? element я так понимаю возвращает контекст самого отчета, да?
Старый 09.01.2003, 08:50   #10  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Да.

Element это сам отчет.
dem_ItemName - метод этого отчета, который возвращает строку, которая печатается. В данном случае наименование номенклатуры.

PHP код:
itemNameControl this.controlName("Control_1"); 
Это я получаю сам контрол на дизайне в который выводится строка, возвращаемая моим методом.

PHP код:
newHeightChar   itemNameControl.widthOfString100mm(itemName) / itemNameControl.width100mm() + 1
Это я определяю новую высоту элементов в данной секции отчета. То есть я смотрю во сколько печатаемая строка превышает то, что реально уместится в данный контрол. Плюс 1 - получаем высоту (в символах) всех элементов данной секции отчета.

PHP код:
itemNameControl.height(newHeightCharUnits::CHAR);

stringControl this.controlName("Quantity_RU");
stringControl.height(newHeightCharUnits::CHAR); 
А это, я перебираю все контролы в данной секции отчета и увеличиваю их высоту.
Старый 09.01.2003, 12:43   #11  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Регистрация: 17.12.2002
Адрес: Saint-Petersburg
Я знаю, что совсем обнаглею, но тебе не трудно будет прислать еще код метода, который возвращает наименование. Я попытался - не получилось (не привык я еще к методам работы аксапты с указателями.. точнее с их отсутствием).

Если не трудно - кинь на мыло MironovS@ryba.spb.ru
Старый 09.01.2003, 12:55   #12  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Код конечно показать могу, но не понимаю зачем он тебе нужен:

PHP код:
display str dem_ItemName()
{
   
pit_SalesLineLiftPassport    pitPassport;
   
dem_LiftPassport             demPassport;
   
SalesLine                    salesLine;
   
str                          result;
   ;

   
select salesLine where ((salesLine.SalesId == purchId) &&
                            (
salesLine.LineNum == dynamicData.LineNum));
   
select pitPassport where pitPassport.InventTransId == salesLine.InventTransId;
   
select demPassport where demPassport.LiftPassportId == pitPassport.LiftPassportId;

   
result dynamicData.ItemName;
   if (
demPassport.HeightLift != 0result result +  " H=" any2str(demPassport.HeightLift) + " ì ";
   if (
demPassport.StopAmount != 0result result +  " îñò." int2str(demPassport.StopAmount);
   if (
demPassport.FactoryNumber !=0result result "  " +  int2str(demPassport.FactoryNumber);

   return  
result;

Вообще это должен быть любой метод, возвращающий строку.
Например :

PHP код:
display str dem_ItemName()
{
   
str result;
   ;
   
result "Hello";
   return 
result;

Вместо строки
PHP код:
   result "Hello"
пропиши свой алгоритм получения строки, которую ты собираешься отобразить в отчете.

Будут вопросы - спрашивай.
Старый 09.01.2003, 13:01   #13  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Регистрация: 17.12.2002
Адрес: Saint-Petersburg
Есть вопрос. У меня по сути три поля мемо в строке и мне нужно определить максимальный и по его ширине откоректировать все колонки. С определением максимального я справлюсь. У меня проблема с получением самих значений, которые должны будут выводиться.
И еще - в проперти высоты колонки должно стоять авто, или все равно что, если я потом в executesection устанавливаю высоту?
Старый 09.01.2003, 13:12   #14  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
У меня проблема с получением самих значений, которые должны будут выводиться.
А откуда они у тебя выводятся в контролы - из таблицы, из метода ? Щелкни на Memo и посмотри его Property. Какие могут быть проблемы - поясни ?

Цитата:
И еще - в проперти высоты колонки должно стоять авто, или все равно что, если я потом в executesection устанавливаю высоту?
У меня там стоят конкретные числа, но наверное, это без разницы.
Старый 09.01.2003, 13:12   #15  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Регистрация: 17.12.2002
Адрес: Saint-Petersburg
Извини - вопрос про получение даных отпал.. Сам разобрался. Ступил.
Старый 09.01.2003, 13:50   #16  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Регистрация: 17.12.2002
Адрес: Saint-Petersburg
Все получилось. Спасибо огромное
Старый 09.01.2003, 15:50   #17  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Регистрация: 17.12.2002
Адрес: Saint-Petersburg
мда.. есть еще одна "тонкость".. метод widthOfString100mm возвращает длину строки до первого символа перевода строки. Как можно забороть?
Старый 09.01.2003, 15:56   #18  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Так сразу не скажу, но может стоить вырезать из строки передаваемой в эту функцию символы перевода строки ?
Старый 09.01.2003, 15:58   #19  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Регистрация: 17.12.2002
Адрес: Saint-Petersburg
Сейчас пробую strreplace
Старый 09.01.2003, 21:09   #20  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Регистрация: 17.12.2002
Адрес: Saint-Petersburg
Извини - на форуме не нашел.. как код ASCII ввести в Аксапте?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
WebGrid - ширина колонок GromRom DAX: Программирование 6 14.07.2008 15:52
Ширина секции в отчете symba DAX: Программирование 2 06.06.2008 17:46
Ширина колонок в гриде в DAX 4.0 Ivanhoe DAX: Администрирование 6 05.07.2007 16:08
Вывод в Excel в формате XML и ширина колонок gl00mie DAX: Программирование 1 30.10.2006 10:45
Сохранение настроек GRID (ширина и порядок колонок) liza DAX: Программирование 1 25.07.2003 22:20
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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