BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 3 4 След.
RSS
Из забытого прошлого
 
Хочу написать плагин для БЭСТ4 из темы старого форума Урок 1.

Я компилирую через Пуск - Выполнить -CMD

Первую часть урока прошел.
FUNCTION Main()
SAYANDWAIT("OK")
RETURN NIL


А вот когда началось посложнее почему то не работает:
LOCAL aSet,aSetKey,nTop,nBot,cColHead,aBlockCols,cCurproc

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,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) )
WORK->( DBCLOSEAREA() )
RESTSETKEY(aSetKey)
RESTSET(aSet)
RETURN NIL

Код компилируется, но почему то не работает
Выдает ошибку, что файл ДБФ не создан, ошибка выполнения Алиас не существует
 
А почему компиляция через строку а не из БЭСТа?
С уважением,
Ильин Евгений
 
Так как то уже привычно, прописал путь к Харбару к файлу прг, а потом скомпилированный файл бросаешь в про.
Если нужно что то изменить, редактируешь в прг, если компилятор не закрыл, стрелку в право и пути сами появляются, затем только нужно файл в про обновить.
Так кажется проще.
 
Это конечно на любителя.
Но все же попробуй через среду программирования, из реестра спецфункций по ф11.
Потом с отладкой пройти и посмотреть что к чему.
Что касается дбфки - а она создана?
С уважением,
Ильин Евгений
 
А как она создается, я думал что командой.
NETUSE("WORK",LOADPATH()+"\real\work.dbf",,.F.)
 
Цитата
Дмитрий Хващевский пишет:
А как она создается, я думал что командой.NETUSE("WORK",LOADPATH()+"\real\work.dbf",,.F.)


Это открытие файла. Создание файла DbCreate()
 
Но такого оператора нет в уроке.
Изменено: Дмитрий Хващевский - 21.05.2010 10:51:26
 
Цитата
Дмитрий Хващевский пишет:
Но такого оператора нет в уроке.


Значит там файл вручную создавали. Зачем вам каждый раз создавать файл? В нем постоянные данные будут храниться или вы его будете использовать как временный файл (на один сеанс работы)?
 
Постоянный.
В уроке было еще вот что
@echo off

SET HB_INSTALL=D:\B4_PL1103
SET HOUT=%HB_INSTALL%\PRO\PLUGINS\EXTENSNS\REAL\
SET HFLAGS= -n -a -w -gh -l

если с отладчиком - то надо
SET HFLAGS= -n -a -w -gh -b

%HB_INSTALL%\bin\harbour %HFLAGS% work.prg -o%HOUT%

Только не сказано для чего и зачем.
Изменено: Дмитрий Хващевский - 21.05.2010 11:11:04
 
Цитата
Дмитрий Хващевский пишет:
В уроке было еще вот что


Создаете бат файл с таким содержанием. При запуске этого файла происходит компиляция файла work.prg в нужное место (в каталог %HOUT%).
 
Компиляция из бат файла использовалась раньше, пока в 12 версии не сделали среду программирования.
Файл dbf создать можно через BRO.
Работа не в среде программирования, оправдана лишь в случаях наличия опыта, понимания того что делается, и для облегчения редактирования текста в редакторах с раскраской синтаксиса (через FAR manager).
Но все равно привязка, отладка идет через среду программирования, так что лучше использовать штатный режим компиляции плагинов.
С уважением,
Ильин Евгений
 
Понятно. Можно компилировать несколькими способами.
Все получилось. Файл создал вручную через Фокс Бро.
 
урок 2

После ввода переменной
_aHeads:={{"Введите дату работ.................:","TEK_DATA"}, ;
{"Введите номер документа............:","TEK_NOMER"}, ;
{"Наименование работ.................:","NAME"}, ;
{"Количество.........................:","KOL",,,"0"}, ;
{"Цена X :","СENA",,,"0"}, ;
{"Сумма (руб.).......................:","SUMMA"}}

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

Файл скомпилировался, но при запуске выдает Ошибка выполнения work.hrb. Неверный аргумент.
Что может быть?? Все символы перенабрал. Все английские
 
Все получилось добавил
переменные в строке локал, только странно ранее добавлял только bDel:={||.F.}, и в строку локал ничего не вносил и все работало.

Только странно после должен был заработать ввод, корректировка и суммирование.
Ошибок нет, но ничего нового.
Вот только такая картинка
Изменено: Дмитрий Хващевский - 21.05.2010 15:56:21
 
Все как и должно быть по указанному инитлисту.
Ввод, редактирование, удаление, суммирование и т.д. - это уже с отдельными параметрами.
С уважением,
Ильин Евгений
 
Все заработало.
Только не знаю в чем причина.
Менял строки в прг
 
Урок 3.Более успешно
Но Вопрос, немного отклонился от урока.
Хочу на экране вывести заказчика

код
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,9,2)},39}, ;
{{||STR(FIELD->summa,9,2)},49}, ;
{{||STR(FIELD->name_p,4)},59}}
Где-то есть ошибка, вообще как работает aBlockCols
 
Цитата
Дмитрий Хващевский пишет:
Урок 3.Более успешно

Но Вопрос, немного отклонился от урока.

Хочу на экране вывести заказчика



код

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,9,2)},39}, ;

{{||STR(FIELD->summa,9,2)},49}, ;

{{||STR(FIELD->name_p,4)},59}}

Где-то есть ошибка, вообще как работает aBlockCols


Функция STR() - преобразует число в строку, в случае символьного поля (name_p) она не нужна, поэтому последняя строка может быть такая:
{{||FIELD->name_p},59}} или если не полностью (например вывести только 15 симворов
{{||LEFT(FIELD->name_p,15)},59}}
 
Большое спасибо
 
Еще один маленький Вопрос.\
Нужно что бы в таблицу БД попадал не только наименование заказчика, но и код по справочнику партнеров.
1 вариант. Что бы он на экран не попадал, но записался в базу
2 вариант. Что бы выбирая партнера, выводился на экран код + наименование

Не вижу в коде связь, почему в поле базы Name_p попадает наименование заказчика
Изменено: Дмитрий Хващевский - 21.05.2010 18:48:58
 
Очень нужна помощь!!!!!!!!
 
Рекомендую скачать инструментарий разработчика, там есть примеры.
Чтобы помочь, надо больше информации получить по задаче.
Для начала следует получше разобраться в инитлисте, а там все пойдет как по маслу.
С уважением,
Ильин Евгений
 
Покажите как Вы пишете код для ввода/корректировки.
Так будет проще ответить
 
Хе, так сразу и не напишешь,
задачи то всегда разные.
Для вывода в таблице используем aBlockCols
Для формы ввода aHeads, для дополнительных вычисляемых значений и сцепляемых из других баз - функции запускаемые в обработчиках.
посмотрите файлы из примера sample инструментария.
С уважением,
Ильин Евгений
 
Цитата
itman пишет:
Для формы ввода aHeads,

Дак Женя если по моим урокам идем то и пусть напишет как этот массив составлен.
Ответ именно в составлении массива. Речь то про справочник идет.
Да возможно еще про bPost.
Страницы: 1 2 3 4 След.
Читают тему (гостей: 2)