線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3302
推到 Plurk!
推到 Facebook!

datetimepicker的取值

尚未結案
andy_qin
一般會員


發表:41
回覆:51
積分:18
註冊:2003-03-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-07 10:48:41 IP:218.19.xxx.xxx 未訂閱
我想让程序开始时的默认日期为昨天, 在form1.show时写入 datetimepicker1.date:=date()-1; 但在程序查询时我要随时更改date的值, 在button按下之前读datetimepicker1的值, 发现取得的date不是我更改之后的, 而是昨天的日期,难道是我手工改的日期不会随即写入datetimepicker1.date吗? 要怎么才认我手工改的日期呢? 我让label1.text:=formatdatetime('YYYYMMDD',datetimepicker1.date) 这样没错,是我改的日期, 可我在数据库里取数据时,就不是新的日期, 各位大虾试试看,是不是也同样的错误?
andy_qin
一般會員


發表:41
回覆:51
積分:18
註冊:2003-03-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-07 11:39:17 IP:218.19.xxx.xxx 未訂閱
我想让程序开始时的默认日期为昨天, 在form1.show时写入 datetimepicker1.date:=date()-1; 但在程序查询时我要随时更改date的值, 在button按下之前读datetimepicker1的值, 发现取得的date不是我更改之后的, 而是昨天的日期,难道是我手工改的日期不会随即写入datetimepicker1.date吗? 要怎么才认我手工改的日期呢? 我让label1.text:=formatdatetime('YYYYMMDD',datetimepicker1.date) 这样没错,是我改的日期, 可我在数据库里取数据时,就不是新的日期, 各位大虾试试看,是不是也同样的错误?
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-07 12:26:27 IP:218.16.xxx.xxx 未訂閱
你是甚樣手工改日期的? 你是甚樣在数据库里取数据时,而得出不是新的日期?
andy_qin
一般會員


發表:41
回覆:51
積分:18
註冊:2003-03-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-07 14:35:08 IP:218.19.xxx.xxx 未訂閱
procedure TForm3.FormShow(Sender: TObject); var a,b:string; begin a:=formatdatetime('YYYYMMDD',datetimepicker1.date); b:=formatdatetime('YYYYMMDD',datetimepicker2.date); sql1:='select sas.rundate,sas.art_no,a.descr,sas.sales,sas.sales_amnt'; sql1:=sql1 ' ' 'from st_art_sales_daily sas,article a'; sql1:=sql1 ' ' 'where sas.art_no=a.art_no and sas.store_no=4 and sas.sales>0'; // sql1:=sql1 ' ' 'and to_char(sas.rundate,' '''YYYYMMDD''' ') between ' formatdatetime('YYYYMMDD',datetimepicker1.date) ' and ' formatdatetime('YYYYMMDD',datetimepicker2.date); sql1:=sql1 ' ' 'and to_char(sas.rundate,' '''YYYYMMDD''' ') between ' a ' and ' b;//这里我是想试两种方法 sql3:='select a.descr,a.suppl_no,s.name,a.stock,a.mmail_no,a.sell_pr*(1 tax.vat_perc/100.00) sell_pr,a.dms,a.on_order'; sql3:=sql3 ' ' 'from article a,supplier s,tax'; sql3:=sql3 ' ' 'where a.suppl_no=s.suppl_no and a.vat_no=tax.vat_no'; end; procedure TForm3.epEfRndBtn1Click(Sender: TObject); begin if flatedit1.Text<>'' then sql2:=' and sas.art_no=' flatedit1.Text; sql4:=' and a.art_no=' flatedit1.Text; adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add(sql1 sql2); adoquery1.Open; adoquery2.Close; adoquery2.SQL.Clear; adoquery2.SQL.Add(sql3 sql4); adoquery2.Open; end; procedure TForm3.DateTimePicker1Change(Sender: TObject); begin if datetimepicker1.date>=Date() then showmessage('最大日期为昨天,请重新输入'); if datetimepicker1.date<=Date()-40 then showmessage('最小日期有误,最长为40天'); end; procedure TForm3.DateTimePicker2Change(Sender: TObject); begin if datetimepicker2.date>=Date() then showmessage('最大日期为昨天,请重新输入'); if datetimepicker2.date<=Date()-40 then showmessage('最小日期有误,最长为40天'); end; procedure TForm3.FormCreate(Sender: TObject); begin datetimepicker1.date:=Date()-1; datetimepicker2.date:=date()-1; end; end. 有的地方是多余的,例如var a,b:string;等,我主要是想看看date的值, 发现那样没错,可是sql 中读取就有问题! 请版主帮忙看看!
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-07 14:51:48 IP:218.16.xxx.xxx 未訂閱
你在FormShow 裡使用 : sql1:=sql1 ' ' 'and to_char(sas.rundate,' '''YYYYMMDD''' ') between ' a ' and ' b;//这里我是想试两种方法 那時 a 和 b 的值是昨天的值 即使你在 DateTimePiacker 改了值, a 和 b 的值都不會變的, sql1 的值更加不會變了。 建議你將這一行加在 sql2 裡,在 procedure TForm3.epEfRndBtn1Click(Sender: TObject); 才即時從 DateTimePicker 取出最新的值。
andy_qin
一般會員


發表:41
回覆:51
積分:18
註冊:2003-03-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-07 15:12:32 IP:218.19.xxx.xxx 未訂閱
对! 多谢了! 恍然大悟啊! 我真够笨的!
系統時間:2024-05-16 20:40:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!