AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

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

PHP Code:
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(); 
Old 08.01.2003, 13:47   #8  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Join Date: 17.12.2002
Location: Saint-Petersburg
Спасибо огромное
Old 08.01.2003, 19:48   #9  
Zelenhof is offline
Zelenhof
Участник
 
19 / 10 (1) +
Join Date: 17.12.2002
Location: Saint-Petersburg
Извини еще пристану.

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

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

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

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

PHP Code:
itemNameControl.height(newHeightCharUnits::CHAR);

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

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

PHP Code:
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 Code:
display str dem_ItemName()
{
   
str result;
   ;
   
result "Hello";
   return 
result;

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

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

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 09:39.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.