1 (edited by spectre 2015-05-18 15:36:01)

Topic: Автоматизация

Есть такая схема (смотри картинку ниже)

Таблица с заказами
заказ можно оплатить разными способами

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

пытался сделать через кнопку search(increm.search) но этот способ дает выборку только из одной таблицы

Заранее благодарен!

Post's attachments

Attachment icon 2015 (2).png 74.52 kb, 456 downloads since 2015-05-15 

Re: Автоматизация

необходимо использовать SQL запрос с ключевым словом UNION для объединения данных с таблиц.
Приложите пожалуйста к сообщению ваш проект (zip файл без exe и dll)

Dmitry.

Re: Автоматизация

прилагаю файл.
если этот проект выгорит то беру программу с руками и ногами

Post's attachments

Attachment icon BSUN.zip 15.6 kb, 508 downloads since 2015-05-15 

Re: Автоматизация

spectre wrote:

прилагаю файл.
если этот проект выгорит то беру программу с руками и ногами

Готово, также на форме order вы можете добавить чеки.

Post's attachments

Attachment icon BSUN2.zip 16.41 kb, 582 downloads since 2015-05-15 

Dmitry.

Re: Автоматизация

Просто нет слов. Ваше решение еще лучше чем мое. Оно изящнее!!!
Спасибо большое

Re: Автоматизация

Повторил то же самое в другом месте но во втором(дочернем) gride ничего автоматом не появляется
только после нажатия кнопки с sql запросом
что я упустил?

Re: Автоматизация

у компонента students.orderslist есть свойство Increm.Search, где выбирается кнопка, которая будет автоматически нажиматься. Видимо вы забыли ее указать.

Dmitry.

Re: Автоматизация

Установил это свойство - не срабатывает
Причём в вашем исправления этого свойства тоже не стоит

Re: Автоматизация

Приложите пожалуйста снова ваш проект, и расскажите подробней, что именно и где не работает (названия форм и компонентов).

Dmitry.

Re: Автоматизация

при выборе строки в форме students.orderlist он не выполняет автоматический sql запрос(increm.search) соответственно не показывает результат в student.orderdetails

Спасибо

Post's attachments

Attachment icon sun2.zip 16.63 kb, 504 downloads since 2015-05-15 

Re: Автоматизация

spectre
Странно, у меня все работает, выставил только increm.search на 13 кнопку в свойствах таблицы orderslist.

Re: Автоматизация

Nilaus wrote:

spectre
Странно, у меня все работает, выставил только increm.search на 13 кнопку в свойствах таблицы orderslist.

Моя тупость.  Вы правы. Я поставил increm. Search в orderdetails когда надо было в orderlist
Спасибо.
Иногда полезно пообщаться.  А то  весь день тупил искал проблему

Re: Автоматизация

А можно ли таким же способом при выборе из ComboBox автоматом заполнялся Textbox(ReadOnly) в той же форме???

например: я выбераю продукт из таблицы продуктов на форме заказа и его цена автоматически переносится в эту же форму в поле TextBox???

Re: Автоматизация

Можно, примерно так

procedure Form1_ComboBox1_OnCloseUp (Sender: string);
begin
    Form1.Edit1.Text := SQLExecute('SELECT price FROM tablename WHERE id='+Form1.ComboBox1.sqlValue);
end;
Dmitry.

15 (edited by spectre 2015-05-17 12:02:53)

Re: Автоматизация

DriveSoft wrote:

Можно, примерно так

procedure Form1_ComboBox1_OnCloseUp (Sender: string);
begin
    Form1.Edit1.Text := SQLExecute('SELECT price FROM tablename WHERE id='+Form1.ComboBox1.sqlValue);
end;

а без скрипта это возможно?

просто так хорошо идет через запросы SQL
я не программист поэтому пока пытаюсь обходить скрипты

и собственно поэтому получаю ошибку см.картинку

Post's attachments

