САС:время автоматического выполнения файла/применения форматов к наборам данных для просмотра

StackOverflow https://stackoverflow.com/questions/541505

  •  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 и, в зависимости от операционной системы, он должен распечатать набор данных или выдать команду для открытия набора данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top