Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Регистр и заполнение пустых

Добрый день, коллеги.

Назрело 2 вопроса, гугл не помог:

1. Можно ли заставить QV  игнорировать регистр (в названиях полей и в записях) ?

2. Как можно заполнить пустые ячейки значениями сверху?

gf9f8xi2.bmp

1 Solution

Accepted Solutions
qlikviewaito
Contributor II
Contributor II

Добрый день,

1. в хелпе есть функция, попробуйте ее.

The force statement forces QlikView to interpret field values of subsequent Load and Select (SQL) statements as written with only upper case letters, with only lower case letters, as always capitalized or as they appear (mixed). This statement makes it possible to associate field values from tables made according to different conventions.   The syntax is:

force ( capitalization | case upper | case lower | case mixed )

Force Capitalization;

Force Case Upper;

Force Case Lower;

Force Case Mixed;

2. С помощью трансформации в File Wizard.

View solution in original post

9 Replies
qlikviewaito
Contributor II
Contributor II

Добрый день,

1. в хелпе есть функция, попробуйте ее.

The force statement forces QlikView to interpret field values of subsequent Load and Select (SQL) statements as written with only upper case letters, with only lower case letters, as always capitalized or as they appear (mixed). This statement makes it possible to associate field values from tables made according to different conventions.   The syntax is:

force ( capitalization | case upper | case lower | case mixed )

Force Capitalization;

Force Case Upper;

Force Case Lower;

Force Case Mixed;

2. С помощью трансформации в File Wizard.

Anonymous
Not applicable
Author

Спасибо. Со вторым вопросом всё заработало! А вот по первому...

Почитал, про  'force case...'  но я правильно понимаю, что оно действует только для значений поля?

Это уже хорошо, но необходимо так же приравнять и названия полей

"код товара"="Код товара"="Код Товара".

Т.е. по маске загружается пачка файлов, таблицы имеют одну структуру, но вот в названиях столбцов в каждом городе большие и маленькие буквы используют по своему, а нужно, чтоб QV  видел это всё как одну таблицу.

qlikviewaito
Contributor II
Contributor II

А полей очень много? Почему их нельзя просто переименовать через AS в LOAD?

Вот, нашла тему на форуме http://www.qlikcommunity.com/thread/64404

Считывают отделно поля, потом переименовывают.

Еще как вариант, переименования:

TIQView Blog - Facing Square Brackets in Field Names of QlikView Sources - A Blog about QlikView and...

Anonymous
Not applicable
Author

А всё разобрался, проблема решается через использование явных меток, вместо встроенных, но всё равно полезно было бы иметь какой-то инструмент для загрузки, плохо формализованных данных,

допустим загрузка полей по маске, что-то вроде:

load

*рода* as продажи

from  продажи/*.xls;

И в поле продажи тогда бы загрузились  данные полей : продажи, Продажи, продано, Продажи за месяц...и т.д.  из всех документов в папке .

Нет ли чего-то подобного?

Anonymous
Not applicable
Author

Вот по первой ссылке хороший вариант.

А как переименовать в load? Полей то не слишком много, но много документов,

Т.е. если написать, что-то вроде

Load

продажи аs Продажи,

Продажи

from *.xls;

То будет же ошибка, разве нет?

Кстати раз уж затронули такой вопрос, есть опция игнорирования некритических ошибок скрипта?

Eugeny_Ilyin
Creator II
Creator II

Следующие переменные могут использоваться для обработки ошибок в скрипте:

ErrorMode

ScriptError

ScriptErrorDetails

ScriptErrorCount

ScriptErrorList

Вот только, что критически что нет, решать в скрипте вам.
Скрипт просто идет дальше и все, и ошибки могут нарастать снежным комом.

Anonymous
Not applicable
Author

Ага, спасибо. С ошибками буду что-нибудь делать само-собой (всё больше склоняюсь к варианту исправления путём криков и угроз тем, кто отсылает кривые данные) перед сдачей, но сейчас только начал разработку и они раздражают (не отойдешь покурить, пока пересчитывается- надо жать "ОК"), так что на текущий момент очень пригодится.

Eugeny_Ilyin
Creator II
Creator II

Что-то типа такого:

'$(Table)': SQL SELECT $(Fields) FROM $(vFrom);

let vScriptError = num(ScriptError);

// В случае отказа в доступе к таблице или другой ошибке

IF vScriptError>0 then

....

Главное фиксировать ScriptError сразу после потенциально возможного оператора с ошибкой.
И можно записывать в табличку все моменты и условия возникновения ошибки.
Довольно удобно.

А что касается заголовков, так первое что приходит на ум - сделать всем одинаковые заголовки и ввести санкции за нарушение Программисты, конечно, народ плечистый но зачем тратить свое время когда вопрос решается организационно.

qlikviewaito
Contributor II
Contributor II

А поля в файлах идут разбросанно или всегда в одном и том же порядке?

Ведь можно не привязываться к названием полей, не читать хидер, и использовать:

LOAD

@1 as Дата,

@2 as Продукт,

@3 as Цена

From file;