Перейти к содержимому


Как организовать?


Сообщений в теме: 8

#1 aolin

    Активный участник

  • Пользователи
  • PipPipPip
  • 41 сообщений

Отправлено 18 Январь 2011 - 14:36

Добрый день.
Нужно организовать следующий момент.
Есть пользователь и есть таблица счетов.
У пользователя есть доступ только к своим счетам.
Как определить последний (максимальный номер) счета, пользователю?
Проблема в том, что нумерация сквозная. И на каждый год новая.
Вариант с автонумерацией не подходит, т.к. на следующий год она продолжится а нужно сбросить на 1.
Спасибо.

#2 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 872 сообщений
  • Пол:Мужчина

Отправлено 18 Январь 2011 - 15:16

Вам необходимо создать вычисляемое поле, в которое будет заноситься номер последнего счета.
Для того чтобы нумерация была по годам Вам также необходимо создать вычисляемое поле. Оно будет проверять год создания счета, и сравнивать с текущим. А затем прибавлять к последнему номеру текущего года 1.

#3 aolin

    Активный участник

  • Пользователи
  • PipPipPip
  • 41 сообщений

Отправлено 20 Январь 2011 - 13:39

Спасибо. Помогло.
Есть еще задачка.
Две таблицы А и Б(подчиненная).
Как организовать, чтобы при создании строки в А автоматически создавалась строка в Б (с одинаковым ID),
а при удалении строки в А, удалялась строка с тем же ID в Б?
Возможно ли организовать средствами системы?
Спасибо.

#4 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 872 сообщений
  • Пол:Мужчина

Отправлено 20 Январь 2011 - 14:13

Чтобы создавалась строка в подчиненной таблице необходимо создать вычисление в таблице А. Используйте функцию insert_query и в первое поле таблицы Б заносите ID текушей записи. Но, ID этих двух записей одинаковыми могут и не быть.

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

#5 aolin

    Активный участник

  • Пользователи
  • PipPipPip
  • 41 сообщений

Отправлено 20 Январь 2011 - 20:45

Понятно.
Есть таблица "печать"(поле связи с подчиненной Num) и подчиненная "расчет"(содержит 2 поля Num, Сумма)
Как проверить есть ли строка с Num=5 (для примера) в т.расчет?
В вычисления таблицы печать добавил код:
$rec1 = data_table("печать", "id={ID}");
$rec2 = data_table("расчет", "'Num'=5");
echo "строка есть ".$rec2['Num'];
Переменная $rec2['Num'] по идее - или пуста (нет строки в т.расчет с Num=5) или равна 5, если строка есть.
Разве нельзя так сделать выборку? Переменная $rec2['Num'] всегда пуста... подскажите как реализовать.
Спасибо.

#6 aolin

    Активный участник

  • Пользователи
  • PipPipPip
  • 41 сообщений

Отправлено 21 Январь 2011 - 10:28

И еще вопрос в догонку к предидущему посту:
Каким оператором удалить строку?

#7 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 872 сообщений
  • Пол:Мужчина

Отправлено 21 Январь 2011 - 10:48

Ошибка в кавычках. "'Num'=5" вместо '' кавычек Num должно быть в косых ``.

#8 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 872 сообщений
  • Пол:Мужчина

Отправлено 21 Январь 2011 - 10:58

Просмотр сообщенияaolin (21.1.2011, 10:28) писал:

Каким оператором удалить строку?
delete_query("таблица", "условие"); Условие прописывается также как и в data_table.

#9 aolin

    Активный участник

  • Пользователи
  • PipPipPip
  • 41 сообщений

Отправлено 21 Январь 2011 - 12:34

Все получилось, спасибо.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных