powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по подсчёту количества переменных в строке
17 сообщений из 17, страница 1 из 1
Вопрос по подсчёту количества переменных в строке
    #34615853
Mike_aka_Rush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дамы и Господа !
Я тут новенький и в деле программирования откровенно ещё глупый ! Нуб, короче говоря =)
У меня возникла следующая проблема:
есть таблица, поля: год, месяц, день1,..,день31
день1...день31 являются логическими переменными.
Нужно, чтобы в новое, пустое поле в этой же таблице, записывалась сумма лишь положительных (True) элементов ячеек строк.
Итак, вопрос: каким циклом это можно реализовать, и осуществимо ли это в принципе или нет, если да, то как ??
Заранее спасибо. С уважением, Михаил.
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34615972
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не очень понятно чего Вы хотите добиться. Если изложите немного подробнее (кто куда зачем почему) свою задачу - возможно Вам здесь помогут.
Например, какие значения содержаться в указанных ячейках (полях ?) - логические, числовые, даты ?
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34616007
Mike_aka_Rush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DagНе очень понятно чего Вы хотите добиться. Если изложите немного подробнее (кто куда зачем почему) свою задачу - возможно Вам здесь помогут.
Например, какие значения содержаться в указанных ячейках (полях ?) - логические, числовые, даты ?
в указанных полях (day1,..., day31) содержаться логические переменные. Причём заминка в том, что значение F (false) нас не интересует, нам нужно лишь количество T (True) положительных значений. Каким макаром можно пройти по строке, сосчитав лишь эти T-значения лог. переменной.
Если ещё полнее, то у меня курсовая работа, контрольный пример, табельный учёт !
Существует три таблицы Работники (поля: Second name, Name, Otchestvo, Sex, Status, Tabel #, oklad za smenu, id_rab[Integer AutoInc]), График смен (поля: Year, Month, day1, Day2,..., Day31, id_graph[Int AutoInc], Days per month)[для контрольного примера взят месяц Январь текущего года], Табель (id_rab, id_tab, id_graph, Monthly payment)
Таблицы я заполнил, связал, ограничения пока ещё на связи не наложил, формы тож создал, меню щас делать хочу, но пока с этой фигнёй не разберусь не буду.
Так вот ещё раз =)
В таблице График смен: если человек работал в этот день, то в Day# будет стоять T, если же не работал F. Всего 5 типов графиков смен, т.е. 5 строк. Работников 26, но это уже лишняя информация.
ПС кстати пока не забыл, как можно перемножить две колонки (именно колонки, причём хотелось бы сразу, а не построчно) двух разных таблиц, а результат записать в поле третьей таблицы ??
построчно мне уже помогли:
use myTable1 in 0 alias t1
use myTable2 in 0 alias t2
use myTable3 in 0 alias t3
local lnResult
lnResult = T1.NumField * T2.NumField && перемножили 2 поля из первой строки в кажой таблице
replace NumField with m.lnResult in T3 && записали результат в первую строку таблицы 3
(но тогда получится 26, так сказать, итераций)
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34616025
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй

SELECT myTable
SCAN
lnSum=0
FOR lnI=1 TO 31
lcColumn='myTable.Day'+TRANSFORM(lnI)
lnSum=lnSum+IIF(&lcColumn,1,0)
ENDFOR
replace Kolvo WITH lnSum IN myTable
ENDSCAN
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34616030
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А для умножения колонок используйте цикл

sele T3
go top

sele T1
go top


SCAN
lnResult = T1.NumField * T2.NumField && перемножили 2 поля из первой строки в кажой таблице
replace NumField with m.lnResult in T3
skip in T3
ENDSCAN
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34617080
Mike_aka_Rush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DagПопробуй

