powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / отправить печать "записи" который находится в гриде
24 сообщений из 24, страница 1 из 1
отправить печать "записи" который находится в гриде
    #36288535
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Над форма есть несколько кнопка и 1 грид. Каждая кнопка делает фильтрации по отдельным поле из таблицу и результат показывается в гриде. Есть еще одна кнопка кoторый должен отправить в печать уже фильтирированные записи из грида.
Таблица и название полей один и тот же, но разные фильтры. Другими словами, все время надо отправить печать "записи" который находится в гриде. Можно ли делать такое?
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36288537
Andres N.Над форма есть несколько кнопка и 1 грид. Каждая кнопка делает фильтрации по отдельным поле из таблицу и результат показывается в гриде. Есть еще одна кнопка кoторый должен отправить в печать уже фильтирированные записи из грида.
Таблица и название полей один и тот же, но разные фильтры. Другими словами, все время надо отправить печать "записи" который находится в гриде. Можно ли делать такое?Можно. Что показываешь в гриде, то и посылай на печать.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36288551
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий.Можно. Что показываешь в гриде, то и посылай на печать.

Я это и спращиваю. Kак?
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36288564
Andres N.проходящий.Можно. Что показываешь в гриде, то и посылай на печать.

Я это и спращиваю. Kак?Что как? Отправить на печать? Любым удобным способом. List to print, report form и т.д.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36288580
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий.Что как? Отправить на печать? Любым удобным способом. List to print, report form и т.д.

Для этого я создал репорт. Но, я думаю проблема в том что, в каждом кнопке разные фильтры и каждый раз записи меняется. Но, в печать должен итди в одном кнопке.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36288607
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так на печать должны выходить все записи, или только те которые видно из-под наложенного фильтра?
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36288634
Andres N.проходящий.Что как? Отправить на печать? Любым удобным способом. List to print, report form и т.д.

Для этого я создал репорт. Но, я думаю проблема в том что, в каждом кнопке разные фильтры и каждый раз записи меняется. Но, в печать должен итди в одном кнопке.И что это меняет? Или Ваш отчет не реагирует на фильтры и печатает все подряд? Так это отчет надо править. Поставить ему дефолтнуюю сессию, чтобы он не пыталься что-то сам открывать и видел только то, что ему дают.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36288642
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DagТак на печать должны выходить все записи, или только те которые видно из-под наложенного фильтра?
Tолько те которые видно из-под наложенного фильтра.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36288659
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий. Или Ваш отчет не реагирует на фильтры и печатает все подряд?

Именна так.

проходящий.Так это отчет надо править. Поставить ему дефолтнуюю сессию, чтобы он не пыталься что-то сам открывать и видел только то, что ему дают.

Как это? Вы можете обяснить?
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36288679
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открыть отчет и заглянуть в меню Report.
Снять галку с опции Private data Session
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36288682
Andres N.проходящий. Или Ваш отчет не реагирует на фильтры и печатает все подряд?

Именна так.

проходящий.Так это отчет надо править. Поставить ему дефолтнуюю сессию, чтобы он не пыталься что-то сам открывать и видел только то, что ему дают.

Как это? Вы можете обяснить?Report->Options->Data Environment-галочка Report uses a private data session должна отсутствовать. Не должно быть и галочки у пункта меню Report->Private DataSession.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36288727
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, сейчас буду проверить.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36297403
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andres N.,

В гриде показываются отфильтрованные записи.
Понятие фильтра можно понимать двояко:
1) SET FILTER && фильтруем таблицу и показываем в гриде. Очень медленно и неудобно
2) SELECT SQL && отбираем нужные записи в курсор через WHERE и показываем курсор в гриде.

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

SELECT GRIDCURSOR && это тот курсор, который показан в гриде
REPORT FORM.... TO PRINTER PROMPT PREW NOCONSOLE и прочее

Я рекомендую использовать второй подход

Однако если это невозможно, и использован оператор SET FILTER, то на печать нужно выводить отфильтрованную таблицу, показанную в гриде.
Если учесть, что мы печатаем содержимое грида, то есть печатаем отфильтрованную таблицу,
то это выглядит примерно так:

SELECT YOURTABLE && фильтр-то уже поставлен, ведь все в гриде уже видно, и таблица будет под фильтром до тех пор, пока его не снять специально

REPORT FORM.... TO PRINTER PROMPT PREW NOCONSOLE и прочее

Теперь относительно сессии. Чтобы никто другой случайно не снял фильтр, нужно ФОРМЕ присвоить свойство datasession = 2 (private). Тогда каждый юзер работает с таблицей так, как будто это его собственность. И если на свою копию таблицы он наложит фильтр, то никто другой его и не снимет.

Про сессии данных Вам нужно прочитать дополнительно.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36298266
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Spasibo.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36298411
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Над форма есть несколько combobox, textbox checkbox. Надо делать фильтрации по их значение и результат показывать в грид.
В отдельности для каждого combobox и textbox или checkbox фильтрация делаю (В этом помогли мне в форум). Но, как-то надо эти фильтрации обяденить.
Когда форма открывается фильтрация идеть по T1 и T2 (text5 и text6) и все остальные контролы пусто бывает. Но, если там (например, cmbo1, combo2, checkbox-ax или в text5 и text6 ) что-то менять надо чтобы фильтрация по всем этим параметрам пашло.
Т. е., грид должен соответствовать значениям находяющих наверху его контролах.

Знаю что в этих кодах очень много ошибок. Я только учус, поэтому не ругайте сильно и обясните мне как это делать.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36298413
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему-то отдельный топик не получился.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36298640
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andres N.Над форма есть несколько combobox, textbox checkbox. Надо делать фильтрации по их значение и результат показывать в грид.
В отдельности для каждого combobox и textbox или checkbox фильтрация делаю (В этом помогли мне в форум). Но, как-то надо эти фильтрации обяденить.
Когда форма открывается фильтрация идеть по T1 и T2 (text5 и text6) и все остальные контролы пусто бывает. Но, если там (например, cmbo1, combo2, checkbox-ax или в text5 и text6 ) что-то менять надо чтобы фильтрация по всем этим параметрам пашло.
Т. е., грид должен соответствовать значениям находяющих наверху его контролах.

Знаю что в этих кодах очень много ошибок. Я только учус, поэтому не ругайте сильно и обясните мне как это делать.

Чтобы создать отдельный топик, нужно нажать кнопку "новый" справа сверху (желтого цвета)

С фильтрацией посложнее.

Допустим, что фильтруем поле FIELD1 по значению Т1, поле FIELD2 по комбобоксу CMBO1 (остальное добавите по усмотрению).
Тогда в методе INTERACTIVECHANGE как в T1, так и в комбо, пишем _примерно_ так:

************************
FILTER1 = 'FIELD1 = THISFORM.T1.VALUE AND FIELD2 = THISFORM.CMBO1.VALUE'
SELECT YOURTABLE && это фильтруемая таблица
SET FILTER TO &FILTER1
GO TOP && обязательно сдвинуть маркер, чтобы фильтр установить
THISFORM.GRID1.REFRESH
*********************
Надеюсь, мысль понятна.
Смотрите также SET KEY - для Грида это лучше

А вообще хорошо бы книжек почитать.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36298667
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igorbikв методе INTERACTIVECHANGE как в T1, так и в комбо
Вношу ясность (поспешил):
Для текстбоксов (Т1) приведенный код нужно написать в LOSTFOCUS
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36298768
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
igorbik
Чтобы создать отдельный топик, нужно нажать кнопку "новый" справа сверху (желтого цвета)
С фильтрацией посложнее.

Это я по случайности. Спасибо, Igorbik.

igorbik
С фильтрацией посложнее.


Igorbik, я фильтрация делал для каждого групп (1 групп) Combo1, Combo2. 2 групп) text5 text6, 3 групп) Checkbox-ы) контролях по отдельности. Сейчас, как-то надо эти фильтрации обяденить.

Допустим,

Код: plaintext
field (qebul_ed)=>thisform.text5.value and field (qebul_ed)<=thisform.text6.value

Это фильтрация работает. Сейчас надо чтобы если в "М" (COMBO1) что-то добавить среды фильтрированных записей еще раз фильтрация пашло:

Код: plaintext
qebul_ed=>thisform.text5.value and qebul_ed<=thisform.text6.value and mushteri_k=thisform.combo1.value


Патом если пользувател еще из "K" (COMBO2) что-то выбрал, тогда должен работать такая фильтрация:

Код: plaintext
qebul_ed=>thisform.text5.value and qebul_ed<=thisform.text6.value and mushteri_k=thisform.combo1.value and kuryer_k=thisform.combo2.value 


Если из checbox-axчто-то выбрать и это должен добавлятся в фильтрацию.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36300037
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andres N.,

Тот же код перезаписать типа так:
(можно через IIF..., но можно подлиннее и попонятнее)

********************************
FILTER1 = ' qebul_ed => thisform.text5.value and qebul_ed <= thisform.text6.value '

IF NOT EMPTY(THISFORM.COMBO1.VALUE)
FILTER1 = FILTER1 + ' and mushteri_k=thisform.combo1.value '
ENDIF

IF NOT EMPTY(THISFORM.COMBO2.VALUE)
FILTER1 = FILTER1 + ' and kuryer_k=thisform.combo2.value '
ENDIF

IF THISFORM.CHECK1.VALUE = 1
FILTER1 = FILTER1 + ' and ЕЩЕ КАКОЙ-ТО ФИЛЬТР '
ENDIF
*и так далее
******************************************
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36300238
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Spasibo, Igorbik, seycas poprobuyu.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36300501
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andres N.,

Не забудьте же этот фильтр поставить, например, как писал выше:

select yourtable
set filter to &filter1
go top && или сдвинуть маркер другими способами
thisform.grid1.refresh
* и так далее

Читайте книги по Фоксу - там все это тоже есть, может не все вместе, но там есть куда более важные вещи!
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36300781
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Igorbik, все нормально получился.
Но, возник еще 1 вопрос. Помогите пожалуйста и в этом.
Если в грид на записах делать DBclick открывается новая форма. Мне надо когда из этого новооткрывающих форма вернутся обратно на 1-й форму (baxish.scx) там все (записи на контролях, фильтрации и т.д.) оставить как было.
...
Рейтинг: 0 / 0
отправить печать "записи" который находится в гриде
    #36300874
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andres N.,

Для этого перед открытием новой формы нужно запомнить имя активной таблицы и положение маркера (номер записи) в ней

savealias = alias()
saverec = recno()

После возврата в исходную форму вернуть все на место:

select (savealias)
go saverec
thisform.refresh()
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / отправить печать "записи" который находится в гриде
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]