Возможно ли средствами Base решить такую задачу

Автор Shoo, 14 февраля 2011, 12:48

0 Пользователи и 1 гость просматривают эту тему.

Shoo

Значение поля А (число) надо повторить в одном из полей X-Z  при условии совпадения названия поля ("X", "Y" или "Z") и значения поля B (соответственно, текст "Х" и т.д.) этой же таблицы.
По-человечески объясняя, в итоге пользователь должен получить отчет в виде таблицы, где в каждой строке некое число сначала стоит в одном столбце, а потом повторяется в другом столбце, название которого совпадает со значением третьего столбца.
Эта итоговая таблица - бухгалтерский отчет, где в одной строке фигурирует сумма проводки (и известны также номера счетов по дебету и кредиту), а потом в той же строке эта же сумма должна стоять в столбце дебета или кредита соответствующего счета.
Сначала я пыталась это решить двумя таблицами - "операции" и "счета", со связью между ними по этому общему признаку - номеру счета, но тогда мне никак не сообразить, как в итоге вывести все это в одну таблицу.  Последний вариант, к которому я пришла - одна таблица, где сначала идут все поля таблицы "операции", а потом все поля таблицы "счета", которые не обязательны для заполнения и в форме для заполнения пользователю будут не видны, а нужны только для выведения в отчете. Тогда моя задача решаема, если возможно выполнить то, что я написала в первом предложении :) Во всяком случае, мне так кажется.
"Помогите, кто может! Кто может, помогите!" (С)


raptor

Вот так?

[вложение удалено Администратором]

mathnew

#2
Вы бы лучше реальную БД с этой таблицей (таблицами) показали.
Или хотя бы реальную таблицу, можно скриншот, чтобы посмотреть, как это выглядит в действительности.

Shoo

Цитата: raptor от 14 февраля 2011, 15:10
Вот так?
Да, именно.

к сожалению файл с базой сейчас приложить не могу, есть xls файл с таблицей итогового отчета

[вложение удалено Администратором]

Ivanych

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

raptor

Журнал хозяйственных операций (Таблица "операции") должен, по идее, выглядеть примерно так для ввода данных пользователем в бухгалтерской БД на Base.

На основании этих данных строится итоговый отчет типа показанного ("шахматка", так, кажется, называется) в Calc.

Интересно, какая у Вас исходная Таблица "операции" в Base?




[вложение удалено Администратором]

Shoo

Цитата: Ivanych от 14 февраля 2011, 18:27
Самого данный вопрос интересовал давно. Посмотрел сейчас еще раз - ситуация та же: рекомендуют пользоваться сводными таблицами Calc.
вот именно поэтому тема так и звучит: возможно ли решить эту задачу в Base
я совсем не знаток Calc, как и Base, впрочем :) но кажется, что для задач пользователя, который должен просто вносить данные в максимально упрощенной форме и получать в итоге "нажатием кнопки" тот отчет, который ему нужен, база данных подойдет лучше, нежели электронные таблицы.

Shoo

Цитата: raptor от 14 февраля 2011, 18:47
Журнал хозяйственных операций (Таблица "операции") должен, по идее, выглядеть примерно так для ввода данных пользователем в бухгалтерской БД на Base.

На основании этих данных строится итоговый отчет типа показанного ("шахматка", так, кажется, называется) в Calc.
Интересно, какая у Вас исходная Таблица "операции" в Base?

Именно такая, как Вы тут привели :)) это и есть моя таблица "Операции". поля "Дебет счета" и "Кредит счета"  -  это в Вашем первом предположении и в моем объяснении поле "В", просто я не стала говорить о двух полях, они ведь заполнятся по аналогии, мне было важно понять принцип.
Шахматка для моих целей не нужна, она есть в системах автоматизированного учета типа 1С, при всех его неудобствах для наших задач.

Тот отчет, который я показала как мою цель, называется Книга (журнал) учета хозяйственных операций форма К1, применяется малыми предприятиями и ведется при Простой форме бухгалтерского учета. Я веду бухгалтерию садоводств и для большинства их она может применяться. Парадокс в том, что ее нет в 1С (!) и я не нашла в и-нете ни одной программы, которая бы заполняла его автоматизированно. поэтому решила попробовать сама :) Так как, есть шансы это сделать?


Ivanych

#8
Напрямую в Base - нет. Если для хранения данных используется SQL Server - легко. MySQL - сложнее, но в сетке есть инструкции.
Не знаю, как Вы собираетесь реализовывать желаемый функционал, но, если Вы хотите получать редактируемый, настраиваемый отчет - присмотритесь к возможностям Calc в качестве инструмента для генерации отчетов по нажатию кнопки пользователем в форме Base (что я и имел в виду раньше).
З.Ы. Ну, чисто теоретически, можно написать макрос. Берем исходный массив данных, он у нас будет одномерным и формируем по нему двумерный. В принципе, ничего сложного

mathnew

#9
Можно сделать что-то похожее SQL запросом.
Для простоты x,y,z заменены на 1,2,3.

PS. Чисто из любопытства.

[вложение удалено Администратором]

Ivanych

Цитата: mathnew от 14 февраля 2011, 21:59
Можно сделать что-то похожее SQL запросом.
:o Вот это костыль! "Королева в восхищении!"

dr.Faust

Всё чаще посещает мысль, что R просто необходимо как-то прикрутить к Calc и Base...
И был вроде проект, да зачах. А как сделать не представляю.
Свобода информации - свобода личности!

raptor

Стандартный подход с помощью SQL (см. картинку).
Запрос_X
ЦитироватьSELECT "id", "a", "b", "a" AS "x", "y", "z" FROM "testXYZ" WHERE "b" = 'x'
Запрос_Y
ЦитироватьSELECT "id", "a", "b", "x", "a" AS "y", "z" FROM "testXYZ" WHERE "b" = 'y'
Запрос_Z
ЦитироватьSELECT "id", "a", "b", "x", "y", "a" AS "z" FROM "testXYZ" WHERE "b" = 'z'

Ну и объединить строки всех запросов в один запрос или отчет.

[вложение удалено Администратором]

Shoo

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

mathnew

#14
Объединенный SQL запрос.

[вложение удалено Администратором]