Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
14.09.2011, 11:05
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
(VFP9, FormDesigner) Есть таблица (Т с полем П ), форма, созданный метод Ok (messagebox("Ok")) на ней грид и одна колонка, как бы в Grid.init, записать что-то типа this.column1.text1.valid=thisform.Ok, чтоб по выходу из колонки срабатывал этот метод... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 11:11
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
q1w1e1, А как же по Grid перемещаться кнопками? Постоянно будет выскакивать твой месседж Valid требует RETURN .T. или .F. А вообще-то есть еще у Grid свойство AfterRowColChange ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 11:12
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
Если кратко, то читайте справку по Grid.AftreRowColChange() или функции BindEvent(). В зависимости от того, что же вам надо на самом деле . Если подробно, то надо начать с того, какую задачу Вы хотите решить. Пока Вы описали лишь способ, которым Вы хотите воспользоваться. Не самый лучший по многим причинам. А сделать-то Вы что хотите? Зачем Вам это все надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 11:25
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
Есть очень много столбцов, с одинаковой функцией проверки(суммирование умножение и т.д. по всем полям одной записи), конечно можно эту функцию(которая записана как метод в FormDesigner) прописывать в каждом столбике Text1, но хотелось бы чтоб не проставлять вручную этот метод в каждом столбике грида, а определять в цикле валид , каждого столбца, в инит грида ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 11:31
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
q1w1e1Есть очень много столбцов, с одинаковой функцией проверки(суммирование умножение и т.д. по всем полям одной записи), конечно можно эту функцию(которая записана как метод в FormDesigner) прописывать в каждом столбике Text1, но хотелось бы чтоб не проставлять вручную этот метод в каждом столбике грида, а определять в цикле валид , каждого столбца, в инит грида А не проще SELECT с вычисляемым полем? И огород городить не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 11:40
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
не, для меня не проще..:-), мне больше нравятся index, set order, set key, unique и т.д., машины древние, пока этот select прокрутит, а так обратится к индексному файлу ...вроде быстрей...:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 11:42
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
да, и ещё они в каждом столбике проставляют количество часов, и в итоговом столбце должен получиться результат, так что Select всё равно не подходит...:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 11:49
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
Если таблица включена в контейнер базы данных, то у нее можно прописать RULE уровня полей и уровня записи. Судя по описанию, указанному методу там самое место. И еще, как мне кажется, делать проверку для каждого поля - бессмысленно. Особенно, если результат зависит от значения нескольких полей. Проверку надо делать при попытке выхода из записи. Когда значения всех полей уже сформированы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 11:49
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
q1w1e1да, и ещё они в каждом столбике проставляют количество часов, и в итоговом столбце должен получиться результат, так что Select всё равно не подходит...:-) В SELECT можно и SUM() использовать ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 12:00
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
ВладимирМ, У меня нет контейнера базы данных, таблицы free, она в стоббец внесла количество часов, должен показаться итог, если не подходит стереть, поставить в другом столбце, либо другое количество... Как-то я пытаюсь обосновать, объяснить зачем мне это нужно...:-), но может просто скажете, как(если можно) ... а не для чего...:-), а то я уже склоняюсь к методу копи-паст, и заходить в каждый валид стобца и прописывать thisform.ok...:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 14:10
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
q1w1e1да, и ещё они в каждом столбике проставляют количество часов, и в итоговом столбце должен получиться результат Для этого вообще никаких методов писать не надо. Достаточно сделать последний столбец вычисляемым полем. Например, указать Код: plaintext
Для более сложных случаев, уже в самом начале написали "как". Написать один общий код в событиях Grid.BeforRowColChange()/Grid.AftreRowColChange(). В методе Before запоминаешь значение при входе, в методе Aftre смотришь, что на выходе. Если изменились, делаешь перерасчет или просто добавляешь/вычитаешь разницу к итогу. Кроме перечисленных приемов можно еще создавать собственные классы, как для TextBox внутри Column, так и для собственно Column. Правда, вызывать из методов дочернего класса методы родительского класса - не очень хорошо. В VFP9 эти классы можно указать через свойство Grid.MemberClass ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 14:10
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
q1w1e1, (1) Повторю Владимира - AfterRowColChange() внутри проверяйте свойство RowColChange (2=смена столбца) (2) Если q1w1e1Есть очень много столбцов, с одинаковой функцией проверки(суммирование умножение и т.д. по всем полям одной записи) - то нужен ли тут художественный изврат? Ставьте в контролсурсе столбца саму формулу и все... ThisForm.grd1.column2.ControlSource = "tbl1.fld1*tbl1.fld2...." И в инит грида или всей формы добавьте чтоб у Вас несоответствующее условию (ну, типа результат меньше чего-то там или еще чего) выделялся динамически цветом али жирностью али еще как (см. доку по column.DynamicBackColor, да и вообще все column.Dynamic...) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 14:12
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
ВладимирМ, эээ... как это мы ухитряемся в постоянно втречаться на одной волне? :) %) привет Вам :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.09.2011, 14:47
|
|||
---|---|---|---|
Как записать valid в init формы |
|||
#18+
Спасибо за советы, наверное не стОит продолжать... просто несколько нюансов, в итоговом столбце, конечно сделан подсчёт(правда тоже через метод, т.к. строка длинная), почему нужна процедура... заполняя столбец по выходу, не только подсчитывается итог по всем столбцам в строке, но и по всем строкам данного объекта, после чего общий результат выводится в техтбокс внизу таблицы и курсор возращается на место... почему не хочется помещать эту процедуру в AftreRowColChange, потому что это таблица на форме не одна, их несколько, поэтому эту процедуру, по выходу из каждой колонки , как я думал, записать в метод и уже при инициализации грида, по условию какая таблица, какая колонка, присваивать валид или нет... поэтому и спросил просто, можно или нет..., в итоге пришёл к AftreRowColChange каждой таблицы... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&tablet=1&tid=1584145]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 296ms |
total: | 432ms |
0 / 0 |