Някои въпроси и отговори свързани с Б4
Тези въпроси не са подредени. Ако търсите нещо конкретно, опитатйте с Ctrl-F. Вижте общото описание.
Ето и опис на управляващите клавиши.


ВЪПРОСИ

Как да сметна две-три числа?
Как да добавя един ред най-отдолу в таблицата?
Как да вмъкна ред в средата на таблицата?
Как да изтрия ред от средата на таблицата?
Как да премахна последния ред от таблицата?
Как да вмъкна колона в таблицата?
Как се създава таблица чрез редактора?
Как се изтрива таблица от диска?
Как се започва ново приложение?
Как се маркира блок?
Защо ми е да маркирам блок?
Как да пренеса блок данни от една таблица в друга?
Как да напиша една програма?
Как да запомня толкова много команди и функции, че да си служа с тях?
Как да пробвам програмата, която току що написах?
Как да спра изпълнението на програмата в точно определено място?
Как да накарам програмата да се стартира чрез точка от приложното меню?
Как да накарам програмата да се стартира от бутон?
Откъде се вземат тези картинки за бутоните?
Как да запиша таблицата на дискета?
Как да стартирам мрежовите функции?
Какво трябва да знам, за да направя мрежова апликация?
Каква е разликата между програмист и потребител?
Как да донеса данни от MS Excel в Б4 през клипборда?
Как да произведа текстов файл по посочена спецификация, например ДДС-дискета?
Как да стартирам външна програма чрез команда на Б4?
Какво толкова му намираш на това Б4, та се занимаваш с него?
Работи ли клипборда?
Къде е точката "Save" в главното меню?
Как така Б4 си пише само програми и после си ги стартира?
Какво е работното време на Б4 - комуникационния сървър?
За какво служи е Б4-диспечера?
Защо е необходимо Б4 при потребителя, не е ли то само език за програмиране?
Как можа да измислиш такива идиотски имена на командите?
Има ли тук прост пример за някоя полезна програма?
Може ли една таблица да се превърне във web-страница?
Искам в текущата колона да запиша едно село, а селата са в друга таблица. Как става това?
При старта на апликацията ми излиза бяло прозорче с грешка "bad delimiter /start.prg(#3)". Какъв е проблема?



ОТГОВОРИ

В. Как да сметна две-три числа?
О. Натиснете клавиша Alt-F10. Ще се появи прозорец за смятане на изрази. Там запишете линия от типа:
8.34 * (1218 + 41) / 2
И натиснете "Enter".


В. Как да добавя един ред най-отдолу в таблицата?
О. С клавиша F9.


В. Как да вмъкна ред в средата на таблицата?
О. Натиснете клавиша F5. Ще се появи малък диалогов прозорец. Там напишете "1" и натиснете "Enter".


В. Как да изтрия ред от средата на таблицата?
О. Натиснете клавиша F5. Ще се появи малък диалогов прозорец. Там напишете "-1" и натиснете "Enter".


В. Как да премахна последния ред от таблицата?
О. Поставете маркера на предпоследния ред и натиснете клавиша F6.


В. Как да вмъкна колона в таблицата?
О. От главното меню изберете "Таблица"-"Вмъква колона".


В. Как се създава таблица чрез редактора?
О. От главното меню избираме "Диск"-"Нова таблица" и там записваме описателна линия от типа MYTABLE(30,10,20)


В. Как се изтрива таблица от диска?
О. От главното меню избираме "Диск"-"Изтрива таблица" и там посочваме коя таблица да бъде изтрита.


В. Как се започва ново приложение?
О. Приложенията представляват сложни комлекти, чийто състав варира от една таблица до стотици файлове от различни типове. Един добър начин да започнем ново приложение е да копираме някое налично приложение в нова директория и там да го променяме, докато получим желания резултат.


В. Как се маркира блок?
О. С клавишите F7 и F8.
1. Първо поставяме маркера в началото и натискаме F7.
2. После поставяме маркера в края и там натискаме F8.
-Има няколко други начина за бързо маркиране чрез мишката.
а) Натискаме с левия бутон на мишката (и го задържаме натиснат) върху клетката, от която започва блока; Движим мишката до края на блока и там отпускаме бутона. Но не се опитвайте да започвате по този начин блок от текущата клетка. Няма да стане, тъй като в рамките на клетката работи друг маркиращ механизъм на Windows.
б) Чукваме с мишката върху хоризоналната антетка и така маркираме една цяла колона. Същият ефект има и натискането на Ctrl-K;
в) Чукваме с мишката върху вертикалната антетка (номерата на редовете) и така маркираме един цял ред.Същият ефект има и натискането на Ctrl-R;
г) Натискаме клавиша Ctrl-A. Така маркираме цялата таблица.
-Блокът се демаркира с клавиша Shift-F5.


В. Защо ми е да маркирам блок?
О. Блокът е участък от таблицата, с който работят команди на ниско и на високо ниво. На ниско ниво например блокът може да бъде копиран/преместен от една позиция на друга (копиране/преместване). Може също да бъде преобразуван еднотипно, като да умножим всички числа от блока по едно зададено число.
На високо ниво с блок се указват обхвати на програмно действие, например можем да изработим счетоводна форма или справка за блок от счетоводния протокол. Блокът може да бъде изнесен като самостоятелна таблица или да бъде изпращан по мрежата.


В. Как да пренеса блок данни от една таблица в друга?
О. Маркирайте блок. С клавиша Ctrl-B Блока ще бъде запомнен. После отворете таблицата - приемник. Сложете маркера на подходящо място и натиснете Ctrl-D за да Донесете блока.


В. Как да напиша една програма?
О. С клавиша Ctrl-F3.


В. Как да запомня толкова много команди и функции, че да си служа с тях?
О. Не можете веднага. Опитайте с нещо по-просто. Изполувайте програмния редактор. Когато сложите маркера върху команда или променлива, натиснете F1. Ако това е команда или функция, ще се появи помощ за синтаксиса. Ако е променлива, ще ви бъде показана стойността й в калкулатора (при условие, че програмата е стартирана и спряла наблизо).


В. Как да пробвам програмата, която току що написах?
О. Натиснете Shift-F10. Ще се появи прозорец за старт на команда. Напишете името на програмния файл и "Enter".

В. Как да спра изпълнението на програмата в точно определено място?
О. Напишете като програмна линия някаква глупост от типа "спри тук". После стартирайте програмата. Интерпретаторът ще спре там и ще излъчи съобщение от вида 'не мога да позная променливата "тук"'. Все пак ще можете да наблюдавате всички резултати в таблиците, произведени от програмата до този момент, както и съдържанията на променливите в калкулатора (Alt-F10).


В. Как да накарам програмата да се стартира чрез точка от приложното меню?
О. От главното меню избирате "Текст"-"Меню редактор".
Ето един примерен участък от меню:

-------------- начало ---------------
меню Мрежа (3,0)
меню Старт~ (3,1) INIT_APP_SERVER.PRG
меню Стоп~ (3,2) NET DISCONNECT
меню Настройки (3,3) база NET_PARAMETERS
меню Какво е състоянието на връзката~ (3,4) REPORT_NET_STATE.PRG
меню - (3,5) :
меню Транспорт (3,6,0)
меню Изпрати текущата таблица~ (3,6,1) SEND_CURRENT.PRG('',0)
меню Изпрати текущия блок~ (3,6,2) SEND_CURRENT.PRG('',1)
меню (3,6,3)
меню (3,7)
-------------- край ---------------

Както виждате, командите се записват в десния край на линията. След като промените меню-файла, запишете го на диска, изключете меню редактора и натиснете 2 пъти клавиша Alt-F2. Това ще доведе до рестарт на меню-системата след което тя трябва да работи.
Внимавайте с тази процедура. Неуспешните опити за добавяне на меню-команда често водят до зависване, необходимост от терминация на процеса и после започване на нов-меню-файл. Най-добре вземете едно готово меню и го променяйте стъпка по стъпка, като всеки път се убеждавате в неговата работоспособност.


В. Как да накарам програмата да се стартира от бутон?
О. Бутонната линия се изгражда от програма (най-често наречена toolbar.prg). В програмния редактор вижте тази програма, ето една примерна:

