powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / расчеты в colomns Grid'а
10 сообщений из 10, страница 1 из 1
расчеты в colomns Grid'а
    #36216364
Mark_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!
Мои клиенты раньше работали в EXCEL. Поэтому все и вся паралеллят именно с этой программой. Так вот, у меня вопрос: как в colomns прописать какие-то расчеты. Иначе говоря, в EXCEL в ячейке можно прописать: =10+2-15-4 (именно константы!, не поля таблицы!). Как такой-же вариант прописать в колонках GRID'а? То есть, нужно вводить какую-то формулу в одной ячейке, и выходя из этой ячейке, получать результат вычисления, который затем будет помещаться в поле моей таблицы.
...
Рейтинг: 0 / 0
расчеты в colomns Grid'а
    #36216447
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО ищешь калькулятор. Создаешь класс грида, где по ЛКМ запускается калькулятор и после вычислений заносит значение в поле таблицы ака грид.
...
Рейтинг: 0 / 0
расчеты в colomns Grid'а
    #36216451
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поле с калькулятором, которое можна вставить в грид или кинуть на форму.
http://www.foxclub.ru/sol/solution318.php

Поле с калькулятором
http://www.foxclub.ru/sol/solution473.php

Как раз оно и есть, в решениях фоксклаба.
...
Рейтинг: 0 / 0
расчеты в colomns Grid'а
    #36218151
Mark_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GoshaS!!!! Спасибо за коды. Идея шикарная! Но... Клиенты не хотят выводить калькулятор, считать и т.д. Они хотят вводит числа в ячейке Grid'а, и затем выходя из ячейки прямо-таки жаждят получить уже готовых результат. Как в Excell'е. Уже парюсь с этой задачей неделю, но кроме всякой галиматьи ничего путного не получается. Можно, конечно, ячейку сделать текстовой, а потом разбить по вхождения +/-. Но такое решение тупое. МОжет подскажешь что-нибудь еще??? (И еще раз спасибо за калькулятор. Идею видел в Delphi, а в FoX'е - нет.)
...
Рейтинг: 0 / 0
расчеты в colomns Grid'а
    #36218246
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай два столбца: в одном формула, в другом - результат вычисления формулы. Или в одном столбце, но разные CurrentControl. В текущей строке формула, а во всех остальных - значение

Ведь в Excel тоже нет одновременного отображения и формулы, и результата. Либо одно, либо другое.
...
Рейтинг: 0 / 0
расчеты в colomns Grid'а
    #36218273
Mark_2,
а еще лучше не заниматься совершенно неблагодарным делом и объяснить юзерам, что привычка работать с электронными таблицами не означает необходимости переделки всех нужных им программ под электронные таблицы. Есть велосипед и есть автомобиль и у обоих есть колеса. каждый под свои задачи и не надо лепить из них гибрида, он все равно будет хуже людового из своих "родителей".
...
Рейтинг: 0 / 0
расчеты в colomns Grid'а
    #36218282
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark_2GoshaS!!!! Спасибо за коды. Идея шикарная! Но... Клиенты не хотят выводить калькулятор, считать и т.д. Они хотят вводит числа в ячейке Grid'а, и затем выходя из ячейки прямо-таки жаждят получить уже готовых результат. Как в Excell'е. Уже парюсь с этой задачей неделю, но кроме всякой галиматьи ничего путного не получается. Можно, конечно, ячейку сделать текстовой, а потом разбить по вхождения +/-. Но такое решение тупое. МОжет подскажешь что-нибудь еще??? (И еще раз спасибо за калькулятор. Идею видел в Delphi, а в FoX'е - нет.)
А если юзер вновь встает на ячейку, где до этого уже было что-то вычислено, и видит там результирующее число, а не введенную ранее формулу ? Надо и формулы где-то хранить. Вероятно, в отдельном текстовом поле таблицы. Тогда в GetFocus'e данного текстбокса меняем его ControlSource -
Код: plaintext
1.
this.ControlSource="mytable.formula"
Юзер пишет какое-нибудь "2+2+2" (конечно, без кавычек) и пытается покинуть ячейку любым приемлемым способом. Здесь пусть отработает Valid или LostFocus этого текстбокса -
Код: plaintext
1.
2.
x=this.value && формула запоминается в переменной
this.ControlSource="mytable.result"
replace result with &x in mytable && запись результат в таблицу
Вроде где-то так. Выйдя из ячейки, юзер увидит в ней уже результат, а если снова вернется в нее, то увидит формулу.
Только не забудьте вставить перед replace обработчик ошибок, а то ваш юзер в ячейку такого может понаписать, что...короче, невычисляемое выражение :) Для этого вполне подойдет ON ERROR или TRY...CATCH.
Идея простая, надо только отшлифовать, хотя это маразм - делать на фоксе электронную таблицу.
...
Рейтинг: 0 / 0
расчеты в colomns Grid'а
    #36218301
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И в догонку - перед сменой Textbox.ControlSource потребуется строчка вроде
Код: plaintext
1.
thisform.grid1.column1.bound=.f.
чтобы отвязать контрол от ControlSource колонки. При выходе из ячейки в ее методе Valid или LostFocus верните
Код: plaintext
1.
thisform.grid1.column1.bound=.t.
...
Рейтинг: 0 / 0
расчеты в colomns Grid'а
    #36218934
Mark_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, заработало!!!!!
...
Рейтинг: 0 / 0
расчеты в colomns Grid'а
    #36218959
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark_2,

Положим M$O и OO на лопатки!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / расчеты в colomns Grid'а
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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