Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Обсуждение написание модуля на харборе УРОК2
Goto page Previous  1, 2, 3, 4  Next
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
GVA



Joined: 16 Oct 2003
Posts: 99
Location: Gaponenko
Occupation: HDM
Interests: Москва

PostPosted: 23 Sep 2005 01:10    Post subject: Проверки при записи Reply with quote

Проиндексировал по номеру документа. Как проверить при формировании новой записи на уникальность по этому ключу?
Как вообще контролировать (задавать значения) поля ввода соответственно при инициализации формы и перед записью?
Back to top
View user's profile Send private message
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 23 Sep 2005 08:32    Post subject: Reply with quote

А если я хочу не просто вводить новую строчку, а прицепить по Ctrl+F7 какую-то свою оригинальную функцию, это можно сделать? И как сделать подсказку для пользователя, загорающуюся при нажатии Ctrl?
Back to top
View user's profile Send private message
Лариса Т.



Joined: 05 Jul 2004
Posts: 247
Location: Тюрикова Л.А.
Occupation: программист
Interests: Ижевск

PostPosted: 23 Sep 2005 09:34    Post subject: Reply with quote

А вот теперь не работает.
При вводе/корректировке цена и количество вводятся, а на сумму - красное окошко "Ошибка выполнения work.hrb Неверный аргумен
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 23 Sep 2005 09:43    Post subject: Reply with quote

shura_k wrote:
А как задать формат для Summa, а то после перемножения, очень много 0 вылазит?


Добавим aPic:={,,,,,"999999999.99"}
И добавляем

initlist(nTop,nBot,cColHead,aBlockCols,cCurProc,;
_aHeads,,aPic,aWhen,,;
,bDel,,,,)
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 23 Sep 2005 09:47    Post subject: Re: Проверки при записи Reply with quote

GVA wrote:
Проиндексировал по номеру документа. Как проверить при формировании новой записи на уникальность по этому ключу?
Как вообще контролировать (задавать значения) поля ввода соответственно при инициализации формы и перед записью?


Для решения вопроса уникальности по индексу служит переменная
nUniMode
Добавляем

nUniMode=2 и теперь пишем

initlist(nTop,nBot,cColHead,aBlockCols,cCurProc,;
_aHeads,,aPic,aWhen,,;
nUniMode,bDel,,,,)

Насчет контроля тут много всяких решений - буду благодарен если Вы еще раз вернете к этому вопросу а на сейчас скажу так
Перед инициализацией конкретного поля проверка на разрешение ввода в него и инициализация через массив aWhen на выход из поля с сохранением введенного значения в переменной памяти aValid
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 23 Sep 2005 09:53    Post subject: Reply with quote

Марина wrote:
А если я хочу не просто вводить новую строчку, а прицепить по Ctrl+F7 какую-то свою оригинальную функцию, это можно сделать? И как сделать подсказку для пользователя, загорающуюся при нажатии Ctrl?


Для этого есть переменная отвечающая за привязывание горячих клавиш, а также перед вызовом Инитлиста Вы можете объявить горячие клавиши простым SETKEY()

Я не хочу нарушать последовательность обучения InitList поэтому сейчас подробно на этом не останавливаюсь в данный момент. Если других предложений не будет рассмотрим подробно в УРОКЕ 3 иначе чуть позже но обязательно.
Сейчас хотелось бы подробно рассмотреть все нюансы ввода-корректировки
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 23 Sep 2005 09:57    Post subject: Reply with quote

Лариса Т. wrote:
А вот теперь не работает.
При вводе/корректировке цена и количество вводятся, а на сумму - красное окошко "Ошибка выполнения work.hrb Неверный аргумент."


Аааааа, Семен Семеныч !!!!!

Поправьте пожалуйста
aWhen:={,,,,,{||aIn[6]:=aIn[4]*aIn[5],.T.}}

ПРАВИЛО !!!
В каждом элементе aWhen и aValid последний параметр должен возвращать логическое значение можно или нельзя (.T./.F.)
Back to top
View user's profile Send private message Send e-mail
Сергей В. Чурбанов



Joined: 27 Jun 2003
Posts: 35
Location: Чурбанов Сергей Вячеславович
Occupation: ООО "Интеллект-сервис-НСК"
Interests: Новосибирск

