powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / запрос
16 сообщений из 41, страница 2 из 2
запрос
    #37426180
Андрей1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите разобраться. Создал запрос на выборку полей таблицы по месяцу.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
thisform.GrdList.RecordSource = ""
WITH THISFORM
    month1 = .ComboMonth.value    
 ENDWITH     
    
 SELECT Tarif.ctarif, Tarif.czena1, Tarif.cdenizm, Tarif.czena2, Tarif.cizm,;
  Tarif.cnametarif, Tarif.cmonth, Tarif.cyear;
   FROM ;  
       gaz!tarif;  
   WHERE  Tarif.cmonth = month1 INTO CURSOR MyCursor  
  thisform.GrdList.RecordSource = ""  
  thisform.GrdList.RecordSource = "MyCursor"
Но дело в том, что до выполнения запроса я мог редактировать записи. После выполнения запроса я могу редактировать лишь ту запись, где остался курсор.
Может как то сделать можно иначе. Нужно сначало делать выборку по месяцу, а далее редактировать записи.
Саму программу я выложил, форма называется tarif.scx.
http://mogilevmebel.com/admin/oblgaz.rar
...
Рейтинг: 0 / 0
запрос
    #37426302
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей1985,

SELECT ... INTO CURSOR MyCursor READWRITE - Усли VFP 9
...
Рейтинг: 0 / 0
запрос
    #37426334
Андрей1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, у меня при нажатии на кнопку изменить на форме срабатывает команда thisform.doEdit()(click), this.enabled = not eof("tarif")(refresh).
Процедура doedit:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
lparameters tcMode
local loForm, llOk
do form forms\EditTarif name loForm linked with tcMode to llOk
if llOk
thisform.refresh()
thisform.grdList.setfocus()
endif

где EditTarif - форма для изменения.
где мне нужно прописать SELECT ... INTO CURSOR MyCursor READWRITE ?
...
Рейтинг: 0 / 0
запрос
    #37426354
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот здесь

Андрей1985Помогите разобраться. Создал запрос на выборку полей таблицы по месяцу.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
thisform.GrdList.RecordSource = ""
WITH THISFORM
    month1 = .ComboMonth.value    
 ENDWITH     
    
 SELECT Tarif.ctarif, Tarif.czena1, Tarif.cdenizm, Tarif.czena2, Tarif.cizm,;
  Tarif.cnametarif, Tarif.cmonth, Tarif.cyear;
   FROM ;  
       gaz!tarif;  
   WHERE  Tarif.cmonth = month1 INTO CURSOR MyCursor  READWRITE 
  thisform.GrdList.RecordSource = ""  
  thisform.GrdList.RecordSource = "MyCursor"
Но дело в том, что до выполнения запроса я мог редактировать записи. После выполнения запроса я могу редактировать лишь ту запись, где остался курсор.
Может как то сделать можно иначе. Нужно сначало делать выборку по месяцу, а далее редактировать записи.
Саму программу я выложил, форма называется tarif.scx.
http://mogilevmebel.com/admin/oblgaz.rar
...
Рейтинг: 0 / 0
запрос
    #37426489
Андрей1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, изменил код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
thisform.GrdList.RecordSource = ""
WITH THISFORM
    month1 = .ComboMonth.value    
 ENDWITH     
    
 SELECT Tarif.ctarif, Tarif.czena1, Tarif.cdenizm, Tarif.czena2, Tarif.cizm,;
  Tarif.cnametarif, Tarif.cmonth, Tarif.cyear;
   FROM ;  
       gaz!tarif;  
   WHERE  Tarif.cmonth = month1 INTO CURSOR MyCursor NOFILTER READWRITE
  thisform.GrdList.RecordSource = ""  
  thisform.GrdList.RecordSource = "MyCursor"

Изменений никаких ...
...
Рейтинг: 0 / 0
запрос
    #37426753
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей1985IgorNG, изменил код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
thisform.GrdList.RecordSource = ""
WITH THISFORM
    month1 = .ComboMonth.value    
 ENDWITH     
    
 SELECT Tarif.ctarif, Tarif.czena1, Tarif.cdenizm, Tarif.czena2, Tarif.cizm,;
  Tarif.cnametarif, Tarif.cmonth, Tarif.cyear;
   FROM ;  
       gaz!tarif;  
   WHERE  Tarif.cmonth = month1 INTO CURSOR MyCursor NOFILTER READWRITE
[color=red]  thisform.GrdList.RecordSource = ""  [/color]
  thisform.GrdList.RecordSource = "MyCursor"
[color=red]THISFORM.Refresh[/color]
Изменений никаких ...
...
Рейтинг: 0 / 0
запрос
    #37426777
Андрей1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, THISFORM.Refresh - мы просто обновляем форму. Тут получается выполнив запрос, мы результат записываем во временную таблицу, а при нажатиии на кнопку ИЗМЕНИТЬ, изменяем мы не во временной таблице, а в tarif.dbf.
...
Рейтинг: 0 / 0
запрос
    #37426870
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей1985,

Дело в том, что в Gride редактировать не рекомендуется, пользователю позволять редактировать одну запись. Соответственно, Grid для просмотра необходимых данных с использованием курсора. Для редактирования выбранной записи, т.е. для нахождения её в таблице необходимы уникальные ID, по которому и можно найти соответствующую запись в таблице для ее редактирования. Я не думаю, что изменение тарифов настолько глобально, что требуется редактирование в Grid. Опять же, редактирование данных напрямую в таблице тоже плохо. А если нужно отменить изменения?
...
Рейтинг: 0 / 0
запрос
    #37426924
Андрей1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, т.е. таким способом не получится. Получается, только если сделать поиск по наименованию тарифа, получив результат, только редактировать.
...
Рейтинг: 0 / 0
запрос
    #37426944
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей1985,

В общем-то, да. Ну, можно в Grid выводить данные из таблицы только для чтения с применением фильтра по условию. И редактировать данные текущей записи. Вообще-то прежде всего нужно, чтобы проект выстроился сначала в голове, а потом уже рисовать формы. Иначе можно наткнуться на то, что его просто придется переделывать с нуля.
...
Рейтинг: 0 / 0
запрос
    #37431789
190r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветсвую!
Сделал запрос по дате
Код: plaintext
1.
2.
3.
4.
SELECT Gorod.begin, Gorod.number, Gorod.name, Gorod.address, Gorod.line,;
  Gorod.type;
 FROM ;
     gts!gorod;
 WHERE  Gorod.end = ( {^ 2001 / 01 / 01 } );
в browse выводит правильно, а когда сделал тот же запрос в отчет
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT Gorod.begin, Gorod.number, Gorod.name, Gorod.address, Gorod.line,;
  Gorod.type;
 FROM ;
     gts!gorod;
 WHERE  Gorod.end = ( {^ 2001 / 01 / 01 } );
 INTO CURSOR Qgorod  
 REPORT FORM c:\foxpro\kross3\reports\rgorod.frx 
то выводит все записи таблицы... никак не пойму почему,
...
Рейтинг: 0 / 0
запрос
    #37432026
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
190r,

Проверь, на основании каких данных строится отчет - курсора или таблицы?
...
Рейтинг: 0 / 0
запрос
    #37432494
190r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG190r,

Проверь, на основании каких данных строится отчет - курсора или таблицы?
вообще то отчет я строил на данных таблицы через DE, а нужно через данные курсора?
если да, то как? (это мой первый проэкт, опыта маловато в программировании)
...
Рейтинг: 0 / 0
запрос
    #37432846
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
190r,

Курсор у тебя создается перед выводом отчета. В отчета во всех выводимых полях укажи не имя таблицы, а имя курсора.
...
Рейтинг: 0 / 0
запрос
    #37433664
190r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG,спасибо! заработало! только вот панель где находится значек принтера не активна, наверное что то пропустил?
...
Рейтинг: 0 / 0
запрос
    #37434829
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
190r,
Какая еще панель? У тебя на форме должна быть кнопка "Печать"
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]