В VFP поддерживается следующая видимость переменных:
public MyVar1 - глобальная переменная
local MyVar2 - локальная переменная (доступна только в текущей функции)
private MyVar3 - переменная доступна в текущей функции и видна в функциях, вызванных из текущей
Следует отметить следующий недостаток - переменные VFP можно не объявлять и по ходу выполнения функции записывать в одну и ту же переменную различные типы данных: Кроме этого, верхний или нижний регистр не имеют значения.
Но делать так НЕ следует. Никогда НЕ используйте одну и ту же переменную для хранения различных данных. Возьмите себе за правило объявлять переменные в начале функции и следить за их использованием:
* * function MyFunction * public logPblUserAdm, strPblUserName, arrPblSets[10,2] local intLocCount, strLocName, dtmLocDateTime, arrLocCopySets[10,2] * logPblUserAdm = .T. strPblUserName = "user" * arrPblSets[1,1] = "User1" arrPblSets[1,2] = .F. arrPblSets[2,1] = "User2" arrPblSets[2,2] = .T. * intLocCount = 0 strLocName = "Наименование" dtmLocDateTime = gettime() * acopy(arrPblSets, arrLocCopySets) * return *
Обратите внимание на имена переменных - вариант на тему венгерской нотации, придуманной программистом Microsoft Чарльзом Симони, венгром по национальности. В имени переменной указываем ее тип (int, log, str, dtm), видимость (Pbl, Loc), а затем смысловое имя.
Массивы VFP могут одновременно иметь различные значения для строк и столбцов. Поэтому, я не указываю тип массива, а пишу arrPblName[ ] или arrLocName[ ].
Префикс переменной | Тип переменной VFP | Пример |
---|---|---|
Str | Character | StrLocName |
Int | Integer | IntPblCount |
Log | Logical | LogPblUserAdm |
Num | Numeric | NumLocSum |
Dtm | DateTime | DtmPblDateStart |
Cur | Currency | CurLocSum |
Mem | Memo | MemLocComment |
Arr | Array | ArrPblSelect[100] |
Имена полей таблиц удобно начинать с префикса Fld, затем указывать тип и смысловое имя. Имена таблиц я начинаю с префикса T_ , имена баз данных с префикса D_, а имена тэгов индексов с префикса TAG_.
Использую такой, или свой собственный, стиль написания программ Вы сможете избежать многих проблем, связанных с отладкой кода.