Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Заполнение таблицы / 21 сообщений из 21, страница 1 из 1
04.12.2011, 01:19
    #37557994
Alucard_070892
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
Не знаю, как сделать вот такую штуку:
Есть две таблицы: таблица material с колонками code_material(код материала) и the_price(цена), таблица o_order с колонками id_mat(код материала), kol(количество) и id_clients(код клиента).
В новую(созданую) таблицу d_order хочу записать два значения: id_clients, собственно из таблицы o_order и total как kol*the_price, если id_mat и code_material - совпадут.

Помогите пожалуйста.

Вот мои жалкие попытки это сделать:
thisform.refresh()

t1=''
t2=''
t3=''
t4=''
t5=''

USE o_order.dbf
go bottom
t1=ALLTRIM(id_clients)
t2=ALLTRIM(id_mat)
t3=ALLTRIM(kol)
USE
USE material.dbf
go bottom
IF ALLTRIM(code_material)==t2
t4=ALLTRIM(the_price)
t5=t3*t4
ENDIF
USE
USE d_order.dbf
append blank
replace id_clients with t1
replace total with t5
USE
...
Рейтинг: 0 / 0
04.12.2011, 02:57
    #37558025
OldChukchi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
Alucard_070892,

а вот такое не устроит:

SELECT id_client, kol*the_price AS total FROM material,o_order WHERE material.code_material=o_order.id_mat INTO TABLE d_order

а? :)
...
Рейтинг: 0 / 0
04.12.2011, 11:55
    #37558106
Alucard_070892
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
А при нажатии на кнопку, как это будет выглядеть?
...
Рейтинг: 0 / 0
04.12.2011, 12:21
    #37558111
OldChukchi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
Alucard_070892,

а где у Вас в постановке задачи про "кнопку" ?
"Кнопка" - подразумевает форму, и либо grid, либо browse во внешнем окошке - это уже все на Ваше усмотрение, нет? :)
...
Рейтинг: 0 / 0
04.12.2011, 12:40
    #37558123
Заполнение таблицы
Alucard_070892Не знаю, как сделать вот такую штуку:
Есть две таблицы: таблица material с колонками code_material(код материала) и the_price(цена), таблица o_order с колонками id_mat(код материала), kol(количество) и id_clients(код клиента).
В новую(созданую) таблицу d_order хочу записать два значения: id_clients, собственно из таблицы o_order и total как kol*the_price, если id_mat и code_material - совпадут.

Помогите пожалуйста.

Вот мои жалкие попытки это сделать:
thisform.refresh()

t1=''
t2=''
t3=''
t4=''
t5=''

USE o_order.dbf
go bottom
t1=ALLTRIM(id_clients)
t2=ALLTRIM(id_mat)
t3=ALLTRIM(kol)
USE
USE material.dbf
go bottom
IF ALLTRIM(code_material)==t2
t4=ALLTRIM(the_price)
t5=t3*t4
ENDIF
USE
USE d_order.dbf
append blank
replace id_clients with t1
replace total with t5
USE
1. Зачем два раза подряд USE? Боитесь, что в одной области отктроется две таблицы? Хелп по команде Use читать не пробовали? А обдумать ее действие?
2. Если все данные строковые, о чем можно судить по бесконечным alltrim(), то какой результат ожидатеся от умножения строк t5=t3*t4 ?
3. Зачем постоянно таблицы открываются/закрываются в одной рабочей области, если областей много и открыть таблицы сожно только один раз и не заниматься мазохизмом? Чтобы команд было попоблльше и программа выглядела посолидней?
...
Рейтинг: 0 / 0
04.12.2011, 12:56
    #37558132
Alucard_070892
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
OldChukchi помоги пожалуйста с кнопкой =)
Кнопка на форме, нажав на неё будет идти переход на новую форму с Gridom, в который я, потом, выведу таблицу, но её надо ещё заполнить при нажатии этой же кнопки.
...
Рейтинг: 0 / 0
04.12.2011, 13:38
    #37558158
