BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
как объединить данные
 
Добрый день!
Продолжаю осваивать БЭСТ-5, к сожалению не очень успешно пока.

Помогите разобраться. У меня есть свой модуль для учета неких заявок. Необходимо хранить историю изменения статусов этих заявок. У меня созданы таблицы dbf: заявки (id_заявки), историяСтатуса (id_заявки, id_статуса, датаИзменения), Статус (id_статуса, имяСтатуса)

Самая простая задача - объединить эти данные и вывести в xbGrid (id_заявки, имяСтатуса) на указанную дату
я создаю свой CLASS clsMetaBO
в методе :Open() открываю нужные мне таблицы
Вопрос как мне потом сначала из таблицы историяСтатуса вытянуть данные на нужную дату, а потом из таблицы Статус подтянуть имяСтатуса
второй Вопрос как потом при создании новой строки заносить и сохранять данные сразу в две таблицы
(например, я создаю новую заявку - мне нужно создать строку в таблице заявки и в историяСтатуса )


очень надеюсь на Вашу помощь. в какую сторону мне двигаться?
 
Обратите Внимание на CHILDLIST

::CHILDLIST := "MKASSA"

и на AddChildName

//sclad\kassa\mkassa.dbf - реестр торговых залов
//MKASSA=UPPER(code) for !deleted()
::AddChildName( {"clsAMKassa","MKASSA", .T.,mtReadOnly,"MKASSA";
, {"UPPER(CASH)","MKASSA","CODE",psSCOPE} ;
, {"UPPER(CASH)","MKASSA","CODE",psSCOPE} ;
} )


METHOD clsAESmena00:MKASSA()
RETURN ::GetChild(1)

А общение с другой таблицей может быть таким:

x:=::MKASSA:RMK_VID
 
Сергей Джулай, спасибо за оперативный ответ.

Я правильно понимаю, что в моем случае мне сначала необходимо описать класс для данных из таблицы историяСтатуса, а затем в классе для заявок использую CHILDLIST?
 
правильно
 
Сергей Джулай, а каким образом мне передать дату с формы в метод выбора значения из таблицы?
 
не понятно, напишите конкретнее.
 
Сергей Джулай, у меня есть таблица историяСтатуса (id_заявки, id_статуса, датаИзменения). мне необходимо выводить на форму статусы на определенную дату, дату пользователь задает на форме, по умолчанию - текущее число.
 
по идее должно быть две таблицы
Первая реестр заявок, для нее строите цепочку BO-DS-DSR
Вторая таблица - реестр статусов заявки, для нее строите цепочку DS1-DSR1
В поле DS1:xbsClassName указываете наименование класса из CHILDLIST(в примере который был выше - MKASSA).
Его Вы уже связали через AddChildName по полю id_заявки, и индекс должен быть например такой: id_заявки+DTOS(датаИзменения)
Если Вы работаете с таблицей - история статусов, как с независимой, то тогда строите цепочку по типу BO1-DS1-DSR1, в поле DS1:xbsClassName ничего не указываете, в требуемые данные получаете с помощью :SCOPE, например так

METHOD DS_AfterScroll(/*DataSet*/) class frmAOtchet ::DS1:BO:Scope(id_заявки+DTOS(датаИзменения),id_заявки+DTOS(датаИзменения),"TAG_NNOPER")
::DS1:Refresh(.F.)
RETURN .T.

датаИзменения - берете из формы
 
Сергей Джулай, не совсем поняла про две разные таблицы.
у меня есть две (на самом деле три, но это не суть) таблицы dbf, одна с заявками, другая с историями статусов этих заявок. на форме я бы хотела в одном xbGrid выводить данные из них.

еще раз спасибо за ответы!
 
Лучше на форме разместить два грида, верхний заявки, нижний - история изменения статуса. Тогда необходимо действовать по схеме описанной выше.

Можно сделать один грид для визуализации таблицы история изменения статуса. Тогда главной таблицей выступит она, а подчиненной таблица содержащая заявки. Объединяете их через механизм CHILDLIST и AddChildName. :SCOPE устанавливаете на историю изменения статуса, по примеру описанному выше.
 
Сергей Джулай, спасибо! буду пробовать!

подскажите, а каким образом будет происходить сохранение данных в эти таблицы?
при добавлении новой заявки, должна добавляться строчка и в таблицу история статусов.
 
Ранее Вы писали что у Вас есть свой модуль, как я понял внешний к БЭСТу или этой уже не так.
Если не так, то для добавления новой записи, я бы рекомендовал написать еще одну визуальную форму, вызывать ее через runform, работать по технологии
METHOD DocNew
METHOD DocSave
METHOD DocClose
METHOD DocCancel
METHOD DocChanged
В качестве примера исходники в папке
...\BEST\BEST5_34\Client\Source\xHarbour\forms\Contra­ct
 
Сергей Джулай, модель есть - в нем несколько форм: для просмотра заявок, форма создания новой/редактирования имеющейся, так же для изменения статуса, потом еще надо будет прикрутить договоры...

примеры как раз смотрю, трудно только разбираться в коде, особенно когда не знаешь что искать. в справки к сожалению довольно скудно все описано и некоторых механизмов просто нет. или я не так смотрю и не понимаю (что тоже нельзя исключать)

ранее я создавала тему http://www.bestnet.ru/support/forum/index.php?PAGE_NAME=read&FID=11&TID=6710 и, к сожалению, так и не удалось разобраться. на формах у меня так и не получилось задать значение. чувствую что все должно быть довольно легко, но вот как понять чего не хватает. рыскаю по примеру, но без знания цепочки действий, вырванные куски кода не помогают.
 
Думаю Вам надо начать что-то делать, и дальше решать проблемы по мере их поступления. Ведь все равно за Вас Вашу проблему никто решать не будет.
Страницы: 1
Читают тему (гостей: 1)