Attachment icon 2015-05-17 14-58-49 Скриншот экрана.png 28.56 kb, 339 downloads since 2015-05-17 

Re: Автоматизация

После End  не хватает  ;  ( end;)

Re: Автоматизация

Leonid wrote:

После End  не хватает  ;  ( end;)

не помогло
замкнутый круг
(картинка)

Post's attachments

Attachment icon 2015-05-17 15-23-05 Скриншот экрана.png 29.5 kb, 309 downloads since 2015-05-17 

Re: Автоматизация

вы удалили из скрипта обязательный блок

begin

end.

который должен быть расположен в самом низу скрипта.

Dmitry.

Re: Автоматизация

Еще вопросик
Grid "методы оплаты" генерируется SQL запросом при клике на строчку в "заказах"
Пытаюсь вывести данные сколько оплачено (сумма всех видов оплаты) и сколько осталось оплатить
чтобы показывало автоматом
Пытался вывести сам и через TextBox и через Grid
и с помощью SQL и через script
но автомат отказывается работать
Помогите пожалуйста

Post's attachments

Attachment icon 2015 (2).png 61.63 kb, 337 downloads since 2015-05-18 

Re: Автоматизация

spectre
Приложите пожалуйста последнюю версию вашего проекта, и укажите имена компонентов и формы, где это необходимо.

Dmitry.

21 (edited by spectre 2015-05-19 08:28:42)

Re: Автоматизация

DriveSoft wrote:

spectre
Приложите пожалуйста последнюю версию вашего проекта, и укажите имена компонентов и формы, где это необходимо.

Форма students> tab orders
все действие происхотит тут
там 3 grida и 1 textbox + кнопка SQLquery.
я пытался разными способами вывести общую сумму уже оплаченную (любым видом оплаты) ну и конечно же остаток долга
не могу понять через что выводить эти данные каким способом это удобнее сделать?

Post's attachments

Attachment icon MVD.rar 15.55 kb, 476 downloads since 2015-05-19 

Re: Автоматизация

Добавил скрипт, считает сколько оплачено и долг при выборе необходимого ордера.

Post's attachments

Attachment icon MVD2.zip 19.94 kb, 523 downloads since 2015-05-19 

Dmitry.

23 (edited by spectre 2015-05-20 11:19:11)

Re: Автоматизация

Спасибо подогнал код под себя.

А если 2 или 3 зависимости для вывода данных в TextBox?
Например:
конечная цена зависит от 2 TextBox-ов
1. скидка в рублях
2. скидка в процентах
и надо сделать onChange TextBox(cкидка в рублях) и onChange TextBox(скидка в процентах)
сделать запись в (конечная сумма)
???

procedure order_discount_OnChange (Sender: string);
begin
    order.endprice.Value := SQLExecute('SELECT startprice FROM orders') -
                                                SQLExecute('SELECT discount FROM orders');
end;

и после такого кода он меняет мне значение endprice только один раз
если я ошибся со скидкой и ввожу повторно другое значение программа уже не делает пересчет

Re: Автоматизация

попробуйте так

procedure order_discount_OnChange (Sender: string);
begin
    order.endprice.Value := SQLExecute('SELECT startprice FROM orders WHERE id='+students.orderslist.sqlValue) -
                                                SQLExecute('SELECT discount FROM orders WHERE id='+students.orderslist.sqlValue);
end;
Dmitry.

Re: Автоматизация

DriveSoft wrote:

попробуйте так

procedure order_discount_OnChange (Sender: string);
begin
    order.endprice.Value := SQLExecute('SELECT startprice FROM orders WHERE id='+students.orderslist.sqlValue) -
                                     SQLExecute('SELECT discount FROM orders WHERE id='+students.orderslist.sqlValue);
end;

Результат тот же
1.ставлю скидку 20руб. > ничего не меняется
2. сохраняю выхожу
3. захожу обратно (ничего не поменялось)
4. меняю скидку на 40руб - программа отнимает 20руб

она работает с предыдущим значением