------------------------- начало (TOOLBAR.PRG) ----------------------
бутон ('*','0','','','')
бутон ('*','I+','','','')
бутон ('*','N6','','','')
бутон ('база NET_OFFER','Зарежда таблицата оферти за клиенти','B01.bmp','','&Оферти')
бутон ('редактор (1) what_new.txt','Покажи текста "Какво ново"','B05.bmp','','&Вестник')
бутон ('PACKET_OFFER.PRG','Направи нов пакет NET_OFFER','B04.bmp','','&Пакет')
бутон ('|','','','','')
бутон ('START.PRG','Стартира Интернет службата','B02.bmp','','&Старт')
бутон ('net disconnect','Спира Интернет службата','B03.bmp','','&Стоп')
------------------------- край ----------------------

Първата дума от линията е команда, значи там е мястото и на програмите, които се стартират. След като промените програмата, трябва да стартирате TOOLBAR.PRG, за да проверите как работи вашия бутон.


В. Откъде се вземат тези картинки за бутоните?
О. От приложното меню (където го има) изберете "Служебни" - "Картинки". Там натиснете бутончето "All" - "износ" и посочете името за запис на картинката.
*** Забележка. Може и от другаде, стига да е спазен размера на битмапа 16х16.


В. Как да запиша таблицата на дискета?
О. Натиснете клавиша Ctrl-A. Така ще маркирате цялата таблица като блок. После от главното меню изберете "Блок-операции" - "Износ". Ще се появи стандартен прозорец "Save As", и там запишете с латински букви A:\MYTABLE


В. Как да стартирам мрежовите функции?
О. От главното меню изберете "Команди" - "Мрежов клиент". Ще се появи клиентско прозорче, в което натискате "Старт".
*** Забележка. От същото клиентско прозорче ще Ви се наложи да настроите връзката. Натиснете бутона "Настройки". Там срещу "IP адрес на сървъра" запишете 82.103.117.212, а в полето "Желан псевдоним" запишете името си, напр. "Петър".


В. Какво трябва да знам, за да направя мрежова апликация?
О. Доста работи са. Първо трябва да сте написали една или повече, макар прости солови апликации, за да свикнете с начина на работа.
Мрежовите приложения са съставени от поне две различни приложни системи - приложен сървър и клиент. За да комуникират помежду си е нужен и комуникационен сървър - обикновено това е трети екземпляр на Б4, чието предназначение е чисто съобщително, без приложни функции в мрежата. Според нас най-добре е да се пусне комуникационен сървър в диспечера на Б4, който и без това е нужен за разпределяне на апликациите.

B4_chat_structure.jpg
За целта в неговата стартова програма се добавя линията net server (0,0,0,0,1)
и се настройва welcome надписа откъм главното меню - "Команди" - "мрежов сървър" - "Настройки". От там нататък ще ви е нужен приложен сървър.
В общи линии приложния сървър
1. Е запознат с всички свои клиенти;
2. Посреща всички заявки от своите клиенти и ги изпълнява по предвариртелно уговорена схема;
3. Следи актуалността на данните при клиентите и ги опреснява при необходимост.
Имаме няколко такива разработки за счетоводни, фактурни и складови работи.
Трябва ви също приложен клиент. Той трябва
1. Да познава своя приложен сървър;
2. Да иска пресни данни от сървъра за да съставя своите документи и справки;
3. Да записва на сървъра свои данни спазвайки уговорената схема.

b4_app_service.jpg
Ако желаете повече подробности по тази технология, моля обаждайте се. Някои неща са безплатни, включително програми и кратки консултации. Мрежовите приложения са изключително ефективни и мощни. Те са и добър бизнес, така че си струват усилията по разбирането им и разработките.


В. Каква е разликата между програмист и потребител?
О. Никаква. Компютърът, операционната система, както и програмните езици, в частност Б4, не познават хората. Разликите са само в начините за управление и целите които преследват. Тези думи служат само за разграничаване на длъжностите. Хората са равноправни пред клавиатурата. Потребителят - професионалист трябва да познава добре методите за ръчно управление, за да извежда леко своите неща. От своя страна програмистът - професионалист трябва добре да познава потребителския проблем, за да не пише на вятъра. Всяко неразбиране се плаща. Колкото по-късно, толкова по-скъпо.

В. Как да донеса данни от MS Excel в Б4 през клипборда?
О. В MS Excel поискайте "Copy" на блока. После в Б4 маркирайте блок и поискайте от главното меню "Блок" - "Донеси от клипборда".

