掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ブロックリードを変えるのに最適な方法を教えて下さい。 (ID:150838)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
AAA様や、AT.W様のように(midas)データベースを使用するような方法です。 (別途インストールしないでDelphiが標準で搭載しているmidasを使用する) 但し、これではお勉強にならないかもです。 ほとんどコンポーネントとプロパティ設定だけで完成してしまうので。 Delphiってよくできていますよね。 TClientDataSetをフォームにドラッグ&ドロップ TDataSourceとTDGBridをドラッグ&ドロップする オブジェクトインスペクタで DataSource1.DataSet:=ClientDataSet1 に設定する オブジェクトインスペクタで DGBrid1.DataSource:=DataSource1 に設定する ClientDataSet1を右クリック⇒フィールドエディタ フィールドの新規作成をクリックしてフィールドを追加する ID(id Integer Autoinc)、日付(date Date)、 用途(usage String100)、金額(price currency) オブジェクトインスペクタで ClientDataSet1 のプロパティIndexesDefs[...]をクリックして「新規追加」ボタンを押し、 Fieldsにidを追加(name=ClientDataSetIndex1)する ClientDataSetIndex1.Options.ixPrimary:=Trueに設定する ClientDataSetIndex1.Options.ixUnique:=Trueに設定する ClientDataSet1.IndexNameでidを選択する ClientDataSet1.FileNameに'a.xml'などを入れる (ClientDataSet1が閉じられるときに自動保存し、開かれる時に自動読み取りする) //ClientDataSet1.OnNewRecordに以下を入れるとIDフィールドが自動的にインクリメントされる procedure TForm1.ClientDataSet1NewRecord(DataSet: TDataSet); var g:TAggregate; NewId:Integer; begin ClientDataSet1.AggregatesActive:=False; ClientDataSet1.Aggregates.Clear; g:=ClientDataSet1.Aggregates.Add; g.Expression:='Max(id)'; g.AggregateName:='MaxId'; g.Active:=True; ClientDataSet1.AggregatesActive:=True; NewId:=ClientDataSet1.Aggregates[0].Value; Inc(NewId); ClientDataSet1.FieldByName('id').AsInteger:=NewId; end; ClientDataSet1を右クリックして 「データセットの作成」をクリックする 実行すれば、midasベースですが、データベースを別途インストールしなくても 簡易なmidasデータベースアプリの出来上がりです。 (Unit1.pasのuses に midasを追加することをお勧めします) ClientDataSet1.Filter:='price>=100 and price<=200'; に好きにWhere句をいれて ClientDataSet1.Filtered:=True; にすれば、フィルター(SQLのwhere句で絞る)も出来ます。 //priceフィールドの合計はButton1.OnClickに以下で計算できます procedure TForm1.Button1Click(Sender: TObject); var g:TAggregate; begin ClientDataSet1.AggregatesActive:=False; ClientDataSet1.Aggregates.Clear; g:=ClientDataSet1.Aggregates.Add; g.Expression:='Sum(Price)'; g.AggregateName:='SumPrice'; g.Active:=True; ShowMessage(Inttostr(ClientDataSet1.Aggregates[0].Value)); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.