一个TreeView的问题,郁闷中.............. 在节点中,我已把操作日期(数据库中为日期时间型)变有日期型添加成功,但没还没想到如何在点击节点后,也就是日期型的数据,赋值给一个DbGrid中的Filter...肯请不吝赐教........ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TreeView的OnClick事件,treeview.Selected.Text 但这样是选不到数据的,因为TreeView.Selected.Text是日期型,而数据表中是日期时间型,有没有更好的办法? 用FormatDateTime()转换一下试试吧 在节点中,我已把操作日期(数据库中为日期时间型)变有日期型添加成功,但没还没想到如何在点击节点后,也就是日期型的数据,赋值给一个DbGrid中的Filter/////////////////////////////////////////////////////////////汉语水平有限,看不懂,麻烦楼主再描述一遍,越详细越好! TreeView的OnClick事件,treeview.Selected.Text然后用FormatDateTime()转换你数据库里的那个日期型就可以啦 datetimetostr(treeview1.selected.text);应该也可以; 在查询中可以这样表示FormatDateTime('YYYYMMDD',Adoquery1['日期'])在Filter中该怎么表示? 最好用指针,如typePP = TA^;TA = record FDateTime: TDateTime;end;在OnMouseDown事件中用TreeView1.GetNodeAt(X, Y)取得节点,即with PP(TreeView1.GetNodeAT(X, Y).Data)^ do DBGrid1.DataSource.DataSet.Filtered := False; DBGrid1.DataSource.DataSet.Filter := 'somefieid = ''' + FormatDateTime('yyyy-MM-dd', FDataTime) + ''''; DBGrid1.DataSource.DataSet.Filtered := True;end; 请问SUNVSH(SUNV):FDateTime是定义了就可以吗? procedure TF_main.TreeView1Expanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean);var IndexId, ParentId, LevelId:integer; nodeText, ParentText, ParentSQLText:string;begin IndexId:=Node.Index; //索引 ParentId:=node.Parent.Index; // 父亲索引 LevelId:=Node.Level; // 层 nodeText:=Node.Text; //文本 if ParentId<>-1 then ParentText:=Node.Parent.Text; //父亲文本 if LevelId=2 then ParentSQLText:=node.Parent.Parent.Text; //父亲的父亲的文本 .....end; sunvsh(sunv) 最好用指针,如typePP = TA^;TA = record FDateTime: TDateTime;end;在OnMouseDown事件中用TreeView1.GetNodeAt(X, Y)取得节点,即with PP(TreeView1.GetNodeAT(X, Y).Data)^ do DBGrid1.DataSource.DataSet.Filtered := False; DBGrid1.DataSource.DataSet.Filter := 'somefieid = ''' + FormatDateTime('yyyy-MM-dd', FDataTime) + ''''; DBGrid1.DataSource.DataSet.Filtered := True;end;__________________________________________________________________________________这里的FDateTime是怎么定义的? 问题是这样的,TreeView中,是文本的日期,比如:'2004-1-13',但数据库中是日期时间型,就是后面还带了时间的,怎么能在DBGRID中的Filter中,让所有匹配'2004-1-13'的数据显示出来................ DBGrid1.DataSource.DataSet.Filter := 'aField>=2004-1-13 and aField<2004-1-14'; supxp() 可行,刚忘了开过滤器,谢谢,结贴 delphi模式编程 刘艺 谁有呀,我想买一本,电子版找不到全的,没法看。当当网缺货。 提问:GDI+打开的图像怎么在timage里面显示 各位老师: 用delphi7写菜单时,也做工具栏但是..... 专家乱入,来者有喜,mscomm控件开发问题,两帖求解! 恭请zzllabc进入,他人勿扰! 高手救我!!有关控件dock的问题。 你有OleContainer操作的问题吗?想OleContainer嵌入你的程序中正常操作吗? 看看错哪了!!!! 新手求助:固定格式的大文本导入数据库,如何提高运行效率?多谢啦! 打印机状态检测 重开一帖:自定义通用对话框 如何制作输入法的安装程序?
/////////////////////////////////////////////////////////////
汉语水平有限,看不懂,麻烦楼主再描述一遍,越详细越好!
然后用FormatDateTime()转换你数据库里的那个日期型就可以啦
在Filter中该怎么表示?
type
PP = TA^;
TA = record
FDateTime: TDateTime;
end;在OnMouseDown事件中用TreeView1.GetNodeAt(X, Y)取得节点,即
with PP(TreeView1.GetNodeAT(X, Y).Data)^ do
DBGrid1.DataSource.DataSet.Filtered := False;
DBGrid1.DataSource.DataSet.Filter := 'somefieid = ''' + FormatDateTime('yyyy-MM-dd', FDataTime) + '''';
DBGrid1.DataSource.DataSet.Filtered := True;
end;
var AllowExpansion: Boolean);
var IndexId,
ParentId,
LevelId:integer;
nodeText,
ParentText,
ParentSQLText:string;
begin
IndexId:=Node.Index; //索引
ParentId:=node.Parent.Index; // 父亲索引
LevelId:=Node.Level; // 层
nodeText:=Node.Text; //文本
if ParentId<>-1
then
ParentText:=Node.Parent.Text; //父亲文本
if LevelId=2
then
ParentSQLText:=node.Parent.Parent.Text; //父亲的父亲的文本
.....end;
type
PP = TA^;
TA = record
FDateTime: TDateTime;
end;在OnMouseDown事件中用TreeView1.GetNodeAt(X, Y)取得节点,即
with PP(TreeView1.GetNodeAT(X, Y).Data)^ do
DBGrid1.DataSource.DataSet.Filtered := False;
DBGrid1.DataSource.DataSet.Filter := 'somefieid = ''' + FormatDateTime('yyyy-MM-dd', FDataTime) + '''';
DBGrid1.DataSource.DataSet.Filtered := True;
end;
__________________________________________________________________________________这里的FDateTime是怎么定义的?