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

📄 materialsselect.pas

📁 随着计算机的日益普及
💻 PAS
字号:
unit MaterialsSelect;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Grids, ExtCtrls, DBGrids, ImgList, Buttons;

type
  TMaterialsSelectFrm = class(TForm)
    GroupBox1: TGroupBox;
    TV_Materials: TTreeView;
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    MaterialsSG1: TStringGrid;
    ImageList1: TImageList;
    BitBtn1: TBitBtn;
    BB_Confirm: TBitBtn;
    BB_Cancel: TBitBtn;
    DBGrid1: TDBGrid;
    procedure FormCreate(Sender: TObject);
    procedure TV_MaterialsDblClick(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure BitBtn1Click(Sender: TObject);
    procedure BB_ConfirmClick(Sender: TObject);
    procedure BB_CancelClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    SelectNo:integer;
  end;

var
  MaterialsSelectFrm: TMaterialsSelectFrm;

implementation
  uses DataModule;
{$R *.dfm}

procedure TMaterialsSelectFrm.FormCreate(Sender: TObject);
var
  root,node:TTreeNode;    //定义二个存放节点文件TTreeNode
  i:integer;
  str1,str:AnsiString;
begin
  DM.AT_Materials.Filtered:=false;
  DM.AQ_Materials.Active:=true;
  TV_Materials.Items.Clear;   //清空TreeView所有节点
  root:=TTreeNode.Create(TV_Materials.Items);    //声明节点元件指标变量
  node:=TTreeNode.Create(TV_Materials.Items);
  root:=TV_Materials.Items.AddChildFirst(NIL,'原材料');
  root.ImageIndex:=0;
  root.SelectedIndex:=1;
  DM.AQ_Materials.First;
    for i:=0 to DM.AT_Materials.RecordCount do   //填写原材料分类中所有分类名字段到TreeView
      begin
        str1:=TrimRight(DM.AQ_Materials['Materials_Class']);  //取得原材料分类中所有分类名字段值并去掉后面空格
        if str<>str1 then                                     //取得不同的原材料分类中所有分类
          begin
          str:=str1;
          node:=TV_Materials.Items.AddChild(root,str);         //增加一个子节点
          node.ImageIndex:=2;
          node.SelectedIndex:=3;
          DM.AQ_Materials.Next;
          end
        else
         DM.AQ_Materials.Next;
      end;
  root.Expand(true);

  with  MaterialsSG1 do
  begin
    MaterialsSG1.ColCount:=4;
    cells[0,0]:='原材料编号';
    cells[1,0]:='原材料名称';
    cells[2,0]:='原材料类别';
    cells[3,0]:='单位';
  end;
  SelectNo:=0;

end;

procedure TMaterialsSelectFrm.TV_MaterialsDblClick(Sender: TObject);
begin
  with DM.AQ_Materials do
  begin
    close;
    SQL.Clear;
    SQL.Add('Select * from Materials where Materials_Class='+''''+TV_Materials.Selected.Text+'''');
    open;
  end;
end;

procedure TMaterialsSelectFrm.DBGrid1CellClick(Column: TColumn);
begin
 //  DM.AT_Materials.Filtered:=false;   //关闭过滤器
   SelectNo:=SelectNo+1;
   with  MaterialsSG1 do
    begin
      MaterialsSG1.RowCount:=SelectNo+1;
      cells[0,SelectNo]:=DM.AQ_Materials['Materials_ID'];
      cells[1,SelectNo]:=DM.AQ_Materials['Materials_Name'];
      cells[2,SelectNo]:=DM.AQ_Materials['Materials_Class'];
      cells[3,SelectNo]:=DM.AQ_Materials['Materials_MUnit'];
    end;
   Label1.Caption:='选择的记录:'+inttostr(SelectNo)+' 条';
end;

procedure TMaterialsSelectFrm.BitBtn1Click(Sender: TObject);
var
  i,j:integer;
begin
  for i:=0 to 4 do
   for j:=1 to SelectNo do
     MaterialsSG1.Cells[i,j]:='';
     MaterialsSG1.RowCount:=1;
   SelectNo:=0;
end;

procedure TMaterialsSelectFrm.BB_ConfirmClick(Sender: TObject);
begin
   MaterialsSelectFrm.Close;
   MaterialsSelectFrm.ModalResult:=mrOK;
end;

procedure TMaterialsSelectFrm.BB_CancelClick(Sender: TObject);
begin
   MaterialsSelectFrm.Close;
   MaterialsSelectFrm.ModalResult:=mrCancel;
end;

end.

⌨️ 快捷键说明

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