Программы "Простой софт" www.prostoysoft.ru

ВНИМАНИЕ! РЕКЛАМНЫЕ СООБЩЕНИЯ И ГИПЕРССЫЛКИ В ФОРУМЕ ЗАПРЕЩЕНЫ (посты удаляются автоматически)
Текущее время: 27.11.2024 18:28

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Триггеры
СообщениеДобавлено: 01.12.2011 20:59 
Не в сети

Зарегистрирован: 18.10.2011 16:53
Сообщения: 43
И опять я, здравствуйте.
Вопрос про триггеры. У вас по дефолту есть функция выставить счету статус Оплачен при добавлении платежа.
Но если клиент платит по авансу, к примеру? +программа не умеет делать счета-фактуры для аванса, но это отдельная тема, я ее как раз прорабатываю.
Так вот, возвращаясь к триггерам.
Хочу, чтобы при добавлении платежа по счету у меня в таблице Счета появлялось значение, сколько всего по счету уплачено+менялся статус счета.
Первый пункт-сделал. Добавил поле Получено, написал триггер-добавляет.
А вот как, исходя из этого, написать триггер, который бы менял статус счета на Оплачен, если сумма счета=сумме полученного или оплачен частично, если сумма сччета больше полученного-не пойму. Точнее, в какой таблице его даже писать-в платежах или счетах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 01.12.2011 21:02 
Не в сети

Зарегистрирован: 18.10.2011 16:53
Сообщения: 43
Точнее не так, я даже написал триггер, это ок.
Но вот чтобы он сработал-нужно открыть запись в таблице Счет и нажать ок-тогда все работает.
А вот без этого-не хочет =( Хотя поле Оплачено меняется по триггеру из платежей.
Срабатывание указано при изменении записи. Пробовал при изменении поля-тоже самое, не хочет. Только при открытии записи и клике Ок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 02.12.2011 10:40 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Здравствуйте, вам надо написать один триггер на добавление, изменение, удаление записи в таблице "Платежи", которые меняет статус у поля "Статус счета" в таблице "Счета". Это уже сделано в нашей стандартной демо БД. Скачайте полный дистриубутив и посмотрите в триггеры для таблицы "Платежи". Можно еще добавить хранимое поле "Оплачено" в таблицу "Счета" и менять его также по триггеру.
Но есть другой путь - сделать оба эти поля ("Статус счета" и "Оплачено") вычисляемыми.
Тогда никаких триггеров вообще писать не понадобится.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 02.12.2011 11:43 
Не в сети

Зарегистрирован: 18.10.2011 16:53
Сообщения: 43
А как писать условия на сравнивания поля из таблицы платежи с полем из счетов?
Я пробовал так:
[qdfInvoice.PriceAmount]>[Recived]. Неработает =(
Мне то нужно, чтоб статус счета менялся не при занесении платежа, а по факту того, сколько заплатили(все или часть).

Вычисляемые поля думал, понимаю как реализовать, но боюсь за быстродействие. Если это не сильно повлияет - то сделаю через вычисляемые.
Просто меня бух прогрузил с фактурами-они бывают на аванс, на работы, их может быть для одного счета несколько..
Да кстати!
Вот еще вопрос. Как брать значения из подчиненной таблицы в формируемый по шаблону документ? Это у нас происходит по продуктам по счету, формируется таблица. А мне вот нужно из подчиненной таблицы взять только одно значение, к примеру [qdfCloseDocs.ShippingDate]. Простая подстановка ничего не дала, вместо переменной отображается ID записи главной таблицы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 02.12.2011 11:52 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Приведите, пожалуйста, весь контекст (а не кусок выражения). Лучше скриншот. Где вы это пишите?

> нужно, чтоб статус счета менялся не при занесении платежа, а по факту того
Как раз именно при занесении платежа происходит "факт" изменения общей суммы всех платежей, и нужно менять статсу счета и сумму счета именно в этот момент.
Но, как я сказал, можно и просто вычисляемые поля создать.
А можно и отчет создать, показывающий "Баланс счетов". Посмотрите на существующий в демо БД "Баланс клиентов".

> фактурами-они бывают на аванс, на работы
Документы тут вообще ни при чем. Это всего лишь "форма представления данных", которые содержатся в таблицах БД.

>Как брать значения из подчиненной таблицы в формируемый по шаблону документ?
В какой именно документ? Word, Excel...?

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 02.12.2011 19:32 
Не в сети

Зарегистрирован: 18.10.2011 16:53
Сообщения: 43
Вот скрин.
Работает только если запись открыть/закрыть запись.
Отчет то да, но мне нужно сделать подсветку :)
Заморочка как раз таки и связана с документами, ибо собственно из-за фактур я все это затеял.
Экспорт в эксель. Хочется, чтобы бралось значение из той строки, которая выделена в данный момент(то есть выделена строка в основной таблице счета+выделена строка в подчиненной таблице закрывающие).


Вложения:
Снимок.PNG
Снимок.PNG [ 15.4 КБ | Просмотров: 77471 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 02.12.2011 20:39 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Попробуйте задать в угловых скобках (а не в квадратных) ссылки на поля текущей записи.
Вы можете задать какое-нибудь сообщение, типа "ОК", чтобы убеждаться, срабатывает ли триггер.
Для подсветки (т.е. для задания правила цветовыделения строк, если я вас правильно понял) вы можете так и задать условие в настройке правил цветовыделения:
Счета Сумма счета <> [Recived]
Т.е. в колонке "Значение" нужно ввести внутреннее имя поля в квадратных скобках. Должно работать.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 03.12.2011 18:27 
Не в сети

Зарегистрирован: 18.10.2011 16:53
Сообщения: 43
Ага, разобрался, спасибо!
А вот как брать значения переменных из подчиненной таблицы,ммм?
Суть такая, я хочу для закрывающих документов сделать подчиненную табличку в счетах, и чтоб из нее брать номера фактур, даты отгрузки и прочее.
Я это сейчас вижу только как кликать "Перейти на запись в основной таблице" и уже оттуда экспортировать в шаблон документа все значения.
Это сработает, понятно, но хочется, чтобы кнопки всех документов были в таблице счета :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 03.12.2011 21:26 
Не в сети

Зарегистрирован: 18.10.2011 16:53
Сообщения: 43
Ура!
Если делать виртуальные представления-то значения берутся. Отлично берутся!!!
Все, докменты готовы, можно вводить в оборот програмку и отлаживать по живому, хехехе.
Да кстати, есть еще такая штука, я ее не до конца понимаю. В вашем тестовом примере на этом алгоритме в таблице со счетами был организован выбор клиента.
Вычисляемое поле с клиентом и служебное поле с "кодом клиента". Но код клиента чисто служебное поле, и выбирать клиента можно прям из вычсиляемого поля.
А чтоб это работало, нужно ставить галочку "Разрешить ввод в поле другой таблицы". Так вот, эта галочка у меня серая. Я ее не могу ставить =(
Точнее, раньше ставилась, и работло все, а сейчас она серая. Почему так может быть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 03.12.2011 22:19 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
При СУБД MS SQL Server и при редактировании в таблице (а не в форме) эту функциональность настроить пока не получается.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 05.12.2011 13:43 
Не в сети

Зарегистрирован: 18.10.2011 16:53
Сообщения: 43
Кхм, а как же тогда у меня работает?)


Вложения:
Снимок.PNG
Снимок.PNG [ 30.61 КБ | Просмотров: 77421 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 05.12.2011 18:16 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Повторяю "при редактировании в таблице (а не в форме)".

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 10.12.2011 18:07 
Не в сети

Зарегистрирован: 18.10.2011 16:53
Сообщения: 43
Ой, точно. Все заработало.
А вот еще-есть ли техническая возможность из одной формы заполнять подчиненные таблицы?
К примеру:
Есть таблица счета, в ней подчиненная таблица Продукты по счету.
При создании нового счета хочется, чтоб клик на добавление счета, в первой вкладке вписал все по счету, во второй-вписать продукты по счету.
Возможно или нет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 10.12.2011 20:32 
Не в сети

Зарегистрирован: 18.10.2011 16:53
Сообщения: 43
Интерфейсный вопрос-отуда брать иконки, которые я добавляют на панель задач(типа экспорта счета в 1С и прочее)?
Я хочу еще парочку нарисовать, где их взять и куда вставлять?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггеры
СообщениеДобавлено: 10.12.2011 20:59 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
1. Нет, в одной форме для редактирования вносить запись в главную и несколько записей в подчиненную таблицу не получится.
Форма редактирует всегда только одну запись в какой-то таблице, в главной или в подчиненной.
2. Правый клик на панели инструментов -> Настройка панели инструментов. В ниспадающем списке в колонке "Картинка" вы можете выбрать одну из существующих иконок или указать произвольный ICO-файл.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB