2011年3月31日木曜日

SRX, スプラッシュ画面

今夜の作業は、スプラッシュの画面を実装です。
  • 起動時のスプラッシュ画面を表
  • 置換の機能を実装
  • 検索と置換のコードを共通化して整理
それと、明日以降の作業をメモしておきます。
  • コードを表示し実験的な検索ができる機能を検討
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
  • プロジェクトファイルを保存する処理を追加(今は、Saveしていない)
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • コードが改行で終わっていないときの処理を追加
  • ステータスバーに表示する情報を検討
スプラッシュ画面

2011年3月29日火曜日

SRX, 画面イメージ(2)

今夜もSRXの開発で、コードを叩いています。TMS SoftwareのAdvStringGridを導入いたおかげで、開発のスピードが上がっています。個人的な記録のため、今夜、実装した機能をメモしておきます。

  • Matching Testの画面にPopupMenuを実装
  • Matching Testの結果をExcelに出力する機能を実装
  • Replaceのタブを追加し、AdvStringGridを配置
  • Replaceタブに、PopupMenuとボタンを配置
  • ReplaceタブのグリッドをExcelに出力する機能を実装
  • ReplaceタブのPopupMenuにクリアの機能を実装

それと、明日以降の作業をメモしておきます。
  • 置換の機能を実装
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • コードが改行で終わっていないときの処理を追加
  • 検索と置換のコードを共通化して整理
  • 起動時のスプラッシュ画面を表示
  • ステータスバーに表示する情報を検討
置換のタブにポップアップメニューを実装




SRX, 画面イメージ

新しいツールSRXを開発中です。週末、作りかけの画面とコードを捨てて新しくコードを書き直しました。次にやることをメモしておきます。

 
  • Matching Testの画面にPopupMenuを実装
  • Matchingの結果をExcelに出力する機能を実装
  • 置換を実行するタブを追加
  • 置換の実行と結果を確認するビューを実装
  • 置換の画面にPopupMenuを実装
  • 置換の結果をExcelに出力する機能を実装
  • EGPだけでなく、.SASのファイルも処理できるように機能追加

 
SRX 開発中の画面イメージ

2011年3月11日金曜日

WARNING: 入力データセットによって、変数 VAR に複数の長さが指定されました。

SAS8.2からSAS9.2(TS2M3)へのバージョンアップを行っていますが、タイトルの警告が出るようになりました。調べてみると、9.2からの新しい機能です。メッセージを抑制するには、以下のオプションを指定してください。
options varlenchk=nowarn;
警告を再現するには、以下のコードを実行してください。
data foo;
format name $7.;
set sashelp.class;
run;
SAS Notes:
http://support.sas.com/kb/37/102.html

2011年3月6日日曜日

SASコードをキックするLauncher

とある仕事で開発したくなったものメモしておきます。
  • SASコードをバッチ実行するランチャー
  • 実行後にログを検査して、ERROR、WARNINGをカウントしてくれる。
  • 実行前にダイアログを表示して、入力パラメータを指定できる。
  • エラーが起きた場合はログを表示する。
  • 入力パラメータで指定できるのはマクロ変数、FILENAMEステートメント
  • 入力パラメータは可変、設定で変更できる
DMSの画面って、分析者はともかく、事務の人には使いにくいのです。

原文参照の機能を検討中

前からSAS Log Utilityに原文参照の機能が欲しいと思っていました。試しに習作のコードを書いて、RichTextに表示させています。
原文参照のサンプル

2011年3月1日火曜日

アプリケーションのルートフォルダ指定には環境変数を使う

SASを使ったとあるシステムの移行を準備していますが、ルートフォルダの指定には環境変数を使うと移行しやすいです。良くあるパターンが、マクロでアプリケーションやデータのルートを指定する方法。これが良くない。マクロを使ってルートフォルダを指定する方法は、シングルクォートでは展開されないという欠点があります。

options set=DATROOT 'G:\data';
libname mylib '!DATAROOT\mylib';

こんな具合に書く方が、分かりやすく、直しやすいです。5年前に書いたコードを別システムに移行していますが、あっさりと動いて満足です。