左边是树(父接点是用户,子接点是日期),右边想显示他的定单和他的定单详表,我该如何做?(100分)

  • 主题发起人 主题发起人 wdsu
  • 开始时间 开始时间
W

wdsu

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Tfm_mainxt.TreeView1Change(Sender: TObject; Node: TTreeNode);

Var
v_customerid:integer;
v_custname,v_year,v_month,v_day:string;
begin
if TreeView1.Selected=nil then
exit;
Node.Selected:=true;
with qry_customer do
begin
close;
sql.Add('select * from customer where customer_name=:kehu');
parambyname('kehu').AsString:=treeview1.Selected.text;
prepare;
open;
end;

with datamodule2.qryorders do
begin
close;
sql.Add('select * from orders where customerid=:kehuid');
parambyname('kehuid').AsString:=qry_orders1.fieldbyname('customerid').AsString;
prepare;
open;
end;

我的数据表如下:
客户表:
customer: int char char char
customerid customername customeraddr customertel
客户编号 客户姓名 客户地址 客户电话
定单表:
orders: int int date int
ordersno customerid orderdate ordersnum
定单编号 客户编号 定货日期 定单总数量
详细记录表:
ordersdetail int int int int
ordersno itemsno partsno numbers
定单编号 子项目序号 产品代号 数量

end;

然后我在ds_orders,ds_ordersdetail(datasource)的DATACHANGE写了主从关系的代码,运行时
出现---------------------------
Debugger Exception Notification
---------------------------
Project p_orders_design.exe raised exception class EDBEngineError with message 'Query returned multiple result sets.'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
--------------------------
请教?有更好的办法吗
 
有谁帮帮我啊?
 
每人看见吗?怎么没人里我啊,可能我没说清楚。
我的树型结构如下:
-王二
-2002
-11
-19
我想单击王二,右边的能显示王二所有的定单,以及该定单对应的定单详表
(我现在用两个DBGRID,不知还有没有其他的好的控件),再单击2002,右边的控件里能显示
王二在2002年所有的定单及其详表,再单击11,又能显示王二在2002年11月份的定单,再单
击19,又能显示王二2002年11月19日的定单,这样的话,我该怎么做啊,请各位大富翁帮忙,
谢谢拉!

 
我急死了,那位富翁能帮我啊
 
我的建议是你不要用dbgrid,因为它的问题很多,用stringgrid,但是因为stringgrid不与数据库表相关,所以你必须在点击左边的树结点时重新将满足条件的记录写入到stringgrid中。
 
我想您应该这样吧! 你用StringGrid来显示内容,把StringGrid的固定列设为1,就是
说,让这个StringGrid最左边一列画树,当然最左边这列画树过程你的通过从StringGrid继
承新VCL组件,然后在其DrawCell过程里面取实现,然后再非固定列的Cell当中显示定单和
他的定单详表。
我们公司就这样做过,在您新继承的SringGrid组件当中,内建一个TreeView,当然这个
TreeView不是用来显示出来的,只是用来存储数据,然后实现让您的TreeView和StringGrid
的行同步,再在StringGrid的固定列中从TreeView得到数据画树形节点并写内容。
祝您好运!
 
to:宁柯
从来没有用过TStringGrid,更不知道怎么继承新VCL了最左边怎么画树啊,还有怎么在里面建树啊,你
能提供一下这方面的代码或资料吗,谢谢等待,着急啊.
 
大家好,还有人用过stringGrid的吗,怎么用啊.宁柯,岚岚在吗[^][^][^]
[:(][:(!]
 
procedure Tfm_mainxt.TreeView1Changing(Sender: TObject; Node: TTreeNode;
var AllowChange: Boolean);
begin
end;
procedure Tfm_mainxt.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
end;
其中的treenode是不是当前选中的节点?AllChange有什么用?
 
AllChange 可以控制允不允许改变
 
大家好,我的问题有点眉目了,解决如下
curTreeNode:=TreeView1.Selected;
custstr1:=curTreenode.Text;
ll:=length(custstr1);
k:=Pos('@',custstr1);
selRoot.custname:=copy(custstr1,k+1,ll-k);
if not table1.Locate('customer_name',selroot.custname,[]) then
begin
showmessage(selroot.custname);
//showmessage('客户表中没有该客户名!');
exit;
end
else
begin
with qry_orders1 do
begin
close;
sql.Clear;
sql.Add('select * from orders where customerid='''+table1.fieldbyname('customerid').AsString+'''');
prepare;
open;
end;
end;
但我还有点问题,现在的用户王二是可以传进去了,但他的子节点200年.11月,29日,怎样一个一个
传进去啊,是不是用treenode.selectedindex属性,我双击的时候怎么知道我点的是哪个子节点
selectedindex是对应treeview中的image控件图像索引号,还是对应字节点的索引植,谢谢





;
 
后退
顶部