問題タブ [internal-tables]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
abap - 内部テーブルへの INSERT が失敗するのはなぜですか?
ABAP に問題があります。私は本から次のコードを持っています:
問題は、INSERT reservation_wa INTO TABLE reservation_tab.
正しく実行されない行であり、常にsy-subrc <> 0
. これにより、「内部エラー!」というメッセージが表示されます。
今私の質問:私はそれをデバッグするのに疲れましたが、このステートメントがデータを挿入しない理由を見つけることができません。この SQL ステートメントで何が問題になったのか、詳細なエラー メッセージを確認するにはどうすればよいですか?
loops - 最後のエントリのみが itab に選択されます
私の選択画面では、どの種類の番号で情報を選択したいかグループをラジオボタンで選択できます。(材料番号、工事契約、または顧客注文)。
種類を選択した後、ユーザーは対応する選択オプションに数字を入力する必要があります。この情報を使用して、必要な情報を選択し、それらを itab に移動しますt_marc
。このテーブルには と同じフィールドがありますmarc
。
ユーザーが選択画面で品目番号を選択すると、すべてが正常に機能し、ユーザーが書き留めたすべての番号の値が ALV リストに表示されます。
他の数値で選択した場合、出力の値も正しいですが、最後に表示された数値までの情報のみが編集されます。
すべての数字を itabs に移動するにはどうすればよいですか?
選択開始
loops - AT FIRST を使用してループ変数を初期化する
制御レベル処理のAT FIRST
ステートメントは、実行する必要があるコマンドや、ループ自体の実行を開始する前に初期化する必要がある変数に最適のようです。コマンドが作業領域の列をクリアする方法を考えるとAT
、これは私がまだ見ている数少ない用途の 1 つです。
これを行うのではなく、説明するために:
これを行うことができます:
ここで、ループが意図したとおりに機能するには、変数を初期化する必要があることがすぐにわかります。また、ループの前に実行する必要があるステートメントが多数ある場合に、コードの見栄えがよくなります。私が見る唯一の欠点は、LOOP
論理的にそうすべきではないときに、ステートメント内でコードを移動することです。
ここにベストプラクティスはありますか? 注意すべき隠れた警告はありますか?
abap - ループ内の内部テーブルから現在の行を削除します
内部テーブルをループしているときに、アクティブな行を安全に削除できますか?
例として、次のコードを検討してください。
このようにレコードを削除しても安全ですか? それとも、このロジックが意図したとおりに動作しませんか?
代わりに、行の一意の識別子を一時 itab に保存しDELETE lt_itab WHERE
、ループの後に実行する必要がありますか?
現在のイテレーションでロードされたもの以外のレコードに対する削除操作は間違いなく問題を引き起こすと思いますが、これが有効であるかどうかはわかりません。
algorithm - 内部テーブルの重複を表示
各アイテムには、固有の SecondNo + Drawing の組み合わせが必要です。入力ミスにより、一部の組み合わせは 2 回あります。
これらの組み合わせを識別し、他の組み合わせを反映しないレポートを ABAP で作成する必要があります。
どうすればこれを解決できますか? 私は2つのアプローチを試みましたが失敗しました:
データを並べ替えて、上の行の値が次の値と等しい場合にそれぞれを印刷しようとしました
重複を数え、1 つ以上のものをすべて表示します。
条件はどこに入れるのですか?ループエリアで?
私はこれを試しました:
abap - 内部テーブルの行を列に転置する方法は?
内部テーブルの行を列に転置したいのですが、最初の列を修正したいのですが、次のコードでそれを実行しようとしていますが、期待した結果が得られません....すべての行を列に変換していません
abap - 内部テーブルに複数のデータベーステーブルを設定する方法は?
内部テーブルを宣言しました。
プログラムをアクティブにすると、itab_dept に first_name/last_name というコンポーネントがないという構文エラーが表示されます