修改类别(类写法)
类写法:
1,定义自动加载类别值到combobox下拉框里
unit UAutoUpdateCombox;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Data.DB, Data.Win.ADODB,
Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids, Clipbrd, Vcl.Menus,
Vcl.StdCtrls, DBGridEhGrouping, ToolCtrlsEh, DBGridEhToolCtrls, DynVarsEh,
EhLibVCL, GridsEh, DBAxisGridsEh, DBGridEh,EhLibADO, Vcl.Buttons;
type TAutoUpdateCombox=class
public
class procedure autoadoqfieldstocombox(var combox:TComboBox;SAdq:TADOQuery);
end;
implementation
uses Uleibie;
class procedure TAutoUpdateCombox.autoadoqfieldstocombox(var combox:TComboBox;SAdq:TADOQuery);
var
i: Integer;
List: TStringList;
begin
List := TStringList.Create;
try
//刷新前全部清空原来的列表
combox.Items.Clear;
{建立 List}
List.Sorted := True; {指定排序}
List.Duplicates := dupIgnore; {避免重复}
{把数据加入到 DBComboBox1}
List.Clear;
SAdq.open;
SAdq.First;
while not SAdq.Eof do
begin
List.Add(SAdq.FieldByName('类别').AsString);
SAdq.Next;
end;
//把获取到的值加载给combbobox的下拉选项里
combox.Items:=List;
//刷新数据库
SAdq.Requery;
finally
List.Free;
end;
end;
end.
2,定义单击确定,更新客户选的combobox的类别值到access数据库里
unit UUpdateLeiBie;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Data.DB, Data.Win.ADODB,
Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids, Clipbrd, Vcl.Menus,
Vcl.StdCtrls, DBGridEhGrouping, ToolCtrlsEh, DBGridEhToolCtrls, DynVarsEh,
EhLibVCL, GridsEh, DBAxisGridsEh, DBGridEh,EhLibADO, Vcl.Buttons;
type TUpdateLeiBie=class
public
class procedure updateselectedleibie(var combox:TComboBox; SAdq:TADOQuery);
end;
implementation
uses FDataPool;
class procedure TUpdateLeiBie.updateselectedleibie(var combox:TComboBox; SAdq:TADOQuery);
var
MyAdoq:TADOQuery;
LeiBie,SBiao: string;
begin
MyAdoq := TADOQuery.Create(nil);
SBiao:=copy(SAdq.name,4,length(SAdq.name)-3);
try
MyAdoq.Connection := frmDataPool.ADOConnection1;
LeiBie:=combox.text;
with MyAdoq do
begin
Close;
SQL.Text := 'UPDATE '+SBiao+' SET 类别 ='+ LeiBie.QuotedString+'where 选中 = true';
ExecSQL;
end;
//防止程序假死
Application.ProcessMessages;
//刷新纪录
SAdq.Requery;
finally
MyAdoq.Free;
end;
end;
end.
3.类引用使用
unit Uleibie;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Data.DB, Data.Win.ADODB,
Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids, Clipbrd, Vcl.Menus,
Vcl.StdCtrls, DBGridEhGrouping, ToolCtrlsEh, DBGridEhToolCtrls, DynVarsEh,
EhLibVCL, GridsEh, DBAxisGridsEh, DBGridEh,EhLibADO, Vcl.Buttons;
type
TFleibie = class(TForm)
Label1: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ComboBox1: TComboBox;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Fleibie: TFleibie;
implementation
{$R *.dfm}
uses FDataPool, 日常管理助手, UInitializeDatabaseAdoSqlApi,
UAutoUpdateCombox, UUpdateLeiBie;
procedure TFleibie.BitBtn1Click(Sender: TObject);
begin
//更新类别值到access数据库中
TUpdateLeiBie.updateselectedleibie(ComboBox1,frmDataPool.qry需要做的事);
end;
procedure TFleibie.FormCreate(Sender: TObject);
begin
//更新adoquery里面的fields值到combobox的item里;
TAutoUpdateCombox.autoadoqfieldstocombox(ComboBox1,frmDataPool.qry需要做的事);
end;
end.