|
List
|
|||
---|---|---|---|
#18+
В форма существует объект List5 (основой воторой которого является таблица zakaz (в свойствах DE которой определен фильтр ...)) еще существует List1 (таблица Tovar). Существует кнопка для добавленияч записи из Tovar в zakaz или если запись существует , то поле edi увеличивается на 1. SELECT zakaz LOCATE FOR diz=vibor.diz AND zakdiz=vibor.zakdiz AND atov=tovar.atov IF FOUND( ) replace edi WITH edi+1 else APPEND BLANK replace naz WITH tovar.naz replace cen WITH tovar.cen replace foto WITH tovar.foto replace atov WITH tovar.atov replace zakdiz WITH vibor.zakdiz replace diz WITH vibor.diz endif DODEFAULT() IF !EMPTY(zakaz.foto) Thisform.Image2.PictureVal = zakaz.foto Thisform.Image2.Visible = .T. ELSE Thisform.Image2.PictureVal = "" Thisform.Image2.Visible= .F. ENDIF Проблема такова: нужно, чтобы курсор в List5 перемещался на изменяемую (добавленную) запись, а он (курсор) остается без движения во время выполнения изменений в базе. Как поступить? Подскажите. Заранее спасибо, Роман. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2008, 21:49 |
|
List
|
|||
---|---|---|---|
#18+
Курсор был создан до добавления записи. Он не изменяется. Скорее всего, надо пересоздать курсор. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2008, 10:06 |
|
List
|
|||
---|---|---|---|
#18+
BMJКурсор был создан до добавления записи. Он не изменяется. Скорее всего, надо пересоздать курсор. Как пересоздать? В принцепе я не создавал курсро, просто добавил таблицу в DE и поставил на нее фильтр, но если Вы насчет, сделать эту процедуру заново, сделал. Даже создал дополнительно грид, чтобы посмотреть ... Но все осталоси по прежнему, указатель остается на текущей записи, а не переходит на добавленную(изменяемую), как мне надо. Что'ж сделать то? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2008, 13:14 |
|
List
|
|||
---|---|---|---|
#18+
BMJКурсор был создан до добавления записи. Он не изменяется. Скорее всего, надо пересоздать курсор. Если создать курсор программно и запустить его, подскажите как. С фильтром diz.vibor==diz.zakaz and zakdiz.vibor==zakdiz.zakaz Спасибо, с Увыжением , Роман. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2008, 13:17 |
|
List
|
|||
---|---|---|---|
#18+
Romario_rus BMJКурсор был создан до добавления записи. Он не изменяется. Скорее всего, надо пересоздать курсор. Если создать курсор программно и запустить его, подскажите как. С фильтром diz.vibor==diz.zakaz and zakdiz.vibor==zakdiz.zakaz Спасибо, с Увыжением , Роман. Хотя нет, использовать курсор в моей ситуации не целесообразно. Еще раз, то что я хочу.Нужно, чтобы при изменении или добавлении записи, указатель в List перемещался на нее. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2008, 18:34 |
|
List
|
|||
---|---|---|---|
#18+
Дополнительно , могу сказать, насчет проблемы, то, что если фильтр убираю, все работает как надо, тоесть указатель перепрыгивает на изменяемую запись. В чем дело ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2008, 18:57 |
|
List
|
|||
---|---|---|---|
#18+
Если уже делает все что нужно, то самый простой (не лучший путь) узнать номер записи LnRec=RECNO() и сделать LOCA FOR recno=LnRec и не забыть обновить форму. Но, должно работать и без этого. При добавлении записи она активизируется автоматом. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2008, 19:06 |
|
List
|
|||
---|---|---|---|
#18+
Удивляюсь этим приколам. Создал в этойже форме дополнительно к объекту лист объект грид с темже zakaz.naz ресурсом. не трогая указатель на лист , нажимаю свою кнопку в гриде все работает и указатель переходит на изменяемую запись, но если я в лист щелкаю по записи(устанавливается указатель на запись предположим "Автомобиль") далее щнлкаю на свою кнопку указатель в гриде переходит не на изменяемую запись , а на запись которая активна в лист тоесть на "Автомобиль". Сразу скажу во избежании случайностей лист создал заново. Понятно, что вэтой ситуации, нужно забыть о Лист , и перейти к работе с гридом, но проблема возникает новая - в моей таблице zakaz существуют записи помимо тех что выводятся еще и отфильтрованные которые не выводятся в связи с этим полоса прокрутки в гриде ведет себя отвратительно, и я с ней ничего сделать не могу(а вот в лист все с этим отлично) Теперь есть 2 проблемы, уйдя от одной из них я смогу продолжить разработку ... 1)нужно, чтобы курсор в List5 перемещался на изменяемую (добавленную) запись, а он (курсор) остается без движения во время выполнения изменений в базе. 2)при выводе в гриде отфильтрованной таблици засчет множества непоказанных записей полоса прокрутки ведет себя неадыкватно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2008, 19:50 |
|
List
|
|||
---|---|---|---|
#18+
BMJЕсли уже делает все что нужно, то самый простой (не лучший путь) узнать номер записи LnRec=RECNO() и сделать LOCA FOR recno=LnRec и не забыть обновить форму. Но, должно работать и без этого. При добавлении записи она активизируется автоматом. BMJ, ты предлагал так ? SELECT zakaz LOCATE FOR diz=vibor.diz AND zakdiz=vibor.zakdiz AND atov=tovar.atov IF FOUND( ) LnRec=RECNO() replace edi WITH edi+1 else SELECT zakaz APPEND BLANK LnRec=RECNO() replace naz WITH tovar.naz replace cen WITH tovar.cen replace foto WITH tovar.foto replace atov WITH tovar.atov replace zakdiz WITH vibor.zakdiz replace diz WITH vibor.diz endif DODEFAULT() IF !EMPTY(zakaz.foto) Thisform.Image2.PictureVal = zakaz.foto Thisform.Image2.Visible = .T. ELSE Thisform.Image2.PictureVal = "" Thisform.Image2.Visible= .F. ENDIF LOCA FOR RECNO()=LnRec thisform.list1.Requery thisform.grid1.Refresh Thisform.Refresh() если да, то могу сказать , что все работает также, как вышеуказанный вариант(наверное стото с List1 , но что?) хотя может я Тебя не так понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2008, 19:56 |
|
List
|
|||
---|---|---|---|
#18+
Вроде так. Только где в коде ссылка на List5 с которого начинался вопрос? И еще, APPEND BLANK replace naz WITH tovar.naz replace cen WITH tovar.cen replace foto WITH tovar.foto replace atov WITH tovar.atov replace zakdiz WITH vibor.zakdiz replace diz WITH vibor.diz Можно заменить: INSERT INTO TABLE zakaz (naz,cen,foto,atov,zakdir,diz); VALUES (tovar.naz, tovar.cen,tovar.foto,tovar.atov,vibor.zakdiz,vibor.diz) Покороче будет. Если правильно понял, то в источник данных грида лучше вставить курсор, предварительно его создав. SELE from table zakaz WHERE (uslovie) INTO CURSOR namecursor Тогда запись в курсоре будет одна и никуда не денется от активности. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2008, 23:38 |
|
List
|
|||
---|---|---|---|
#18+
BMJВроде так. Только где в коде ссылка на List5 с которого начинался вопрос? И еще, APPEND BLANK replace naz WITH tovar.naz replace cen WITH tovar.cen replace foto WITH tovar.foto replace atov WITH tovar.atov replace zakdiz WITH vibor.zakdiz replace diz WITH vibor.diz Можно заменить: INSERT INTO TABLE zakaz (naz,cen,foto,atov,zakdir,diz); VALUES (tovar.naz, tovar.cen,tovar.foto,tovar.atov,vibor.zakdiz,vibor.diz) Покороче будет. Если правильно понял, то в источник данных грида лучше вставить курсор, предварительно его создав. SELE from table zakaz WHERE (uslovie) INTO CURSOR namecursor Тогда запись в курсоре будет одна и никуда не денется от активности. Огромное спасибо за ответ. Сейчас, мысли в слух: хотел уйти от создания курсора по причине такой- как понимаю данные в курсоре изменить нельзя, тоесть при изменении поля edi , мне прейдеться запускать на выполнение курсор и тут же вопрос - как переместить указатель на эту запись в курсоре...?(это были мои мысли, правильные они или нет пойму со временем) Сейчас буду разбираться. О результатах отпишусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2008, 00:56 |
|
List
|
|||
---|---|---|---|
#18+
BMJ Если правильно понял, то в источник данных грида лучше вставить курсор, предварительно его создав. SELE from table zakaz WHERE (uslovie) INTO CURSOR namecursor Тогда запись в курсоре будет одна и никуда не денется от активности. Мне не нужно две таблицы List и Grid (как уже писал, грид создал чтобы посмотреть как поведет себя указатель) Мне нужна одна таблица, думаю, что лучше List - еслиб небыло заморочки с указателем, яб мозки не ... (за грубость извеняюсь, но как обычно из-за мелочей встаешь на долго) и теперь приходиться искать варианты выхода... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2008, 01:11 |
|
List
|
|||
---|---|---|---|
#18+
BMJ SELE from table zakaz WHERE (uslovie) INTO CURSOR namecursor SELECT from table zakaz WHERE (zakaz.diz=vibor.diz AND zakaz.zakdiz=vibor.zakdiz) INTO CURSOR zakazC При компиляции выдает ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2008, 01:36 |
|
List
|
|||
---|---|---|---|
#18+
Курсор можно будет редактировать если вставить в селект READWRITE ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2008, 07:31 |
|
List
|
|||
---|---|---|---|
#18+
Romario_rus BMJ SELE from table zakaz WHERE (uslovie) INTO CURSOR namecursor SELECT from table zakaz WHERE (zakaz.diz=vibor.diz AND zakaz.zakdiz=vibor.zakdiz) INTO CURSOR zakazC При компиляции выдает ошибку. Естественно выдает. :) Рассказано откуда, по каким условиям и куда нужно выбрать, но совершенно нет указаний ЧТО выбирать? Где список полей сразу после слова Select? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2008, 09:00 |
|
|
start [/forum/topic.php?fid=41&msg=35441107&tid=1587508]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 331ms |
total: | 507ms |
0 / 0 |