Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Слезать ему надо, Симплу, с ФПД на винду, время теряет, а лет осталось не бесконечное количество, каждый считаный. Не тупи, и на ВФП9 слезай, на лицензии за..й
|
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4212 Откуда: Москва Дата регистрации: 11.11.2008 |
Как интересно! А говорили, что экстрасенсов здесь нет. Сначала Игорь увидел ограничение в 11 символов, а теперь вот и у Олега "сумма с копейками" нарисовалась из ниоткуда (заодно подтвердил, что он тоже где-то видит эти 11). И лишь я оказался без суперспособностей - обидно.
Полезность VFP для этой задачи только в том, что функции группы TRIM() умеют обрезать не только пробелы, но и любые символы, в том числе нули. Соответственно, результат достигается чуть проще:
А при необходимости можно без больших временнЫх затрат обойтись и без UDF:
Исправлено 4 раз(а). Последнее : akvvohinc, 30.03.18 04:04 |
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Мда... А я-то думал, что вопрос простой. Myfield - это не ценовой реквизит, а количественный - содержит количество в физических единицах измерения. При печати отчета Myfield должен занимать 11 символов - иначе отчет будет выглядеть "как бык поссал". |
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4212 Откуда: Москва Дата регистрации: 11.11.2008 |
Тогда, прежде чем решать (если решать) задачу о размещении в 11 символах чисел большего размера, надо бы получить у автора ТЗ, ибо сделать это можно не одним способом, но во всех случаях потерь не избежать. Резать к чертовой матери! Copyright © 1982 |
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Мда еще раз.
Никаких чисел большего размера в 11 символах размещать не надо. В отчете под MYFIELD отведено 11 символов. Какого размера числа еще надо размещать? Может быть так будет понятнее. Печатаем значение поля MIFIELD в формате STR(MIFIELD,11,4). Потом берем клейкую ленту или замазку и замазываем два крайних нуля. Так понятно, надеюсь? Но эти способы имеют известные издержки, и поэтому принято решение программно "затереть два крайних нуля". Никаких чисел большего размера в 11 символах размещать не надо. Исправлено 2 раз(а). Последнее : Simple777, 30.03.18 19:14 |
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4212 Откуда: Москва Дата регистрации: 11.11.2008 |
Не просто 11 символов, а (11,4). Игорь в своем ответе рассмотрел ситуацию, когда в поле размером (11,4) записано число, имеющее более 6 знаков под целую часть - с этого и начались разговоры о "больших числах". Цитата: Нет. Вопрос же не в том, в каком формате ты выводишь, а в том, числа какой величины ты попробуешь запихнуть в этот формат. И тут никак не поможет знание того, что поле у тебя N(11,4), так как оно без проблем может хранить число 12345678. Исправлено 1 раз(а). Последнее : akvvohinc, 30.03.18 20:09 |
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
У юзера нет возможности ввести число большего размера, поскольку шаблон для ввода PICTURE '999999.9999'
Исправлено 1 раз(а). Последнее : Simple777, 30.03.18 20:08 |
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
akvvohinc Сообщений: 4212 Откуда: Москва Дата регистрации: 11.11.2008 |
Даже если программа идеальна и свободна от ошибок (есть такие?), то "мусор" в таблицу попасть может и даже не одним способом. Поэтому ты либо решаешь возможную проблему "больших чисел", либо игнорируешь ее, считая маловероятной или неважной. Твой ответ - игнорировать! - думаю, всех устроил. |
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
|
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Дело не в шаблоне, а в том что STR(11,4) умещает в 11 символов и бОльшие числа - при том не "ломается", и даже не сильно врёт (ну в e-формате сразу видно что тут лишь часть числа отображается, а для 123456789.1 - он хоть и "сместит", но отобразит целиком все циферки). Потому и желательно в своей доработке STR-а не потерять эту полезную особенность.
------------------ WBR, Igor |
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Когда речь идет о шаблоне вывода данных (тот же STR(11,4)) и при этом обрабатываются вычисляемые величины, то, конечно, надо учитывать, что в числе может и вовсе не быть дробной части из-за того, что точка после запятой была "сдвинута" вправо до полного ее исчезновения или что точка может быть не обязательно пятой справа. Когда же обрабатываются исходные данные, вводимые юзером по шаблону ввода, то вероятность сдвига точки вправо или полного ее исчезновения близка к нулю.
|
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Ну да ну да, это ты ещё, поди, буковок в N полях не видел Вероятность чего, по твоему, вообще должна быть нулевой...
А что, у тебя в отчёте нет под-итогов или общего итога? Или для них ты отдельную функцию мастерить будешь Я вот считаю что если можно сравнительно задёшево сделать универсальный вариант и применить его в десятке мест, то это всяко лучше чем делать 10 отдельных узко-заточенных вариантов (один под 11,4 - другой под 15,2 и т.д.). Ну и потом весело вносить в них изменения, если вдруг потребуется... ------------------ WBR, Igor |
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
В общем, провозился изрядно.
Сначала убедился, что моя UDF-функция делает совсем не то, что мне надо в данном случае. Потом проверил работу функции, предложенной Crispy. Всё "ясненько и понятненько". Для случая 11,4,2 работает. Потом стал смотреть в разных местах (в исходниках),что там с этим количеством. Оказалось, что есть еще 3 других варианта... 11,4,4 ; 9,4,2 ; 9,4,4 Писать еще три функции не захотелось. Тогда еще раз поизучал функцию IK. Маленько подправил для FPD (FPD не знает команд LPARAMETERS, ENDFUNC, LOCAL) И всё заработало, и притом обработка всех четырех вариантов свелась лишь к указанию разных параметров. Поэтому в данном случае на функции IK и остановился. Получилась, действительно, универсальная функция, что довольно круто!.. Спасибо за помощь!.. Исправлено 3 раз(а). Последнее : Simple777, 31.03.18 12:10 |
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Иокарный как говорится бабай. Какие ТРИ функции??! Всего лишь добавляешь еще один параметр для передачи возможного доп.числа в твоих возможных наборах "11,4,4 ; 9,4,2 ; 9,4,4" - и все!! Ты что ли процедур/функций мало писал. Элементарно же блин как бы. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) Исправлено 1 раз(а). Последнее : Crispy, 02.04.18 10:20 |
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Эх!..
|
Re: Заменить нули на пробелы в выходной форме FPD 2.6 | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Японский городовой, куды добавляешь!?
У меня в функе эти параметры и есть изначально - универсализм, однако. У тебя - гвоздями прибитые параметры. ------------------ WBR, Igor |
© 2000-2024 Fox Club  |