powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / создание формы с grid програмным кодом
19 сообщений из 19, страница 1 из 1
создание формы с grid програмным кодом
    #39439635
Юлия121212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Д.день. Поставлена задача: Есть грид при клике по заголовку колонки нужно получить список уникальных значений этой колонки. А при клике по любому из этих уникальных вернуться в форму с выбором по этому выбранному значению. Все это должно быть сделано программным кодом. Пожалуйста помогите))
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39439728
Юлия121212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ребята 29 просмотров. неужели никто ничего посоветовать не может????
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39439737
Юлия121212ребята 29 просмотров. неужели никто ничего посоветовать не может????Можем. Рисуете грид, в методе Click() заголовка колонки прописываете вызов вашей процедуры, которая и делает нужные вам действия.
Достаточно?
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39439753
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть разница между "помогите" и "сделайте за меня".

В первом случае автор показывает что сделал и спрашивает как быть дальше. Тут вижу второй случай, но и с ним могут помочь, но надо озвучить сумму вознаграждения
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39439878
bif17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем понятна задача.
Вывод списка нужен для поиска, движения по базе данных или копирования
имеющейся в БД информации в другую запись и др. ?
Посмотрите мои варианты. Может быть какой-то подойдет.
Тогда вышлю формы.
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440148
Юлия121212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пожалуйста, подскажите как правильно прописать при ручном создании grida
grid1.column1.text1.click.
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440180
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юлия121212Пожалуйста, подскажите как правильно прописать при ручном создании grida
grid1.column1.text1.click.

Посмотрите сначала предложенные вам от bif17 решения, может быть сразу и подберете себе что-то подходящее.
Возможно, это лучшее, что вам смогут предложить.
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440187
Юлия121212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sg12, скачала там три фото. ничего понять не могу
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440195
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юлия121212sg12, скачала там три фото. ничего понять не могу

Он же предложил вам формы, надо быть внимательнее.
К тому же и задача вами сформулирована довольно туманно.
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440452
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юлия121212Д.день. Поставлена задача: Есть грид при клике по заголовку колонки нужно получить список уникальных значений этой колонки. А при клике по любому из этих уникальных вернуться в форму с выбором по этому выбранному значению. Все это должно быть сделано программным кодом. Пожалуйста помогите))

Осваиваете SQL-команду SELECT ..., у ней есть опция DISTINCT. Результат вам лучше вывести в таблицу, так вам понятней будет.
Открыть эту таблицу лучше ListBox-ом, где выбираете нужное значение и запоминаете его в свойстве формы.
Это значение используете для наложения фильтра на первую таблицу SET FILTER ..., результат увидите в Grid-е.
Не забудьте перед обновлением формы перейти на другую строку в таблице SKIP -1.
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440496
bif17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во втором варианте из основной формы вызывается дополнительная со списком нужного поля:
&&THISFORM.Command1.Click()
На появившейся форме делается выбор элемента,
&&cPER='' && ПЕРЕМЕННАЯ ДЛЯ ВОЗВРАТА
Далее он используется в нужных вам целях.
В примере просто для копирования в новую запись.

*************************
IF ALIAS()!='EST'
SELECT EST
ENDIF
*************************

SET INDEX TO
SET FILTER TO
INDEX ON UPPER(ALLTRIM(NAZV_OB)) TO NAZV_OB9 FOR !EMPTY(NAZV_OB).AND.N_BS_KZ=mN_BS_KZ UNIQUE COMPACT
SET INDEX TO NAZV_OB9

SET DELETED ON
LOCAL mSET_FILTER
mSET_FILTER=""
LOCAL mFILTER_VIBOR
mFILTER_VIBOR=""
LOCAL mOTDEL_L_PR,mKLASS_L_PR,mPORJAD_L_PR,mFAM_L_PR,mR_L_PR
STORE SPACE(0) TO mOTDEL_L_PR,mKLASS_L_PR,mPORJAD_L_PR,mFAM_L_PR,mR_L_PR
LOCAL nZAPISI
nZAPISI=RECNO()

mSET_FILTER=SET("Filter")
&&*************************

&&*************************
*!* mFILTER_VIBOR=mFILTER_VIBOR+IIF(EMPTY(m.OTDEL_L),'',".AND.UPPER(ALLTRIM(DIV))= UPPER(ALLTRIM(m.OTDEL_L))")
*!* mFILTER_VIBOR=mFILTER_VIBOR+IIF(EMPTY(m.KLASS_L),'',".AND.UPPER(ALLTRIM(CLASS))= UPPER(ALLTRIM(m.KLASS_L))")
*!* mFILTER_VIBOR=mFILTER_VIBOR+IIF(EMPTY(m.PORJAD_L),'',".AND.UPPER(ALLTRIM(ORDER))= UPPER(ALLTRIM(m.PORJAD_L))")
*!* mFILTER_VIBOR=mFILTER_VIBOR+IIF(EMPTY(m.FAM_L),'',".AND.UPPER(ALLTRIM(FAMILY))= UPPER(ALLTRIM(m.FAM_L))")

mFILTER_VIBOR=mFILTER_VIBOR+".AND.!EMPTY(NAZV_OB)"
mFILTER_VIBOR=SUBSTR(mFILTER_VIBOR,6)
&&*************************END - !EMPTY(NAZV_OB)

&&*************************
SET FILTER TO &mFILTER_VIBOR
GO TOP
&&****************************************************

&&****************************************************ПРОВЕРКА НАЛИЧИЯ ЗАПИСЕЙ
PUBLIC mALL
mALL=1
COUNT ALL TO mALL
IF mALL=0
MESSAGEBOX("НЕТ ИНФОРМАЦИИ. !",16,"Внимание !",3000)
RELEASE mALL
SELECT EST
SET INDEX TO
SET FILTER TO &mSET_FILTER
LOCATE FOR RECNO()=nZAPISI
RETURN
ENDIF
RELEASE mALL
GO TOP
&&****************************************************КОНЕЦ ПРОВЕРКИ

