On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение



Пост N: 17
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 03.06.11 23:27. Заголовок: All In One


В связи с написанием программы по разным частям кода возникают трудности. Чтобы не задавать вопросы в разных темах и не забыть в какой именно, буду спрашивать в этой. Я возможно этим нарушу правила форума, вопросы будут затрагивать разнообразные функции, но пусть оправданием мне будет то, что все они относятся к одной программе.

Вопрос №1
В get поле вводится какое то значение и если оно существует в справочнике, переходим в следующее get поле, если же не существует, то выдается предупреждение об этом. Сам оператор не имеет право добавлять это значение в справочник, но, убедившись в том, что он ввел без ошибок, имеет право оставить это значение в get поле и перейти в следующее. Чтобы случайно не проскочило ошибочно введенное значение, выход из get поля должен осуществляться по нестандартной клавише( т.е. K_ENTER, K_DOWN не подходят). Например подошло бы Ctrl+Enter

Реализовать самому не удалось

Вопрос № 2.
В dbedit отобразить базу так, чтобы видеть максимальное число последних записей и чтобы курсор находился на последней записи

use base new
go bottom
base->dbedit()
вижу только одну последнюю запись

use base new
go bottom
skip -17
base->dbedit()
вижу все последние записи, но курсор находится на первой видимой

use base new
go bottom
skip -17
skip 17
base->dbedit()
вижу только одну последнюю запись

Вопрос № 3.
В dbedit даты отображаются в формате "дд.мм.гг", причем гг первые две цифры из гггг.
Как отобразить в формате "дд.мм.гггг", не используя массив из picture для dbedit, чтобы не переделывать программу при изменении структуры базы.

Вопрос № 4.
в функции из valid изменяются значения других get переменных. Изменения становятся видимыми только тогда, когда курсор попадает в измененное соответствующее get поле, а хочется чтобы обновились сразу после выхода из поля, в котором они изменились. Обновляю так keyboard (replicate(chr(K_DOWN),17)+replicate(chr(K_UP),16))
Можно как то попроще?

Вопрос № 5
При входе в get ... read в чужой программе на фоксе все поля пустые. В своей программе get переменные инициализирую командой space(n). Но после выхода из read и сохранения значений в полях базы с типом numeric выдает ошибку несоответствия типа данных. Обхожу так
if !Empty()
replace namebase->namefield with val(alltrim(namegetfield))
endif
Как то попроще можно?

Вопрос № 6
Есть строка из символов, которых не должно быть в веденном значении в get поле. Существует ли какая то функция, возвращающая true или false в случае наличия символов из строки 1 в строке 2? Или только посимвольно проверять?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 105 , стр: 1 2 3 4 5 6 All [только новые]





Пост N: 74
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 29.01.13 01:29. Заголовок: Как в dbedit изменит..


Как в dbedit изменить размер колонок динамически?
Нижеприведенный фрагмент программы не изменят ширину колонок (на самом деле колонок много, есть что подтягивать из за пределов монитора)
apict дублировал и в процедуре - не помогает.
С функции f1 с возвратом return 2 - ширина неизменна

SET KEY K_F9 TO PictureSwich()
pictFlg:=.t.
pictSum:=13
apict:={replicate("9",pictSum)+".99"}
acol:={"Summa"}
aname:={"Сумма"}
dbedit(2,1,21,78,acol,"f1",apict,aname)
...
procedure PictureSwich()
if pictFlg
pictSum:=5
else
pictSum:=13
endif
pictFlg:=!pictFlg

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 29.01.13 05:51. Заголовок: Выход из Dbedit, переопределение колонок и заход снова



pictFlg:=.t.
pictSum:=13

private lexit:=.f.
private lwas_f9:=.f.
do while !lexit
if lwas_f9
lwas_f9:=.f.
if pictFlg
pictSum:=5
else
pictSum:=13
endif
pictFlg:=!pictFlg
endif

apict:={replicate("9",pictSum)+".99"}
acol:={"Summa"}
aname:={"Сумма"}
dbedit(2,1,21,78,acol,"f1",apict,aname)
if lexit; EXITl endif
enddo
....

Function f1(..)

do case
..
case lastkey()=K_F9
lexit:=.f.
lwas_f9 :=.t.
return 0 // exit from dbedit
..
case lastkey()=K_ESC
lexit:=.t.
return 0 // exit from dbedit
....






Спасибо: 0 
Цитата Ответить
постоянный участник




Пост N: 2597
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.01.13 12:38. Заголовок: SergeyKorotun пишет:..


SergeyKorotun пишет:

 цитата:
Вопрос № 6



Смиотри функцию AT()

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 75
Зарегистрирован: 30.05.11
ссылка на сообщение  Отправлено: 29.01.13 23:55. Заголовок: ReadExit(.f.) @1,1 s..


sum:=0
ReadExit(.f.)
@1,1 say 'Сумма' get sum picture("9999999999999.99")
read

Почему выходит с read после набора двух цифр после запятой?
Как разрешить выход только по Enter?

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 30.01.13 06:00. Заголовок: SET CONFIRM ON



conf:=SET(_SET_CONFIRM)
...
SET(_SET_CONFIRM,.t.)
read
...
SET(_SET_CONFIRM,conf)

SET CONFIRM определяет, требуется ли ввод подтверждения для окончания
ввода текущего GET. Если задано SET CONFIRM OFF, то после ввода
пользователем последнего символа текущего GET, курсор перемещается на
следующий GET, если он есть. Если следующего GET нет, выполнение
команды READ прекращается. Если задано SET CONFIRM ON, ввод данных в
переменную очередного GET должен завершаться нажатием клавиши выхода
(<Enter> или <Esc>).

Во всех случаях, если ввод в переменную текущего GET не был прерван
нажатием клавиши <Esc>, выполняется предложение RANGE или VALID. За
дополнительной информацией о команде GET следует обратиться к
описанию команды @...GET.


Спасибо: 0 
Цитата Ответить
Ответов - 105 , стр: 1 2 3 4 5 6 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 238
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет