ここではCSVManagerの開発について書いていきます。
実装したい機能を列挙していって、それを実現するにはどうすればよいのか。開発側の視点から記事を書いていきたいと思っています。
⇒ CSVManagerのユーザーマニュアルはこちら(現在準備中です)
そもそも何をするソフト?
基本的にはCSVデータを扱うためのソフトになります。
通常はエクセルとかリブレオフィスなどこの手の専用ソフトを使うのが筋だとは思うのですが、なかなか起動に時間がかかったり、作業中にプチフリーズ(プチフリ)といって短時間ですがフリーズするということがあったりします。
使っているPCが古いからということもあるとは思いますが、もう少し使い勝手が良いものを自作してみようと思って開発を企画しました。
単純にCSVデータを並べるだけならエクセルでも良いんですが、データベース的に使用するにはそのままではなかなか辛いものがあります。
1組のデータの一覧性が悪かったり、追加・修正が面倒くさいとか。
なので、このソフトでは簡易データベース的な側面を多少強化できればと考えています。
機能面からの分類と記事へのリンク
基本的なことも含めて機能面からの分類をしていきます。
利用目的
・家計簿
・習慣トラッカー
・サイト管理
。。。など。
基本的な機能
・タブを用いてCSVデータを管理する(⇒ CSVグループ)
・CSVグループを1つのタブで管理する
⇒ 1つのタブに複数のタブが存在する。それが複数ある。
・スクリプト機能を使用してデータ処理の自動化を可能にする
・1行(あるいは列)を1つのデータ組とみなしデータベース的に使用する。
⇒ それらの構成要素にビジュアル的に簡単にアクセスできるようにする
内部関係
・データを内部的にどのように扱うか?を決定する
表示関係
・使用するコンポーネントはどうするか?
⇒ StringGridかVirtualTreeか
・セルの結合、行と列の固定は実装したい
⇒ データベース的な用途を重視する場合は優先度は低い
操作関係
・ユーザーが項目を指定できるようにする
⇒ データベース的な使用の際にコントロールパネルをユーザーが作りやすいようにする
その他
・スクリプト機能は実装したい
ToDoと対策と記事へのリンク
ToDo内容 | 状態 | 備考 |
データの内部形式を決定 | 未着手 |
・位置情報(Col,Row)を持ったレコード ・セルの内容を保持するレコード が必要。これらとTObjectDictionaryを使って処理。 問題はセルの内容に属性を含めた場合、属性の重複が多数発生してしまうこと。 |
スクリプト機能の実装 | 着手 | 別途スクリプトエディタを作成し、各種開発ソフトウェアに組み込めるようにする |
表示コンポーネントの決定 | 完了 | StringGridかVirtualTreeかを選択 ⇒ StringGridで決定 |
行と列の固定の実装 | 未着手 | 固定部分とそれ以外のとの境目に区切り線を入れる |
ユーザーが項目を指定できるようにする | 未着手 | カード型データベース的に使用する際のフィールドをユーザーが自由に設定できるようにするということ |
開発履歴
日付 | バージョン | 新機能・修正内容 |