Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Создание htm /txt страниц сайта/журнала с помощью шаблонов


Здравствуйте!
Судя по опросу, примерно 40% все таки хотят, что бы A_olSC развивался с другим языком программирования.

А нужно ли переходить от FoxPro к другому языку? Может быть достаточно разобраться с основными функциями и операторами Fox-a?
Я говорю только про основные, в принципе того, что Вы увидите в выпуске – вполне достаточно для комфортной работы (а если, к тому же, Вы программируете на другом языке программирования – это есть значительный плюс, т.к. функции и операторы даже разных языков очень и очень похожи.)
Я не заставляю программировать на Fox-e (хотя, чего лукавить, так оно и есть…), но хотя бы попытайтесь просмотреть все до конца, что бы понять, как все на самом деле просто…

Какие функции и операторы нужны для работы?

Последовательный просмотр таблицы/курсора
SCAN ENDSCAN

Пример:
Нужно вывести значения колонки znacen таблицы a_primer в колонку (таблицы a_primer не существует, ее надо создать, или, другой вариант, получить курсор из SQL,Interbase)

Select_vozvrat=Select() && Сохраняю номер текущей области НА ВСЯКИЙ СЛУЧАЙ
a_loc_primer=”” && Создаю переменную (текстовую)
Select 0 && Открытие к новой области / Activates the specified work area.
Use a_primer && Открытие таблицы FoxPro / Opens a table
Scan && Сканирование таблицы/ Moves the record pointer through the currently selected table
&& and executes a block of commands for each record that meets the specified conditions.

a_loc_primer= a_loc_primer+"<"+"br"+">"+ALLTRIM(a_primer.znacen)
&& Заношу в a_loc_primer значение znacen таблицы a_primer
&& (функция ALLTRIM() убирает пробелы справа и слева)

EndScan && Конец Scan
Select a_primer && На всякий случай переходим к таблице
Use && Закрываем таблицу
Select (Select_vozvrat) && Возвращаюсь в текущую область
Return a_loc_primer && Строка готова!

Далее, например, в text (значение контента) можно разместить следующий код:

Список значений
`*[foxpro]
Select_vozvrat=Select()
a_loc_primer=””
Select 0
Use a_primer
Scan
a_loc_primer= a_loc_primer+"<"+"br"+">"+ALLTRIM(a_primer.znacen)
EndScan
Select a_primer
Use
Select (Select_vozvrat)
Return a_loc_primer`

Данный пример автоматизировал ручную работу - разве это плохо?

В другом случае я получаю a_primer как курсор из некой базы (например, SQL 2000)
НО у вас должно быть ODBC – соединение с базой данных (надеюсь, не надо объяснять, что такое ODBC и что такое база данных…)

`*[foxpro]
Select_vozvrat=Select()
a_loc_primer=””

lnConnGG = SQLConnect('name_soedin')
If lnConnGG <0 && Success.
Wait Window "Ошибка сервера!!!" && Вывод сообщения на экран
&&– дальше- любая клавиша

SQLDisconnect(lnConnGG)
Select (Select_vozvrat)
Return a_loc_primer
Endif
ee=SQLExec(lnConnGG, “select * from tablica”, “a_primer” )
If ee <0 && Success.
Wait Window "Ошибка сервера !!!"
SQLDisconnect(lnConnGG)
Select (Select_vozvrat)
Return a_loc_primer
Endif
SQLDisconnect(lnConnGG)
Select a_primer

Scan
a_loc_primer= a_loc_primer+"<"+"br"+">"+ALLTRIM(a_primer.znacen)
EndScan
Select a_primer
Use
Select (Select_vozvrat)
Return a_loc_primer`

В принципе, так можно помирить Fox практически с ЛЮБОЙ БАЗОЙ данных, причем всю логику можно организовать на стороне базы! Можно создать некую процедуру (в самой базе), а уже курсор a_primer в FoxPro получить следующей командой:
ee=SQLExec(lnConnGG, “Exec name_procedure”, “a_primer” )
Синтаксис команды Exec необходимо уточнить для Вашей базы (Exec – SQL2000)

Следующий оператор - FOR… ENDFOR && Цикл/ Executes a set of commands a specified number of times.
Бессмысленный пример – вывод значений с 1 до 20:
Список значений
`*[foxpro]
a_loc_primer=””
For a_i=1 to 20 step 1
a_loc_primer= a_loc_primer+"<"+"br"+">"+str(a_i)
Endfor
Return a_loc_primer`
ВСЕ понятно, кроме str()…
Функция Str() (Returns the character equivalent of a numeric expression) конвертирует числовое значение в строковое.

IF…ELSE…ENDIF
&&Conditionally executes a set of commands based on the value of a logical expression.
&& Проверка условия и выполнение операторов

Сегодняшнее число `*[foxpro]
If day(datetime()) >15
Return “больше 15 - ”+ttoc(datetime())
Else
Return “меньше 15 - ” +ttoc(datetime())
Endif `

Функция day() возвращает день (интересно, догадаетесь, что возвращают Month() или Year()?) из значения типа даты/ даты-времени
datetime() – текущая дата+время
date() – текущая дата
Ttoc() – преобразование значения даты-времени в строковое
Dtoc() – преобразование значения даты в строковое

Рубрика: Вопрос-Ответ

Как упорядочить страницы новостей?
Эти страницы упорядочиваются по дате (datases). Изменяя дату – изменяете порядок.

Что такое br при переходе на след. строку (свойства контента)?
Если отмечено, то при формировании страницы (htm) br будет автоматом вставляться при переходе на следующую строку (удобно, и не захламляется редактирование). По умолчанию – отмечено. Снимайте отметку, если Вы копируете html-код, например, из Notepad-a (заметьте, что там br в нужных местах уже проставлен).

Зачем нужен пункт – Сервис/Отборные процедуры?
Можно выбрать процедуры, которые будут запускаться непосредственно из меню, не открывая основного окна работы с программой. Этим можно ограничить ошибки при запуске процедур.

Зачем нужна отметка – В меню не участвует (свойства контента)?
Иногда нужно сгенерить страницу, не показывая ее в оглавлении (в меню). Т.е. страница как бы в проекте, но ее нет ни в оглавлении, ни в сквозной навигации. Поверьте, иногда такие случаи бывают.

Что значит «Не_активно» (свойства контента)?
Вы можете исключить страницу из генерации, НЕ УДАЛЯЯ ее физически.

Что значит отметка «Свой бланк» (свойства контента)?
По умолчанию, есть четыре бланка, на основе которых генерятся страницы:
a_content.html – генерация обычной страницы
a_index_content.html - генерация начальной страницы
a_menu.html – генерация меню
a_oglav.html – генерация оглавления
Отмечая «Свой бланк», у Вас появляется возможность (можно сказать, даже шанс ) указать другую основу для генерации страницы. Только создать ее не забудьте…

Зачем нужен пункт – ENG/RUS USD?
Флаг понравился…


Хотелось бы узнать Ваше мнение о пути развития программы, для чего достаточно кликнуть по выбранным ссылкам. Количество “кликов” – это Ваше отношение к программе.

Убей сибя ап стену
Достаточно и так – баги бы убрать…
Развивать в связке с Fox-ом
Развивать в связке с другим языком программирования

В пятницу, в 13:30 по Москве (и вообще, ВСЕГДА по пятницам в 13:30), жду Вас в чате на обсуждении программы!





Вся информация об a_olSC на сайте:
www.a-olsc.front.ru
или
www.aolsc.narod.ru

Загрузка программы:
Страница загрузки

Ответить:
aolsc@front.ru


Форум

Чат

Гостевая

ICQ - 226-071-270



Все новости программы на странице новостей
Регистрация программы:
Страница регистрации


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

В избранное