cPER='' && ПЕРЕМЕННАЯ ДЛЯ ВОЗВРАТА
cFIELDS_BD='' && ПЕРЕМЕННАЯ BD
STORE "NAZV_OB" TO cFIELDS_BD &&МЕНЯЮТСЯ ПОЛЯ БД
&&****************************************************

&&****************************************************КОЛЛЕКЦИЯ
oCol9=CREATEOBJECT("collection")
SCAN FOR !EMPTY(&cFIELDS_BD)
oCol9.ADD(ALLTRIM(&cFIELDS_BD))
ENDSCAN
&&****************************************************
LOCAL cPUTFORM
cPUTFORM=PUTFORMS+"FORM_LIST9.scx"

IF FILE(cPUTFORM)
&&****************************
THISFORM.ALWAYSONTOP=.F.
THISFORM.SETALL('ENABLED',.F.)
&&****************************
N8=-15
mNZ=IN
z6=1
zz7=1
&&****************************
DO FORM (JUSTPATH(cPUTFORM)+"\"+JUSTFNAME(cPUTFORM)) WITH ;
oCol9, cPER,"СПИСОК ЗЕЛЕНЫХ УСТРОЙСТВ", "RGB(198,198,158)", .T., "RGB(0,0,0)", "RGB(255,255,255)", .F., .F., 1
ENDIF

IF !EMPTY(cPER)
LOCATE FOR ALLTRIM(UPPER(NAZV_OB))=ALLTRIM(UPPER(cPER))
IF FOUND()
m.NAZV_OB=NAZV_OB
ELSE
MESSAGEBOX("НЕ НАЙДЕНО. ПОВТОРИТЕ ВЫБОР !",16,"Внимание !",3000)
SELECT EST
SET INDEX TO
SET FILTER TO &mSET_FILTER
LOCATE FOR RECNO()=nZAPISI
&&*******************
RETURN
ENDIF
SELECT EST
SET INDEX TO
SET FILTER TO &mSET_FILTER
LOCATE FOR RECNO()=nZAPISI
ELSE
SELECT EST
SET INDEX TO
SET FILTER TO &mSET_FILTER
LOCATE FOR RECNO()=nZAPISI
ENDIF

&&********************************************
THISFORM.REFRESH()
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440669
Юлия121212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня вот такой программный код, который я открываю при двойном клике по заголовку колонки грид. У меня в новую форму и новый грид идет отбор уникальных значений
PUBLIC m_tn, M_god_r
SELECT tn DISTINCT FROM table1 INTO CURSOR unik
m_tn=unik.tn

PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN

DEFINE CLASS form1 AS form
DataSession = 1
Desktop = .T.
ShowWindow = 0
DoCreate = .T.
AutoCenter = .T.
BorderStyle = 3

Caption = "Форма выбора"
WindowType = 0
WindowState = 0
Name = "FORM1"


ADD OBJECT grid1 AS grid WITH ;
ColumnCount = 1, ;
ColumnWidths = "200", ;
Left = 23, ;
Sorted = .T., ;
Style = 2, ;
Top = 20, ;
Width = 200, ;
Name = "grid1"

PROCEDURE grid1.Init
WITH This
.column1.header1.Caption='Выбор'
.column1.width=200

ENDWITH
ENDPROC
ENDDEFINE


SELECT
ADD OBJECT txt as grid1.column1.text1 with
column1.text1=m_tn
m_tn=table1.tn

PROCEDURE txt.Click
ThisForm.release
ENDPROC

ENDPROC

Т.е. есть колонка со значениями 1,2,2,3,3,3,4 она в новый грид передает уникальные 1,2,3,4. Теперь по клику по любому уникальному (например 2) мне нужно вернуться в первый грид где получить все эти значения (т.е. 2,2)

Вот этот обратный переход у меня и не получается
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440671
Юлия121212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
там после ENDDEFINE не нужный пока код
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440694
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440725
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юлия121212

Во второй форме для выбора значений лучше использовать ListBox, а не Grid.
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440754
Юлия121212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как же сделать обратный переход. Не могу понять как написать клик к ListBoxsg12,
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440757
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юлия121212Как же сделать обратный переход. Не могу понять как написать клик к ListBoxsg12,

Форма должна быть модальной.

Если форма - это файл SCX, то свойство WindowType = 1. В этом случае то, что вернет return в методе Unload этой формы можно будет прочитать. Только здесь следует учитывать тот факт, что на момент выполнения метода Unload объектов формы уже не существует. Есть только сама форма и ее свойства

Если запуск через CreateObject() или NewObject(), то вызов метода Show() с параметром 1. В этом случае чтение возвращенных параметров выполняется особым образом. Как именно, смотри по приведенной выше ссылке
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39440785
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юлия121212Как же сделать обратный переход. Не могу понять как написать клик к ListBoxsg12,

В объектах кроме Click есть и другие методы. Попробуйте в InteractiveChange запомнить выбранное значение в свойстве формы, откуда его и вернете через UNLOAD.
...
Рейтинг: 0 / 0
создание формы с grid програмным кодом
    #39441230
bif17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для множественного выбора я использую другую форму.
В том случае, когда поле БД имеет несколько значений.
Но возвращаемую переменную тоже можно по-разному обработать.
Всего скорее у меня несколько отличные от ваших задачи программы.
Решений всегда бывает несколько.
Самое главное, чтобы безотказно работало.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / создание формы с grid програмным кодом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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