Последняя версия DataExpress 2021.11.15

Изображение Скачать | Изображение Что нового?

Разделить строку по наименованию и ИНН

Все вопросы, связанные с работой в дизайнере.
Аватара пользователя
Develop-Soft
Сообщения: 2012
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 130 раз
Поблагодарили: 676 раз
Контактная информация:

Разделить строку по наименованию и ИНН

Сообщение Develop-Soft » 21 окт 2020, 19:18

Перезалил.

sergiost61
Интересующийся
Сообщения: 108
Зарегистрирован: 28 ноя 2017, 21:27
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Разделить строку по наименованию и ИНН

Сообщение sergiost61 » 07 янв 2022, 19:01

Возможно в эту тему вопрос по смыслу...
Есть числовое поле в котором содержится 15 чисел
Из этого поля нужно сделать выборку в три разных числовых поля по условию:
- в поле 2 вставить последнее число из 15 чисел;
- в поле 1 вставить числа, начиная с 7 по 14 из 15 чисел
- в поле 0 вставить оставшиеся, первые шесть чисел из 15 чисел.

Пробовал встроенными функциями, не совсем получается.
Подскажите пожалуйста, решение.
Базу прилагаю.
Вложения
OUTS.zip
(46.9 КБ) 6 скачиваний

al.kn
Специалист
Сообщения: 784
Зарегистрирован: 17 май 2020, 13:18
Благодарил (а): 43 раза
Поблагодарили: 79 раз

Разделить строку по наименованию и ИНН

Сообщение al.kn » 07 янв 2022, 20:28

sergiost61 писал(а):Возможно в эту тему вопрос по смыслу...
Есть числовое поле в котором содержится 15 чисел
Из этого поля нужно сделать выборку в три разных числовых поля по условию:
- в поле 2 вставить последнее число из 15 чисел;
- в поле 1 вставить числа, начиная с 7 по 14 из 15 чисел
- в поле 0 вставить оставшиеся, первые шесть чисел из 15 чисел.

Пробовал встроенными функциями, не совсем получается.
Подскажите пожалуйста, решение.
Базу прилагаю.

CUT от обратного

sergiost61
Интересующийся
Сообщения: 108
Зарегистрирован: 28 ноя 2017, 21:27
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Разделить строку по наименованию и ИНН

Сообщение sergiost61 » 07 янв 2022, 21:05

Точно! Благодарю!

Код: Выделить всё

CUT(cstr([Числовой ряд]), 15, 1) 
CUT(cstr([Числовой ряд]), 7, 8)
CUT(cstr([Числовой ряд]), 1, 6)

sergiost61
Интересующийся
Сообщения: 108
Зарегистрирован: 28 ноя 2017, 21:27
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Разделить строку по наименованию и ИНН

Сообщение sergiost61 » 08 янв 2022, 09:45

sergiost61 писал(а):Возможно в эту тему вопрос по смыслу...
Есть числовое поле в котором содержится 15 чисел
Из этого поля нужно сделать выборку в три разных числовых поля по условию:
- в поле 2 вставить последнее число из 15 чисел;
- в поле 1 вставить числа, начиная с 7 по 14 из 15 чисел
- в поле 0 вставить оставшиеся, первые шесть чисел из 15 чисел.

Задача усложнилась в виду того, что теперь необходимо сделать условие, потому как в числовом поле может быть разное количество цифр.
Подскажите с решением во вложении.
Вложения
OUTS.zip
(49.7 КБ) 7 скачиваний

al.kn
Специалист
Сообщения: 784
Зарегистрирован: 17 май 2020, 13:18
Благодарил (а): 43 раза
Поблагодарили: 79 раз

Разделить строку по наименованию и ИНН

Сообщение al.kn » 08 янв 2022, 12:19

sergiost61 писал(а):

А в чем собственно проблема, условие,
Если количество знаков 15, то, иначе
LENGTH
IIF

sergiost61
Интересующийся
Сообщения: 108
Зарегистрирован: 28 ноя 2017, 21:27
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Разделить строку по наименованию и ИНН

Сообщение sergiost61 » 08 янв 2022, 13:37

Вроде так заработало:

Код: Выделить всё

IIF (LENGTH(cstr([Числовой ряд]))=15, cut(cstr([Числовой ряд]), 8, 7), cut(cstr([Числовой ряд]), 8, 5))    #   для поля Число1
IIF (LENGTH(cstr([Числовой ряд]))=15, cut(cstr([Числовой ряд]), 15, 1), cut(cstr([Числовой ряд]), 13, 1))   #   для поля Число2

Благодарю!

al.kn
Специалист
Сообщения: 784
Зарегистрирован: 17 май 2020, 13:18
Благодарил (а): 43 раза
Поблагодарили: 79 раз

Разделить строку по наименованию и ИНН

Сообщение al.kn » 08 янв 2022, 15:59

sergiost61 писал(а):ю!

[Числовой ряд] сделай текстовым и запузырь маску ввода
Или уж если число, то проверку значения по количеству знаков, 13 или 15

sergiost61
Интересующийся
Сообщения: 108
Зарегистрирован: 28 ноя 2017, 21:27
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Разделить строку по наименованию и ИНН

Сообщение sergiost61 » 14 янв 2022, 13:34

al.kn писал(а):Или уж если число, то проверку значения по количеству знаков, 13 или 15

Не совсем понял...
Есть числовое поле:
- как в нём установить максимально допустимое количество цифр, скажем 15? лишние, что больше 15 чтобы отсекались и поле не отображались?
И такой еще момент: если в числовом поле получилось цифр 13, то как добавить еще 2 нуля ( в конце ряда) к этим 13 цифрам, чтобы в итоге получилось 15 цифр?

al.kn
Специалист
Сообщения: 784
Зарегистрирован: 17 май 2020, 13:18
Благодарил (а): 43 раза
Поблагодарили: 79 раз

Разделить строку по наименованию и ИНН

Сообщение al.kn » 15 янв 2022, 07:34

sergiost61 писал(а):цифр?

Почему ты так в число упираешься? С текстом работать удобнее, маска ввода есть, проверкой значения присобачить к тексту можно все что угодно. А чтобы к числу, его умножить на 100 надо.
В числе 0 первым знаком в отличии от текста не поставишь
Функции, которые ты используешь, все равно в текст твое число переводят... :?
Даже здесь Модуль DaData
Инн как текст хранится
Инн как число, наверное только налоговая использует, потому, что им может диапозон организаций понадобиться...


Вернуться в «Дизайнер»