|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Уважаемые форумчане! Вопрос от только начинющего работу c FoxPro.Вопрос может и стандартный и простой. Не понимаю, что нужно прописать в форме ввода ? Есть две связанные таблицы через поле id_categ. Первая ПЛАТЕЖИ (Поля :cod_pay(код платежа),date_pay(дата платежа),name_pay (наимен-ие платежа),sum_pay(сумма платежа),id_categ(код категории платежа)) пример: 1 | 21.01.2009| Солярка для личного а\м, 200т | 5 Вторая КАТЕГОРИИ_ПЛАТЕЖА(Поля:id_categ(код категории платежа),name_categ(наименование категории платежа), note_categ(примечание)) пример: 5|транспорт|все расходы на общественный и личный транспорт. Нужно написать форму ввода таблицы ПЛАТЕЖИ так, чтобы при вводе поля id_categ пользователь выбирал из ниспадающего списка(где отображены поля столбца note_category табл. КАТЕГОРИИ_ПЛАТЕЖА). Пользуюсь ComboBox. в ControlSourse вношу КАТЕГОРИИ_ПЛАТЕЖИ.note_pay. И что, еще ввести новое поле, допустим TextBox, которое связать с ПЛАТЕЖИ.id_categ. Но вся форма стопорится на этомComboBox. Не передаются данные в таблицу ПЛАТЕЖИ именно в поле id_categ. Помогите, пожалуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 17:57 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
У меня стоит FoxPro 6.0, но я не думаю, что что-то зависит от версии,может не правильно сделана сама схема данных? Для только начинающих это очень часто встречается для связанных таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 18:11 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Попоробуй такие установки BoundTo = .T. BoundColumn = 2 RowSourceType=2 RowSource = "КАТЕГОРИИ_ПЛАТЕЖА.note_category,id_categ" ControlSource=ПЛАТЕЖИ.id_categ ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 18:21 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Dag, спасибо! Попробую и в течение получаса скажу, что получилось ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 18:24 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Dag! Что хорошо, так это то , что форма не стопорится на этом Combo Box и ведет себя как и должна. НО выпадает список из трех строк в каждой так и написано "КАТЕГОРИИ_ПЛАТЕЖА.name-categ,id_categ" . Т. е. не появляется стобец name_categ из таблицы КАТЕГОРИИ_ПЛАТЕЖЕЙ Может я не то написал? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 18:42 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Кавычки убери. Они нужны при программном построении контрола. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 18:47 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Dag, только не смейся, может я не всю информацию тебе сообщил, но форма начала вести себя не очень. У меня стандартная форма ввода в таблицу PAYMENTS(я называл её ПЛАТЕЖИ) : все поля и внизу стнд.кнопки "начало","предидущая запись","след","в конец", "добавить" и т.д. С первого раза в Combo Box выпало меню, то что надо. При фиксировании нужной категории расходов оно просто поменялось на код(т.е было "транспорт",а стало "5"). С каждым последующим выбором из ниспадающего списка соответствующие поля заменялись на коды! и после этого стандартная кнопка "Добавить/Редактировать" перестала реагировать, курсор становится в это поле Combo Box и не хочет оттуда вылазить, и ниспадает список кодов категории расходов ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 19:18 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Dag, только не смейся, может я не всю информацию тебе сообщил, но форма начала вести себя не очень. У меня стандартная форма ввода в таблицу PAYMENTS(я называл её ПЛАТЕЖИ) : все поля и внизу стнд.кнопки "начало","предидущая запись","след","в конец", "добавить" и т.д. С первого раза в Combo Box выпало меню, то что надо. При фиксировании нужной категории расходов оно просто поменялось на код(т.е было "транспорт",а стало "5"). С каждым последующим выбором из ниспадающего списка соответствующие поля заменялись на коды! и после этого стандартная кнопка "Добавить/Редактировать" перестала реагировать, курсор становится в это поле Combo Box и не хочет оттуда вылазить, и ниспадает список кодов категории расходов. >>С первого раза в Combo Box выпало меню, то что надо. При фиксировании нужной категории расходов оно просто поменялось на код(т.е было "транспорт",а стало "5"). "Кто на ком стоял ?"(с) Если я правильно понял задание- то в списке комбобокса должно отображаться наименование категории платежа - КАТЕГОРИИ_ПЛАТЕЖА.note_category, а при выборе пользователем категории в таблицу ПЛАТЕЖИ (поле PAYMENT.id_categ) должен вносится соответствущий выбору идентификатор категории (id_categ). Это так ? А Неспортивное поведение формы объясняется установленной связью таблиц. Эта связь вообще нужна? Для чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 19:37 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
DAG, Я вводил в Combbo Box BoundTo = .T. BoundColumn = 2 RowSourceType=2 RowSource = "КАТЕГОРИИ_ПЛАТЕЖА.NAME_categ,id_categ" ControlSource=ПЛАТЕЖИ.id_categ Сейчас вообще не хочет появляться список с категориями расходов. Не правильно использую подсказку или не тот(слишком тонкий, не всегда подходящий) метод? Ответь , пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 19:41 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Пиши подробнее что именно сделал, что после этого изменилось. Трудно ориентироваться по крохам информации. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 19:50 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Черт подери меня, может я вообще выбрал неправильную схему данных. Итак таблица Payments(я ее называл ПЛАТЕЖИ) служит для ввода платежей фирмы, госорганизации и пр c полями: ---------------------------------------------------- |cod_pay | date_pay |name_pay |sum_pay|id_categ | ---------------------------------------------------- | 1 |12.01.2009| бензин | 1000 | 5 | | 2 |15.01.2009| ручка шар| 24 | 1 | Я установил связь с другой таблицей CATEGORY( Я её называл КАТЕГОРИИ_РАСХОДОВ) через поле id_categ c полями: -------------------------------------------------------- | id_categ | name_categ | note_categ | -------------------------------------------------------- | 1 | канцтовары | Memo | . . . | 5 | транспорт | Memo | -------------------------------------------------------- Dag, ты хочешь сказать, что зачем вообще нужна эта связь лучше введем новое поле в Payments например name_category вместо id_categ, в которое будем при вводе вводить данные используя список из таблицы Category, а в базе данных пусть будут 2 независимые таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 20:07 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
>>Dag, ты хочешь сказать, что зачем вообще нужна эта связь лучше введем новое поле в Payments например name_category вместо id_categ, в которое будем при вводе вводить данные используя список из таблицы Category, а в базе данных пусть будут 2 независимые таблицы? Как фактически называются таблицы? По русски или по английски? Мне непонятно для чего установлена связь между таблицами. Если только для заполнения поля id_categ в таблице ПЛАТЕЖИ (или Payments) - то эта связь вообще не нужна. Эту функцию отработает комбо. Новые поля вводить не нужно, достаточно имеющихся. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 20:17 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Dag, кажется понял! Категорию расходов я действительно введу с помощью комбо беря список из таблицы CATEGORY так как сказалл ты! А по названиям таблица1 - PAYMENTS (я её просто в первых сообщениях для лучшего понимания назвал ПЛАТЕЖИ), таблица2 - CATEGORY (я её просто для форума в первых сообщениях для лучшего понимания назвал КАТЕГОРИЯ_РАСХОДОВ). Поэтому уберу связь между таблицами, введу поле Name_category в таблице PAYMENTS и введу код в Combo Box, который указал ты. Т. е. все повернулось иначе. Пришли к новой постановке задачи: ввод поля таблицы Payments.name_category используя Сombo Box cо списком из таблицы CATEGORY. Dag, твой код рассчитан именно для такой постановки задачи? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 20:30 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Dag, новое поле вводить не надо, нужно только id_category изменить тип на character (было целое индексное), ну и для красоты назвать name_category. Я правильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 20:35 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Нет. Все можно оставить как есть. Поле id_categ в обоих таблицах должно быть одного типа. Кстати, а что ты подразумеваешь под словом связь. SET RELATION ? Или что-то другое? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 20:43 |
|
Ввод данных в таблицу, используя список из другой таблицы
|
|||
---|---|---|---|
#18+
Dag, спасибо! Поступил проще из таблицы Payments выкинул поле id_categ (integer), из таблицы Сategory выкинул поле id_categ (integer), т.к. исходил из того, что ключевым полем может стать и поле category.name_categ(название то категории расходов уникально и ненулевое, незачем вводить ещё уникальный код).Ввел новое поле Payments.category (character). В базе данных в DATA Environment убрал связь между таблицами и построил новый ComboBox в форме ввода платежей, в котором СomboBox Builder просто прописал: BoundTo=.T. BoundColumn=1 RowSourseType=6 - Fields RowSourse= "Category.Name_categ" ControlSourse=Payments.category И вроде все работает как надо Dag, благодаря тебе я разобрался, что эта связь в общем НЕЗАЧЕМ здесь! Сказывается отсутствие опыта разработки программ! ОГРОМНОЕ СПАСИБО! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2009, 22:24 |
|
|
start [/forum/topic.php?fid=41&fpage=114&tid=1585956]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 325ms |
total: | 467ms |
0 / 0 |