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

Может начнем обсуждение написания модуля на Харборе? УРОК1
Goto page 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
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 16 Sep 2005 15:28    Post subject: Может начнем обсуждение написания модуля на Харборе? УРОК1 Reply with quote

Допустим, хочу сделать:
Пункт в меню в модуле Продажи.
По пункту - реестр из одной единственной таблицы, скажем перечень выполненных работ ИТ отдела.(аналог mdocm но без mdoc скажем, для простоты)
Следует обеспечить стандартный набор действий, ввод, поиск, сорт, удалени
Back to top
View user's profile Send private message Send e-mail
Марина



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

PostPosted: 16 Sep 2005 15:56    Post subject: Reply with quote

Присоединяюсь к просьбе
Back to top
View user's profile Send private message
nordk



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

PostPosted: 19 Sep 2005 11:26    Post subject: Reply with quote

ОК поехали.
1. Создадим пункт меню
Таблица real\rmenu.dbf
У меня нет записи 0 10 - пишу туда "Реестр работ ИТ"
и простенькую программу work.hrb
Function Main()
SayAndWait("OK")
return NIL
компилируем ее в харбор и пишем в поле функции меню
HFileEval("work.hrb",{})
После чего проиндексируем модуль управление продажами обязательно, зайдем туда и убедимся что программка работает - будете готовы дальше, сообщите
Back to top
View user's profile Send private message Send e-mail
maestro_



Joined: 29 Jan 2003
Posts: 95



PostPosted: 19 Sep 2005 12:22    Post subject: Reply with quote

Добрый день!
Пункт меню сделал
функцию подцепи
Back to top
View user's profile Send private message
nordk



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

PostPosted: 19 Sep 2005 12:48    Post subject: Reply with quote

Хорошо - теперь давайте обсудим формат таблицы (перечень и характеристики полей БД) по которой все будем делать.
Разумеется сразу же создадим эту таблицу и заполним кто как сумеет какими-нить значениями - чтобы на экране их увидеть
Back to top
View user's profile Send private message Send e-mail
maestro_



Joined: 29 Jan 2003
Posts: 95



PostPosted: 19 Sep 2005 13:20    Post subject: Reply with quote

например такая таблица
Формат полей

Дата - TEK_DATA D 8 0
Номер - ТЕК_NOMER C 6 0
Наименование Раб.- NAME C 34 0
Количество по строке - KOL N 19 4
Цена ед. - CENA 19 3
Сумма - SUMMA 19 3
Можно еще и партнера NAME_P C 25 0
Back to top
View user's profile Send private message
nordk



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

PostPosted: 19 Sep 2005 13:43    Post subject: Reply with quote

Общая щирина экрана на которой можем отразить 78 знаков - общая ширина всех полей 130 плюс пробелы между ними нужны.
Давайте определим цепочку полей отражения на экране в строчку и размер отражения поля на экране (с учетом пробелов)
Back to top
View user's profile Send private message Send e-mail
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 19 Sep 2005 14:04    Post subject: Reply with quote

maestro_ wrote:
например такая таблица
Формат полей

Дата - TEK_DATA D 8 0
Номер - ТЕК_NOMER C 6 0
Наименование Раб.- NAME C 34 0
Количество по строке - KOL N 19 4
Цена ед. - CENA 19 3
Сумма - SUMMA 19 3
Можно еще и партнера NAME_P C 25 0


Может добавим справочник работ?
Вынесем работы в отдельную таблицу с возможностью наполнения при записи в таблицу приведенной структу
Back to top
View user's profile Send private message Send e-mail
nordk



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

PostPosted: 19 Sep 2005 14:31    Post subject: Reply with quote

Давайте справочник чуть поз
Back to top
View user's profile Send private message Send e-mail
maestro_



Joined: 29 Jan 2003
Posts: 95



PostPosted: 19 Sep 2005 14:38    Post subject: Reply with quote

Давайте обрежим поля Name, Сеna и Summa что бы уместиться в 78
Для самого реестра можно оставить вот такой набор данных
1 8 1 6 1 16 1 5 1 18 1 18 1 = 78

8 - Tek_data
6 - Tek_Nomer
16 - left(Name,16)
5 - left(str(kol),5)
18 - left(str(Cena),1
18 - left(str(Summa),1

правда не уверен в правильности "обрезания" полей
"обрезанные" поля можно поместиь в подвал
1 - под символ разделитель
Back to top
View user's profile Send private message
nordk



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

PostPosted: 19 Sep 2005 14:45    Post subject: Reply with quote

Таперя часов в 18 по Москве распишу - переку
Back to top
View user's profile Send private message Send e-mail
nordk



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

PostPosted: 19 Sep 2005 15:52    Post subject: Reply with quote

@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%
Back to top
View user's profile Send private message Send e-mail
nordk



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

PostPosted: 19 Sep 2005 17:29    Post subject: Reply with quote

Внутри main стираем SayAndWait("OK")

Пишем в первом приближении

Code:
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


Дальше играем с изменением значений в параметрах, задаем вопросы
У себя не тестировал - если где допустил синтетические ошибки заранее прошу прощения
Back to top
View user's profile Send private message Send e-mail
WildCat



Joined: 13 Sep 2005
Posts: 18
Location: Андрей Забабонин
Occupation: ОАО "1000 мелочей"
Interests: Калининград

PostPosted: 19 Sep 2005 18:22    Post subject: Reply with quote

Пишу простенькую программу hello.prg (текст есть в хелпе),
компилирую ее в харбор, кладу в PRO\PLUGINS\EXTENSNS\MAIN и пишу в поле функции меню

HFileEval("hello.hrb",{}).

При попытке вызова спец функции получаю

"Нет файла или пустой файл HFileEval("hello.hrb",{})"

Аналогичный результат при использовании FileEval("hello.prg",{}).
В чем может быть проблема?
Back to top
View user's profile Send private message
maestro_



Joined: 29 Jan 2003
Posts: 95



PostPosted: 19 Sep 2005 18:25    Post subject: Reply with quote

маленький вопросик
в данном реестре возможно удалять записи(по F! это можно как-то контролировать?
Хотелось еще рассмотреть возможность сортировки и поиска по этому реестру.


Last edited by maestro_ on 19 Sep 2005 18:28; edited 1 time in total
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 1, 2, 3, 4  Next
Page 1 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