PostPosted: 23 Sep 2005 13:29    Post subject: Reply with quote

Добрый день!
У меня не работают кнопки добавления и редактирования записей. Что делать?
Вопрос кадый раз когда добавляем переменную новый initlist или он вообще один?
у меня получилось что такое:
Function Main()
Local aSet,aSetKey,nTop,nBot,cColHead,aBlockCols,cCurproc,bDel,_aHeads,aWhen,aPic
aSet:=SaveSet()
aSetKey:=SaveSetKey()
bDel:={||.F.}

NETUSE("WORK",LoadPath()+"real\work.dbf",,.F.)

DISPBOX(2,0,23,79,( Chr( 201 ) + Chr( 205 ) + Chr( 187 ) + Chr( 186 ) + Chr( 188 ) + Chr( 205 ) + Chr( 200 ) + Chr( 186 )+' ' ),"W+/B")
nTop:=3
nBot:=22
cColHead:={" äáΓá 쫼Ñα ìῼѡ«óá¡¿Ñ è«½-ó« ûÑ¡á æπ¼¼á "}
cCurProc:={||"2"}
aBlockCols:={{{||field->tek_data},0},{{||field->tek_nomer},9},{{||LEFT(field->name,16)},16},{{||STR(field->kol,5)},33},{{||STR(field->cena,12,2)},39},{{||STR(field->summa,12,2)},52}}
work->(initlist(nTop,nBot,cColHead,aBlockCols,cCurProc,;
,,,,,;
,,,,,) )

_aHeads:={{"éóÑñ¿ΓÑ ñáΓπ αáí«Γ.................:","TEK_DATA"}, ;
{"éóÑñ¿ΓÑ ¡«¼Ñα ñ«¬π¼Ñ¡Γá............:","TEK_NOMER"}, ;
{"éóÑñ¿ΓÑ ¡á¿¼Ñ¡«óá¡¿Ñ αáí«Γ.........:","NAME"}, ;
{"諽¿τÑßΓó«.........................:","KOL","1","1","0"}, ;
{"ûÑ¡á...............................:","æENA","1","1","0"}, ;
{"æπ¼¼á (απí.).......................:","SUMMA"}}
work->(initlist(nTop,nBot,cColHead,aBlockCols,cCurProc,;
,,,,,;
,bDel,,,,) )

aWhen:={,,,,,{||aIn[6]:=aIn[4]*aIn[5]}}
work->(initlist(nTop,nBot,cColHead,aBlockCols,cCurProc,;
_aHeads,,,,,;
,bDel,,,,) )
WORK->( DBCLOSEAREA() )
aPic:={,,,,,"999999999.99"}
initlist(nTop,nBot,cColHead,aBlockCols,cCurProc,;
_aHeads,,aPic,aWhen,,;
,bDel,,,,)
RestSetKey(aSetKey)
RestSet(aSet)

RETURN NIL

Помогите найти ошибк
Back to top
View user's profile Send private message
shura_k



Joined: 10 Oct 2003
Posts: 342
Location: Александр
Occupation: Специалист
Interests: Калининград

PostPosted: 23 Sep 2005 13:37    Post subject: Reply with quote

InitList в даном примере только один должен быть!
Back to top
View user's profile Send private message
shura_k



Joined: 10 Oct 2003
Posts: 342
Location: Александр
Occupation: Специалист
Interests: Калининград

PostPosted: 23 Sep 2005 13:39    Post subject: Reply with quote

Что-то в таком роде. Пока все моменты работают

Function Main()

Local aSet,aSetKey,nTop,nBot,cColHead,aBlockCols,cCurproc,aHeads,bDel,aWhen,aPic,nUniMode
aSet:=SaveSet()
aSetKey:=SaveSetKey()

NETUSE("WORK",LoadPath()+"\real\work.dbf",,.F.)

