Topic: Скрипт по вычислению. HELP!!!

Добрый день
Нужна помощь.
Есть 3 таблицы. Первая таблица: в ней данные по приходу товара (название позиции, кол-во, дата и тд). Есть повторяющийся названия позиции.
Вторая таблица: в ней данные по расходу (название позиции, кол-во, дата и тд). Так же есть повторяющийся названия позиции.
Хочу чтоб в третьей таблице была информация по остаткам.
Попробую рассписать формулу.
таблица 1 (А1+А1....+А1)- таблица 2 (А1-А1....-А1)= таблица 3(А1)
Где А1 в таблицах 1 и 2 - это одна и таже позиция с разным кол-вом. В таблице 3 нужно чтоб эта позиция была с остатком и не повторялась как в таблицах 1 и 2.
Кто может написать скрипт?

Re: Скрипт по вычислению. HELP!!!

andrew wrote:


Кто может написать скрипт?

Загрузите свой проект

Re: Скрипт по вычислению. HELP!!!

Привет Andrew, Vladimir,
Если я правильно понял ваш вопрос, посмотрите на вложение как на одно из возможных решений.
Я бы использовал «вычисляемые поля», а не скрипт.
Кроме того, я бы использовал немного другую схему данных.
Но как говорит Владимир, для полного понимания вашего вопроса всегда лучше прикрепить свой проект.
Derek.

Post's attachments

Attachment icon stocks.zip 439.37 kb, 109 downloads since 2023-07-24 

4 (edited by andrew 2023-07-25 06:45:18)

Re: Скрипт по вычислению. HELP!!!

Проект пока на стадии разработки smile))
ссылка на проект dropmefiles.net/ru/TAE4mYC
ставлю ссылку тк проект 3мб весит

Re: Скрипт по вычислению. HELP!!!

andrew wrote:

Проект пока на стадии разработки smile))
ссылка на проект dropmefiles.net/ru/TAE4mYC
ставлю ссылку тк проект 3мб весит

домен не доступен

Re: Скрипт по вычислению. HELP!!!

pavlenko.vladimir.v wrote:
andrew wrote:

Проект пока на стадии разработки smile))
ссылка на проект dropmefiles.net/ru/TAE4mYC
ставлю ссылку тк проект 3мб весит

домен не доступен

drive.google.com/file/d/1H358-ZW7MC7h5WyWFciirPshpqW8nxut/view?usp=drive_link

Re: Скрипт по вычислению. HELP!!!

andrew wrote:

drive.google.com/file/d/1H358-ZW7MC7h5WyWFciirPshpqW8nxut/view?usp=drive_link

