SELECT по вертикали - реально ли? | |
---|---|
ptaxa888 Автор Сообщений: 61 Дата регистрации: 07.03.2018 |
Подскажите пожалуйста.
Имеется временный курсор, имеет вид 1 строка и 35 столбцов. Можно ли преобразовать его в 1 столбец и 35 строк(из горизонтального в вертикальный)? пробывал сделать через union собирая по строчке курсор, может есть способ проще... а еще интереснее если бы можно было преобразовать в 2 столбца и 35 строк, где 1-ый столбец содержал список имен полей, а во втором содержимое полей. Исправлено 1 раз(а). Последнее : ptaxa888, 04.04.18 01:06 |
Re: SELECT по вертикали - реально ли? | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
COPY STRUCTURE EXTENDED TO ?
AFIELDS() ? Конечно полей будет поболе чем 1 или 2, но важно ли это? ------------------ |
Re: SELECT по вертикали - реально ли? | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
SCATTER MEMO NAME m.o
примерно это же делает, только порядок полей теряется |
Re: SELECT по вертикали - реально ли? | |
---|---|
ptaxa888 Автор Сообщений: 61 Дата регистрации: 07.03.2018 |
Аспид, в принципе все устраивает, единственное и самое печальное что нет столбца из того что было в строке (основная информация).
Есть поле с содержанием реквизитов, куча memo и пустых полей, все( Хотя если открыть на просмотр курсор который сформирован через select он содержит в себе строчку с информацией. Исправлено 1 раз(а). Последнее : ptaxa888, 04.04.18 09:20 |
Re: SELECT по вертикали - реально ли? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
В цикле можно что угодно сформировать - почему обязательно SELECT SQL?
|
Re: SELECT по вертикали - реально ли? | |
---|---|
ptaxa888 Автор Сообщений: 61 Дата регистрации: 07.03.2018 |
Самое важное это информация в курсоре, без структуры можно обойтись. Как вывести ее в массив в один столбец? |
Re: SELECT по вертикали - реально ли? | |
---|---|
krin Сообщений: 172 Дата регистрации: 08.02.2005 |
|
Re: SELECT по вертикали - реально ли? | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
SCATTER TO AAA
? AAA[1] ? AAA[2] ... ? ALEN(AAA) |
Re: SELECT по вертикали - реально ли? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Запросом это и делается через union all (т.к. запрос здоровенный, и все его куски "шаблонные", имеет смысл через макро или execscript работать - формируя текст запроса программно - заодно обходя лимиты на сложность получаемой команды - всё же и размер и "сложность" одной команды в фоксе не бесконечны ).
А так - циклом по тому же AFIELDS() - получая на каждом шагу и имя поля, и через EVAL() значение в этом поле в текущей записи. Можно и через массив, только SELECT ... INTO ARRAY ... и COPY TO ARRAY всё-же ЗАПИСИ загоняют в массив (потому он и двумерный получается, и весьма здоровый, если не дописывать дополнительных ограничений отбора в WHERE/FOR). А одну текущую запись в массив загоняет SCATTER TO имя_массива... Вопрос в том для чего это нужно... Одно дело обработка/хранение данных, и совсем другое отображение. Для целей отображения так делать совершенно необязательно. ------------------ WBR, Igor |
Re: SELECT по вертикали - реально ли? | |
---|---|
ptaxa888 Автор Сообщений: 61 Дата регистрации: 07.03.2018 |
Сданным вариантом возникает проблема. Причина в поле а5 установлен ОДИН тип данных i. А у меня в это поле летит два типа Char и Date |
Re: SELECT по вертикали - реально ли? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
В явном виде в одном поле нельзя хранить данные разных типов. Можно в выходном курсора создать еще одно поле - тип данных, а поле, которое будет содержать собственно данные из входного курсора, сделать символьного типа, и помещать туда уже приведенные к символьному типу данные из входного курсора. И самое простое решение - делать это в цикле, как и посоветовал Igor Korolyov |
Re: SELECT по вертикали - реально ли? | |
---|---|
ptaxa888 Автор Сообщений: 61 Дата регистрации: 07.03.2018 |
Необходимо исключительно для отображения. Изначально я формирую курсор
Задача состоит в том чтобы перевернуть эту инфу с горизонтального вида в вертикальный и отобразить в курсоре. Через массив вроде работает но не полноценно-проблема описана сообщением выше |
Re: SELECT по вертикали - реально ли? | |
---|---|
ptaxa888 Автор Сообщений: 61 Дата регистрации: 07.03.2018 |
Научите делать в цикле |
Re: SELECT по вертикали - реально ли? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Если в ПО на VFP используется browse (что уже говорит о непрофессионализме разработчика), то с тем же успехом можно там применить и CHANGE - это тот же самый browse, но "повёрнутый на бок".
Для объекта grid такое поведение тоже доступно через свойство View. Насколько это удобно в работе и красиво выглядит - вопрос другой, зато быстро и без кучи малоочевидного кода. ------------------ WBR, Igor |
Re: SELECT по вертикали - реально ли? | |
---|---|
ptaxa888 Автор Сообщений: 61 Дата регистрации: 07.03.2018 |
Да какой тут профессионализм) Спасибо - работает, часа три химичить и в итоге CHANGE все делает. Дело в том что на форме уже есть grid из него я по клику выбираю фамилию и тогда формируется полная информация по сотруднику. Не куда ложить ещё один Grid а делать для этого ещё одну форму не вижу смысла. Спасибо всем, а Вам в особенности. Исправлено 1 раз(а). Последнее : ptaxa888, 04.04.18 17:13 |
Re: SELECT по вертикали - реально ли? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Исправлено 2 раз(а). Последнее : Simple777, 04.04.18 17:15 |
Re: SELECT по вертикали - реально ли? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Именно "ещё одну форму" и стоит делать. Руками разместить там поля и надписи (и не в 1 колонку с одной шириной что для даты, что для возраста, что для ФИО), чтобы было красиво и удобно. При этом совсем не обязательно чтобы она работала с тем курсором со "списком" который в основной форме.
Передать можно id и в этой форме сделать запрос инфы (уже безо всякой динамики) в курсор. Можно, конечно, и из формы списка взять данные, скажем SCATTER NAME oData - и передав в форму "карточки" сохранить этот объект в свойстве формы и к его свойствам привязывать поля на форме - но это пойдёт если ВСЯ нужная инфа есть в курсоре - а я так понимаю это не твой случай - как раз её же до того и "выкидывали из курсора" (вместо того чтобы просто прятать ненужные колонки в гриде и в коде экспорта)... При этом можно без проблем организовать "множественный" показ карточек - т.е. совсем не обязательно закрывать предыдущую чтобы посмотреть новую - если экран большой, то это может быть даже и полезно - поместить рядом 2-3 формы-карточки ------------------ WBR, Igor |
Re: SELECT по вертикали - реально ли? | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
ptaxa888
Добавьте на форму LISTBOX, в его INIT впишите примерно такой код:
|
Re: SELECT по вертикали - реально ли? | |
---|---|
Foxtrot Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
browse или grid
------------------ Мойте ноги, моя ноги вы моете и руки |
© 2000-2024 Fox Club  |