Я ОЧЕНЬ новичок в FoxPro, поэтому прошу прощения, что, скорее всего, очень глупый вопрос.Я пытаюсь обернуть свой мозг вокруг нескольких программ FoxPro 9, которые были написаны непрограммистом, и, никогда прежде в моей жизни не видевших код FoxPro, я нахожу довольно непростой задачей разобраться в некоторых его особенностях.
У меня есть довольно простой оператор SQL, который возвращает информацию из файла проекта (используется в качестве таблицы).У меня есть три простые функции, которые обрабатывают, давая мне некоторую полезную информацию об объектах (файлах), которые включены в проект.
Вот вся основная программа, которая запускается.Это всего лишь один оператор SQL, который использует три простые функции:
SELECT ShortName(Name) AS SName, LongName(Name) AS LName, Type, GetType(Type) AS TypeName ;
FROM <my project file here> ;
ORDER BY Type, SName
Оператор SQL работает нормально, и мои три функции вызывают, и все три возвращают ожидаемые данные, за исключением функции GetType.Функция ShortName возвращает только имя файла, функция LongName возвращает полный путь и имя файла, а функция GetType должна возвращать более удобочитаемую строку, которая сообщает мне, какой тип файла.Такие как «Таблица», «Программа» и т.,.
ЗДЕСЬ ПРОБЛЕМА:
Функция GetType выполняется и устанавливается возвращаемое значение, но возвращаемое значение усекается до 6 символов.
![enter image description here](https://i.stack.imgur.com/kGpwy.png)
Я проверил, что возвращаемое значение функции - это полная строка текста, которую я ожидаю непосредственно перед выходом из функции.Тем не мение;когда данные отображаются в средстве просмотра, значение усекается.
Почему эти данные усекаются?Две другие функции работают почти одинаково (по крайней мере, с моей совершенно «неведомой» точки зрения), и они не усекаются.
Вот код из функции GetType
PARAMETERS pType
retVal = ""
DO CASE
CASE LEFT(ALLTRIM(pType),1) = 'B'
retVal = "Lable"
CASE LEFT(ALLTRIM(pType),1) = 'D'
retVal = "Table"
CASE LEFT(ALLTRIM(pType),1) = 'd'
retVal = "XBase Table"
CASE LEFT(ALLTRIM(pType),1) = 'F'
retVal = "Format"
CASE LEFT(ALLTRIM(pType),1) = 'H'
retVal = "Header"
CASE LEFT(ALLTRIM(pType),1) = 'I'
retVal = "Index"
CASE LEFT(ALLTRIM(pType),1) = 'L'
retVal = "Library"
CASE LEFT(ALLTRIM(pType),1) = 'M'
retVal = "Menu"
CASE LEFT(ALLTRIM(pType),1) = 'P'
retVal = "Program"
CASE LEFT(ALLTRIM(pType),1) = 'Q'
retVal = "Query"
CASE LEFT(ALLTRIM(pType),1) = 'R'
retVal = "Report Form"
CASE LEFT(ALLTRIM(pType),1) = 's'
retVal = "Screen Table"
CASE LEFT(ALLTRIM(pType),1) = 'S'
retVal = "Screen Program"
CASE LEFT(ALLTRIM(pType),1) = 'T'
retVal = "Configuration File"
CASE LEFT(ALLTRIM(pType),1) = 'x'
retVal = "File"
CASE LEFT(ALLTRIM(pType),1) = 'X'
retVal = "File"
CASE LEFT(ALLTRIM(pType),1) = 'Z'
retVal = "Application"
ENDCASE
RETURN retVal