DISPBOX(2,0,23,79,( Chr( 201 ) + Chr( 205 ) + Chr( 187 ) + Chr( 186 ) + Chr( 188 ) + Chr( 205 ) + Chr( 200 ) + Chr( 186 )+' ' ),"W+/B")
nTop:=3
nBot:=22
cColHead:={" Дата Номер НАИМЕНОВАНИЕ Кол-во Цена Сумма "}
cCurProc:={||"2"}
aBlockCols:={{{||field->tek_data},0},{{||field->tek_nomer},9},{{||LEFT(field->name,25)},16},;
{{||STR(field->kol,6)},44},{{||STR(field->cena,9,2)},51},{{||STR(field->summa,12,2)},61}}
aHeads:={{"Введите дату работ.................:","TEK_DATA"},;
{"Введите номер документа............:","TEK_NOMER"},;
{"Наименование работ.................:","NAME"},;
{"Количество.........................:","KOL","1","1","0"},;
{"Цена...............................:","CENA","1","1","0"},;
{"Сумма (руб.).......................:","SUMMA"}}
bDel:={||.T.}
nUniMode:=2
aWhen:={,,,,,{||aIn[6]:=aIn[4]*aIn[5],.T.}}
aPic:={,,,,,"999999999.99"}


WORK->( INITLIST(nTop,nBot,cColHead,aBlockCols,cCurProc,;
aHeads,,aPic,aWhen,,;
nUniMode,bDel,,,,))
WORK->( DBCLOSEAREA() )

RestSetKey(aSetKey)
RestSet(aSet)

RETURN NIL
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 23 Sep 2005 14:29    Post subject: Reply with quote

Сергей В. Чурбанов wrote:

WORK->( DBCLOSEAREA() )
initlist(nTop,nBot,cColHead,aBlockCols,cCurProc,;

Помогите найти ошибку.


Вы закрыли рабочую область WORK к которой хотите отражение на ээкране а потом InitList - это первое, надо наоборот
Рекомендую указывать стрелочкой -> применение к какой области стартуете InitList - это второе (смотрите первый урок на форуме)
Back to top
View user's profile Send private message Send e-mail
Олег Смирнов



Joined: 06 Sep 2004
Posts: 821
Location: Олег Смирнов
Occupation: Раут (поганист-сисадмин)
Interests: Новосибирск

PostPosted: 23 Sep 2005 16:51    Post subject: К вопросу о регламенте!.. Reply with quote

Уважаемые граждАне!..
Не_будет_ли_с_моей_стороны_слишком_большой_наглостью_попросить_всех_участников_не_писать_в_этой_ветке_сильно_ужасно_очень_длинные_строки_ну_абсолютно_без_всяких_пробелов?
Я уж не знаю, как это безобразие обрабатывает IE, но забодался уже в Mozill-е использовать горизонтальный скролинг... То-есть, натурально, я вполне понимаю, что кому-то из программистов эти длинные строки - бальзам на душу, но ведь компилятор-то понимает длинные команды, размазанные по нескольким строчкам. А человеку всяко читать удобнее строки ограниченной длины...
Please!
_________________
С уважением, Олег Р. Смирн
Back to top
View user's profile Send private message
GVA



Joined: 16 Oct 2003
Posts: 99
Location: Gaponenko
Occupation: HDM
Interests: Москва

PostPosted: 24 Sep 2005 01:09    Post subject: Добавляем или правим? Reply with quote

Как узнать в каком режиме -Добавление или Правка мы находимся?
И по Enter и по F4 форма ввода одинаковая и заполняется данными из текущей записи.
Но при добавлении записи хочется к примеру обнулить все поля, а ключевое сформировать, например, как очередное.


Last edited by GVA on 24 Sep 2005 01:16; edited 1 time in total
Back to top
View user's profile Send private message
GVA



Joined: 16 Oct 2003
Posts: 99
Location: Gaponenko
Occupation: HDM
Interests: Москва

PostPosted: 24 Sep 2005 01:14    Post subject: Форма по F6 Reply with quote

При задании фильтра по F6 открывается форма подобная входной, но у меня не очень красиво - первая колонка с псевдографикой "наползает" но основную рамку и левый край рамки не прорисовывается.
Back to top
View user's profile Send private message
GVA



Joined: 16 Oct 2003
Posts: 99
Location: Gaponenko
Occupation: HDM
Interests: Москва

PostPosted: 24 Sep 2005 01:33    Post subject: Используем F2? Reply with quote

Заполняем поле из подчиненного справочника по F2. Как реализовать? Или это уже тема четвертого урок
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4  Next
Page 2 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru