問題タブ [data-aware]
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.
delphi - Delphi7TMSTDBAdvGrid列ヘッダーがクリックされたときにデータを並べ替える
私はDelphiの初心者であり、アドバイスが必要です。
TMS TDBAdvGridを使用しており、ユーザーが列のヘッダーをクリックしているときにデータを並べ替える必要があります。グリッドの並べ替え設定をセットアップし、onclicksortイベントのコードを記述しましたが、機能していません。
グリッドの並べ替え設定:
onclicksortイベント:
グリッドはデータベースに直接リンクされていません。データはメモリ(TClientDataSet)にロードされ、データベースへの別のクエリなしで、メモリ内でのみデータを並べ替える必要があります。
ありがとうございました
delphi - Delphi(VCL)ジェネリックスとデータバインディング?
Delphi XE(ここではVCLについて話している)に、データベース対応のコントロールで動作するジェネリックコレクションクラスがあるかどうかを誰かが知っていますか?つまり、TDataSource.DataSetなどに割り当てることができるTObjectList <>などの汎用クラスはありますか?
ありがとう。
ダン
.net - GUID を行ハンドルとして使用する .NET 用の、真にデータを認識し、データ駆動型のグリッドが必要
基礎となるデータセットの繰り返しの変更に対して最適化された、.NET 用のデータ対応グリッドを探しています。ほとんどすべてのグリッドでデータソースを変更できるため、そのコンテキストでの最適化の意味を示す例を示します。しかし、OCX の時代にさかのぼると、データソースを変更すると、データ対応グリッドに問題が発生しました。
このデータベース対応のデータ駆動型グリッドは、整数の行ハンドルを使用してはなりません。GUID 行ハンドルを使用する必要があります。これが、このグリッドの最も重要な要件です。
基になるデータセットの各行には、整数ではなく GUID の rowHandle が割り当てられます。データ行がどのように並べ替えられたりグループ化されたりしても、データ行の GUID の rowHandle は保持され、データ行はその rowHandle によって即座に取得できます。
グリッドのFocusedRowChangedイベントは、現在フォーカスされている行の GUID が、最後にフォーカスされた行の GUID と異なる場合に発生します。 [編集: 整数行ハンドルを使用するグリッドでは、データソースが変更されたときに FocusedRowChanged イベントが発生しないことがよくあります。これは、focused-row-position が変更されていないためです。たとえば、データソースの変更前は最初の行にフォーカスがあり、データソースの変更後は最初の行にフォーカスがあります。基礎となる行データが完全に異なっていても、整数行ハンドルは同じです。]
私は、グリッドがその動作において真にデータを認識し、データ駆動型であることを望んでいます。例えば
ここで、上のグリッドの下にあるデータセットをクリアし、そのデータソースを別のデータセットに置き換えた場合、そのデータソースには顧客名と都市の列があり、その列に Acme Widgets と Foo Industrial の値が含まれていました。グリッドは新しいデータセットを顧客名でグループ化します。および市の列を展開し、それらの会社を展開します (PreserveGroupingsWhenDataSetChanges フラグが True に設定されている場合)。
delphi - テーブルが新しいレコードを取得したときにチャートを自動的に更新するにはどうすればよいですか?
色フィールド (赤/白/青) を持つテーブルがあり、アプリが TCP/IP を介してイベントを受信し、データベースに新しい行を挿入するたびに、データ対応の円グラフ コンポーネントを自動更新する必要があるとします。それらの色の比率を示しています。どうやってやるの?
データベース対応コンポーネントの例を見てきましたが、それらはテーブルの各行の値を表示するだけです (まだ十分に理解していません)。実際、データベースに別の行を追加すると、DB 対応のグリッドに別の行が追加されるかどうかさえわかりません (プルではなくプッシュ)。
delphi - メモリ内オブジェクトのデータセットを取得するにはどうすればよいですか?
Generics と RTTI で動作する TDataset の子孫を知っている人はいますか?このようなコードを記述して、GUI でデータベース対応コンポーネントを利用できますか? :
これは可能なはずです。フィールド定義は、データの正確なタイプがわかっているため、RTTI を介して作成できます。値は、前後に自動的にマーシャリングすることもできるため、クラスまたはレコード内のデータを表示および編集できます。
無駄なマーシャリング コードを大量に書かなければならないのは嫌ですが、そのために必要な情報は RTTI で既に入手できます。
あるいは、誰かが何らかの種類の TEnumerable <-> TDataset アダプターを作成したことがありますか?
そのようなものは存在しますか、それとも書き始める必要がありますか?
...
私が見つけた最も近いものは、Mastering Delphi 7 の Marco Cantu による (素晴らしい!)例ですが、コード自体は、ジェネリック、新しい RTTI システム、または属性などの新しい言語機能を使用していません。 Unicode delphi では動作しません。TDataset も D7 から変更されました。
delphi - 利用可能なデータベース対応タブコントロールはありますか?
データ対応コントロールをデータセットにリンクして、現在の行のフィールドに含まれるデータを表示したり、場合によっては、複数の行に沿った1つ以上の列のデータを表示したりできます。また、TTabControlを使用すると、同じコントロールのセットを異なるデータ値のセットにわかりやすく適用できます。
彼らは一緒にうまくいくだろうと私には思えます。TTabControlは、優れたデータベース対応コントロールを作成します(データセット内のID列にリンクし、TDBNavigatorよりもはるかに直感的なナビゲーターになる可能性があります)が、VCLにはありません。
誰かがデータベース対応のタブコントロールを作成しましたか?私が見つけた唯一のものはDBTABCONTROL98
、1998年(Delphi 3時代)にさかのぼるJean-Luc Matteiによるものであり、XEでコンパイルできるように変更した後でも、実際には機能しません。期待どおりに機能するものは他にありますか?(つまり、新しいレコードがデータセットに追加/削除されたときにタブを追加/削除し、ユーザーがタブを変更したときにデータセットのアクティブな行を切り替えます。その逆も同様です。)
はい、データセットに多くの行がある場合、それが少し扱いにくくなる可能性があることを私は知っています。行数が1桁または非常に少ない2桁のユースケースのUIを構築するための何かを探しています。
database - ウィンドウ化されていないコンポーネントのデータを認識する
日付プロパティを持つウィンドウ化されていないコンポーネントがあります。日付フィールドへの読み取りおよび書き込み機能を使用して、このコンポーネント データを認識させたいと考えています。(つまり、実行時に日付を変更した場合、新しい日付プロパティ値をデータセットに書き込みたいと思います。)例をグーグルで検索しましたが、何も見つかりませんでした。TDbLabel などの読み取り専用の例がいくつか見つかりましたが、データセットへの変更の書き込みを許可する例はありません。誰かが私に例を挙げてくれれば、私は感謝します。
delphi - Delphi で TDBText が更新されない、他のデータ認識コントロールが機能する
Delphi XE4 のプロジェクトを引き継いで、プロジェクトにデータ認識コントロールをいくつか追加しました。TDBGrid は正常に動作しているように見えますが、TDBText コントロールのどれも何も表示していません。フォームに TDBEdit をスローして接続すると、問題なく動作します。
TDBText コントロールの動作を妨げる何かを考えられる人はいますか?
delphi - 任意のテキストを入力できる Delphi データ認識コンボ編集コントロール?
SQL テーブルにバインドされた autosuggest アイテムを使用して、ユーザーがデータベース対応の編集コントロール (コンボボックス、編集) に連絡先の名前を入力できるようにしたいと考えています。私が達成したいのはこれです: データソースの Contact_Name フィールドにバインドされたコンボ、同じデータソースの Contact_Tel にバインドされた編集 同じデータソースの Contact_Email にバインドされた編集
コンボ ドロップダウンは、SQL データソースにバインドし、個人名、電話番号、電子メールを表示する必要があります。ユーザーは、既存のオプションのいずれかを選択するか、任意の名前 (新しい担当者) を入力できます。連絡先担当者のコンボボックスのテキストが変更されると、 - テキストが既存のオプションの 1 つと一致する場合、他の 2 つの編集コントロールに、選択したオプションの電話番号と電子メールが入力されます。 - テキストがリストにない場合は、他の編集コントロールが入力されます。 2 つの編集コントロールがクリアされます。
私が現在持っているセットアップは、データセットのフィールドにバインドされた dbLookupComboBoxEh + キーとリストフィールド + スタイル = csDropDownEh を持つリストソースです。
問題は、ユーザーがリスト ソースに含まれる値を入力すると正常に動作することですが、リストにないものを入力すると、コントロールが単純にクリアされ、値が記憶されなくなります。
データ バインドされたドロップ ダウンと提案された値、および任意のテキストを入力する機能を組み合わせたコントロールはありますか?
delphi - クリックした直後に TDBCheckBox がその DataField を更新するようにするにはどうすればよいですか?
TDBCheckBox
最初のコントロールがにバインドされているいくつかのコントロールを持つフォームがありDataField := 'enabled'
ます。
チェックボックスをクリックすると、残りのすべてのコントロールを有効/無効にする必要があります。
これは、フォーカスがチェックボックスを離れたとき、またはデータセットがスクロールされたときにのみ機能します (このフォームにもナビゲーターがあります)。
チェックボックスのデータフィールドをすぐに更新する方法はありますか?
または、私が説明したことを達成するためのより良い代替手段はありますか?