ここ暫くSpreadやらInputManやらを業務で使っていての、ちょっとした感想。
便利な物があるなあと感じる反面、なんかちょっと惜しいぞと思う所があります。
Spreadの機能としてファイル出力がサポートされていまして、今回はその話。
CSVを吐き出す際、カンマや改行コードを含む場合はダブルクオーテーションを付けてくれたりと、結構便利なんです。
…が、しかし。
改行の入ったセルを出力する際、右側のダブルクオーテーションが無いというバグめいた動作を発見してしまいました。
どの位置のセルでも起きるのかどうかまでは検証していないので定かじゃないんですが、私が試した時の状況は、右端のセルに改行を含んだデータを入れた場合でした。
ちなみに同じものをCSVではなくExcelファイルに出力した時は、ちゃんと該当箇所は1セルに収まっていました。
今回私が受け持っていた業務上はCSVでもExcelでもOKという話でして、元請さんと相談の結果Excelでやる事になりました。
テーマ:システム開発 - ジャンル:コンピュータ
- 2008/08/20(水) 15:45:56|
- Spread
-
| トラックバック:0
-
| コメント:0
前回記事の「2枚のスプレッドを貼り合せて合計を常時表示させる」話について。
結局その方法を採用する以外に選択肢が浮かばず、現状そんな感じでやっております。
さて、これで縦スクロールの問題は目出度く解決!
…と、言いたいところなのですが。
今度は横スクロールに問題発生。
縦に2枚を貼りあわせ、明細のセル値の変更に連動させる形で合計の値を更新する所までは処理できました。セル値と同様、列幅の変更イベントは存在しているようで、明細スプレッド列幅変更に合わせる事も出来ました。
が、しかし。出来ていないのが「横スクロール」。
イベントが見当たらないんです。Spread様。どうしてでしょう。
困ってます。
助けてください。
…と言って助けてくれるSpread様ではないので、とりあえず元請の担当者様に相談しました。
結局のところ、
・ スクロールは縦のみにしましょう
・ 列幅は変更できるようにしといて欲しいな
・ 既定の列幅が(横スクロールなしで)画面内に収まるように調整しましょう
という玉虫色な妥協点を提示していただき、明細の「¥」マークを外す事になりました。
でも本当は横スクロール欲しいんですよね…。
助言は大歓迎です。
テーマ:プログラミング - ジャンル:コンピュータ
- 2008/08/14(木) 18:58:57|
- Spread
-
| トラックバック:0
-
| コメント:2
最近ちょっと職安ネタが続いてしまいましたが、そろそろ軌道修正しなきゃですね。
まあ相変わらずシュミグラマーとしては臨時休業状態でして、バイトでやっている方のお話です。
現在、ある企業向けの売上管理ツールを作っておりまして、開発環境はVB6です。
まあ色んな所で.NET化が進んでいる昨今ですが、やっぱり小規模かつ短期間の開発案件になると「ノウハウの蓄積があるVB6でやりたい」という方向に進みがちでして。
そんなこんなで、依頼を受けた時点で「VB6.0で作る」ことは既に決定事項でした。
さて、私自身もVB6.0での開発経験は多少あり、それほど心配事は無かったのですが、今回初めて「Spread」というものを使うことになりました。
まあ、私自身が初めて使う、というだけで、会社としては結構使い慣れたシロモノ。
使ったこと無いんですが…と言ってみたところ、サンプルソースなども提供いただけました。
で、そのSpread。
どんな物かというと、Excelのワークシートみたいなコントロールで、VB6.0に対応したものはMicrosoftからは提供されていないようです。(.NETの2005辺りになるとDataGridだとか、あります)
現行は7.0Jのようですね。今回使用するのは確か6.0Jだったかな…。
http://www.grapecity.com/Japan/support/database/P1_295.htmコマンドボタンもコンボボックスもセルに配置できるし、まあ特に問題もなく作業は進んでいたのですが…。
一日の売上をそのSpreadに入力する画面を作っている時に、問題発生。
まず、何件まで入力可能にするかという事になりまして、100件でいきましょうという事に決定。
次に、手動で行の追加や削除を行なうか、という事になりまして、いや、もう固定で100行出しましょうという事に決定。
さてここで問題。
「入力が100件とかになったら、縦にスクロールしますよね。一番下の『合計』の行、下までスクロールしないと見えない仕様になっちゃってもOKですか?」
えー、ご想像の通り、「いやそれは困る」との御回答。
で、どうするよ。という話になったわけです。
上から何行か、とか、左から何列かをスクロールさせず常時表示させる事はSpreadの機能で実現可能なのですが、同じ事を「一番下の行」でやる事は、どうも出来ない雰囲気。
【解決編】
もう一枚Spreadを画面に貼り付けて、合計の1行だけを表示させる。
明細のSpreadのセル値が変わった時のイベントを拾って、合計のSpreadのセル値を更新する。
という仕掛けで、何とか「それっぽい」動きが出来るようになりました。
なんか、こう…もうちょっとスマートに実現できる方法が無いものかと思いましたが、この問題ばっかりに時間を割いてもいられないので。
もし、もっといい方法をご存知の方がいらっしゃいましたら、アドバイスをいただけると嬉しい今日この頃です。
- 2008/08/06(水) 14:21:30|
- Spread
-
| トラックバック:0
-
| コメント:0