View previous topic :: View next topic |
Author |
Message |
progforbest
Joined: 14 May 2003 Posts: 9
|
Posted: 11 Mar 2005 11:49 Post subject: |
|
|
Не работал у меня это пример:
Программирование_в_БЭСТ-4.chm
Быстрый старт
Для быстрого начала работы проделайте следующее:
· скопируйте bin\harbour.exe в какой-нибудь общедоступный каталог, чтобы легче было запускать его из командной строки;
· создайте в корне БЭСТ (там, где best.bat) файл HELLO.PRG следующего содержания:
Function main()
altd()
Alert('Hello,world!')
Return 100
· наберите из командной строки:
· получившийся в результате компиляции файл HELLO.HRB поместите в PRO\PLUGINS\EXTENSNS\MAIN\
· находясь в реестре проводок (АРМ главного бухгалтера-Учет хозяйственных операций) подключите обычным образом (по Ctrl-F5) плагин c именем HELLO.HRB
· запустите на выполнение – и перед Вами возникнет следующая картина:
Таким образом, Вы в отладчике!
Программа остановлена на операторе AltD().
Теперь:
· по F6 можно посмотреть все открытые на данный момент рабочие области;
· по Alt-M посмотреть состояние всех видимых переменных;
· по F4 – что же в этот момент творится в окне приложения;
· по F8 по-командно и по F10 по-процедурно по шагам выполнить программу;
· и много-много других возможностей.
Больше нет никаких ограничений по написанию программ "изнутри" БЭСТа! |
|
Back to top |
|
|
Титов Александр
Joined: 26 Jul 2002 Posts: 975 Location: Титов Александр Александрович Occupation: Компания БЭСТ Interests: Москва
|
Posted: 11 Mar 2005 12:17 Post subject: |
|
|
progforbest wrote: | Не работал у меня это пример:
Программирование_в_БЭСТ-4.chm
Быстрый старт
Для быстрого начала работы проделайте следующее:
· скопируйте bin\harbour.exe в какой-нибудь общедоступный каталог, чтобы легче было запускать его из командной строки;
· создайте в корне БЭСТ (там, где best.bat) файл HELLO.PRG следующего содержания:
Function main()
altd()
Alert('Hello,world!')
Return 100
· наберите из командной строки:
· получившийся в результате компиляции файл HELLO.HRB поместите в PRO\PLUGINS\EXTENSNS\MAIN\
· находясь в реестре проводок (АРМ главного бухгалтера-Учет хозяйственных операций) подключите обычным образом (по Ctrl-F5) плагин c именем HELLO.HRB
· запустите на выполнение – и перед Вами возникнет следующая картина:
Таким образом, Вы в отладчике!
Программа остановлена на операторе AltD().
Теперь:
· по F6 можно посмотреть все открытые на данный момент рабочие области;
· по Alt-M посмотреть состояние всех видимых переменных;
· по F4 – что же в этот момент творится в окне приложения;
· по F8 по-командно и по F10 по-процедурно по шагам выполнить программу;
· и много-много других возможностей.
Больше нет никаких ограничений по написанию программ "изнутри" БЭСТа! |
Добрый день!
Там пропало, что же набрать из командной строки (исправим в ближайшей версии), чтобы откомпилировать приложение:
harbour.exe hello.prg /n /a /gh /b - так с отладкой
harbour.exe hello.prg /n /a /gh - так без отладочной информаци _________________ С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо |
|
Back to top |
|
|
andre19
Joined: 24 May 2004 Posts: 317 Location: Andre Occupation: albumin (programmer) Interests: Новосибирск
|
Posted: 11 Mar 2005 14:04 Post subject: |
|
|
для моего примера
в каждый кусок кода можно добавить еще и переменные, которые-бы соответствовали АРМу, в котором трудишься, можно в соответствии с класификацией ИС(03-Гот.прод-ия например), можно свое придумать.
Ну и соответственно добавить одно поле в рез.таблицу, в которое и будет калякаться выполненное ламером действо.
Это позволит свести количество лог таблиц к одной |
|
Back to top |
|
|
Jura01
Joined: 21 Apr 2003 Posts: 68 Location: Исаев Юрий
Interests: Москва
|
Posted: 11 Mar 2005 17:49 Post subject: |
|
|
Что-то при сохранении документа Бэст ругается на _save.frm - какое-то разрушение данных, а сама бяка в 16-ой строке...
Удаление, то бишь _del.frm не проверя |
|
Back to top |
|
|
denlog
Joined: 16 Jul 2003 Posts: 155 Location: Логинов Денис Евгеньевич Occupation: Автоцентр КамАЗ, инженер-программист Interests: Н.Челны
|
Posted: 12 Mar 2005 15:12 Post subject: |
|
|
создал с помощью BRO.EXE базу DELRBOOK.DBF
структура:
Quote: |
Nr. Field Name Type Len Dec
==== ========== ========= ===== =====
1 DATE_DEL Date 8 0
2 TIME_DEL Character 10 0
3 NUM_ZAKAZ Character 6 0
4 DATE Date 8 0
5 NUM_SCHET Character 6 0
6 CODE_KAG Character 6 0
7 NAME_KAG Character 25 0
8 REGION Character 15 0
9 SUM_ZAKAZ Numeric 19 3
10 CODE_TAG Character 6 0
11 NAME_TAG Character 25 0
12 USER_CODE Character 6 0 |
создал по подобию ITMAN'ского delrbook.prg
Quote: | private cDir, aStru
private cDir2, aStru
cdir:= LoadPath()+'!loger\real\delrbook.dbf'
cdir2:= LoadPath()+'real\rbook.dbf'
dbpush()
netuse('delz',cdir)
netuse('rbook',cdir2)
delz->(addrec())
delz->DATE_DEL := Date()
delz->TIME_DEL := time()
delz->NUM_ZAKAZ := rbook->DOPCODE
delz->DATE := rbook->DATE
delz->NUM_SCHET := rbook->NUMDOC
delz->CODE_KAG := rbook->AGENTCODE
delz->NAME_KAG := rbook->AGENTNAME
delz->REGION := rbook->REGION
delz->SUM_ZAKAZ := rbook->SUMOUT
delz->CODE_TAG := rbook->AGENTCOD
delz->NAME_TAG := rbook->AGENTNAM
delz->USER_CODE := rbook->USER_CODE
delz->(f_dbUnLock())
delz->(dbCloseArea())
dbpop() |
пришлось добавить
Quote: | private cDir2, aStru
cdir2:= LoadPath()+'real\rbook.dbf'
netuse('rbook',cdir2) |
А то никак не хотел находить алиас rbook. Кстати, кто знает, где все эти алиасы хранятся? Почему на sh_fact не ругается, а на rbook - матом?
Далее в реестре заказов добавил спецфункцию delrbook.prg и пошел стирать заказы.
И всё бы хорошо, но при удалении любого заказа в мою log-базу !loger\real\delrbook.dbf добавляется заказ с наименьшим номером (в базе RBOOK.DBF это поле DOPCODE). И какой бы заказ я не удалял - в логи пишет инфу только по первому заказу.
Если его удалять - все прекрасно - он попадает в логи по всем поля в базе DELRBOOK.DBF.
Пробовал это как на BIN1102 так и на CMOD1102, оба без сервиспаков. БАЗА ДАННЫХ - копия рабочей базы.
Пробовал и на БЭСТЕ 4 ПЛЮС с 4-мя сервиспаками. Развернул демо базу - те же самые проблемы - удаляется только первый заказ (то есть с наименьшим номером). Даже если отсортировать заказы по дате или контрагенту - все равно удаляет только заказ с самым меньшим номером.
Как заставить спецфункцию загонять в лог DELRBOOK.DBF именно тот заказ, который я удаляю?
P.S. Еще не пробовал на складских базах - с MDOC.DBF _________________ юзай man'ы |
|
Back to top |
|
|
itman
Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
|
Posted: 14 Mar 2005 09:34 Post subject: |
|
|
Рекомендую перед тем как писать код, скомпилировать с отладчиком /b и в отладчике просмотреть какие базы уже открыты.
а у тебя получается по факту то что и написано по код |
|
Back to top |
|
|
denlog
Joined: 16 Jul 2003 Posts: 155 Location: Логинов Денис Евгеньевич Occupation: Автоцентр КамАЗ, инженер-программист Interests: Н.Челны
|
Posted: 14 Mar 2005 16:40 Post subject: |
|
|
В товарах попробовал !logerd.prg и logers.prg от ИТМАНа: все шикарно работает.
В управлении продаж - книга продаж - реестр счет фактур - тоже все работает без проблем.
Однако требуется знать кто удалил заказы, а RBOOK.DBF какая то база нестандартная, на неё даже алиаса не существует.
Теперь подробности:
itman wrote: | Рекомендую перед тем как писать код, скомпилировать с отладчиком /b и в отладчике просмотреть какие базы уже открыты.
а у тебя получается по факту то что и написано по коду. |
Во-первых:
C:\B4_PLUS\NEWS\Программирование_в_БЭСТ-4.chm
раздел "Функции БЭСТ " подраздел "Функции работы с рабочими областями"
Quote: | DBPUSH() - cохраняет текущее состояние (текущую рабочую область, установленный индекс и фильтр, текущий номер записи). |
Во-вторых:
C:\B4_PLUS\NEWS\Программирование_в_БЭСТ-4.chm
В разделе "Механизм HFileEval" подраздел "Быстрый старт "
Quote: |
наберите из командной строки:
harbour HELLO.PRG /n /a /gh /b
· получившийся в результате компиляции файл HELLO.HRB поместите в PRO\PLUGINS\EXTENSNS\MAIN\
· находясь в реестре проводок (АРМ главного бухгалтера-Учет хозяйственных операций) подключите обычным образом (по Ctrl-F5) плагин c именем HELLO.HRB
· запустите на выполнение – и перед Вами возникнет следующая картина: <тут картинка оболочки отладчика>
Таким образом, Вы в отладчике!
|
С параметрами /n /a /gh /b у меня вообще ничего не компилируется.
С параметром /b компилирует в Си.
Получилось с параметрами /a /gh /b (то есть без параметра /n).
Прописал в спецфункциях получившийся delrbook.hrb, попытался удалить заказ - заработал отладчик
тока окно пустое (кода нет) и пишет в заголовке окна - "delrbook.prg File not found", хотя я в спецфункциях прописал с расширением *.hrb
Далее, по F6 посмотрел активные области - все базы показывает, кроме RBOOK.DBF
вот скриншот
Что не так делаю?
Терзает смутное предчуствие, из-за того что в списке активных областей нет RBOOK, как раз и записывается в мой лог только первая запись из реестра заказов, вместо той которую удаляю.
Почему в активных областях нет RBOOK.DBF ? _________________ юзай man'ы
Last edited by denlog on 14 Mar 2005 16:55; edited 1 time in total |
|
Back to top |
|
|
Титов Александр
Joined: 26 Jul 2002 Posts: 975 Location: Титов Александр Александрович Occupation: Компания БЭСТ Interests: Москва
|
Posted: 14 Mar 2005 16:51 Post subject: |
|
|
denlog wrote: |
Однако требуется знать кто удалил заказы, а RBOOK.DBF какая то база нестандартная, на неё даже алиаса не существует.
|
RBOOK.DBF открыта с алиасом MDOC _________________ С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо |
|
Back to top |
|
|
denlog
Joined: 16 Jul 2003 Posts: 155 Location: Логинов Денис Евгеньевич Occupation: Автоцентр КамАЗ, инженер-программист Interests: Н.Челны
|
Posted: 14 Mar 2005 16:56 Post subject: |
|
|
Титов Александр wrote: | denlog wrote: |
Однако требуется знать кто удалил заказы, а RBOOK.DBF какая то база нестандартная, на неё даже алиаса не существует.
|
RBOOK.DBF открыта с алиасом MDOC |
а MDOC.DBF тогда с каким алиасом открыта?
и где бы взять базу с алиасами
то бишь какому *.DBF какой алиас соответствует? _________________ юзай man'ы |
|
Back to top |
|
|
itman
Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
|
Posted: 14 Mar 2005 16:58 Post subject: |
|
|
следовательно все еще больше упрощается,
кстати - Отладчик - очень удобный инструмент в руках админа Б-4+ !!!
а чтобы понять ху есть ху просто пройди по областям и посмотри на значения заодно можно и по переменным пройти. )))
только не увлекайся, а то на softice32 потянет еще |
|
Back to top |
|
|
denlog
Joined: 16 Jul 2003 Posts: 155 Location: Логинов Денис Евгеньевич Occupation: Автоцентр КамАЗ, инженер-программист Interests: Н.Челны
|
Posted: 14 Mar 2005 17:06 Post subject: |
|
|
АБАЛДЕТЬ !!!
ДВА ДНЯ БАШКУ ЛОМАЮ
А ОКАЗЫВАЕТСЯ АЛИАС для RBOOK.DBF - MDOC,
ну ни зачто бы не подумал.
сделал автозамену в файле delrbook.prg с "rbook" на "mdoc"
и все запело и заплясало как надо
ну спасибо, Титов Александр _________________ юзай man'ы |
|
Back to top |
|
|
denlog
Joined: 16 Jul 2003 Posts: 155 Location: Логинов Денис Евгеньевич Occupation: Автоцентр КамАЗ, инженер-программист Interests: Н.Челны
|
Posted: 14 Mar 2005 17:07 Post subject: |
|
|
itman wrote: |
следовательно все еще больше упрощается,
кстати - Отладчик - очень удобный инструмент в руках админа Б-4+ !!!
а чтобы понять ху есть ху просто пройди по областям и посмотри на значения заодно можно и по переменным пройти. )))
только не увлекайся, а то на softice32 потянет еще |
а че такое softice32 ?
ни рамблер ни яндекс не ответи _________________ юзай man'ы |
|
Back to top |
|
|
Титов Александр
Joined: 26 Jul 2002 Posts: 975 Location: Титов Александр Александрович Occupation: Компания БЭСТ Interests: Москва
|
Posted: 14 Mar 2005 17:21 Post subject: |
|
|
denlog wrote: | Титов Александр wrote: | denlog wrote: |
Однако требуется знать кто удалил заказы, а RBOOK.DBF какая то база нестандартная, на неё даже алиаса не существует.
|
RBOOK.DBF открыта с алиасом MDOC |
а MDOC.DBF тогда с каким алиасом открыта?
и где бы взять базу с алиасами
то бишь какому *.DBF какой алиас соответствует? |
Как правило, алиасы соответствуют именам.
В заказах таблица SCLAD\MDOC.DBF постоянно не открыта, а открывается только при необходимости с алиасом MDOC1.
В отладчике можно увидеть все открытые алиасы. Кроме того, по Alt-X отображается текущая таблица с открытым алиасом и связанные с ней по RELATION.
И последнее, немного опережая события. Если у вас стоят все пакеты, задайте переменную среды BEST5_ALTINS=YES. И далее в любом режиме жмите Alt+Ins - и увидите все рабочие области и много чего еще. _________________ С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо |
|
Back to top |
|
|
denlog
Joined: 16 Jul 2003 Posts: 155 Location: Логинов Денис Евгеньевич Occupation: Автоцентр КамАЗ, инженер-программист Interests: Н.Челны
|
Posted: 14 Mar 2005 17:45 Post subject: |
|
|
Титов Александр wrote: |
Как правило, алиасы соответствуют именам.
В заказах таблица SCLAD\MDOC.DBF постоянно не открыта, а открывается только при необходимости с алиасом MDOC1.
В отладчике можно увидеть все открытые алиасы. Кроме того, по Alt-X отображается текущая таблица с открытым алиасом и связанные с ней по RELATION.
И последнее, немного опережая события. Если у вас стоят все пакеты, задайте переменную среды BEST5_ALTINS=YES. И далее в любом режиме жмите Alt+Ins - и увидите все рабочие области и много чего еще. |
что то по ALT-X выкидывает вообще до главного меню _________________ юзай man'ы |
|
Back to top |
|
|
Олег Смирнов
Joined: 06 Sep 2004 Posts: 821 Location: Олег Смирнов Occupation: Раут (поганист-сисадмин) Interests: Новосибирск
|
Posted: 14 Mar 2005 19:17 Post subject: |
|
|
denlog wrote: | а че такое softice32 ? |
Хы!.. А это отладчик такой. Пока он тебе не нужен. Вот как начнёшь разбираться, как в БЭСТе защита через ключ работает и как его заставить работать без ключа - тогда точно пригодится. А пока... itman прикалывается. _________________ С уважением, Олег Р. Смирн |
|
Back to top |
|
|
|