効率的なデータ処理と印刷の方法について

このQ&Aのポイント
  • 開発システムにおけるデータ処理と印刷方法の改善を考える。
  • プログラムAでデータを抽出し、プログラムBで集計処理を行い、Excelで出力する。
  • プログラムBについては、日付の入力方法について異なる意見がある。意見1はプログラムBで日付の入力を確認し、意見2はプログラムAで指定した日付をそのまま使うというもの。
回答を見る
  • ベストアンサー

優れたユーザインタフェースを考える

とあるシステムを開発するにあたり、 以下のような意見が出たので、みなさんの ご意見を聞いてみたいと思います。 状況としては、以下のようになります。 1.プログラムA(A.exe)で、データを抽出する。  抽出データは年月日を指定し、CSVファイル  を任意のフォルダに作成する。 2.プログラムB(b.exe)で、「1.」で作成した  CSVファイルを取り込み、集計処理を  行った結果を別のCSVファイルへ出力する。 3.「2.」で出力されたCSVをEXCELで  開き、印刷を行う 4.印刷された帳票を確認して、所定の部署へ  帳票を廻す さて、ここで、「2.」のプログラムBで、 2通りの意見がでました。 ・意見1 「1.」で出力されたCSVファイルの日付が正当な ものであるかを確認するために、プログラムBでは いつのデータを処理しようとしているのか 画面上で日付の入力を促し、正しいデータであることを 確認させるべきである。   主張:印刷処理の時点で、抽出の誤りに気づいたら      再度最初から作業をやり直す必要がある。      抽出時に日付の指定が間違っていれば、      ここで再度チェックできる。 ・意見2 「1.」で出力されたCSVファイルの日付は、 「1.」で指定された日付であるため、再度プログラムB で日付を入力する必要はない。   主張:抽出の時点で日付の指定を行っており、      さらにプログラムBで日付を入力させるのは      あまりに手間である。データの日付をそのまま印字      すればよいはずだ。      また、誤りがあれば印刷時に気づくだろう。 どちらの言い分も正しいような気がしますが みなさんの意見はどうでしょうか・・・

質問者が選んだベストアンサー

  • ベストアンサー
noname#223623
noname#223623
回答No.3

#2です。補足ありがとうございます。実際にお会いしてお話すればすぐに回答できることかもしれませんが、こういうところでは難しいですね。なかなか全体像が見えてきません。 極端な例で回答すると次のようになります。  * 1.および2.の処理はミスをしても何度でもやり直せる。他部署、他のシステムなどへの影響はない  * 間違って印刷したとしても、それはたかだか数枚程度の文書である  * 印刷物を見れば間違いはすぐにわかる というのであれば、特にエラー処理は行わない。印刷物を確認して終わりです。逆に  * 1.および2.の処理でミスをした場合、基幹業務が止まってしまうなど重大な事故になりうる。場合によって莫大な損害が発生する  * 大量の印刷物が大量(千枚とか1万枚、あるいはもっと)である  * 印刷物を見てもそれが間違っていると判断するのはむずかしい この場合は、しつこいほどチェックを入れるでしょう。2,に限らず、処理を行うたびに確認させると思います。とはいっても、単純にメッセージを出すだけではだめでしょうね。昨年の瑞穂証券の誤発注のように、人間エラーにも慣れますから。 結局、この間のどこかに収まるとは思いますが、私としてはまだ「状況による」という回答しかできません。おそらく他の方々も同じでしょう。一般論としては言えると思いますが、それが今回のシステムに当てはまるかはわかりませんね。 最後に#2の補足を読んで疑問に思ったことを簡単に書きます。 > >* 2.で出力されるファイル名からは日付がわかりますか > エンドユーザが任意の名称をつけます。 任意の名称をつけるのがいいのかどうか迷うところですが、現在までの情報では判断できないので保留します。決定事項で変えられないのかもしれないですし。 > >* 正当な日付とはなんですか > エンドユーザは、「1.」で抽出するとき、 > 2006.04.01 ~ 2006.04.30 > のような抽出を指示します。 処理の対象となる月の、最初の日から最後の日までを期間とするという意味でしょうか。それともたまたま1日から30日であって、11日から23日とか任意の期間で抽出することもあるんでしょうか。 > >* 間違った場合の影響は? > 出力ファイルは上書きされます。 > したがって、印刷物の年月が変わることになります。 データそのものは上書きされても問題ないということですか。言い換えると、もう一度やり直せるということですか。 他にも疑問はありますが、今回はこの辺に致します。よろしければさらに補足してください。今までの情報では、何が自動的に決まるのか、何が任意に決められるのかよくわかりませんので、その辺りの情報が知りたいです。実際のオペレーションも想像できないので、詳細がわかるとうれしいです。

haniue
質問者

お礼

今回のことはわたし自身、いろいろ考えるところが ありました。 masa_pee さんの考慮している箇所は 非常に的を得ていると思います。 更なる詳細をお伝えすることはできますが、 ここまでとしたいと思います。 非常に参考になる意見、ありがとうございました。

その他の回答 (2)

noname#223623
noname#223623
回答No.2

回答しようと思ったのですが状況によって変わるのでもう少し情報ください。 * 2.で出力されるファイル名からは日付がわかりますか(shukei010203.csvとか)   日付がわかるなら2.でなくて3.でチェックするべきではないですか。2.で正しく処理しても3.でファイルを間違えたら意味ないですよね。 * 正当な日付とはなんですか   処理の対象が、必ず当日のデータであるとか、昨日のデータであるとかなら、わざわざ入力しなくても自動で決めてしまえばいいわけですよね(前営業日などは休日をはさむと工夫が要りますけどね)。   任意の日付で出せるとすると何がチェック基準? * 間違った場合の影響は?   昨日と今日で同じ日付を処理した場合、出力ファイルが上書きされますよね。その場合、出力結果は同じなのでしょうか。それとも、結果が変わってしまうので上書きしてはいけないのでしょうか? * 2.はGUIアプリケーションですか。CUIですか   場合によっては対応が変わるので参考に聞かせてください。 自分で作るとして考えると、いつ出力しても結果が変わらない、2.の出力ファイル名には日付が含まれていると前提すると、2.でチェックはしません。やるとすれば3.かな。できるなら、エラーをチェックするというより、エラーを起こさせないという考えでやるかもしれません。 どちらにせよ、一連の作業の流れで考えるべき問題だと思います。

haniue
質問者

補足

回答ありがとうございます。 補足させていだたきます。 >* 2.で出力されるファイル名からは日付がわかりますか エンドユーザが任意の名称をつけます。 >* 正当な日付とはなんですか エンドユーザは、「1.」で抽出するとき、 2006.04.01 ~ 2006.04.30 のような抽出を指示します。 「2.」では、2006.04と入力して、ちゃんと 2006.04 のデータであることを確認するというものです。 >* 間違った場合の影響は? 出力ファイルは上書きされます。 したがって、印刷物の年月が変わることになります。 >* 2.はGUIアプリケーションですか。CUIですか GUIです。 一応、可能性だけで考えると、 「1.」で、「私は今から2006.04のデータを集計して印刷しよう」ということで処理を行うが、何か勘違いやら、抽出指示で誤って「2006.03」のデータを抽出してしまう =>「2.」で取り込むときに「2006.04」と指定すれば、間違って抽出した「2006.03」のデータを印刷しようとしてしまった場合、エラーとしてチェックできる という流れになると思います。

  • yui_o
  • ベストアンサー率38% (1217/3131)
回答No.1

個人的には意見1をとります。 最初のうちは、面倒に思われてしまうかもしれませんが慣れてくることによってWチェックの意味合いが出てくるからです。 というのも、最近の大きなトラブルの発生原因は全てヒューマンエラーが原因によって起こされているからです。 システムはしっかりしていても、チェックする体制が整っていないから発生してしまったエラーばかりです。 意見2はチェックする体制がしっかりと整っていればいいのですが、チェック体制が甘いと気が付かない可能性があります。 ちなみに、エンドユーザは印刷時には気がつかないで印刷後に確認して初めて気がつくというケースが多いです。

関連するQ&A

  • CSVファイルへ出力

    jspとjavaBeansを使用しています。 顧客情報をDBから検索して明細を画面出力し帳票印刷する ために、データをCSVファイルへ出力したいのですが、 どうやってCSVファイルへ出力するのでしょうか? ごく簡単な形式でいいので教えて下さい。

    • ベストアンサー
    • Java
  • AS400 印刷用ファイルからCSVに変換する方法

    AS400に無知な者です。 今現在使用しているASのバージョンすら わかっていません。 実行すると自動的にデータが集計され 印刷用ファイルができるプログラムがあります。 データ形式で作成することは選択できません。 現在はASから印刷された帳票をみながら エクセルに入力したりと、 かなりお馬鹿なことをしています。 わざわざ印刷しなくても スプールにおちた印刷用ファイルを CSVなどPC上で処理できるデータにかえる コマンド等はないものでしょうか? 最初からデータ形式でおとせという つっこみがきそうですが どのファイルにアクセスして どういう処理をしてるのか全く持って不明のため 現在の実力では不可能です。 誰かたすけてくださいまし。

  • Access フォーム上でクエリによるcsv出力

    Accessで障害履歴を管理するDBを作っています ・障害内容をフォームより起票して障害履歴テーブルに保存される ・月に一度、前月分の障害をクエリでcsvに抽出 ・抽出する際に発生日時のフィールドを[Like "2021/04/**"]の 抽出条件を入れて指定した月をクエリで抽出しています。 今回悩んでいるところは、毎回クエリのデザインビューを開き 発生日時の抽出条件に[Like "2021/04/**"]を入れて抽出ではなく フォーム上で2021年○月と指定して抽出というボタンを実行すると 自動でcsv出力まで出来るのを目指しています。 ※csv出力する際に指定したファイル名が自動でつけばなお良い イメージとしてはフォーム内にエクスポートというボタンを作り、 それを押すと障害発生日時の○年○月を指定するポップアップが表示され、日付指定して実行すると○月分の障害履歴が指定したファイル名でcsvにエクスポートされる。 またはフォーム内に障害発生日時の○年○月を指定するテキストボックスがあり、日付指定後にエクスポートのボタンを押すと同様にcsv出力されるのを作りたいのですが可能でしょうか?

  • 任意のCSVファイルをAccessに取り込むには?

    同様の質問が発見できなかったため質問させて頂きます。 アクセスを利用して日々の電力監視のデータを管理しようと思います。 データを出力するシステムの都合で、日々のデータがcsv形式で毎日1ファイル生成されます。 ファイル名は[AT20070925.csv]のような形です。 このファイルをアクセスにインポートする際、ファイル名をダイレクトに指定しなくてもインポートするファイルを指定することは出来るのでしょうか? 具体的には (1)毎日指定した時間にデータを取り込むものとして、本日の(または前日の)ファイル名のデータを取り込む (例えば9月26日0時2分に9月25日のデータ[AT20070925.csv]を自動的にインポートする) (2)処理を行う際に随時指定した日付のファイル名のデータを取り込む (フォームで日付を指定し、例えば9月25日と指定したら[AT20070925.csv]を随時インポートする) インポートするファイル名に変数を使うことは可能なのでしょうか? また実際にはインポートでなくリンクを使用する可能性もあるのですが、リンクでも同じ様な処理は出来るのでしょうか? 良い方法等ありましたらご教授いただければと思います。

  • ファイルを自動で印刷用に整形できるソフト

     指定された形式の用紙に、それぞれ違った内容のデータを大量に印刷したいので、xlsやcsvなどで書かれたファイルからデータを抽出し、自動で印刷用に整形してくれるソフトを探しています。  具体的には、元ファイルから読み込んだデータの、1列目のセルは何ptの文字サイズでどこ、2列目は……といった感じで、画像ファイルかワード用ファイルに出力してくれるソフトを探しています。

  • アクセス csv出力 抽出条件

    データベース(アクセス2003)で作成されたファイルがあります。 このファイルのフィールドは"日付"、"時刻"、"設備"、"数値"のようになっています。(設備名は1~4) フィールドの条件を指定して日付ごと、加えて設備別にcsv出力を行いたいと思います。 クエリを用いて抽出条件に日付、設備名を入力してクエリを実行 そしてcsvにエクスポートという形では時間がかかりすぎるため困っています。(データは1日分が8万点ほどで年によっては設備が4つにわかれています。データは途中が抜けていたりしますが2005年~2008年まであります。) どうにかしてもっと効率的な作業を行えないでしょうか?

  • AccessでExcel出力する際に「シングルコートなし」、日付は「YYYY/MM/DD」で出力したい

    初めて質問させていただきます。 ACCESS2003で、出力用テーブルからCSVもしくはExcel出力をしたく、色々試してみましたが、希望通りにいかず悩んでおります。具体的には、以下のような悩みです。どなたか良いアイデアをお持ちでしたらご教授ください。 ---------------------------------- ●以下のプログラムでCSV出力をすると、日付に時間(0:00:0)が付加してしまう。  DoCmd.TransferText acExportDelim, "", "出力データ用テーブル", 出力ファイル名, True ●以下のプログラムでEXCEL出力をすると、日付は「YYYY/MM/DD」で出力されるが、全てのテキスト型のデータの頭に「'」シングルコーテーションが付いてしまう。  DoCmd.TransferSpreadsheet acExport, , "出力データ用テーブル", 出力ファイル名, True ●以下のプログラムでEXCEL出力をすると、日付が「dd-mm-yy」となってしまう。「YYYY/MM/DD」としたい。    DoCmd.OutputTo acOutputTable, "出力データ用テーブル", acFormatXLS, 出力ファイル名, True ---------------------------------- シングルコーテーションは付かずに、日付も「YYYY/MM/DD」と表示されることが希望で、ファイルはCSVでもEXCELでもどちらでも構いません。 どなたか良い方法をご存知でしたらご教授ください。 よろしくお願いします。

  • VBScriptでのファイル読込について

    CSVファイル内のデータをキー項目(コード)ごとに分け、 それぞれ別のCSVファイルに出力しようとしています。 使用する言語はVBSです。 CSVファイルは以下のような形式です。 連番,コード,フラグ,日付 1,0001,A,20091001 2,0002,A,20091001 3,0002,U,20091002 4,0001,D,20091003 CSVファイルは既定の文字コード(UnicodeBE BOMなし)の形式であり、 通常のファイルを読み込むような処理では正しく 読み込むことが出来ませんでした。 (OpenTextFileメソッドの第4引数にUnicodeBEは指定できないのでは…?) また、CSVファイル内のデータは"コード"でソートされておらず、 VBSではソート機能を標準で持っていないため そちらについても実装する必要があります。 ファイルを取り込む際の文字コードの指定や ソート処理について詳しい方、ご回答よろしくお願いします。

  • 複数CSVファイルをExcel形式1つにまとめたい

    VBA初心者です。 似たような質問・回答がありますが、どうも私の意図するところと異なるので、 新たに質問させていただきます。 どうぞお願いします。 仕事場で、基本1日1ファイル取得している複数のCSVファイルを、 1週間に一度Excelファイルに一週間分のデータを追加し、 最終的には1か月毎に1つのExceファイル(1シート)に集計してます。 全ファイルとも内容は同じで、1シートで作成されており、 タイトル行は1行目、2行目以降データ(行:データ数はファイル毎に異なる)、 列数はA-IV列といった構成になります。 新しい1つのファイルにまとめる際には、 B列とG列のみ抽出し、一行目にタイトル行、2行目からデータ、 最終行に次のファイルのデータと、いうように複数のファイルのデータをつなげて 1つのファイルにしたいのです。 ちなみに出来上がったExcelファイルとしては、 A列に元CSVファイルのB列データ、C列に元CSVファイルのG列データ、 B列に各データがどのCSVファイルの物か分かるように、 各ファイル名の日付にあたる後ろ部分を表示させたいのです。 ファイル名から日付を拾えない場合は、 ファイルをまとめる前に、列を挿入し、 C列にデータ日付の項目を作り、そこに日付を入力し、 まとめる際に、B・C列+G列を抽出、といった形で、まとめられたらと思ってます。 *各Exceファイルのタイトルの後部分がデータの日付を表す (タイトル例:0803abcde2013_08_03.xls) B列2行目以降に、それぞれ抽出したデータのファイル名から、 日付にあたる部分を書き出し(8月3日と言ったように)表示させたい。 場合によっては、前部分を抽出するパターンもあるので、そちらもお願いします。 *今後、他の何種類かの複数CSVファイルでもファイル毎に (こちらも全ファイルとも内容は同じ)同様に1カ月毎にまとめたいので、 違う条件でも抽出できるように、応用できたらと、考えております。 (抽出する列がB列とI列のみ、A~C列+F列など) VBAで作業したいと考えてます。色々とお手数ですが、よろしくお願いします。 また、他にお勧めのサイトや、参考になる質問がありましたら、 合わせて、教えていただけると幸いです。

  • バッチコマンドで指定行を抽出しファイル名を含める

    日付毎に複数ファイルになっているftpのログファイルから必要な行だけを1ファイルに まとめたいのです set spath=d:\データ for /d /r %spath% %%d in ( * ) do ( type "%%d\*.log"|findstr /i ".csv">>%spath%\抽出ログ.txt ) で目的のものにかなり近いデータを抽出することができました ex110825.log 00:01:21 172.21.111.123 [6443]created /hoge/hoge.csv 226 しかし問題がありこのデータには日付がありません 日付部分はファイル名に含まれていますex110825.logのように・・・・ なので ex110825.log 00:01:21 172.21.111.123 [6443]created /hoge/hoge.csv 226 工夫次第でこのような形でデータを出力する事ができるでしょうか? アドバイス下さい