HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
0225
けんけんCSVデータへの書き込み、保存5解決


けんけん

リンク

2023/2/25(Sat) 03:27:34|NO.99125

決算ソフトを作りたくていろいろ試行錯誤したのですが、VBAの様にはうまくいかず。。
GUIが簡単なだけにプログラミングに大分苦悩しております。

ウィンドウの項目に

1.年月日 input ;自動取得で入力
2.管理番号登録 input;8桁自動割り振り
3.取引先 combox ;会社名のリスト
4.商品タイトルの入力 button ;クリックしたら新規ウィンドウを開き20項目ほど入力可 
5.仕入価格 input ; 手動入力

ここまでレイアウトだけは素人ながらなんとか作れました。。
ここからすべての項目を入力した後、新規CSVに保存したいと考えております。
ファイル名は月ごとに新しいCSVが発行できたら幸いです。

a列(年月日) b列(管理番号) c列(取引先)  d列(仕入価格) e列(商品タイトルID)

a列は自動取得できましたが、CSVの保存ができません。
b列はCSVを参照して00000001〜から順番に番号を振りたいです。
c列はプルダウンより選択できるようにしたいです。(希望ですがこちらも 顧客リスト.CSV(手動で追加します。) からリストを引っ張れっると助かります。)
d列は手入力ですa列と同様CSVの保存ができません。
e列は商品IDを新規ウィンドウで入力し20項目を一度に保存して、CSV化したいです。

CSVの操作関係は読み込みばかりしか出ず、なかなかうまくいきません。
この動作がHSPで難しい場合、はっきり無理といっていただけたら幸いです。
あきらめてVBAで作ります。。

もしご教授いただけましたらよろしくお願いいたします。



この記事に返信する


buhio

リンク

2023/2/25(Sat) 11:36:19|NO.99126

こんにちわ

CSVで保存することは可能だと思いますが、経験上、業務システムを作成する場合、VBAならAccess、HSPならsqleleプラグインを推奨いたします。
顧客リストを参照したり、データの保存や追加削除は、リレーショナルデータベースを使うほうが良いです。SQLを理解する必要がありますが、どの言語でもほぼ共通なので、損はしないはずです。
ご質問のソフト内容はまさにそうです。

CSVで全部やろうとすると、大変だと思いますが、、、単純な物ならExcelだけで出来てしまうかも
HSPでやりたいということなら、http://hsp.tv/play/pforum.php?mode=pastwch&num=45985 このへんが参考になるかもしれません。

HSPをお勧めしたいけど、、会計系業務ソフトは、、バグって計算間違ったままだと死にます。。
質問の直接回答でないかもしれませんが、ごめんなさい。わたしの私見です。



youdai

リンク

2023/2/25(Sat) 12:55:39|NO.99127

自分もsqleleプラグインをお勧めします。
sqlite(sqleleプラグイン)でならば便利なデータ処理機能が最初から実装されていますし、質問内容でやろうとしていることがCSVを直接操作するより高速に処理できると思います。



ze-na

リンク

2023/2/26(Sun) 09:44:45|NO.99128

けんけん さん

>CSVの操作関係は読み込みばかりしか出ず、なかなかうまくいきません。
>この動作がHSPで難しい場合、はっきり無理といっていただけたら幸いです。

HSP3にて csvデータの書き込みや保存をすることは可能です。
過去ログの検索にありますスレッドが役に立つのではないでしょうか?

http://hsp.tv/play/pforum.php?mode=pastwch&num=82038
csvの読込みと書込み

http://hsp.tv/play/pforum.php?mode=pastwch&num=82632
エクセルのデータ読込と書き込みについて教えてください


HSP3は、csv操作関係に特化した命令が充実しているわけではないです。
(csvデータ関連の hspdaモジュールはありますが。。)

データ処理レベルで言いますと、csvデータそのものは
区切りやダブルクオート付きの改行文字列のテキストファイルでしかないので
通常の文字列処理命令やテキスト処理命令で実現できると思います。


a列=strf("%04d/%02d/%02d",gettime(0),gettime(1),gettime(3)) b列="12345678" c列="ABCD株式会社" d列=1980 e列="EFGH0001" a行=a列+","+b列+","+c列+","+str(d列)+","+e列 mes "格納["+a行+"]" sdim csvデータ notesel csvデータ noteadd a行 fnパス=dir_cur+"\\"+strf("決算%s.csv",strmid(a列,5,2)) notesave fnパス mes "保存["+fnパス+"]" exec "notepad.exe \""+fnパス+"\" /A"



けんけん

リンク

2023/3/4(Sat) 23:58:59|NO.99158

>>buhio,youdai様
ご指導ありがとうございます。
やはりSQLですよね。これが知れただけでも自分にとって大きな進歩になります。
少しかじったことがあるのでこの機会にSQlele学んでみようと思います。
処理速度が速い方がこの会計ソフト作る上でも考慮したいことだったので知れてよかったです。
ありがとうございます。



けんけん

リンク

2023/3/5(Sun) 00:14:58|NO.99159

>>ze-na
リンクの方ありがとうございます。
こちら見てみたのですが、素人の自分からするとハードルが少し高かったみたいです。
こちらを参考に試行錯誤しましたが、結局諦めてしまいました。。

しかしいただいたサンプルコードを見てみると自分のやりたいことの大枠がクリアされておりましたので
大分答えに近づきました!

こちらも参考にさせていただき、もう少し頑張ってみます!


皆様の親切な回答に感謝しております。
ありがとうございました!



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.99125への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2023(c) All rights reserved.