Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / FoxPro, Visual FoxPro |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
НовичекМ
Guest |
Программно создала запрос. В INTO указала направление вывода результата запроса- курсор. Где и как я должна записать(программно) или в свойствах, что это курсор а не таблица, например? |
27 июл 04, 20:09 [840267] Ответить | Цитировать Сообщить модератору |
Burn Member Откуда: Днепропетровск, Украина Сообщений: 1167 |
>Где и как я должна записать(программно) или в свойствах, что это курсор а не таблица, например? SELECT .... INTO CURSOR <имя_курсора> Этого достаточно |
27 июл 04, 20:17 [840275] Ответить | Цитировать Сообщить модератору |
НовичекМ
Guest |
Не найду ошибку. Без Sql запроса В Gride Просматривается вся таблица, а как только записываю Sql запрос(даже для всей таблицы, без каких либо условий) в просмотре пусто. Думаю что в свойствах что-то недоставляю? |
27 июл 04, 20:29 [840304] Ответить | Цитировать Сообщить модератору |
Redrik Member Откуда: Сообщений: 814 |
Ляпну... Авось попаду... ;-) Источником данных в гриде что указано? |
27 июл 04, 22:46 [840467] Ответить | Цитировать Сообщить модератору |
НовичекМ
Guest |
Перед выводом формы на экран формируем запрос SQL. Как результат запроса поместить в GRID, поставленный на форму |
28 июл 04, 12:41 [841740] Ответить | Цитировать Сообщить модератору |
miv32 Member Откуда: Сообщений: 306 |
THISFOR.твойгрид.recordsourcetype=1 THISFOR.твойгрид.recordsource="твой курсор" |
28 июл 04, 12:56 [841819] Ответить | Цитировать Сообщить модератору |
Redrik Member Откуда: Сообщений: 814 |
Во-во! Источник данных смотри! |
28 июл 04, 15:41 [842791] Ответить | Цитировать Сообщить модератору |
Alex Is Member Откуда: Сообщений: 98 |
Вообщем сделай так!! На LOAD формы пусть выполняется твой запрос! Потом в ините формы: thisform.grid1.RecordSource = '' && Дабы не валился грид Сдесь можешь делать любые манипуляции(если необходимо) thisform.grid1.RecordSource = "Имя курсора" thisform.grid1.column1.ControlSource = "Имя курсора.Имя поля" thisform.grid1.column2.ControlSource = ....... и т д ... |
28 июл 04, 17:05 [843282] Ответить | Цитировать Сообщить модератору |
НовичекМ
Guest |
Сделала так На Load занесла SELECT Spisa.imen, Spisa.datr ; FROM ; spisa ; WHERE Spisa.datr = DATE()into cursor tmpcur В Init записала thisform.grid1.RecordSource = '' thisform.grid1.RecordSource ="tmpcur" thisform.grid1.column1.ControlSource = "tmpcur.imen" thisform.grid1.column2.ControlSource = "tmpcur.Datr" И все тоже, наименование столбцов в Gride есть(оно и раньше было), а сама таблица пустая и еще выдает ошибку, что нужен индекс по таблице Что еще сделать? |
28 июл 04, 18:39 [843679] Ответить | Цитировать Сообщить модератору |
miv32 Member Откуда: Сообщений: 306 |
Пробела после DATE() нет? WHERE Spisa.datr = DATE()into cursor tmpcur Надо указать для грида recordsourcetype=1 |
28 июл 04, 18:55 [843708] Ответить | Цитировать Сообщить модератору |
ВладимирМ Member Откуда: г. Москва Сообщений: 7869 |
На этапе проектирования формы в дезайнере убедись, что у тебя стоит для Grid.RecordSource=(None) Причем это самое (None) должно быть выделено жирным шрифтом. Ни в коем случае не сбрасывай его по Reset At Default. Сам запрос можно сделать и в Init-формы (до настройки параметров Grid). В данном случае это непринципиально. Но вообще-то, проще сделать параметризированное Local View и не мучиться ![]() |
28 июл 04, 18:59 [843713] Ответить | Цитировать Сообщить модератору |
НовичекМ
Guest |
Извините, пожалуйста, но фразу Но вообще-то, проще сделать параметризированное Local View и не мучиться не понимаю(новичек я в FOXpro) а пробел у меня есть. Все поставила, но все тоже |
28 июл 04, 20:18 [843806] Ответить | Цитировать Сообщить модератору |
miv32 Member Откуда: Сообщений: 306 |
Пришли свою форму с grid-ом и dbf, из которого данные берешь, гляну ![]() miv32km.ru |
29 июл 04, 09:31 [844250] Ответить | Цитировать Сообщить модератору |
ВладимирМ Member Откуда: г. Москва Сообщений: 7869 |
Как сделать параметризированное Local View? -) Открываешь свой проект (надеюсь, собственно файл проекта есть - это файлы pjx, pjt) -) Переходишь на закладку Data -) В отображенном там дереве устанавливаешь указатель на узел DataBase - MyBase - Local Views (здесь MyBase - это имя твоей базы данных) -) Нажимаешь кнопку "New" -) Для простоты (в качестве обучения) можешь воспользоваться визардом. Т.е. выбрать кнопку "View Wizard" -) На первом шаге выбираешь таблицу и поля, которые должны попасть в результирующую выборку. В твоем случае это Spisa.imen, Spisa.datr -) На втором шаге необходимо указать условия отбора (директива WHERE). В твоем случае выбираешь поле Spisa.datr, опреатор "equals", а в окошке Value пишешь "?tdDate" - разумеется без кавычек. -) Третий шаг пропускаешь (у тебя нет сортировки) -) На пятом шаге при нажатии кнопки Finish надо будет ввести имя твоего Local View, например, MyView Теперь если вызовешь на модификацию твой Local View и посмотришь код SQL-запроса, то он будет выглядеть примерно так: SELECT Spisa.imen, Spisa.datr ; FROM MyBase!spisa ; WHERE Spisa.datr = ?tdDate Вопросительный знак говорит о том, что далее следует параметр, который необходимо заполнять непосредственно перед запуском Local View. Теперь включаешь этот Local View в DataEnvironment твоей формы обязательно установив свойство этого View.NoDataOnLoad=.T. В Init-формы пишешь примерно такой код LOCAL tdDate tdDate=Date() REQUERY("MyView") Для Grid делаешь настройки прямо в дезайнере формы RecordSource = MyView RecordSourceType=1 (Alias) - значение по умолчанию Все. Запускай форму. Вообще-то, в данном случае можно обойтись и без параметра. Просто написав в условии запроса Spisa.datr = Date(). Но параметр позволяет указать любую дату, не только текущую. |
||
29 июл 04, 09:48 [844324] Ответить | Цитировать Сообщить модератору |
НовичекМ
Guest |
Большое спасибо, получилось сегодня, но я всю форму сделала, начиная с 0, а со старым вчерашним вариантом так ничего и не вышло. И еще вопрос. Мне нужно ввести дату просчета(прошедший месяц).Как бы вы этот сделали программно. |
29 июл 04, 10:22 [844452] Ответить | Цитировать Сообщить модератору |
ВладимирМ Member Откуда: г. Москва Сообщений: 7869 |
Ну, так параметризированный View для того и создается, что бы можно было указать любую дату. Т.е. необходимо просто вычислить нужную дату и подставить ее в параметр: LOCAL tdDate * Первое число прошлого месяца tdDate = GoMonth(Date(),-1) tdDate = m.tdDate - DAY(m.tdDate)+1 * Последнее число прошлого месяца tdDate = Date() tdDate = m.tdDate - DAY(m.tdDate) *Далее как и раньше REQUERY("MyView") Кстати, можно перестроить View (дать команду REQUERY()) и в процессе работы формы. Это не приведет к разрушению структуры Grid. |
||
29 июл 04, 11:57 [844958] Ответить | Цитировать Сообщить модератору |
НовичекМ
Guest |
Все получилось, БОЛЬШОЕ СПАСИБО. Извините, еще такой вопрос. Из своей базы я хочу выбрать какую- то конкретную запись, определяющий реквизит которой заданный с экрана. Мне немножко непонятен момент снятия этого реквизита с экрана. |
30 июл 04, 18:36 [850412] Ответить | Цитировать Сообщить модератору |
ВладимирМ Member Откуда: г. Москва Сообщений: 7869 |
Свойство Value соответствующего объекта. Если речь идет о TextBox, то примерно так: LOCAL lcValue lcValue = ThisForm.TextBox1.Value |
||
30 июл 04, 19:24 [850507] Ответить | Цитировать Сообщить модератору |
НовичекМ
Guest |
И еще. У меня на дискете есть файл с одинаковой длиной записей в формате txt. Как его программно записать в уже созданную здесь таблицу? |
30 июл 04, 20:11 [850556] Ответить | Цитировать Сообщить модератору |
НовичекМ
Guest |
SOS!!!!!!!!! По Local View - непосредственно в нем работает, на форме выдает ошибку Alias not found, хотя все что вы подсказали сделапа. ?????????????????? |
30 июл 04, 20:57 [850596] Ответить | Цитировать Сообщить модератору |
ВладимирМ Member Откуда: г. Москва Сообщений: 7869 |
Почитай описание команды APPEND FROM
Это ты о чем? Непосредственно в чем? Какая форма? |
||||
2 авг 04, 10:01 [851674] Ответить | Цитировать Сообщить модератору |
НовичекМ
Guest |
ВОПРОС По Local View - непосредственно при его создании Sql запрос работает,файл выводится в Gride правильно, если перехожу в форму, установив все что вы подсказали, выдает ошибку Alias not found, по отладчику посмотрела что не нравиться в Init формы REQUERY("Myview"), где Myview название моего Local View ?????????????????? |
4 авг 04, 18:27 [859580] Ответить | Цитировать Сообщить модератору |
ВладимирМ Member Откуда: г. Москва Сообщений: 7869 |
Вот это сделано?
|
||||
4 авг 04, 19:42 [859776] Ответить | Цитировать Сообщить модератору |
НовичекМ
Guest |
Теперь включаешь этот Local View в DataEnvironment твоей формы обязательно установив свойство этого View.NoDataOnLoad=.T. Извините за мою тупость, но где я должна это записать, сделала активной свою форму - вызвала DataEnvironment для данной формы, а дальше ???????? |
4 авг 04, 19:51 [859791] Ответить | Цитировать Сообщить модератору |
ВладимирМ Member Откуда: г. Москва Сообщений: 7869 |
Открыл DataEnvironment, далее -) Пункт главного меню "DataEnvironment", подпункт ADD (или правой кнопкой мыши на окне DataEnvironment пункт Add) -) В открывшейся формочке устанавливаешь переключатель "Select" в режим "View", устанавливаешь указатель на твое View и нажимешь кнопку ADD. Закрываешь уже ненужную формочку для добавления объектов -) Активизируешь в DataEnvironment только что добавленное View и переходишь в окно Properties. Устанавливаешь в нем свойство NoDataOnLoad в значение .T. Можно еще добавить View по другому: -) Активизируешь окно DataEnvironment и окно твоего проекта. -) Нажимаешь мышкой в окне проекта на нужное View и не отпуская тащишь ее в область DataEnvironment. После отпускания мыши View вставится в DataEnvironment. Надо будет только изменить NoDataOnLoad |
4 авг 04, 20:06 [859800] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / FoxPro, Visual FoxPro | ![]() |