опять защита (((

Re: Скрипт по вычислению. HELP!!!

pavlenko.vladimir.v wrote:
andrew wrote:

drive.google.com/file/d/1H358-ZW7MC7h5WyWFciirPshpqW8nxut/view?usp=drive_link

опять защита (((

cloud.mail.ru/public/2LpV/uyj6Czy9A
Надеюсь на этот раз получится

Re: Скрипт по вычислению. HELP!!!

andrew wrote:
pavlenko.vladimir.v wrote:
andrew wrote:

drive.google.com/file/d/1H358-ZW7MC7h5WyWFciirPshpqW8nxut/view?usp=drive_link

опять защита (((

cloud.mail.ru/public/2LpV/uyj6Czy9A
Надеюсь на этот раз получится

у Вас не верно сформирована БД

сделайте так
1) таблица с наименованием товаров и другими данными
2) создайте таблицы с приходом и расходом и свяжите с таблицей наименований
3) после создаете таблицу с остатком и создаете там вычисляемое поле ( в поле отнимаете расход от прихода и получаете остаток)

Если у Вам не важно указывать даты прихода и расхода, то можете вообще использовать только одну таблици

Так же не понятно зачем Вам в таблице товары с одинаковыми именами..

Re: Скрипт по вычислению. HELP!!!

pavlenko.vladimir.v wrote:
andrew wrote:
pavlenko.vladimir.v wrote:

опять защита (((

cloud.mail.ru/public/2LpV/uyj6Czy9A
Надеюсь на этот раз получится

у Вас не верно сформирована БД

сделайте так
1) таблица с наименованием товаров и другими данными
2) создайте таблицы с приходом и расходом и свяжите с таблицей наименований
3) после создаете таблицу с остатком и создаете там вычисляемое поле ( в поле отнимаете расход от прихода и получаете остаток)

Если у Вам не важно указывать даты прихода и расхода, то можете вообще использовать только одну таблици

Так же не понятно зачем Вам в таблице товары с одинаковыми именами..

В таблице приходов нужная практически подробная информация по всем позициям. (дата, название товара, кол-во и номер накладной.)
В разные дни в приходе могут быть позиции которые уже были получены, но уже израсходованы.
Вот поэтому мне нужен скрипт, который сможет посчитать, при этом чтоб не было дублированные позиции. (таблица "приходов" - таблица "расходов" = таблица "номенклатура", в которой отражаются все позиции с кол-вом даже если кол-во "0". И чтоб так же позиции не повторялись.

Re: Скрипт по вычислению. HELP!!!

andrew wrote:

В таблице приходов нужная практически подробная информация по всем позициям. (дата, название товара, кол-во и номер накладной.)
В разные дни в приходе могут быть позиции которые уже были получены, но уже израсходованы.
Вот поэтому мне нужен скрипт, который сможет посчитать, при этом чтоб не было дублированные позиции. (таблица "приходов" - таблица "расходов" = таблица "номенклатура", в которой отражаются все позиции с кол-вом даже если кол-во "0". И чтоб так же позиции не повторялись.

Главная таблица содержит всю статическую информацию о товаре, связанные таблицы содержат информацию о приходе расходе передвижении и накладные.

Depozit - это главная таблица?
Ни когда не сокращайте имена таблиц, полей и переменных, в этом действительно сложно разбираться, в крайнем случае пишите описание.

Re: Скрипт по вычислению. HELP!!!

pavlenko.vladimir.v wrote:
andrew wrote:

В таблице приходов нужная практически подробная информация по всем позициям. (дата, название товара, кол-во и номер накладной.)
В разные дни в приходе могут быть позиции которые уже были получены, но уже израсходованы.
Вот поэтому мне нужен скрипт, который сможет посчитать, при этом чтоб не было дублированные позиции. (таблица "приходов" - таблица "расходов" = таблица "номенклатура", в которой отражаются все позиции с кол-вом даже если кол-во "0". И чтоб так же позиции не повторялись.

Главная таблица содержит всю статическую информацию о товаре, связанные таблицы содержат информацию о приходе расходе передвижении и накладные.

Depozit - это главная таблица?
Ни когда не сокращайте имена таблиц, полей и переменных, в этом действительно сложно разбираться, в крайнем случае пишите описание.

Да, главная. Она относится к разделу номенклатура.

Re: Скрипт по вычислению. HELP!!!

кто-нибудь поможет???

Re: Скрипт по вычислению. HELP!!!

andrew wrote:

кто-нибудь поможет???

Все потому, что разобраться в Вашем проекте сложно.
Вам нужна главная таблица по товарам и от нее уже отталкиваться

Re: Скрипт по вычислению. HELP!!!

andrew wrote:

кто-нибудь поможет???

Вы уточните, какая помощь нужна. Владимир указал вам на ошибки в проектировании БД. Вам нужна правильная структура для вашей программы? Или вы исправили структуру, и теперь нужны SQL-запросы, которые бы отразили требуемую информацию? Скрипты для решения вашей задачи не используют, для этого лучше подходит язык запросов к БД.

Визуальное программирование: блог и телеграм-канал.

16 (edited by andrew 2023-07-31 15:23:01)

Re: Скрипт по вычислению. HELP!!!

pavlenko.vladimir.v wrote:
andrew wrote:

кто-нибудь поможет???

Все потому, что разобраться в Вашем проекте сложно.
Вам нужна главная таблица по товарам и от нее уже отталкиваться

Расписал таблицы

Главная таблица это  Depozit - относится к разделу Номенклатура
- nmgoods - наименование
- numgoods - кол-во (общее=приход-расход)
- kategtovar - категория (категория остается как и категория в Приходе
- primicyanie - примечание (примечание остается как и примечание в Приходе)
таблица in - относится к разделу Приход
- innamegoods - наименование
- innamegoods - кол-во прихода
- intdate - дата прихода
- innalog - номер накладной
- newkat - категория товара
- primecyanieIn - примечание по приходу
таблица out - относится к разделу Расход
- iesgoods - наименование
- iesnmbgoods- кол-во расхода
- iesdata - дата расхода
- ieskategoria - категория товара
- iesdeport - департамент (возможно этой колонки нет, т.к я добавил колонку на днях)
- iesprimeceanie - примечание по расходу
Таблица tabkat - относится к разделу Данные
- listkat - список категорий (Категория)
Таблица tabmoves - относится к разделу Данные
- moveslist - список департаментов  (Департамент) (возможно этой таблицы нет, т.к таблицу я добавил на днях)
Я хочу чтоб в разеделе Номенклатура была информация:
- наименование
- остаток
- примечание, записанное в Приходе.
В таблицах "in" и "out" позиции (название товара) могут повторяться, но кол-во разное

Надеюсь это поможет
спасибо

Re: Скрипт по вычислению. HELP!!!

andrew, вам надо немного теорию реляционных баз данных подтянуть. Приход и расход должен содержать не названия, а ссылки на номенклатуру. А с практической точки зрения между приходом и расходом разница только в знаке операции. Опять же со временем потребуется аналитика, поэтому типовая структура БД для данной задачи такая:


Категория товара
- наименование


Номенклатура
- код
- наименование
- ссылка на категорию


Типы операций
- наименование
- флаг приход/расход


Склад (участок учета)
- наименование


Операции
- дата
- кол-во
- ссылка на тип операции
- ссылка на номенклатуру
- ссылка на склад


Всё остальное делается SQL-запросами ( через настройку кнопки или через настройку вычисляемых полей).


Почитайте для начала это: https://drive.google.com/drive/folders/ … nCQ3E0AfC2  стр.26 Реляционные базы данных.


Про SQL в MVDB - https://docs.google.com/document/d/1ovN … LvhtM/edit

Визуальное программирование: блог и телеграм-канал.

Re: Скрипт по вычислению. HELP!!!

k245 wrote:

andrew, вам надо немного теорию реляционных баз данных подтянуть. Приход и расход должен содержать не названия, а ссылки на номенклатуру. А с практической точки зрения между приходом и расходом разница только в знаке операции. Опять же со временем потребуется аналитика, поэтому типовая структура БД для данной задачи такая:


Категория товара
- наименование


Номенклатура
- код
- наименование
- ссылка на категорию


Типы операций
- наименование
- флаг приход/расход


Склад (участок учета)
- наименование


Операции
- дата
- кол-во
- ссылка на тип операции
- ссылка на номенклатуру
- ссылка на склад


Всё остальное делается SQL-запросами ( через настройку кнопки или через настройку вычисляемых полей).


Почитайте для начала это: https://drive.google.com/drive/folders/ … nCQ3E0AfC2  стр.26 Реляционные базы данных.


Про SQL в MVDB - https://docs.google.com/document/d/1ovN … LvhtM/edit

.
Согласен с Вами. Не с того я начал
Хотел реализовать свой учёт в mvdb как это у меня в excel, где 3 раздела и указана формула для подсчёта. Но в excel свои заморочки.
В данном случае, т.е. в моем, возможно ли написать скрипт чтоб был подсчет остатков?

Re: Скрипт по вычислению. HELP!!!

Так почему же нельзя использовать пример, который я приложил (неделю назад), как возможную основу для вашего проекта (и добавить к нему свои специфические дополнительные требования).
Он рассчитывает оставшийся запас и имеет структуру данных, аналогичную предложению Константина (K245) (т.е. только одна таблица, содержащая ваши транзакции со знаком, указывающим «вход» и «выход»)

Re: Скрипт по вычислению. HELP!!!

derek wrote:

Так почему же нельзя использовать пример, который я приложил (неделю назад), как возможную основу для вашего проекта (и добавить к нему свои специфические дополнительные требования).
Он рассчитывает оставшийся запас и имеет структуру данных, аналогичную предложению Константина (K245) (т.е. только одна таблица, содержащая ваши транзакции со знаком, указывающим «вход» и «выход»)

Пытаюсь использовать Ваш пример, выложенный несколько дней назад, но мне нужен расчет с двух таблиц wink smile

Re: Скрипт по вычислению. HELP!!!

Хотя использование одной таблицы для хранения движения запасов (как входной, так и выходной) является более простым вариантом, если вам нужно использовать две таблицы, попробуйте сделать это следующим образом (см. Приложение).

Post's attachments

Attachment icon stocks 2.zip 439.27 kb, 87 downloads since 2023-08-02 

Re: Скрипт по вычислению. HELP!!!

Кто может помочь?
Сделал ошибку, в таблицах я создал поле как текст и вводил цифры. Теперь чтоб были арифметические расчеты, нужны поля с "целыми числами". Как можно переобразовать поля "текст" в поля "целое число" без потерь введенных данных? smile))

Re: Скрипт по вычислению. HELP!!!

andrew wrote:

Кто может помочь?)

StrToInt();

Re: Скрипт по вычислению. HELP!!!

Привет Andrew, Vladimir,
Другой вариант -
1. закройте приложение
2. скопировать sqlite.db - backup.db
3. переименовать sqlite.db в xxx.db
4. измените определение поля с «текст» на целое число
5. закройте приложение
6. переименовать xxx.db в sqlite.db
7. запустите ваше приложение
8. если все в порядке, удалите backup.db
Derek.

Re: Скрипт по вычислению. HELP!!!

спасибо за помощь.
Кажется я нашел еще 1 вариант
Открыть файл "tables", в нем перечислены название таблиц и название полей с их характеристиками. Вместо "TEXT" вставил "INTEGER". Сохранил документ. Открываю проект, и вижу что все поменялось и также в самой базе все сохранилось wink smile