⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmseekcommodity.pas

📁 这是一个商品管理系统
💻 PAS
字号:
unit FrmSeekCommodity;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, ADODB, DB, ExtCtrls;

type
  TFormSeekCommodity = class(TForm)
    DataSourceCommodity: TDataSource;
    DataSetCommodity: TADODataSet;
    CmdSetCommodity: TADOCommand;
    DataGrid: TDBGrid;
    Label1: TLabel;
    Label2: TLabel;
    CheckByName: TCheckBox;
    EditName: TEdit;
    CheckBySort: TCheckBox;
    CBSort: TComboBox;
    CheckByTrade: TCheckBox;
    CBTrade: TComboBox;
    CheckByImage: TCheckBox;
    BtnStart: TButton;
    BtnReset: TButton;
    Label7: TLabel;
    Shape2: TShape;
    ImageCommodity: TImage;
    Shape1: TShape;
    BtnOK: TButton;
    DataSetSortTrade: TADODataSet;
    procedure BtnResetClick(Sender: TObject);
    procedure BtnStartClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure DataGridCellClick(Column: TColumn);      
    function GetIDByName(name: string; table: string) : string;
    function GetNameByID(ID: string; table: string) : string;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormSeekCommodity: TFormSeekCommodity;

implementation

{$R *.dfm}

function TFormSeekCommodity.GetIDByName(name: string; table: string) : string;
begin
        DataSetSortTrade.Active := false;
        DataSetSortTrade.CommandText :=
                'select id from '
                + table
                + ' where name = '''
                + name
                + '''';
        DataSetSortTrade.Active := true;
        if not(DataSetSortTrade.IsEmpty) then
        begin
               GetIDByName := DataSetSortTrade.FieldByName('id').AsString;
        end
        else
        begin
               Application.MessageBox('无效的商品名称!', '错误', MB_OK);
        end;
end;

function TFormSeekCommodity.GetNameByID(ID: string; table: string) : string;
begin
        DataSetSortTrade.Active := false;
        DataSetSortTrade.CommandText :=
                'select name from '
                + table
                + ' where id = '''
                + ID
                + '''';
        DataSetSortTrade.Active := true;
        if not(DataSetSortTrade.IsEmpty) then
        begin
               GetNameByID := DataSetSortTrade.FieldByName('name').AsString;
        end
        else
        begin
               Application.MessageBox('无效的商品名称!', '错误', MB_OK);
        end;
end;

procedure TFormSeekCommodity.BtnResetClick(Sender: TObject);
begin
        EditName.Text := '';
        CBSort.Text := '';
        CBTrade.Text := '';

        CheckByName.Checked := False;
        CheckByImage.Checked := False;
        CheckBySort.Checked := False;
        CheckByTrade.Checked := False;
end;

procedure TFormSeekCommodity.BtnStartClick(Sender: TObject);
var
        SQLSeek, SortID, TradeID: string;
begin
        DataSetCommodity.Active := False;
        SQLSeek := 'select * from Commodity where not(ID = ''AA'')';
        if not(CheckByName.Checked) and
           not(CheckByImage.Checked) and
           not(CheckBySort.Checked) and
           not(CheckByTrade.Checked) then
        begin
                if (Application.MessageBox('没有选择查询条件,是否要查询所有记录?','提示',MB_YESNO) = IDNO) then
                        exit;
        end;

        if CheckByName.Checked then
        begin
                SQLSeek := SQLSeek
                        + ' and name like ''%'
                        + EditName.Text
                        + '%''';
        end;

        if CheckBySort.Checked then
        begin
                SortID := GetIDByName(CBSort.Text, 'Sort');
                SQLSeek := SQLSeek
                        + ' and sort = '''
                        + SortID
                        + '''';
        end;

        if CheckByTrade.Checked then
        begin
                TradeID := GetIDByName(CBTrade.Text, 'Trade');
                SQLSeek := SQLSeek
                        + ' and trade = '''
                        + TradeID
                        + '''';
        end;

        if CheckByImage.Checked then
        begin
                SQLSeek := SQLSeek
                        + ' and NOT(picture = '''')';
        end;

        DataSetCommodity.CommandText := SQLSeek;
        DataSetCommodity.Active := True;
end;

procedure TFormSeekCommodity.FormShow(Sender: TObject);
var
        i, Min, Max: integer;
        item: string;
begin
        CBSort.Clear;
        DataSetSortTrade.Active := False;
        DataSetSortTrade.CommandText := 'select name from Sort';
        DataSetSortTrade.Active := True;
        Min := 0;
        Max := DataSetSortTrade.RecordCount;
        DataSetSortTrade.First;
        for i := Min to (Max-1) do
        begin
                item := DataSetSortTrade.FieldByName('name').AsString;
                CBSort.Items.Add(item);
                DataSetSortTrade.Next;
        end;

        CBTrade.Clear;
        DataSetSortTrade.Active := False;
        DataSetSortTrade.CommandText := 'select name from Trade';
        DataSetSortTrade.Active := True;
        Min := 0;
        Max := DataSetSortTrade.RecordCount;
        DataSetSortTrade.First;
        for i := Min to (Max-1) do
        begin
                item := DataSetSortTrade.FieldByName('name').AsString;
                CBTrade.Items.Add(item);
                DataSetSortTrade.Next;
        end;
end;

procedure TFormSeekCommodity.DataGridCellClick(Column: TColumn);
var
        ImagePath: string;
begin
        ImagePath := DataSetCommodity.FieldByName('picture').AsString;
        if not(ImagePath = '') then
        begin
                if FileExists(ImagePath) then
                        ImageCommodity.Picture.LoadFromFile(ImagePath)
                else
                begin
                        Application.MessageBox('无法找到指定文件!', '错误', MB_OK);
                end
        end
        else
        begin
                SetCurrentDir(ExtractFileDir(Application.Exename));
                ImageCommodity.Picture.LoadFromFile('NoPicture.bmp')
        end
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -