powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Суммирование
4 сообщений из 4, страница 1 из 1
Суммирование
    #37563576
Alucard_070892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как просуммировать t4 (в таблице o_order значения id_client - повторяются, как Вы видите t4 формируется при умножении количества товара на цену, но ОДИН РАЗ, а надо чтоб прошло по всем)
Код:
close tables all
set safety off

t1=''
t2=''
t3=''
t4=''
t1=val(ALLTRIM(thisform.Text1.text))
USE o_order.dbf
GO top
SCAN
if id_clients==t1
t2=kol
t3=the_price_one
t4=(t2*t3)
ENDIF
ENDSCAN

Thisform.Text2.Value=t4

USE d_order.dbf
go bottom
append blank
replace id_clients with t1
replace total with t4
use
use
...
Рейтинг: 0 / 0
Суммирование
    #37563683
alextashk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alucard_070892,
извини за правку кода, но не удержался
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
STORE 0 TO t1, t4
t1 = VAL(ALLTRIM(thisform.Text1.text))
USE o_order.dbf
SCAN FOR id_clients = t1
 t4=t4 + (kol*the_price_one)
ENDSCAN

Thisform.Text2.Value = t4

USE d_order.dbf
append blank
replace id_clients with t1, total with t4
use



А вот так бы я сделал

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
LOCAL lnT1, lnT4
lnT1 = VAL(ALLTRIM(thisform.Text1.text))
USE o_order.dbf
SUM kol*the_price_one TO lnT4 FOR id_clients = lnt1
Thisform.Text2.Value = lnt4

USE d_order.dbf
INSERT INTO d_order (id_clients, total) VALUES (lnt1, lnt4)
use



Только бы я допилил бы форму, чтоб Text1 содержал число, а не текст
и переделал бы работу с базами - операции открытия, закрытия, записи они самые медленные
т.е. открытие и закрытие можно было бы выкинуть в load формы и unload соответсвенно
...
Рейтинг: 0 / 0
Суммирование
    #37563791
Alucard_070892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, то что нужно =)
...
Рейтинг: 0 / 0
Суммирование
    #37564085
alextashk,
авторА вот так бы я сделал
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
LOCAL lnT1, lnT4
lnT1 = VAL(ALLTRIM(thisform.Text1.text))
USE o_order.dbf
SUM kol*the_price_one TO lnT4 FOR id_clients = lnt1
Thisform.Text2.Value = lnt4

USE d_order.dbf
INSERT INTO d_order (id_clients, total) VALUES (lnt1, lnt4)
use



а так еще короче:
Код: sql
1.
Insert into d_order (id_clients,total) Select id_clients, sum(kol * the_price_one) as total from o_order group by id_clients where id_clients = lnt1
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Суммирование
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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