問題タブ [dbgrid]
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.
database - ADOQueryとDBNavigator
わかった。単純なデータベース、DBGrid、DBNavigatorがあります。このコードをadoqueryに使用し、DBGridでこれを表示します
Table1 Group by 1、2からCount(*)As 1、23を選択します
問題は、1つの同じ記事が2つ以上あり、それをDBnavigatorから削除しようとすると、送信されることです。
キー列の情報が不十分または正しくありません。更新の影響を受けた行が多すぎます。2行以上削除したい。1行だけではない。それを修正する方法は?
delphi - 表示される前にDBGridセルの内容を変更する
データベースのロード時に、dbgridコントロールの特定のセルの内容を変更したいと思います。たとえば、データベースのフィールドが「禁止」に等しい場合、データベースのフィールドをdbgridに表示したくないとします。それができる方法はありますか?
delphi - Delphi OnDrawColumnCell を使用して、条件付き書式を適用する前にレコード値が存在することを確認するにはどうすればよいですか
Access mdb データベースのテーブルに ADO 経由でバインドされた dbgrid で Delphi 2010 を使用しています。
このテーブルは、ラジオ グループ ボックスでのクリックに基づいてフィルタリングされます。
次のコードは、テーブルのデータに基づいて行を色分けしますが、次のエラー ダイアログ ボックスで失敗します。
フィルタが null データセットを返す場合。レコードが返されなかった場合に色設定を呼び出さないように許可したと思っていましたが、機能していないようです。以下のコードを参照してください
感謝して受け取ったすべての助け。次のような条件文も試したことに注意してください
しかし、これもうまくいかないようです。
delphi - dbgrid の行が選択されているときにコンボボックスを埋める方法は?
Delphi 2007 には DBGrid があります。DBGrid の行が選択されたときに ComboBox を埋める必要があります。ComboBox のデータは、選択した行によって異なり、選択した行ごとに異なる場合があります。
DBGrid には製品注文が含まれています。注文が選択されたら、注文の製品のバッチ番号を ComboBox に入力する必要があります。このバッチ番号は、注文が実行されるときに注文レコードに保存されます。
これを行うために使用できる onSelect または onChange イベントが見つかりませんでした。
では、どうすればこれを行うことができますか?
delphi - DBGrid で CheckBox 列を無効にする方法
DBGrid のチェックボックス列を無効化または読み取り専用にする方法。wwDbGrid と EditControl オプションを使用しています。
delphi - Delphi DBGrid で編集可能な詳細レコード
私はスタッフ メンバーを記録するデータベース (Access .MDB ファイルに保持) を持っており、休暇、病気、トレーニング コース、開始日と終了日、失われた生産時間の時間などを記録しています。
次に、dbgrid を「マスター」ADO クエリにバインドします。このクエリは、日付範囲、部門、名前の検索文字列の選択された基準を満たすすべてのスタッフを検索し、失われた生産時間の時間を合計します。
不在レコードを含む「詳細」ADO テーブルにバインドされた別の dbgrid があります。
望ましい効果は、マスター レコードで選択された行に一致する不在テーブルのレコードのみを詳細 dbgrid に含めることです (「マスター」スタッフ テーブルと「詳細」休暇テーブルの両方に、共通の EmployeeID フィールドが含まれます)。
オンザフライで作成された ADO クエリを使用してこれを実現できますが、ユーザーが別のマスター スタッフ レコードに移動するたびにクエリを変更します。詳細な DBGrid を、欠勤レコードを削除、更新、および追加する主な方法として使用したいと考えていました。 、グリッドルックアップで完了。そのため、ユーザーはそのタイプのコードを覚えなくてもレコード タイプを選択できます。
また、この詳細グリッドの変更をマスター dbgrid の集計に反映させたいと考えています。
MasterDetail として Staff Query にリンクされた詳細 ADOTable を使用してこれを達成しましたが、フィルターを True に設定し、コードで onfilterevent を制御する必要があります。しかし、データベースのサイズが大きくなるにつれて、これはますます遅くなります。
このパフォーマンスを改善するためにできることはありますか? それとも、詳細 dbgrid を純粋に読み取り専用にし、すべての不在レコードを別のフォームまたはパネルから入力する必要がありますか?
delphi - 別のフォームのメインフォームからDBGridに関するコマンドを使用する
自動車部品店で使う簡単なプログラムを作っています。外観は次のとおりです。リンク
問題は、左側の小さなウィンドウです。メインウィンドウでDBGridのいずれかの行をダブルクリックすると開く必要があり、選択したアイテムのすべての特性がDBEditフィールドに表示されます。[保存]ボタンをクリックすると、DBEditフィールドからの変更がデータベースに保存されますが、それ以外の場合は、変更が無視されます。
次のコードを使用して、DBGridのフィールドをダブルクリックして別のフォームを開くことに成功しました。
現在の唯一の問題は、DBGridのどの行が選択されているかをプログラムに検出させ、その内容を小さいウィンドウのDBEditフィールドに表示する方法です。
誰かがこれを行う方法を教えてもらえますか?
ありがとう!
delphi - TDBGrid 内でチェックボックスを使用して複数のレコードを選択する方法は?
標準の TDBGrid 内でチェックボックスを使用して複数のレコードを選択する方法は? または、DBGrid の無料/オープン ソースの姉妹製品で、誰でも簡単に実行できるようにするための推奨事項はありますか?
ありがとうございました。
delphi - Delphi 2007 ソース コードを使用して beforescroll イベントのデータを変更できません。エラー: データセットが編集モードまたは挿入モードではありません
ちょっとした歴史: textt の説明を含む DBlistbox があり、dbgrid に表示される mysql テーブルにこのコードだけを保存します。ユーザーは複数のオプションを選択できます。私はこれらを処理し、列の 1 つにコンマ区切りの値として格納するのが好きです (この列は dbgrid では非表示です)。
現在、ユーザーがイベント Afterscroll と Formcreate を使用して dbgrid をスクロールすると、リストボックスにデータを入力できます。しかし、リストを処理して dbrgid の背後にある myquery を更新しようとすると、「データセットが編集モードまたは挿入モードではありません」というエラーが表示されます。これは beforescroll で行います。
助けてください!!変更する前にデータセットを編集モードに設定しようとしましたが、データが投稿されるとすぐに dbgrid に変な文字があるようです
delphi - Delphi DBGrid の OnTitleClick イベントから黒い線を削除するにはどうすればよいですか?
最初にロードしたときに正常に見える Delphi DBGrid があります。タイトルがクリックされたときに DBGrid を列でソートするOnTitleClickイベントをセットアップしました。タイトルをクリックするとすぐに、列のタイトルがボタンが押されたように機能し、醜い黒い線が表示されます。(下の図 2 を参照)
クリック イベントが完了するとすぐに、グリッドは再び正常に見えます。
列のタイトルをクリックしたときにこの黒い線が表示されないようにするにはどうすればよいですか?
編集: Embarcadero に提出された QC
列のサイズを変更する機能をオフにすると、黒い線の動作が消えますが、非常に優れた機能が失われます。この動作は修正する必要があると思います。以下のQC 98255を Embarcadero に提出しました。このエントリに投票してください。
更新: 2017-07-30
この横の黒い線が描かれている場所を見つけました。
Vcl.Grids >プロシージャTCustomGrid.DrawMove;
Canvas.Pen.Width は 5 に設定されています。Canvas.Pen.Width := 1; に変更しました。
それははるかに良く見えます。「Contact_Last」というタイトル セルをクリックすると、黒いインジケータ ラインの幅が 1 ピクセルになり、邪魔になりません。