[あすかぜ・ねっと]あすかぜ・ねっと自作ソフトCassava > サポート掲示板

Cassava Editor サポート掲示板

スレッド一覧に戻る返信

[179] 各行から集計して集計行を差し込みたいのですが…

もも [2010/02/23 19:03:55]

はじめまして

a表をb表に変換するようなことは可能でしょうか?

a表
注文番号,行,商品CD,商品名,数量,単価(税込),金額(税込)
1,1,CD01,カミソリ,2,105,210
1,2,CD12,石鹸セット,1,1050,1050
2,1,CD31,電池,2,105,210
3,1,CD20,インク,5,315,1575

b表
注文番号,行,商品CD,商品名,数量,単価,金額
1,1,CD01,カミソリ,2,100,200
1,2,CD12,石鹸セット,1,1000,1000
1,3,xxxx,消費税,1,60,60
2,1,CD31,電池,2,100,200
2,2,xxxx,消費税,1,10,10
3,1,CD20,インク,5,300,1500
3,2,xxxx,消費税,1,75,75


今まで受付データを手入力で売上管理プログラムに再登録していたのを
csv経由にして省力化したいのですが、

a表=受付のプログラムは総額表示なので単価が税込み
から、
b表=売上管理のプログラムは昔のままなので消費税が1行に独立している
への変換が必要そうなので簡単にできそうな環境を探して彷徨ってます。

(Excelは["]出力や誤変換(住所番地が日付に化ける)等、あまり関係ないところで
手を取られるので挫折しましたorz)

不躾なお願いで恐縮ですが、もし可能ならサンプルソースをご提示いただけると非常に
助かります。

よろしくお願いします。

Re: [179] 各行から集計して集計行を差し込みたいのですが…

あすかぜ [2010/02/23 20:49:45]

マクロ書いてみました。
http://www.asukaze.net/soft/cassava/macro/asukaze/bbs179_20100223.cms

こんな感じで動くでしょうか?

Re: [179] 各行から集計して集計行を差し込みたいのですが…

もも [2010/02/24 19:04:41]

タイトル行の修正までしていただきありがとうございます。

こういう細かいところも溜まると妙に面倒になってくるので
見本が有ると非常にありがたいです。

所で、Cassavaは、 forループ内のyは数字を勝手に
書き換えても問題無いものでしょうか?
消費税以外に送料包装コメント等、
複数行増える可能性があるので、3行追加してy=y+3とか大丈夫でしょうか?

Re: [179] 各行から集計して集計行を差し込みたいのですが…

あすかぜ [2010/02/24 19:56:56]

はい、for 文の扱いは他の C 系言語と同じく
繰り返しごとに式を評価しているだけなので、
ループ変数を勝手に書き換えても問題ありません。
(無限ループにならないように気をつける必要はありますが)

他にも気になる点やわからない点などあればご指摘ください。

Re: [179] 各行から集計して集計行を差し込みたいのですが…

もも [2010/02/26 20:04:16]

ご回答ありがとうございます。for文の挙動っていろんなソフトで迷いますよね…

ところで新たな問題が見つかりました。
こういう場合、ツリー下にした方がいいのか新タイトルで新しく立てた方がいいのかわからないので一応こちらへ。

どうやら運用上の判断で商品コードを修正・追加しているらしく↑のa表とb表で商品CDが違うというorz
差異は手入力時に吸収していたのでいままでわからなかったようで。

そこでcassavaにはExcelのvlookupのような機能はないでしょうか?
もしくは機能追加をお願いしたいのですが…

昔、いくつかcsvエディタやビュアを使ってみて困ったのが、
大抵のcsvは正規化されているので、コードの羅列になって
意味わからんという事が起こりがちでしたので、
vlookupのような機能を、検索・置換の一形態として、
またマクロでの代入処理に使えるようになるとうれしいのですが…

生存期間はマクロもしくはcassavaの終了時までで
x = VLOOKUP(cd,SyohinMas.csv,2,FALSE)
とかしたら裏でSQLiteにcsv投げ込んで読んでくるとか
…すいません、知ったかで適当書いてます


それと、せっかく正規表現が使えるのに最小一致や()が使えないのは
勿体ないので是非実装をお願いします。
自分はテキストはサクラエディタというのを使ったりrubyを挫折したりなので
鬼車やbregexp.dllを利用すれば…とか簡単に感じるのですが、
端で見るほど簡単では無いのでしょうね…
こちらはcassavaからテキストエディタにコピペで投げて処理可能ですので、
お手すきなときにでもお願いします。

Re: [179] 各行から集計して集計行を差し込みたいのですが…

あすかぜ [2010/02/26 21:52:57]

スレッドを分けた方が分かりやすそうなので新しくスレッドをたてておきました。

[180] VLOOKUP 関数のような機能がほしい
http://www.asukaze.net/soft/cassava/bbs/index.cgi?t=180
[181] 正規表現の表現力の強化
http://www.asukaze.net/soft/cassava/bbs/index.cgi?t=181

返事はそれぞれのスレッドで。

スレッド一覧に戻る返信