Страница 1 из 2
как перенести строку?
Добавлено: 13 сен 2005, 09:43
lehancho
Ни как не могу перенести строку в том же столбце в отчете
например выводится переменная 0025423
4556739
qwerqw3
а нужно 00254
2345
5667
39qw
erqw3
пробовал chr(10),chr(13) ни чего не помогает, все уносит в лево и мусор получается
помогите пожайлуста
Добавлено: 13 сен 2005, 11:10
DarkAngel27
.fields
substr(var,1,5)
substr(var,6,10)
substr(var,11,15)
substr(var,16,20)
.endfields
Это как вариант
Добавлено: 13 сен 2005, 11:45
lehancho
проблема еще в том, что сколько там выведется не известно, так как в цикле, и нужно после каждой переменной переход делать
Добавлено: 13 сен 2005, 15:57
DarkAngel27
Если переменных несколько, то слейте всё в одну, а там уже либо как решали сами делать, либо вырезать по частям...
Добавлено: 13 сен 2005, 18:21
edward_K
@@@@@ не пробывали?
если не подходит, тогда режте в цикле
.{ while условие
.}
Добавлено: 14 сен 2005, 09:06
lehancho
Все и так в одной переменной, а выводит вот таким образом
fields
str1
.{
str1:=str1+str2+str3 // вот эту переменную вывожу
.}
@@@@@@@@ // вот это вывод
но здесь есть другие переменные, в чем вся сложность
@@@@@@ @@@@@@@ @@@@@@@@ @@@@@@@@@
например:
num1 123 10.01.05 10.02.05
num2
num3
num5/4
а мне мусор вроде выдает
num1num2nu 123 10.01.05 10.02.05
m3num4num
короче после каждой переменной нужно сделать перенос в том же столбце
Добавлено: 14 сен 2005, 11:38
edward_K
еcли вы хотите
num1num2nu 123 10.01.05 10.02.05
m3num4numпаолпваждпрвалджпвдажповджа
.fields
substr(ss1,1,5) ss2 ss3 ....
substr(ss1,6,200)
.endfields
@@@@@@ @@@@ @@@@@@ @@@@@@@
.{?internal;length(ss1)>5;
@@@@@@@@@@@@@@@@@@@@@@@@
.}
если
num1 123 10.01.05 10.02.05
num2
num3
num5/4
то
.fields
s1 ................
s2
s3
s4
.endfields
@@@@@@@ @@@@@@@@@ @@@@
.{?internal;length(s2)>0;
^
.}
....
.{?internal;length(s4)>0;
^
.}
если же используете массив, то универсальней будет while + internal
Добавлено: 15 сен 2005, 11:12
lehancho
а если переменная равна s1=num1num2num3num4num, то как тут с lenght
в переменную в цикле заношу данные нужные, а потом
из переменной надо построить столбец, в котором будет
num1
num2
num3
num5/4
Добавлено: 15 сен 2005, 11:44
edward_K
если длина каждого куска постояна то режте куски вместо полей через substr.
если разная то оптимальней их разделить черз ";" например и воспользоваться функцией Extractdelimetedword, иначе пишите свою для выкусывания кусков.
Добавлено: 15 сен 2005, 12:44
lehancho
что это за функция и где ее найти, в справке по гале нет такой?
Добавлено: 15 сен 2005, 13:30
edward_K
ExtractDelimitedWord(PlPor.Tax,1,';') // 101
ExtractDelimitedWord(PlPor.Tax,2,';') // 104
ExtractDelimitedWord(PlPor.Tax,3,';') // 105
ExtractDelimitedWord(PlPor.Tax,4,';') // 106
ExtractDelimitedWord(PlPor.Tax,5,';') // 107
ExtractDelimitedWord(PlPor.Tax,6,';') // 108
ExtractDelimitedWord(PlPor.Tax,7,';') // 109
ExtractDelimitedWord(PlPor.Tax,8,';') // 110
Добавлено: 15 сен 2005, 14:18
lehancho
немного не понятно, что есть PlPor.Tax (имя таблицы), и где в форме это можно пристроить
далее 1 и ;
если можно по подробнее
за ранее спасибо
Добавлено: 15 сен 2005, 14:34
edward_K
это пример использования из настроек банк клиента
вместо plpor.tax пишите ваше поле
2 - разделитель
3 - номер части
Добавлено: 15 сен 2005, 15:09
lehancho
получает, что делит допустим переменную на части. Вопрос тогда на какие части? размерность и сколько частей, если за ранее не известно сколько будет значений в переменной.
Добавлено: 15 сен 2005, 15:17
edward_K
.var
i:integer
wstr:string ;
wkl:boolean ;
.endvar
.begin
i:=1
wkl:=if(length(ExtractDelimitedWord(s1,1,';'))=0,false,true) ;
end.
.fields
ExtractDelimitedWord(s1,i,';')
.endfields
.{while wkl
@@@@@@@@@@@
.begin
i:=i+1 ;
wkl:=if(length(ExtractDelimitedWord(s1,i,';'))=0,false,true) ;
end.
.}
ну больше уже некуда