OldChukchi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
Alucard_070892,

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

Я просто не понимаю, как можно проще объяснить или чем тут еще помочь? :)
...
Рейтинг: 0 / 0
04.12.2011, 13:43
    #37558160
Alucard_070892
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
Оно просто на id_clients ругается: not found ), надо что-то вставить в код, а что я не знаю=)
...
Рейтинг: 0 / 0
04.12.2011, 13:46
    #37558164
Заполнение таблицы
Alucard_070892Оно просто на id_clients ругается: not found ), надо что-то вставить в код, а что я не знаю=)ОНО - это кто/что? На какой команде? Вам не приходила в голову мысль, что мы не видим Ваш экран и все то, что на нкм написано? И что мы не видим Ваших действий?
...
Рейтинг: 0 / 0
04.12.2011, 13:55
    #37558175
OldChukchi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
7335> Оно просто на id_clients

а! ну так это же у мну ачипатка, вот так правильнее будет:

SELECT id_clients, kol*the_price AS total FROM material,o_order WHERE material.code_material=o_order.id_mat INTO TABLE d_order

но вообще-то если Вы даже такую ошибку не увидели, то Вам обязательно нужно иметь VFP-специалиста в шаговой доступности, в противном случае толку будет чуть меньше, чем нисколько :)
...
Рейтинг: 0 / 0
04.12.2011, 14:03
    #37558181
Alucard_070892
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
File d:\lucky\d_order.dbf already exists as part of a data base
...
Рейтинг: 0 / 0
04.12.2011, 14:14
    #37558188
OldChukchi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
> already exists as part of a data base

ну вот, а говорил "в новую таблицу" :)
ну тогда вот такой вариант:

SELECT id_clients, kol*the_price AS total FROM material,o_order WHERE material.code_material=o_order.id_mat INTO CURSOR tmp_order
SELECT d_order
APPEND FROM tmp_order
USE IN tmp_order

но это вариант ленивый, правильнее было бы через INSERT
...
Рейтинг: 0 / 0
04.12.2011, 14:15
    #37558190
Alucard_070892
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
Не пойму почему ругается на то что таблица существует, мне не нужно создавать таблицу, мне нужно забить в неё данные.
...
Рейтинг: 0 / 0
04.12.2011, 14:22
    #37558194
Alucard_070892
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
tmp_order это что?
...
Рейтинг: 0 / 0
04.12.2011, 14:24
    #37558196
OldChukchi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
> мне не нужно создавать таблицу

а она есть... как тот суслик :)
ну т.е. в Вашей DBC таблица с именем d_order уже присутствует, поэтому и пересоздавать ее Фокс не разрешает.
А уж _почему_ она у Вас там присутствует - боюсь, никто подсказать не сможет :)
...
Рейтинг: 0 / 0
04.12.2011, 14:27
    #37558200
Alucard_070892
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
=) да она - присутствует, но я хочу чтобы записи добавлялись в нее
...
Рейтинг: 0 / 0
04.12.2011, 14:30
    #37558201
OldChukchi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
ну так что, вышенаписанный пример с
APPEND FROM tmp_order

не работает?
...
Рейтинг: 0 / 0
04.12.2011, 14:32
    #37558203
Alucard_070892
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
> Cnnot update the cursor D_ORDER, since it is read-only
...
Рейтинг: 0 / 0
04.12.2011, 14:41
    #37558206
OldChukchi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
так оно у Вас еще и курсор?!

ну тогда Вы в него и ручками исправлений не внесете. Нужно что-то в консерватории (в структуре данных, т.е.) поправить :)

но я на сегодня откланиваюсь - у меня уже поздний вечер
...
Рейтинг: 0 / 0
04.12.2011, 14:46
    #37558211
Alucard_070892
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение таблицы
И на том спасибо.
...
Рейтинг: 0 / 0
04.12.2011, 23:56
    #37558598
Заполнение таблицы
Неплохо было бы еще указать и версию Foxa...
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Заполнение таблицы / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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