例如我想查询出某个柜组的所有商品的基本信息,包括商品代码,名称,供应商Id,销售数量、库存数量等,然后插入到我定义的一个类中,之后我想从类中取出数据,按照我选择的商品信息排序,例如按库存数量排序。
请各位高手帮忙,谢谢。
请各位高手帮忙,谢谢。
解决方案 »
- 谁能帮我测一下QQ2012登陆窗体的类名,为什么我测的是TXGuiFoundation,而且账号框的类名测得也是TXGuiFoundation,不知道怎么搞的。
- 求MDBGrid控件for delphi7
- WebServices中关于isapi和cgi的问题,同样事为什么isapi做不了?
- hellolongbin(一个人)散分贴之:到了最后,一个人终于还是一个人
- 关于消息处理和自定义消息的问题
- 如何在DLL中创建MDI子窗体
- 请教一下dbgrid列的显示和隐藏问题!
- 如何画一条直线,编辑时可移动它,可定位它、查看它的属性
- 发布软件时的AutoRun是如何做出来的,还有98启动光盘又是如何做的
- 如何实现任意控件的拖动,最好是用WinAPI实现的。
- 探讨delphi生成短数字唯一性ID问题,无分
- 关于如何使用好线程的问题
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB;
type
CommodityLink = ^Commodity;
Commodity = Record
CommodityId : String;
name : String;
SupplierId : String;
SaleNumber : integer;
StockNumber : integer;
Next : CommodityLink;
end;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
Query1: TADOQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
FirstList : CommodityLink;
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
New(FirstList);
FirstList.CommodityId := '';
FirstList.name := '';
FirstList.SupplierId := '';
FirstList.SaleNumber := 0;
FirstList.StockNumber := 0;
FirstList.Next := nil;
end;
//插入数据
procedure TForm1.Button1Click(Sender: TObject);
var
NewLink,CurentLink,NextLink : CommodityLink;
begin Query1.Close;
Query1.SQL.Text := 'Select * from s';
Query1.Open;
Query1.First; NextLink := FirstList;
while not query1.Eof do
begin
New(NewLink);
NewLink.CommodityId := Query1.fieldbyName('商品代码').AsString;
NewLink.name := Query1.fieldbyName('名称').AsString;
NewLink.SupplierId := Query1.fieldbyName('供应商Id').AsString;
NewLink.SaleNumber := Query1.fieldbyName('销售数量').AsInteger;
NewLink.StockNumber := Query1.fieldbyName('库存数量').AsInteger;
NewLink.Next := nil; if NextLink = nil then
begin
FirstList.Next := NewLink;
end
else
while(NextLink.Next <> nil) do
begin
NextLink := NextLink.Next;
end;
NextLink.Next := NewLink;
Query1.Next;
end;
end;
//排序
procedure TForm1.Button2Click(Sender: TObject);
var
CurrentLink,NextLink : CommodityLink;
temp : integer;
begin
CurrentLink := FirstList.Next;
NextLink := CurrentLink.Next; while(CurrentLink<> nil ) do
begin
NextLink := CurrentLink.Next;
while(NextLink <> nil) do
begin
if CurrentLink.StockNumber > NextLink.StockNumber then
begin
temp := CurrentLink.StockNumber;
CurrentLink.StockNumber := NextLink.StockNumber;
NextLink.StockNumber := Temp;
end;
NextLink := NextLink.Next;
end;
CurrentLink := CurrentLink.Next;
end;
end;
//显示排序结果
procedure TForm1.Button3Click(Sender: TObject);
var
CurentLink : CommodityLink;
begin
CurentLink := FirstList.Next;
while (CurentLink.Next <> nil ) do
begin
Self.Memo1.Lines.Add(IntToStr(CurentLink.StockNumber));
CurentLink := CurentLink.Next;
end;
end;end.