Текущее время: Чт, июл 24 2025, 07:36

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: пустой столбец в таблице
СообщениеДобавлено: Ср, сен 14 2011, 13:18 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июл 15 2009, 05:55
Сообщения: 174
Откуда: Мегион - > СПб
Пол: Мужской
viewtopic.php?f=13&t=40825&p=270013&hilit=%D0%BF%D1%83%D1%81%D1%82%D0%BE%D0%B9+%D1%81%D1%82%D0%BE%D0%BB%D0%B1%D0%B5%D1%86#p270013

RRRoman написал(а):
...
ну как определить пустой ли столбец - способов много можно придумать :).


Отчет выгружаю в алв. 5 столбцов данной таблицы выводятся в зависимости от того, есть ли в них какие-то данные. Работаю с именами полей в динамике. Read почти решил данную задачу, но key-и работают только со знаком равно. Подскажите какие-нибудь решения, пожалуйста.

Code:
    LOOP AT t_priz_ assigning <lr_str> .
      LVC_FNAME = <lr_str>-string1.
      read table TABLITA with key (LVC_FNAME) = SPACE.


у меня же после знака = должно быть любое значение, отличное от Space.

_________________
Ничто так не заразительно, как смех начальника...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: пустой столбец в таблице
СообщениеДобавлено: Ср, сен 14 2011, 13:58 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
LinevskiySV написал:
http://sapboard.ru/forum/viewtopic.php?f=13&t=40825&p=270013&hilit=%D0%BF%D1%83%D1%81%D1%82%D0%BE%D0%B9+%D1%81%D1%82%D0%BE%D0%BB%D0%B1%D0%B5%D1%86#p270013

RRRoman написал(а):
...
ну как определить пустой ли столбец - способов много можно придумать :).


Отчет выгружаю в алв. 5 столбцов данной таблицы выводятся в зависимости от того, есть ли в них какие-то данные. Работаю с именами полей в динамике. Read почти решил данную задачу, но key-и работают только со знаком равно. Подскажите какие-нибудь решения, пожалуйста.

Code:
    LOOP AT t_priz_ assigning <lr_str> .
      LVC_FNAME = <lr_str>-string1.
      read table TABLITA with key (LVC_FNAME) = SPACE.


у меня же после знака = должно быть любое значение, отличное от Space.

Анализировать данные ещё на этапе сбора и помечать в какой-либо структурке

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пустой столбец в таблице
СообщениеДобавлено: Ср, сен 14 2011, 15:38 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июл 15 2009, 05:55
Сообщения: 174
Откуда: Мегион - > СПб
Пол: Мужской
Это понятно, я так и сделаю в итоге для типа таблицы t_priz_ укажу 3 элемент в структуре, какой-нибудь чек. который потом будет заполняться в случае если это поле будет хоть раз задействовано. Хотелось бы другое решение. Просто меня заинтриговали слова:

RRRoman написал(а):
...
ну как определить пустой ли столбец - способов много можно придумать :).


Хочется интересного

_________________
Ничто так не заразительно, как смех начальника...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: пустой столбец в таблице
СообщениеДобавлено: Чт, сен 15 2011, 11:32 
Специалист
Специалист

Зарегистрирован:
Пн, июл 11 2011, 10:50
Сообщения: 197
LinevskiySV написал:
Это понятно, я так и сделаю в итоге для типа таблицы t_priz_ укажу 3 элемент в структуре, какой-нибудь чек. который потом будет заполняться в случае если это поле будет хоть раз задействовано. Хотелось бы другое решение. Просто меня заинтриговали слова:

RRRoman написал(а):
...
ну как определить пустой ли столбец - способов много можно придумать :).


Хочется интересного



Ну можно конечно через

Code:
LOOP AT TABLITA TRANSPORTING NO FIELDS WHERE LVC_FNAME <> space.
EXIT.
ENDLOOP.

IF sy-subrc = 0.
ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: пустой столбец в таблице
СообщениеДобавлено: Чт, сен 15 2011, 12:30 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июл 15 2009, 05:55
Сообщения: 174
Откуда: Мегион - > СПб
Пол: Мужской
Code:
LOOP AT TABLITA TRANSPORTING NO FIELDS WHERE LVC_FNAME <> space.
EXIT.
ENDLOOP.

IF sy-subrc = 0.
ENDIF.



В значении переменной LVC_FNAME и находится название поля (к примеру ATWTB). Обращение именно к полю осуществляется через такую запись (LVC_FNAME). А динамика в записи LOOP-а не допускается в таком виде

Code:
LOOP AT TABLITA TRANSPORTING NO FIELDS WHERE (LVC_FNAME) <> space.
EXIT.
ENDLOOP.

IF sy-subrc = 0.
ENDIF.

Read, как я говорил допускает такую конструкцию, LOOP нет

_________________
Ничто так не заразительно, как смех начальника...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: пустой столбец в таблице
СообщениеДобавлено: Чт, сен 15 2011, 13:54 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
to LinevskiySV, я немного не понял Вашу проблему в первом посте, если честно. Но вот что касается "как определить пустой ли столбец", предлагаю такой вариант.
Отсортировать таблицу по колонке в порядке убывания (sort поддерживает динамику)
Далее read table-ом посмотреть первую запись в этой колонке, если она пустая, значит колонка пустая.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пустой столбец в таблице
СообщениеДобавлено: Чт, сен 15 2011, 16:46 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июл 15 2009, 05:55
Сообщения: 174
Откуда: Мегион - > СПб
Пол: Мужской
Besa написал:
я немного не понял Вашу проблему в первом посте, если честно. .


Попробуем быть последовательны. Торо: 30 классов КИП (контрольно-измерительных приборов) с разным количеством признаков. Оптимальное количество равно 5 (при увеличении кол-ва признаков будет необходимо увеличить 2 структуры , равенство в них полей я проверяю при запуске программы, для потомков, чтоб поняли, куда копать). Эти пять полей вместе с пятью шаблонами имен признаков организуют еще на этапе инициализации такую внутреннюю таблицу t_priz_ со значениями:

STRING1 | STRING2
___________________________
ATWTB1 | ZKIP_NAZVAN*
ATWTB2 | ZKIP_TIP*
ATWTB3 | ZKIP_MARKA*
ATWTB4 | ZKIP_DIAM*
ATWTB5 | ZKIP_PARAM*

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

Code:
    LOOP AT t_priz_ assigning <lr_str> .
      LVC_FNAME = <lr_str>-string1.

    try.
     lt_column ?= lt_columns->get_column( LVC_FNAME ).
    ...
    endtry.

     "здесь мне хотелось, чтоб была проверка
     "    В случае если кол-во заполненых записей в стобце ( LVC_FNAME ) = 0, тогда

    lt_column->set_tehnic( ).



Besa написал:
Но вот что касается "как определить пустой ли столбец", предлагаю такой вариант.
Отсортировать таблицу по колонке в порядке убывания (sort поддерживает динамику)
Далее read table-ом посмотреть первую запись в этой колонке, если она пустая, значит колонка пустая.


Я рассматривал данный вариант, коллега подсказал, знаю, что сорт поддерживает динамику. Но в итоге получиться, необходимо отсортировать
lines( t_priz_ ) = 5 раз таблицу. И еще в конце свою сортировку включить. Метод sy-uname пока менее затратен.

_________________
Ничто так не заразительно, как смех начальника...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: пустой столбец в таблице
СообщениеДобавлено: Пн, сен 26 2011, 10:11 
Специалист
Специалист

Зарегистрирован:
Пн, июл 11 2011, 10:50
Сообщения: 197
А зачем делать 5 раз сортировку, может просто
Code:
SORT t_priz_ DESCENDING.
А дальше убрать пустые столбцы через динамический READ TABLE по индексу, кстати можно уже наверное будет без LOOPа через DO 5. ENDDO.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: пустой столбец в таблице
СообщениеДобавлено: Пн, сен 26 2011, 10:44 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
sy-uname написал(а):
Анализировать данные ещё на этапе сбора и помечать в какой-либо структурке

+1.
Таблица с именами полей t_priz_ уже есть, нужно добавить туда поле IS_EMPTY.
Все вычисляется при одном проходе цикла, тем более он и так всегда есть :wink:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пустой столбец в таблице
СообщениеДобавлено: Пн, сен 26 2011, 11:20 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июл 15 2009, 05:55
Сообщения: 174
Откуда: Мегион - > СПб
Пол: Мужской
Bimit написал(а):
Code:
SORT t_priz_ DESCENDING.


Данная конструкция сортирует таблицу по ключу, который представляет из себя комбинацию всех clike полей (в случае если ключ не объявлен при описании). Здесь будет иерархическая сортировка. Сначала отсортирует по 1 полю, потом по второму и т.д. Это нам не даст потом определить пустой ли столбец ATWTB2 (т.к. перед этим он отсортирует по ATWTB1, а потом по равным значениям ATWTB1 отсортирует ATWTB2)
ЕО ATWTB1 ATWTB2
3102934 Дифманом 32RT
3102937 Дифманом 34WE
3102931 Манометр

после сортировки
ЕО ATWTB1 ATWTB2
3102931 Манометр
3102937 Дифманом 34WE
3102934 Дифманом 32RT
По-вашему столбец ATWTB2 пуст. Это не так.

Удав-у: Все таким образом и реализовано. Но я все равно не теряю надежды на красивое динамическое решение задачи уже в постобработке (т.е. определение полей по собранным данным без дополнительного столбца для хранения информации о том, что данное поле было задействовано)

_________________
Ничто так не заразительно, как смех начальника...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB