スケジュールナースGUIは、約20種からなる表で制約系を作っています。制約系がFixし、毎月の運用の場面の話です。
毎月の変更部はExcelで作成している場合が多いと思います。そうなるとExcelからスケジュールナース表へのインポートがどこかで必要になり、それをインポートしたい要求も出てくると思います。
問題は、独自のユーザフォーマットとスケジュールナースの表フォーマット変換です。そこは割り切りユーザ側でVBA等を使い、スケジュールナース表に合わせるものとします。
次が手順です。
1)All Export機能により、制約系の表の全てをExcelに出力します。
2)VBAユーザは、必要なシートを残し1)Excelシートを削除します。
3)スケジュールナースの表フォーマットは2)で分かるので、必要な変更処理を毎月行います。
4)スケジュールナースは、毎月の変更Excelシート3)を一回Importします。
というものです。All Exportというのは、実は少し嘘があり、マクロと行制約はサポートしません。が、それ以外は、変更に必要な表シートだけをインポート出来るようになります。
例で見ます。
Import/Exportセクションで、下記のように 表-Excel入出力 というタブが追加されています。
表をExcelに出力をクリックし、ファイル名を決めて出力させます。
すると、全表名がExcelファイルに出力されます。シート名はインポート時、表名として必要となるので変えないでください。不必要なシートが一杯あると思いますので、CTRLを押しながら削除してください。
今月分を編集します。ヘッダー部分(日付、名前等)は見ていません。なので、日付や名前の変更を行っても無効です。単に、制約表示日ー制約終了日間分かつスタッフ分のデータをスケジュールナースの表の項目順にインポートすることを想定しています。なので、毎月の日付等は、Formulaで見易くしてもよいです。(Formulaは、サポートしません。)
スケジュールナースのC#コードは、以下でコメントにExcelColorIndexを載せています。
public ExcelKnownColors get_back_level_color(int level)
{
switch (level)
{
case (0): return ExcelKnownColors.White;
case (1): return ExcelKnownColors.Custom18;//Color Index 19
case (2): return ExcelKnownColors.Custom33;//Color Index 34
case (3): return ExcelKnownColors.Custom34;//Color Index 35;
case (4): return ExcelKnownColors.Custom39;//Color Index 40
case (5): return ExcelKnownColors.Yellow;//Color Index 6
case (6): return ExcelKnownColors.Cyan;//Color Index 8 ;
case (7): return ExcelKnownColors.LightGreen;//Color Index 4
default:
return ExcelKnownColors.White;
}
}
また、ラベルが重複している場合は、シフト名DOT(.)ラベル でExportされるので、その形式で指定すれば、Importも正しく行うことが出来ます。
0 件のコメント:
コメントを投稿