SELECT myTable
SCAN
lnSum=0
FOR lnI=1 TO 31
lcColumn='myTable.Day'+TRANSFORM(lnI)
lnSum=lnSum+IIF(&lcColumn,1,0)
ENDFOR
replace Kolvo WITH lnSum IN myTable
ENDSCAN
Спасибо огромное-преогромное тебе, брат Dag !! =) Ураа !!!! рабоаит !!! =) гЫ !! =)
Рад до невозможности !!!!! Сейчас вторую прогу осваивать бум !! =)
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34617436
Mike_aka_Rush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
новая проблема !! :(
Всё с перемножением хорошо, но ТОЛЬКО если значение в первой строке колонки первой табл соответствует значению в первой строке колонки второй таблицы !! а у нас такого нет !!
у меня пять типов графиков [id_graph 1, 4, 7, 10, 13] (таблица График смен), которые некоторым образом связаны с 26 записями первой таблицы (Работники). Т.е. получается, что связь идёт один-ко-многим.
1-ому типу графика соответствует 3-ья запись в таблю Работник
2-ому (id_graph4) - 5-ая
3-ему (id_graph7) - 17-ая
4-ому (id_graph10) - 1,4,6,7,11,13,14,21 и 25-ая записи
5-ому (id_graph13) - 2,8,9,10,12,15,16,18,19,20,22,23,24 и 26-ая записи.
Что Вы можете мне посоветовать по этому поводу ?? как можно реализовать данное умножение ??
Заранее спасибо.
PS 2 Dag: извините, что я обратился к Вам на ты, просто,если можно так сказать, башню от счастья снесло :(
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34618016
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой результат нужно получить (в какой таблице, колонке)?
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34618066
Mike_aka_Rush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DagА какой результат нужно получить (в какой таблице, колонке)?
результат должен быть выведен в третью таблицу Tabel (поля:id_rab, id_tab, id_graph, monthly_payment). Вот в последнюю колонку - Monthly_payment - и хотелось, чтобы выводился результат. Этого ужасного произведения !! :(
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34618108
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже лучше.
Какие колонки какой таблицы перемножаем?
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34618190
Mike_aka_Rush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DagУже лучше.
Какие колонки какой таблицы перемножаем?
перемножаются колонки 2-х оставшихся таблиц =)
табл. Rabotnik.Oklad_za_rab_den
табл. Graphic_smen.Day_per_month
т.е., что бы получить зарплату итоговую за месяц, нам нужно перемножить количество отработанных дней/смен с той суммой, которую человек получает за отработанный день/смену.
Но, как я уже сказал, сделать это вообще оказалось непросто, ведь у нас одна запись в табл График смен соответствует нескольким конкретным записям в табл. Работники (об этом я писал ранее)
Програмирование, блин, вещь очень, надо сказать, непростая :(
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34618274
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT Tabel
GO top
SCAN
*---Сначала попробуй выполнить операцию для одной строки таблицы Tabel, начиная отсюда
SELECT a.Oklad_za_rab_den*b.Day_per_month as Nechto FROM Rabotnik a, Graphic_smen b ;
INTO CURSOR tmp WHERE a.id_rab==Tabel.id_rab AND b.id_graph==Tabel.id_graph
SELECT Tabel
replace Monthly_payment WITH tmp.Nechto
*---Если все сработает для одной строки пробуй запустить весь код со сканированием всей таблицы.
ENDSCAN

USE IN tmp
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34618327
Mike_aka_Rush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DagSELECT Tabel
GO top
SCAN
*---Сначала попробуй выполнить операцию для одной строки таблицы Tabel, начиная отсюда
SELECT a.Oklad_za_rab_den*b.Day_per_month as Nechto FROM Rabotnik a, Graphic_smen b ;
INTO CURSOR tmp WHERE a.id_rab==Tabel.id_rab AND b.id_graph==Tabel.id_graph
SELECT Tabel
replace Monthly_payment WITH tmp.Nechto
*---Если все сработает для одной строки пробуй запустить весь код со сканированием всей таблицы.
ENDSCAN

USE IN tmp
VFP пожаловался на строчку:
replace Monthly_payment WITH tmp.Nechto
и выдал сообщение, следующего содержания:
Numeric overflow. Data was lost
я правда весь код ваш сразу прописал - может в этом ошибка ? ((
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34618361
Mike_aka_Rush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я кажется нашёл ошибку, я сделал поле Monthly_payment Numeric, но ограничил его всего пятью знаками >< идиот !! я !! =) сейчас ещё раз пропробую, извините ! =)
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34618363
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не спеши, отладь код для одной строки
Загляни в курсор tmp - что там за цифирки образовались , равны ли они искомому произведению.
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34618375
Mike_aka_Rush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DagSELECT Tabel
GO top
SCAN
*---Сначала попробуй выполнить операцию для одной строки таблицы Tabel, начиная отсюда
SELECT a.Oklad_za_rab_den*b.Day_per_month as Nechto FROM Rabotnik a, Graphic_smen b ;
INTO CURSOR tmp WHERE a.id_rab==Tabel.id_rab AND b.id_graph==Tabel.id_graph
SELECT Tabel
replace Monthly_payment WITH tmp.Nechto
*---Если все сработает для одной строки пробуй запустить весь код со сканированием всей таблицы.
ENDSCAN

USE IN tmp
Dag, огромное Вам спасибо, всё работает, причём корректно !!! Если хотите знать, я не встречал ещё людей, подобных Вам, которые так стремились, да просто помогали совершенно незнакомому им человеку, да ещё и "безваздмездна", как говаривала Сова в небезысвестном мультфильме !! Спасибо Вам !!
...
Рейтинг: 0 / 0
Вопрос по подсчёту количества переменных в строке
    #34618386
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Not at all!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по подсчёту количества переменных в строке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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