ผู้เขียน หัวข้อ: สอบถามวิธีการกำหนด TDBGRID แสดงข้อมูลตามวันที่ ที่เลือก  (อ่าน 6159 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ apisak

  • Full Member
  • ***
  • กระทู้: 204
  • Respect: 0
    • ดูรายละเอียด
    • โรงพยาบาลสวนผึ้ง
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.
HP ProLiant ML3306 G6

Ram 32 pg
โรงพยาบาลสวนผึ้ง จังหวัดราชบุรี
ขึ้นระบบ 2553
FreeBSD8.2
MySQL5.5.20

ออฟไลน์ nongnine

  • Jr. Member
  • **
  • กระทู้: 91
  • Respect: +7
    • ดูรายละเอียด
ถามสั้นไปนิด ไม่สื่อเท่าไรว่าต้องการให้แสดงข้อมูลก็
ตรง หน้าออกแบบ
MyDataSource1 กำหนด dataset = MyQuery1
DBGrid1 กำหนด datasource = MyDataSource1

แค่นี้ก็จะแสดงผลตามคิวรี่แล้ว


ออฟไลน์ apisak

  • Full Member
  • ***
  • กระทู้: 204
  • Respect: 0
    • ดูรายละเอียด
    • โรงพยาบาลสวนผึ้ง
ถามสั้นไปนิด ไม่สื่อเท่าไรว่าต้องการให้แสดงข้อมูลก็
ตรง หน้าออกแบบ
MyDataSource1 กำหนด dataset = MyQuery1
DBGrid1 กำหนด datasource = MyDataSource1

แค่นี้ก็จะแสดงผลตามคิวรี่แล้ว




คือ ต้องการ ให้ DBGrid  แสดงข้อมูลตามช่วงวัน  cxDBDateEdit1 / cxDBDateEdit2 (ตอนนี้กด Run ก็แสดงข้อมูลเลยครับ)
HP ProLiant ML3306 G6

Ram 32 pg
โรงพยาบาลสวนผึ้ง จังหวัดราชบุรี
ขึ้นระบบ 2553
FreeBSD8.2
MySQL5.5.20

ออฟไลน์ usa0823

  • Hero Member
  • *****
  • กระทู้: 773
  • Respect: +9
    • ดูรายละเอียด
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
***************************************
นายศรัญญู  ชูเมือง
จพ.เภสัชกรรมชำนาญงาน
ดูแลระบบ โรงพยาบาลลานสกา
E-mail  Sarunyu0823@hotmail.com
..............................................................................
** HOSxP ver. 3.56.11.19d
** MySQL 5.6.17
** Activated 2560

ออฟไลน์ apisak

  • Full Member
  • ***
  • กระทู้: 204
  • Respect: 0
    • ดูรายละเอียด
    • โรงพยาบาลสวนผึ้ง
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 เปล่า กรณีไม่มีการเลือกวันที่
HP ProLiant ML3306 G6

Ram 32 pg
โรงพยาบาลสวนผึ้ง จังหวัดราชบุรี
ขึ้นระบบ 2553
FreeBSD8.2
MySQL5.5.20

ออฟไลน์ Bond_007

  • Hero Member
  • *****
  • กระทู้: 1,533
  • เมื่อก่อนเคยรักมากเท่าไหร่มันยังคงรักมากเท่านั้น
  • Respect: +2
    • ดูรายละเอียด
แก้แบบให้เวลาเปิด 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 เปล่า กรณีไม่มีการเลือกวันที่

โรงพยาบาลศิริเวชลำพูน
Hosxp version 3.53.7.16
ขอขบคุณ อาจารย์ชัยพร,อ.อ็อด,อ.เกื้อ,พี่เอก,พี่กิติศักดิ์,พี่เข้ม,พี่ไสว,พี่ terminator 2010,พี่pikepid,พี่udomchock ,พี่ขวด,พี่เจมส์,ป๋าJdadmin,พี่กานดา admin ทุกๆท่าน และนางฟ้า BMS

ทำเพื่อใครสักคนฉันได้ทำเพื่อความรัก
ร้องให้สักคนฉันก็ร้องจากหัวใจ
รักที่มันต้องจบมันก็ยังงดงาม ฉันยังจำไว้

Nologo How to be hosxp star

ออฟไลน์ usa0823

  • Hero Member
  • *****
  • กระทู้: 773
  • Respect: +9
    • ดูรายละเอียด
if cxDBDateEdit1.date=null then
begin

xxxxxxxx;

end else
begin

xxxxxxxxx;

end;
***************************************
นายศรัญญู  ชูเมือง
จพ.เภสัชกรรมชำนาญงาน
ดูแลระบบ โรงพยาบาลลานสกา
E-mail  Sarunyu0823@hotmail.com
..............................................................................
** HOSxP ver. 3.56.11.19d
** MySQL 5.6.17
** Activated 2560

ออฟไลน์ apisak

  • Full Member
  • ***
  • กระทู้: 204
  • Respect: 0
    • ดูรายละเอียด
    • โรงพยาบาลสวนผึ้ง
if cxDBDateEdit1.date=null then
begin

xxxxxxxx;

end else
begin

xxxxxxxxx;

end;

ขอบคุณครับ แบบนี้แหละที่ต้องการ
แบบนี้ หลัง else ผมก็สั่ง show message ได้เลยที่เปล่าครับ
HP ProLiant ML3306 G6

Ram 32 pg
โรงพยาบาลสวนผึ้ง จังหวัดราชบุรี
ขึ้นระบบ 2553
FreeBSD8.2
MySQL5.5.20

ออฟไลน์ usa0823

  • Hero Member
  • *****
  • กระทู้: 773
  • Respect: +9
    • ดูรายละเอียด
if (cxDBDateEdit1.date=null) or (cxDBDateEdit2.date=null) then
begin

ถ้าไม่ใส่ค่าวันที่ show message เตือน;

end else
begin

ถ้าใส่วันที่  สั่งรัน sql;

end;
« แก้ไขครั้งสุดท้าย: มกราคม 07, 2013, 16:38:23 PM โดย usa0823 »
***************************************
นายศรัญญู  ชูเมือง
จพ.เภสัชกรรมชำนาญงาน
ดูแลระบบ โรงพยาบาลลานสกา
E-mail  Sarunyu0823@hotmail.com
..............................................................................
** HOSxP ver. 3.56.11.19d
** MySQL 5.6.17
** Activated 2560