Создание 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 и что такое база данных…)
В принципе, так можно помирить 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?
Флаг понравился…
Хотелось бы узнать Ваше мнение о пути развития программы, для чего достаточно кликнуть по выбранным ссылкам. Количество “кликов” – это Ваше отношение к программе.