САС:время автоматического выполнения файла/применения форматов к наборам данных для просмотра
-
23-08-2019 - |
Вопрос
Вот предыстория.Извините, что так долго:
Я занимаюсь программированием SAS для трех разных проектов.Каждый проект имеет свою собственную основную папку проекта.Каждая основная папка проекта содержит папку форматов (которая содержит каталог форматов), а затем несколько других папок, каждая из которых содержит программы и наборы данных.Большую часть работы я выполняю в пакетном режиме, поэтому SAS обычно не открывается.Однако иногда мне хочется открыть набор данных в SAS, чтобы посмотреть что-то конкретное.Когда я это делаю, SAS не знает, где искать соответствующий каталог формата, поскольку каталоги форматов никогда не находятся в той же папке, что и наборы данных.Поэтому в настоящее время я использую файл autoexec.sas, в котором указан nofmterr
вариант, чтобы мои наборы данных открывались.
Однако мне бы очень хотелось иметь возможность открывать свои наборы данных в соответствующем форматировании.Я написал другую программу autoexec, которая использует диалоговое окно, которое спрашивает меня, над каким проектом я работаю, а затем устанавливает fmtsearch
вариант соответственно.Это прекрасно работает, если я хочу сначала открыть SAS, а затем открыть набор данных.Но если SAS еще не запущен и я пытаюсь открыть набор данных, дважды щелкнув по нему, происходит вот что:файл autoexec начинает работать, затем SAS пытается открыть набор данных до завершения работы файла autoexec.Итак, если у меня есть nofmterr
установлен, набор данных откроется без форматов, или если у меня их нет nofmterr
установлен, набор данных вообще не откроется.
Итак, вот мой вопрос:Есть ли способ заставить SAS дождаться завершения работы файла autoexec, прежде чем он попытается открыть набор данных?Или есть другой способ обойти проблему?(Я не хочу добавлять все 3 файла формата в fmtsearch
вариант, поскольку разные проекты могут иметь разные форматы с одним и тем же именем.)
Решение
Поскольку набор данных открывается без предварительного запуска кода, это становится довольно сложно.Можно ли открыть набор данных как параметр кода.Я представляю себе что-то вроде этого:
commandline:/sas ./opends.sas -sysparm "/this/is/the/dataset/location_and_name"
Ваш код «opends.sas» будет включать всю необходимую информацию о форматировании для вашего проекта.
Вы даже можете написать сценарий (bash или пакетный, в зависимости от ОС), в котором все вышеперечисленное предопределено, и вы можете вызвать сценарий с набором данных в качестве параметра.
Я знаю, что это кажется громоздким, но это первое решение, которое я смог придумать на основе вашего описания.
--Добавлено 20090218
Сценарий opends.sas должен принимать переменную sysparm и, в зависимости от операционной системы, он должен распечатать набор данных или выдать команду для открытия набора данных.