SAS: синхронизация файла autoexec / применение форматов к наборам данных для просмотра - PullRequest
1 голос
/ 12 февраля 2009

Вот фон. Извините, что так долго:
Я занимаюсь программированием SAS для 3 разных проектов. Каждый проект имеет свою основную папку проекта. Каждая основная папка проекта содержит папку форматов (которая содержит каталог форматов), а затем несколько других папок, каждая из которых содержит программы и наборы данных. Я делаю большую часть своей работы в пакетном режиме, поэтому SAS обычно не работает. Тем не менее, иногда я хочу открыть набор данных в SAS, чтобы взглянуть на что-то конкретное. Когда я это делаю, SAS не знает, где искать соответствующий каталог форматов, потому что каталоги форматов никогда не находятся в той же папке, что и наборы данных. Поэтому в настоящее время я использую файл autoexec.sas, в котором указана опция nofmterr, чтобы мои наборы данных открывались.

Я действительно хотел бы, однако, иметь возможность открывать мои наборы данных с соответствующим форматированием. Я написал другую программу autoexec, которая использует диалоговое окно, которое спрашивает меня, над каким проектом я работаю, а затем соответственно устанавливает параметр fmtsearch. Это прекрасно работает, если я хочу сначала открыть SAS, а затем открыть набор данных. Но если SAS еще не запущен и я пытаюсь открыть набор данных, дважды щелкнув по нему, вот что происходит: файл autoexec запускается, затем SAS пытается открыть набор данных до того, как файл autoexec завершит работу. Поэтому, если у меня установлено nofmterr, набор данных откроется без форматов, или если у меня не установлено nofmterr, набор данных не откроется вообще.

Итак, вот мой вопрос: есть ли способ заставить SAS ждать, пока файл autoexec завершит работу, прежде чем он попытается открыть набор данных? Или есть другой способ обойти проблему? (Я не хочу добавлять все 3 файла формата в опцию fmtsearch, потому что разные проекты могут иметь разные форматы с одинаковыми именами.)

1 Ответ

1 голос
/ 12 февраля 2009

Поскольку набор данных открывается без какого-либо кода, выполняемого до этого, это становится довольно сложно. Можно ли открыть набор данных в качестве параметра кода. Я представляю что-то вроде этого:

commandline:/sas ./opends.sas -sysparm "/this/is/the/dataset/location_and_name"

Ваш код "opends.sas" будет включать всю информацию о форматировании релевантности для вашего проекта.

Вы даже можете написать скрипт (bash или batch в зависимости от ОС), который имеет все предопределенное выше, и вы можете вызвать скрипт с набором данных в качестве параметра.

Я знаю, что это кажется громоздким, но это первое решение, которое я мог бы придумать, основываясь на вашем описании.

- добавлено 20090218

Сценарий opends.sas должен принимать переменную sysparm и, в зависимости от операционной системы, распечатывать набор данных или вводить команду, чтобы открыть набор данных.

...