BMS-HOSxP Community
HOSxP => Delphi / Pascal => ข้อความที่เริ่มโดย: apisak ที่ มกราคม 03, 2013, 16:03:12 PM
-
unit Udate;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels,
cxLookAndFeelPainters, cxContainer, cxEdit, dxSkinsCore, dxSkinBlack,
dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom,
dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy,
dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian,
dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins,
dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinPumpkin, dxSkinSeven,
dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver,
dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld,
dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint,
dxSkinXmas2008Blue, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar,
cxDBEdit, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, Data.DB, DBAccess, MyAccess,
MemDS;
type
TForm1 = class(TForm)
MyConnection1: TMyConnection;
MyQuery1: TMyQuery;
MyDataSource1: TMyDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
cxDBDateEdit1: TcxDBDateEdit;
cxDBDateEdit2: TcxDBDateEdit;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
MyQuery1.sql.text:=' select vn_stat.vn,vn_stat.hn,vn_stat.pdx,vn_stat.vstdate from vn_stat where vstdate between "'+formatdatetime('yyyy-mm-dd',cxDBDateEdit1.date)+'" and "'+formatdatetime('yyyy-mm-dd',cxDBDateEdit1.date)+'" ';
MyQuery1.open;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
-
ถามสั้นไปนิด ไม่สื่อเท่าไรว่าต้องการให้แสดงข้อมูลก็
ตรง หน้าออกแบบ
MyDataSource1 กำหนด dataset = MyQuery1
DBGrid1 กำหนด datasource = MyDataSource1
แค่นี้ก็จะแสดงผลตามคิวรี่แล้ว
-
ถามสั้นไปนิด ไม่สื่อเท่าไรว่าต้องการให้แสดงข้อมูลก็
ตรง หน้าออกแบบ
MyDataSource1 กำหนด dataset = MyQuery1
DBGrid1 กำหนด datasource = MyDataSource1
แค่นี้ก็จะแสดงผลตามคิวรี่แล้ว
คือ ต้องการ ให้ DBGrid แสดงข้อมูลตามช่วงวัน cxDBDateEdit1 / cxDBDateEdit2 (ตอนนี้กด Run ก็แสดงข้อมูลเลยครับ)
-
procedure TForm1.FormCreate(Sender: TObject);
begin
MyQuery1.sql.text:=' select vn_stat.vn,vn_stat.hn,vn_stat.pdx,vn_stat.vstdate from vn_stat limit 0 ';
MyQuery1.open;
end;
;D
-
procedure TForm1.FormCreate(Sender: TObject);
begin
MyQuery1.sql.text:=' select vn_stat.vn,vn_stat.hn,vn_stat.pdx,vn_stat.vstdate from vn_stat limit 0 ';
MyQuery1.open;
end;
;D
ขอบคุณครับ
แก้ที่ MyQuery1 ก่อน select vn_stat.vn,vn_stat.hn,vn_stat.pdx,vn_stat.vstdate from vn_stat limit 0
MyQuery1.sql.text:=' select * from vn_stat where vstdate between "'+formatdatetime('yyyy-mm-dd',cxDBDateEdit1.date)+'" and "'+formatdatetime('yyyy-mm-dd',cxDBDateEdit1.date)+'" ';
MyQuery1.open;
cxDBDateEdit // กำหนด DataBinding // datasurce , dataset
//มีตัวอย่างการ ดัก error เปล่า กรณีไม่มีการเลือกวันที่
-
แก้แบบให้เวลาเปิด form แล้วให้แสดงวันที่ปัจจุบันได้ป่าวครับ
เช่น
cxDBDateEdit1.date := now();
procedure TForm1.FormCreate(Sender: TObject);
begin
MyQuery1.sql.text:=' select vn_stat.vn,vn_stat.hn,vn_stat.pdx,vn_stat.vstdate from vn_stat limit 0 ';
MyQuery1.open;
end;
;D
ขอบคุณครับ
แก้ที่ MyQuery1 ก่อน select vn_stat.vn,vn_stat.hn,vn_stat.pdx,vn_stat.vstdate from vn_stat limit 0
MyQuery1.sql.text:=' select * from vn_stat where vstdate between "'+formatdatetime('yyyy-mm-dd',cxDBDateEdit1.date)+'" and "'+formatdatetime('yyyy-mm-dd',cxDBDateEdit1.date)+'" ';
MyQuery1.open;
cxDBDateEdit // กำหนด DataBinding // datasurce , dataset
//มีตัวอย่างการ ดัก error เปล่า กรณีไม่มีการเลือกวันที่
-
if cxDBDateEdit1.date=null then
begin
xxxxxxxx;
end else
begin
xxxxxxxxx;
end;
-
if cxDBDateEdit1.date=null then
begin
xxxxxxxx;
end else
begin
xxxxxxxxx;
end;
ขอบคุณครับ แบบนี้แหละที่ต้องการ
แบบนี้ หลัง else ผมก็สั่ง show message ได้เลยที่เปล่าครับ
-
if (cxDBDateEdit1.date=null) or (cxDBDateEdit2.date=null) then
begin
ถ้าไม่ใส่ค่าวันที่ show message เตือน;
end else
begin
ถ้าใส่วันที่ สั่งรัน sql;
end;