View previous topic :: View next topic |
Author |
Message |
itman
Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
|
Posted: 16 Sep 2005 15:28 Post subject: Может начнем обсуждение написания модуля на Харборе? УРОК1 |
|
|
Допустим, хочу сделать:
Пункт в меню в модуле Продажи.
По пункту - реестр из одной единственной таблицы, скажем перечень выполненных работ ИТ отдела.(аналог mdocm но без mdoc скажем, для простоты)
Следует обеспечить стандартный набор действий, ввод, поиск, сорт, удалени |
|
Back to top |
|
|
Марина
Joined: 27 Aug 2002 Posts: 501 Location: Кондрина Марина Александровна Occupation: ОАО БКО программист Interests: Боровичи Новгородской обл
|
Posted: 16 Sep 2005 15:56 Post subject: |
|
|
Присоединяюсь к просьбе |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 19 Sep 2005 11:26 Post subject: |
|
|
ОК поехали.
1. Создадим пункт меню
Таблица real\rmenu.dbf
У меня нет записи 0 10 - пишу туда "Реестр работ ИТ"
и простенькую программу work.hrb
Function Main()
SayAndWait("OK")
return NIL
компилируем ее в харбор и пишем в поле функции меню
HFileEval("work.hrb",{})
После чего проиндексируем модуль управление продажами обязательно, зайдем туда и убедимся что программка работает - будете готовы дальше, сообщите |
|
Back to top |
|
|
maestro_
Joined: 29 Jan 2003 Posts: 95
|
Posted: 19 Sep 2005 12:22 Post subject: |
|
|
Добрый день!
Пункт меню сделал
функцию подцепи |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 19 Sep 2005 12:48 Post subject: |
|
|
Хорошо - теперь давайте обсудим формат таблицы (перечень и характеристики полей БД) по которой все будем делать.
Разумеется сразу же создадим эту таблицу и заполним кто как сумеет какими-нить значениями - чтобы на экране их увидеть |
|
Back to top |
|
|
maestro_
Joined: 29 Jan 2003 Posts: 95
|
Posted: 19 Sep 2005 13:20 Post subject: |
|
|
например такая таблица
Формат полей
Дата - 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 |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 19 Sep 2005 13:43 Post subject: |
|
|
Общая щирина экрана на которой можем отразить 78 знаков - общая ширина всех полей 130 плюс пробелы между ними нужны.
Давайте определим цепочку полей отражения на экране в строчку и размер отражения поля на экране (с учетом пробелов) |
|
Back to top |
|
|
itman
Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
|
Posted: 19 Sep 2005 14:04 Post subject: |
|
|
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 |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 19 Sep 2005 14:31 Post subject: |
|
|
Давайте справочник чуть поз |
|
Back to top |
|
|
maestro_
Joined: 29 Jan 2003 Posts: 95
|
Posted: 19 Sep 2005 14:38 Post subject: |
|
|
Давайте обрежим поля 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 |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 19 Sep 2005 14:45 Post subject: |
|
|
Таперя часов в 18 по Москве распишу - переку |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 19 Sep 2005 15:52 Post subject: |
|
|
@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 |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 19 Sep 2005 17:29 Post subject: |
|
|
Внутри 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 |
|
|
WildCat
Joined: 13 Sep 2005 Posts: 18 Location: Андрей Забабонин Occupation: ОАО "1000 мелочей" Interests: Калининград
|
Posted: 19 Sep 2005 18:22 Post subject: |
|
|
Пишу простенькую программу hello.prg (текст есть в хелпе),
компилирую ее в харбор, кладу в PRO\PLUGINS\EXTENSNS\MAIN и пишу в поле функции меню
HFileEval("hello.hrb",{}).
При попытке вызова спец функции получаю
"Нет файла или пустой файл HFileEval("hello.hrb",{})"
Аналогичный результат при использовании FileEval("hello.prg",{}).
В чем может быть проблема? |
|
Back to top |
|
|
maestro_
Joined: 29 Jan 2003 Posts: 95
|
Posted: 19 Sep 2005 18:25 Post subject: |
|
|
маленький вопросик
в данном реестре возможно удалять записи(по F! это можно как-то контролировать?
Хотелось еще рассмотреть возможность сортировки и поиска по этому реестру.
Last edited by maestro_ on 19 Sep 2005 18:28; edited 1 time in total |
|
Back to top |
|
|
|