• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

Проблема при сортировке товара по наименованию

Автор admin, Січень 10, 2012, 10:22:35

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

admin

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

Зайдите в меню Опции : SQL менеджер и выполните след. код:

SELECT
 t.num,
 t.kod,
 t.name,
 strlen(t.name) AS strlen
FROM
 tovar_name t
WHERE
 strlen(t.name) >= 300

в результате скрипт выведет список товара наименования которых надо уменьшить чтобы было меньше 300 символов. Поле strlen показывает количество символов, обычно это просто минус 1 символ, т.е. будет достаточно отредактировать товар и удалить один лишний символ.

Такие проблемы могут быть и с другими справочниками и ихними символьными полями, если заметили отпишите.

Самый простой способ решения проблемы сделайте резерв и восстановление базы через меню Опции : Резервирование/Восстановление.

admin

Также это может быть причиной "слета" настроек колонок в таблицах.

romantyk

Краткость - сестра таланта! :)

Сама довга назва товару в 76 знаків не тягне на проблему?

Mas_Ter

#3
Цитата: admin від Січень 10, 2012, 10:22:35
У кого возникла проблема при сортировке товара по наименованию, т.е. при сортировке по коду товар показывается, а например если отсортировать по наименованию товар пропадает. Проблема в том что в таблицу записано больше символов чем разрешено.

Зайдите в меню Опции : SQL менеджер и выполните след. код:

SELECT
 t.num,
 t.kod,
 t.name,
 strlen(t.name) AS strlen
FROM
 tovar_name t
WHERE
 strlen(t.name) >= 300

в результате скрипт выведет список товара наименования которых надо уменьшить чтобы было меньше 300 символов. Поле strlen показывает количество символов, обычно это просто минус 1 символ, т.е. будет достаточно отредактировать товар и удалить один лишний символ.

Такие проблемы могут быть и с другими справочниками и ихними символьными полями, если заметили отпишите.

Ввел скрипт, действительно показало позицию в справочнике товара в которой много символов. Редактировать не получается, пришлось удалить. Теперь, вопрос: Как востановить нормальное отображение колонок и сортировок? Новая инсталяция проги не решает проблемку. Или скажите в каком файле хранятся эти настройки?
После удаления скрипт показывает что товар есть, а в справочнике его уже нет, удалил..

admin

Цитата: Mas_Ter від Січень 10, 2012, 12:47:46
Редактировать не получается, пришлось удалить.

Почему? Какая ошибка?

Цитата: Mas_Ter від Січень 10, 2012, 12:47:46
Теперь, вопрос: Как востановить нормальное отображение колонок и сортировок?

Удалить файл grids.ini и переустановить все скинеться по-умолчанию, либо выставить вручную.

Цитата: Mas_Ter від Січень 10, 2012, 12:47:46
Или скажите в каком файле хранятся эти настройки?

grids.ini

admin

#5
Только что исправляли проблему у пользователя, там была проблема не в 300 символах, а просто был либо записан не так символ либо был "левый" символ не из нужной кодировки.
Мы пересохранили некоторые товарные позиции и начало нормально показываться, это может быть изза недавней смены кодировки на win1258_ua, а многие хотят версию Firebird 2.5
представляете сколько может быть проблем при переходе но новый серв.

Как искали:

делаете выборку

SELECT
  t.num,
  t.kod,
  t.name,
  strlen(t.name) AS strlen
FROM
  tovar_name t
ORDER BY
  t.name

по всему справочнику и проверяем поле t.name это название товара, если выведет список ошибки нет либо не по этому полю, если не выведет ничего или выдаст ошибку, начинаем искать номер записи выставляя методом исключения номера. Например прикидываем что номенклатуры тысяч 7, делаем выборку до 4 тыс:

SELECT
  t.num,
  t.kod,
  t.name,
  strlen(t.name) AS strlen
FROM
  tovar_name t
WHERE
  t.num <= 4000
ORDER BY
  t.name

Если ошибка сокращаем диапазон ставим 2000 и т.д., если нет ошибки то увеличиваем диапазон, думаю метод понятен. Как находим запись с конкретным номером подправляем в справочнике и все должно работать.

Mas_Ter

#6
Не совсем понял, 133 при выборке выводит, 134 ошибка. Это что означает? Как я номер товара найду который подправлять? Товар неправильный в этих 133 позициях?

Mas_Ter

#7
Странно. В справочнике при сортировке полное название товара, показать все склады список товара выводит правильно, разметка колонок не рубается, а при режиме показать все группы, нет ничего(пусто), хотя разметка колонок нормальная. При вводе в поле фильтр, список по фильтру появляется. В режиме "Показать все группы с сортировкой по Наименованию" убираю галочку показывать нули, появляется список товара, галочку ставлю исчезает все.
Скриптом нашел товар с длинной наименования свыше 300 символов. Товар удалил. Но при запуске скрипта опять показывается этот удаленный товар. Эт почему?

Mas_Ter

#8
Цитата: Mas_Ter від Січень 10, 2012, 12:47:46
Теперь, вопрос: Как востановить нормальное отображение колонок и сортировок?
Цитата: Mas_Ter від Січень 10, 2012, 12:47:46
Удалить файл grids.ini и переустановить все скинеться по-умолчанию, либо выставить вручную.

Скопировал файл  grids.ini с папки program files в папку program data разметка стала нормальная. Используется WIN7 pro операционка.  Прога Ukrssklad_C стоит и в Program Files и в папке Program Data частично. Кто за кого отвечает непонятно. Думаю ОС сама какието файлы проги кидает в Program DATA. Есть ответ на сие деяние с точки зрения установки Укрсклада?



admin

Цитата: Mas_Ter від Січень 10, 2012, 19:03:11
Прога Ukrssklad_C стоит и в Program Files и в папке Program Data частично. Кто за кого отвечает непонятно. Думаю ОС сама какието файлы проги кидает в Program DATA. Есть ответ на сие деяние с точки зрения установки Укрсклада?

ОС не сама кидает, точнее кидает но не в эти папки. Это особенности Висты и 7 работы с Program Files и с ее ограниченными правами, уже на форуме расписывали.

admin

Вообще все подобные проблемы решаются сделав резерв и восстановление базы через меню меню Опции : Резервирование/Восстановление.