Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Просмотр нескольких файлов в Form  [new]
ValeryIvanovich
Member

Откуда:
Сообщений: 54
Доброго вечера!
в три файла одинаковой структуры вводятся данные за 1-е полугодие 2-е и за год
В форме Grid, показывающий записи с данными
есть кнопка переключением между периодами
Помогите, как организовать показ Grid с разных периодов (файлов)
22 июл 21, 21:41    [22350070]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр нескольких файлов в Form  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1595
ValeryIvanovich
Доброго вечера!
в три файла одинаковой структуры
Зачем? Что мешает в один?
вводятся данные за 1-е полугодие 2-е и за год
В форме Grid, показывающий записи с данными
есть кнопка переключением между периодами
Помогите, как организовать показ Grid с разных периодов (файлов)
Объединяющим запросом все сливается в один набор данных и просто фильтруется.
22 июл 21, 22:59    [22350086]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр нескольких файлов в Form  [new]
ValeryIvanovich
Member

Откуда:
Сообщений: 54
Sergey Sizov, Спасибо, но есть но...
В 1-м полугодии используются реквизиты 1-6 месяцев, в 2-м 7-12 ...(например, суммы реализации помесячно)
В Grid'e и при печати, при корректировке нужно это учитывать, проще при каждом переключении периода формировать
промежуточный файл и с ним работать (Grid,...)
23 июл 21, 05:43    [22350106]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр нескольких файлов в Form  [new]
asdor
Member

Откуда: Москва
Сообщений: 513
ValeryIvanovich
Sergey Sizov, Спасибо, но есть но...
В 1-м полугодии используются реквизиты 1-6 месяцев, в 2-м 7-12 ...(например, суммы реализации помесячно)
В Grid'e и при печати, при корректировке нужно это учитывать, проще при каждом переключении периода формировать
промежуточный файл и с ним работать (Grid,...)


Как сказал Сергей, все данные хранят в одной таблице.
А для просмотра, устанавливают период, за который вы хотите посмотреть, за 1е полугодие, за 10й месяц, с 5го по 16 июля...

Подход екселя, к БД не применяют
23 июл 21, 08:04    [22350126]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр нескольких файлов в Form  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1595
ValeryIvanovich
В 1-м полугодии используются реквизиты 1-6 месяцев, в 2-м 7-12 ...(например, суммы реализации помесячно)
И что? Что это меняет? В одном файле нельзя сделать сделать все нужные месяцы?
В Grid'e и при печати, при корректировке нужно это учитывать,
И что мешает это делать?
проще при каждом переключении периода формировать
Проще чего? А потом придумывать как смотреть несколько файлов тоже проще?
промежуточный файл и с ним работать (Grid,...)
А можно не делать промежуточный файл. И это вроде проще, чем делать?
23 июл 21, 08:45    [22350129]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр нескольких файлов в Form  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7919
Мда... Как обычно, насоветовали

Вариантов решения 2 в зависимости от того, одинаковая ли "картинка" на форме для всех 3 источников

1. Если "картинка" одинаковая, то это стандартная задача замены источника данных Grid "на лету"

* Перед заменой обязательно явным образом обнулить источник данных Grid
ThisForm.Grid1.RecordSource = ""

* Открываем нужную таблицу (или выполняем нужную выборку Select-SQL)
if not used('MyTable')
    USE MyTable.dbf IN 0 AGAIN
endif

* Устанавливаем новые источник данных Grid
ThisForm.Grid1.RecordSource = "MyTable"

* Если необходимо, также явно прописать источник данных для столбцов Grid
ThisForm.Grid1.Column1.ControlSource = "MyTable.Field1"
ThisForm.Grid1.Column2.ControlSource = "MyTable.Field2"


Здесь надо иметь в виду, что "источник" - это алиас уже открытой таблицы (Grid.RecordSourceType = 1 - значение по умолчанию). Как правило, алиас совпадает с именем таблицы dbf, но не обязательно. Можно для унификации для всех открываемых таблиц указывать один и тот же алиас. Примерно так

* Перед заменой обязательно явным образом обнулить источник данных Grid
ThisForm.Grid1.RecordSource = ""

* Закрываем таблицу с фиксированным алиасом
USE IN select(tabInGrid)

* Открываем нужную таблицу с фиксированным алиасом (или делаем выборку Select-SQL в курсор с тем же именем)
USE MyTable.dbf IN 0 AGAIN ALIAS tabInGrid

* Устанавливаем новые источник данных Grid
ThisForm.Grid1.RecordSource = "tabInGrid"

* При одинаковом алиасе и одинаковых именах столбцов не потребуется переопределять источники для столбцов Grid


Но в любом случае предварительный сброс RecordSource с последующим восстановлением делать будет необходимо. Иначе произойдет сброс настроек Grid. "Картинка" на форме испортится..


2. Если "картинка" для каждой таблицы своя, то в этом случае лучше делать 3 разных Grid, расположив их на разных закладках PageFrame. Тогда просто переключаясь на нужную закладку сразу увидишь разные данные и разные "картинки".

Можно сделать "лишние" закладки невидимыми, тогда для пользователя это будет выглядеть как вариант 1
23 июл 21, 11:01    [22350185]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр нескольких файлов в Form  [new]
ValeryIvanovich
Member

Откуда:
Сообщений: 54
ВладимирМ,
Большое спасибо за дельный совет!
2 авг 21, 07:43    [22353839]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить