当てはまった条件を調べたい

やりたいこと
氏名・年齢・生年月日・住所
上記項目のいずれかが空白(empty)の場合、空白だった項目のみすべてログに出力したい

空白判定まではできるのですが、どの項目が空白だったかを取得する良い方法はないでしょうか?
知見をお持ちの方がいらっしゃいましたらご教示いただけますと幸いです。

HI @111860

Checkout this
String.IsNullorEmpty(YourVariable)

Regards
Sudharsan

@111860
String.IsNullorEmpty(Name) or String.IsNullorEmpty(Age) or String.IsNullorEmpty(DateofBirth) or String.IsNullorEmpty(Address)

Pass this in the if condition if true you can return empty log

Regards
Sudharsan

こんにちは

例えば以下で可能です。

arrCol = dt.Columns.Cast(Of DataColumn).Select(Function(dc) dc.ColumnName).Where(Function(c) String.IsNullOrEmpty(CurrentRow(c).ToString)).ToArray

Sequence.xaml (10.0 KB)

1 Like

ありがとうございます。

説明が不足しておりました。
列の項目が100以上あり、そのうちの上記で挙げた4項目すべての空白判定と出力を行いたいです。

また、いただいた回答から配列での出力になりそうですので、出力方法はcsvへの転記を考えております。
後出し情報で申し訳ございません。

こんにちは

列の項目が100以上あり、そのうちの上記で挙げた4項目すべての空白判定と出力を行いたいです。

targetColumns = {"氏名","年齢","生年月日","住所"}

としておいて、ループの中で

arrCol = targetColumns.Where(Function(c) String.IsNullOrEmpty(CurrentRow(c).ToString)).ToArray

とすればOKです。
出力形式がわかりませんので、例で明示いただければと思います。

ありがとうございます。
上記の構文で出力された配列は、csvとして「エラー項目」列に出力したいです。

※生年月日と住所が空白だったケース
“エラー項目”
“生年月日 住所”

こんにちは

このCSVはエラー項目一列だけでしょうか?

ありがとうございます。CSVへの出力項目としては、
“エラー発生時間”,“識別番号”,“エラー項目”,“エラー内容”
になります。

エラー発生時間はDatetime.Nowで、識別番号はデータテーブルから、エラー内容は固定値(「必須項目のため」)の出力となります。
ここまで詳細にアドバイスいただけると思わず、情報不足で申し訳ございません。

こんにちは

1行単位での追記なら、ApplendLineアクティビティでテキストとして追記したほうが楽かもです。
(AppndCSVでデータテーブルを追記する方法もありますが)

AppendLineで

DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss)+","+CurrentRow("識別番号").ToString+","+String.Join(" ",arrCol)+",必須項目のため"

のようになると思います。
実際にはもう少し保守性を良くした方が良いかとは思いますが、とりいそぎ。

なおCSVのヘッダはあらかじめ準備しておいてください。

極力テキストとして扱えたら楽だなあと思っておりましたので、最適解をいただけました。
ありがとうございます。

保守性を可能な限り高くできるよう工夫してみます!
この度はありがとうございました。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.