2022年7月17日日曜日

All Export機能追加

 スケジュールナース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は、サポートしません。)


予定入力でソフト化したい場合は、ColorIndexで指定しますが、上記のように、ソフトレベル1-7を割り当てExportさせれば、当該色が分かります。

スケジュールナースの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 件のコメント:

コメントを投稿