В. Как да произведа текстов файл по посочена спецификация, например ДДС-дискета?
О. С командата "блок текст".

В. Как да стартирам външна програма чрез команда на Б4?
О. С командата "изп". Ето сорса на програмата зад точката "Служебни"-"Картинки"
------------------ начало --------------------------
: LAUNCH_RPE.PRG
чист
файл_ 'buttons.rpe'
пътека_ '\b4wu\peditor'
редактор_ пътека_+'\peditor.exe'
го_няма existfs(редактор_)=0
ако го_няма то преход 0010
линия пътека_+'\peditor.exe '+файл_
изп @линия
: горната команда на това място е приблизително еквивалент на
: изп C:\B4WU\peditor.exe buttons.rpe
стоп(3)

0010 :
кажи getok('Няма го редактора','Не е намерен файл "'+редактор_+'"',3)
------------------ край --------------------------


В. Какво толкова му намираш на това Б4, та се занимаваш с него?
О. Има няколко възлови момента, които не съм видял никъде другаде събрани в едно.
1. Кирилските имена на променливите. Това е комфорт, който повечето програмисти дори не подозират, че съществува. Те са усетили някога още в началото подобна нужда, но отдавна са спрели да се надяват. Нещо по-лошо, някои от тях обвиняват самия език и писменост.
2. Изключително удобно писане на програмите, защото процесите и данните се наблюдават лесно.
3. Отвореният сорс, леката подръжка и намеса, когато се наложи - без външни модули, пачове и пиратства.
4. Удобното викане на програмни процедури и функции, писани по независим начин и просто присъстващи на диска.
5. Преинтерпретиране на линии. Малко програмни езици допускат това. То значи, че можете да конструирате командни линии в хода на изпълнение на програмата и после да ги пускате за изпълнение. Командата е "проц". Ето един пример:
------------------ начало --------------------------
: ........
: участък от програмата DO_SERVE.PRG от приложния сървър
команда scell @описател_на_задачите (ред_задача,5)
ап stringdelimiter
линия команда+'('+шифър_сборен+','+шифър_задача+','+ап+допълнение+ап+')'
проц @линия
: ........
------------------ край --------------------------
6. Отлична способност за транспорт, инсталация и обновяване. Има вграден компресор, товаро-разтоварващ механизъм и добра прозрачност към основните примитиви за копиране, предлагани от операционната система.
7. Възможността за привикване на външни процеси на помощ. Редакторът на картинки е един пример за това. Друг пример е програма за отпечатване на дипломи в училище, при която специално внимание се отделя на графиката - това става с външно exe, предназначено да придаде графичен преглед и печат на скрипт, който Б4 произвежда (RDL-формат).
8. Харесва ми.


В. Работи ли клипборда?
О. Да. Има няколко различни клип - метода:
1. Стандартен текст за част от клетката от Windows (Ctrl-Ins/Shift-Ins). Това работи и в програмния редактор.
2. Текст с много линии (от главното меню "Текст" - "Глътни в клипборда"). Съвместим с по-горния.
3. Табулиран текст за блок (от главното меню "Блок" - "Глътни в клипборда"). Съвместим с MS Excel, MS Access и др. програми.
4. Вътрешен за блок (Ctrl-B/Ctrl-D) работи само в Б4.
5. Вътрешен за клетка (Alt-F7/Alt-F8) работи само в Б4.


В. Къде е точката "Save" от главното меню?
О. Няма такава точка. Записът в Б4 става в момента, когато маркера напусне текущата клетка. До тогава е възможно с клавиша Esc да се върне стартото съдържание. Б4 затваря текущата таблица САМО автоматично при отваряне на друга таблица, или когато предприеме командно действие.


В. Как така Б4 си пише само програми и после си ги стартира?
О. Б4 не прави нищо само. Програмите се пишат от хора. Но понякога е удобно да използуваме интерпретатора именно по този начин. Ето един пример. Приложението поддържа регистър, чиито колони искаме да променяме по време на работа, без да смущаваме други действия. За да направим това поддържаме таблица - описател на регистъра. Когато искаме да променим регистъра, първо променяме таблицата-описател и после стартираме реформираща програма. Реформиращата програма прочита описателя, препостроява таблицата и написва няколко други програми (обикновено прости и еднотипни) свързани с приложните функции, след което нулира програмния кеш. После при нормална работа тези програми работят без промяна.


