Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Хвосты от длинных названий в Initlist
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 18 Oct 2005 10:27    Post subject: Хвосты от длинных названий в Initlist Reply with quote

Я вывожу для просмотра список наименований товаров по InitList.
Одни названия длинные, другие короткие. В результате на экране после долгого листания остаются хвосты от длинных названий, которые не пролистываются. В чем тут может быть дело, возможно в setcolor?
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 18 Oct 2005 13:24    Post subject: Reply with quote

Марина а как Вы выодите названия - можно кусок текста взглянуть ?
Вы случайно их не режете типа ALLTRIM() ?
Back to top
View user's profile Send private message Send e-mail
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 18 Oct 2005 15:46    Post subject: Reply with quote

vv:=dialog("Наименование: ","XXXXXXXXXXXXX"," ")
if lastkey()=27
return .f.
endif
mlabel->(ordsetfocus("mlabel_t"))
mlabel->(dbseek(" "+upper(vv),.t.))
DISPBOX(5,20,24,70,( Chr( 201 ) + Chr( 205 ) + Chr( 187 ) + Chr( 186 ) + Chr( 188 ) + Chr( 205 ) + Chr( 200 ) + Chr( 186 )+' ' ) ,"W+/B")
@ 6,21 say "Нажмите Enter на нужном товаре или Esc для отказа" color "n/w"
mlabel->(initlist(7,23,{" Номер Наименование "},;
{{{||field->nnum},0},{{||left(field->name,30)},14}},,;
,,,,,,,{||.f.}))

Правда этот кусок внутри функции, которая вызывается из другой функции, а перед этим
setcolor("w+/b,n/w")
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 18 Oct 2005 17:27    Post subject: Reply with quote

Марина попробуйте полное обновление экрана положить в InitList
Back to top
View user's profile Send private message Send e-mail
Behemoth



Joined: 15 Mar 2002
Posts: 155
Location: Новиков Алексей Юрьевич
Occupation: ПБОЮЛ
Interests: Пермь

PostPosted: 18 Oct 2005 18:21    Post subject: Reply with quote

Добрый день.

Третий параметр initlist "волшебным" образом отвечает за ширину окна вывода. Поэтому длина строки заголовка должна быть не менее длины выводимых Вами полей.
Если Вы не приукрасили свою программу перед постингом, похоже, что длина строки " Номер Наименование " значительно меньше чем
{{||left(field->name,30)},14}}. 30 символов от 14-ой колонки заканчиваются на колонке 43. Именно такой (или большей) должна быть длина строки " Номер Наименование ".
_________________
С уважением, Новиков Алексей.
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 18 Oct 2005 19:37    Post subject: Reply with quote

Тогда бы она вообще не писала....
Неполный заголовок влияет на центровку изображения, т.е. не скраю пишет, вы можете вообще заголовок сделать из одного пробела и что вообще писать не будет ? - будет, так как программа выполняет EVAL каждого указанного Вами блока кода, а вот координаты смещаются - это есть такое.
А вот режим обновления экрана при нажатии клавиши надо обязательно указывать - это 5 параметр. Иначе он просто не перерисовывается. - Вы нажали пролистать страницу и экран полностью не перерисовался потому что не вернули 2 - вот Вам и хвосты....
Back to top
View user's profile Send private message Send e-mail
Behemoth



Joined: 15 Mar 2002
Posts: 155
Location: Новиков Алексей Юрьевич
Occupation: ПБОЮЛ
Interests: Пермь

PostPosted: 18 Oct 2005 20:05    Post subject: Reply with quote

Добрый день.

Уважаемая Марина, попробуйте оба варианта по-отдельности и вынесите свой вердикт.
_________________
С уважением, Новиков Алексей.
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 18 Oct 2005 20:18    Post subject: Reply with quote

А Вы сами попробуйте с пробелом в заголовке
Когда будем проходить расщепление окна на два Инитлиста - Вы сами с отладчиком пройдете и увидите наглядно как работает 5 параметр и как не влияет длина заголовка
По уму тут надо было бы еще кусок исходника InitList() привести - боюсь не успею...
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 18 Oct 2005 20:25    Post subject: Reply with quote

AEVAL(aBlockCols,{|x|aBlockCols[++nCo,2]:=x[2]+_nLeft}) //Пересчет aBlockCols

Это внутри Инитлист выполнения блоков кода - как видите здесь нет никакой зависимости от заголовка кроме как координаты отражения
Back to top
View user's profile Send private message Send e-mail
Behemoth



Joined: 15 Mar 2002
Posts: 155
Location: Новиков Алексей Юрьевич
Occupation: ПБОЮЛ
Interests: Пермь

PostPosted: 18 Oct 2005 20:34    Post subject: Reply with quote

Добрый день.

nordk wrote:
А Вы сами попробуйте с пробелом в заголовке


Попробовал. Аккурат остаются длинные хвосты. Вся та часть строки, которая длиннее 1. Это при движении за пределы первого экрана.
Скроллируется только экран шириной 1 символ.

Ой не зря в документации про ширину области вывода написано...

"03.cColHead – строка или массив строк – заголовок над полями, или если число, тогда считается, что заголовка нет и это ширина области вывода InitList"
_________________
С уважением, Новиков Алексей.
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 18 Oct 2005 20:38    Post subject: Reply with quote

Я Вам привел код из текста Инитлист - у меня вся строка скролируется без проблем....
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 18 Oct 2005 20:39    Post subject: Reply with quote

Приведите Ваш текс
Back to top
View user's profile Send private message Send e-mail
Behemoth



Joined: 15 Mar 2002
Posts: 155
Location: Новиков Алексей Юрьевич
Occupation: ПБОЮЛ
Interests: Пермь

PostPosted: 18 Oct 2005 21:04    Post subject: Reply with quote

Добрый день.



function mymain()
Private A1,cColHead,aBlock

a1:= Chr(201)+Chr(205)+Chr(187)+Chr(186)+Chr(188)+Chr(205)+Chr(200)+Chr(186)+' '
@ 2,0,22,79 BOX a1 COLOR "W+/B+"

cColHead := " Группа Ном. номер Наименование "
// cColHead := padr(" Группа Ном. номер Наименование ",7

aBlock := {}
AADD(aBlock,{{|| grup},1})
AADD(aBlock,{{|| nnum},7})
AADD(aBlock,{{|| left(name,40)},21})

mlabel->(InitList(3,21,cColHead,aBlock,,,,,,,0,,,,,,,,,,0))

return
_________________
С уважением, Новиков Алексей.
Back to top
View user's profile Send private message Send e-mail
Behemoth



Joined: 15 Mar 2002
Posts: 155
Location: Новиков Алексей Юрьевич
Occupation: ПБОЮЛ
Interests: Пермь

PostPosted: 18 Oct 2005 21:06    Post subject: Reply with quote

Добрый день.

Там в ccolhead вместо смайлика было "8 )".
_________________
С уважением, Новиков Алексей.
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 18 Oct 2005 21:12    Post subject: Reply with quote

Вот а теперь добавьте в пятый параметр {||"2"} и посмотрите что получится
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru