|
Как записать valid в init формы
|
|||
---|---|---|---|
#18+
(VFP9, FormDesigner) Есть таблица (Т с полем П ), форма, созданный метод Ok (messagebox("Ok")) на ней грид и одна колонка, как бы в Grid.init, записать что-то типа this.column1.text1.valid=thisform.Ok, чтоб по выходу из колонки срабатывал этот метод... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 11:05 |
|
Как записать valid в init формы
|
|||
---|---|---|---|
#18+
q1w1e1, А как же по Grid перемещаться кнопками? Постоянно будет выскакивать твой месседж Valid требует RETURN .T. или .F. А вообще-то есть еще у Grid свойство AfterRowColChange ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 11:11 |
|
Как записать valid в init формы
|
|||
---|---|---|---|
#18+
Если кратко, то читайте справку по Grid.AftreRowColChange() или функции BindEvent(). В зависимости от того, что же вам надо на самом деле . Если подробно, то надо начать с того, какую задачу Вы хотите решить. Пока Вы описали лишь способ, которым Вы хотите воспользоваться. Не самый лучший по многим причинам. А сделать-то Вы что хотите? Зачем Вам это все надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 11:12 |
|
Как записать valid в init формы
|
|||
---|---|---|---|
#18+
Есть очень много столбцов, с одинаковой функцией проверки(суммирование умножение и т.д. по всем полям одной записи), конечно можно эту функцию(которая записана как метод в FormDesigner) прописывать в каждом столбике Text1, но хотелось бы чтоб не проставлять вручную этот метод в каждом столбике грида, а определять в цикле валид , каждого столбца, в инит грида ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 11:25 |
|
Как записать valid в init формы
|
|||
---|---|---|---|
#18+
q1w1e1Есть очень много столбцов, с одинаковой функцией проверки(суммирование умножение и т.д. по всем полям одной записи), конечно можно эту функцию(которая записана как метод в FormDesigner) прописывать в каждом столбике Text1, но хотелось бы чтоб не проставлять вручную этот метод в каждом столбике грида, а определять в цикле валид , каждого столбца, в инит грида А не проще SELECT с вычисляемым полем? И огород городить не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 11:31 |
|
Как записать valid в init формы
|
|||
---|---|---|---|
#18+
не, для меня не проще..:-), мне больше нравятся index, set order, set key, unique и т.д., машины древние, пока этот select прокрутит, а так обратится к индексному файлу ...вроде быстрей...:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 11:40 |
|
Как записать valid в init формы
|
|||
---|---|---|---|
#18+
да, и ещё они в каждом столбике проставляют количество часов, и в итоговом столбце должен получиться результат, так что Select всё равно не подходит...:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 11:42 |
|
Как записать valid в init формы
|
|||
---|---|---|---|
#18+
Если таблица включена в контейнер базы данных, то у нее можно прописать RULE уровня полей и уровня записи. Судя по описанию, указанному методу там самое место. И еще, как мне кажется, делать проверку для каждого поля - бессмысленно. Особенно, если результат зависит от значения нескольких полей. Проверку надо делать при попытке выхода из записи. Когда значения всех полей уже сформированы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 11:49 |
|
Как записать valid в init формы
|
|||
---|---|---|---|
#18+
q1w1e1да, и ещё они в каждом столбике проставляют количество часов, и в итоговом столбце должен получиться результат, так что Select всё равно не подходит...:-) В SELECT можно и SUM() использовать ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 11:49 |
|
Как записать valid в init формы
|
|||
---|---|---|---|
#18+
ВладимирМ, У меня нет контейнера базы данных, таблицы free, она в стоббец внесла количество часов, должен показаться итог, если не подходит стереть, поставить в другом столбце, либо другое количество... Как-то я пытаюсь обосновать, объяснить зачем мне это нужно...:-), но может просто скажете, как(если можно) ... а не для чего...:-), а то я уже склоняюсь к методу копи-паст, и заходить в каждый валид стобца и прописывать thisform.ok...:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 12:00 |
|
Как записать 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:10 |
|
Как записать valid в init формы
|
|||
---|---|---|---|
#18+
ВладимирМ, эээ... как это мы ухитряемся в постоянно втречаться на одной волне? :) %) привет Вам :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 14:12 |
|
Как записать valid в init формы
|
|||
---|---|---|---|
#18+
Спасибо за советы, наверное не стОит продолжать... просто несколько нюансов, в итоговом столбце, конечно сделан подсчёт(правда тоже через метод, т.к. строка длинная), почему нужна процедура... заполняя столбец по выходу, не только подсчитывается итог по всем столбцам в строке, но и по всем строкам данного объекта, после чего общий результат выводится в техтбокс внизу таблицы и курсор возращается на место... почему не хочется помещать эту процедуру в AftreRowColChange, потому что это таблица на форме не одна, их несколько, поэтому эту процедуру, по выходу из каждой колонки , как я думал, записать в метод и уже при инициализации грида, по условию какая таблица, какая колонка, присваивать валид или нет... поэтому и спросил просто, можно или нет..., в итоге пришёл к AftreRowColChange каждой таблицы... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 14:47 |
|
|
start [/forum/search_topic.php?author=P00567&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
7ms |
get forum list: |
12ms |
get settings: |
7ms |
get forum list: |
12ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 1565ms |
total: | 1765ms |
0 / 0 |