В. Какво е работното време на Б4 - комуникационния сървър?
О. Денонощно е включен. Спираме го само когато има корекции в Б4 или непредвидени смущения. Не всичко зависи от нас. Както много други сървъри, той може да прекъсне работа за кратко време.

В. За какво служи Б4 - диспечера?
О. Б4 поддържа приложения (бази данни). Всяко приложение е съставено от множество файлове, които се намират в отделна директория. Тъй като Б4 е едно, а приложенията - много, ако искате да работите с всички, ще се наложи да направите доста иконки на десктопа (или входни точки на "Start-menu"). За да се избегне това, е необходим Б4-диспечер. Той поддържа опис на всички приложения и ги разполага в поддиректории - клончета от неговата директория (обикновно c:\b4wu). Освен това диспечера централизира други полезни функции за управляване на приложенията - размножаване, изтриване, обновяване, инсталации, комуникации и др. Б4 диспечера е безплатна програма, достъпна е от download страницата.


В. Защо е необходимо Б4 при потребителя, не е ли то само език за програмиране?
О. Защото и потребителя се нуждае от основните функции по управление на таблицата. Нали той пише данни. Точно за него е особено ценно да има удобство при редакция на данните, методики за бързо въвеждане и блокови операции. С една дума интересите на потребителите към таблиците са почти същите, каквито са и тези на програмистите.

В. Как можа да измислиш такива идиотски имена на командите?
О. Имената на командите се намират в директория C:\B4W, в таблицата B4WLAN3.BSF. Ако не ги харесвате, може да ги промените оттам.

В. Има ли тук прост пример за някоя полезна програма?
О. Да. Ето една програма за склад. Ето и едно указание за правене на приложение.

В. Може ли една таблица да се превърне във web-страница?
О. Да. Ето една програма която превръща текушата таблица в HTML-страница и я показва с Internet Explorer. Ето как изглежда и една примерна таблица правена с тази програма.

В. Искам в текущата колона да запиша едно село, а селата са в друга таблица. Как става това?
О. С клавиша Shift-F1 или с двойно щракване на мишката. Това се нарича "номенклатурна връзка". Номенклатурните връзки се задават една по една ръчно от главното меню "Команди" - "номенклатурни връзки", или чрез програма. Обикновено програмата е "nstatus.prg". Тя чете връзките от таблица "nstatus.bsf". Двата файла "nstatus.prg" и "nstatus.bsf" са конкретна част от приложението. Повечето приложения имат в менюто "Служебни" две точки свързани с номенклатурните връзки. "Отвори таблица номенклатурни връзки" и "Построй наново връзките по таблицата".

В. При старта на апликацията ми излиза бяло прозорче с грешка "bad delimiter /start.prg (#3)".
О. Този проблем може да възникне от едновременния опит на програмата Б4 и някои антивирусни програми да четат и пишат един и същ файл от вида "B4WCLIENTSTATE.INI" и "B4WINITSTATE.SYS", при което файла остава разрушен или недостъпен. При следващия старт на Б4 не може да прочете стартовата си обстановка и издава това съобщение тъй като не знае с какъв език да работи.
Изходът от това положение е стъпка по стъпка да възстановим състоянието. За тази цел повечето апликации съдържат специална програма, която се нарича "SET_B.PRG" или "SET_B_STATE.PRG". За да я стартирате, от главното меню изберете "Commands" - "Command" - "Browse".
*** Забележка. Този проблем не винаги може да бъде уреден лесно. Освен статуса на Б4, има и статус на апликацията, който може би ще трябва да стартирате веднага след това. Обикновено това е точка в "Служебни" - "Номенклатурен статус" - "Построй нов". След това може да се наложи ръчно да настроите видимостта на управляващите ивици откъм безименното копче за настройки в горния ляв ъгъл на таблицата. Освен това, в мрежовите апликации, ако мрежовият статус е разрушен, ще се наложи наново да въведете всички имена и пароли на участниците в мрежата. Ако все пак не съумеете да оправите проблема, най-добре ми звъннете и ще дойда да Ви помогна. В описаният случай не се губят данни от приложението.
Версиите на B4W.EXE след април 2009 избягват разширения "SYS" и "INI".










Радис-начална страница

Valid HTML 4.01!