unit uKioskView; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit, cxNavigator, dxDateRanges, dxScrollbarAnnotations, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxClasses, cxGridCustomView, cxGrid, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.WinXPickers, MaterialData, SaleItemMst, DateUtils, cxTextEdit; type TfKioskView = class(TForm) Pan_tab_6: TPanel; Panel45: TPanel; Button5: TButton; cxGrid1: TcxGrid; cxGridTableView1: TcxGridTableView; cxGridTableView1Column3: TcxGridColumn; cxGridTableView1Column4: TcxGridColumn; cxGridTableView1Column5: TcxGridColumn; cxGridTableView1Column6: TcxGridColumn; cxGridTableView1Column7: TcxGridColumn; cxGridTableView1Column8: TcxGridColumn; cxGridLevel1: TcxGridLevel; DatePicker7: TDatePicker; Label63: TLabel; RadioGroup2: TRadioGroup; Panel58: TPanel; DatePicker1: TDatePicker; Label1: TLabel; Button1: TButton; cxGridTableView1Column2: TcxGridColumn; cxGridTableView1Column1: TcxGridColumn; cxGrid1Level1: TcxGridLevel; cxGrid1Level2: TcxGridLevel; cxGrid1TableView1: TcxGridTableView; cxGrid1TableView2: TcxGridTableView; RadioGroup1: TRadioGroup; Edit1: TEdit; cxGrid1TableView1Column2: TcxGridColumn; cxGrid1TableView1Column1: TcxGridColumn; cxGrid1TableView1Column4: TcxGridColumn; cxGrid1TableView1Column5: TcxGridColumn; cxGrid1TableView1Column6: TcxGridColumn; cxGrid1TableView1Column7: TcxGridColumn; cxGrid1TableView1Column8: TcxGridColumn; cxGrid1TableView2Column1: TcxGridColumn; cxGrid1TableView2Column2: TcxGridColumn; cxGrid1TableView2Column4: TcxGridColumn; cxGrid1TableView2Column5: TcxGridColumn; cxGrid1TableView2Column6: TcxGridColumn; cxGrid1TableView2Column7: TcxGridColumn; cxGrid1TableView1Column3: TcxGridColumn; cxGrid1TableView2Column3: TcxGridColumn; Memo1: TMemo; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton; Label2: TLabel; procedure Button5Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure Button1Click(Sender: TObject); procedure RadioButton1Click(Sender: TObject); private procedure GridRefresh(ck: Integer; s_date, e_date, str: string); { Private declarations } public { Public declarations } end; var fKioskView: TfKioskView; implementation uses uKiosk, uDM; {$R *.dfm} procedure TfKioskView.Button1Click(Sender: TObject); begin GridRefresh(RadioGroup1.ItemIndex, FormatDateTime('yyyy-mm-dd',DatePicker7.Date), FormatDateTime('yyyy-mm-dd',DatePicker1.Date), Edit1.Text); end; procedure TfKioskView.GridRefresh(ck:Integer; s_date,e_date,str:string); var row_ck, i : integer; tmpList : TList; kind : string; MaterialData : TMaterialData; SaleItemMst : TSaleItemMst; begin try try tmpList := TList.Create; kind := ''; case RadioGroup1.ItemIndex of 0 : begin MaterialData := TMaterialData.Create(Self); if RadioGroup2.ItemIndex > 0 then kind := RadioGroup2.Items.Strings[RadioGroup2.ItemIndex]; tmpList := MaterialData.xGetStrSqlMaterialDataList(dm.FDQuery1,kind,'',Edit1.Text,'NORMAL',s_date,e_date); with cxGridTableView1.DataController do begin try BeginUpdate; RecordCount := 0; finally EndUpdate; end; try BeginUpdate; for I := 0 to tmpList.Count-1 do begin MaterialData := TMaterialData(tmpList.Items[i]); row_ck := AppendRecord; Values[row_ck,cxGridTableView1Column1.Index] := MaterialData.OrdDate; Values[row_ck,cxGridTableView1Column2.Index] := MaterialData.Kind; Values[row_ck,cxGridTableView1Column3.Index] := MaterialData.OrdCode; Values[row_ck,cxGridTableView1Column4.Index] := MaterialData.Name; if MaterialData.kind = 'ÀÔ°í' then Values[row_ck,cxGridTableView1Column5.Index] := MaterialData.InQty else Values[row_ck,cxGridTableView1Column5.Index] := MaterialData.OutQty; Values[row_ck,cxGridTableView1Column6.Index] := MaterialData.Unitt; Values[row_ck,cxGridTableView1Column7.Index] := MaterialData.CustName; Values[row_ck,cxGridTableView1Column8.Index] := MaterialData.Descriptions; end; finally EndUpdate; end; end; end; 1 : begin // cxGrid1TableView1 MaterialData := TMaterialData.Create(Self); if RadioGroup2.ItemIndex > 0 then kind := RadioGroup2.Items.Strings[RadioGroup2.ItemIndex]; tmpList := MaterialData.xGetStrSqlMaterialDataList(dm.FDQuery1,kind,'',Edit1.Text,'RTP',s_date,e_date); with cxGrid1TableView1.DataController do begin try BeginUpdate; RecordCount := 0; finally EndUpdate; end; try BeginUpdate; for I := 0 to tmpList.Count-1 do begin MaterialData := TMaterialData(tmpList.Items[i]); row_ck := AppendRecord; Values[row_ck,cxGrid1TableView1Column1.Index] := MaterialData.OrdDate; Values[row_ck,cxGrid1TableView1Column2.Index] := MaterialData.Kind; Values[row_ck,cxGrid1TableView1Column3.Index] := MaterialData.OrdCode; Values[row_ck,cxGrid1TableView1Column4.Index] := MaterialData.Name; if MaterialData.kind = 'ÀÔ°í' then Values[row_ck,cxGridTableView1Column5.Index] := MaterialData.InQty else Values[row_ck,cxGridTableView1Column5.Index] := MaterialData.OutQty; Values[row_ck,cxGrid1TableView1Column6.Index] := MaterialData.Unitt; Values[row_ck,cxGrid1TableView1Column7.Index] := MaterialData.CustName; Values[row_ck,cxGrid1TableView1Column8.Index] := MaterialData.Descriptions; end; finally EndUpdate; end; end; end; 2 : begin SaleItemMst := TSaleItemMst.Create(Self); if RadioGroup2.ItemIndex > 0 then kind := RadioGroup2.Items.Strings[RadioGroup2.ItemIndex]; tmpList := SaleItemMst.xGetStrSqlSaleItemMstList(dm.FDQuery1,kind,'',Label2.Caption,s_date,e_date); with cxGrid1TableView2.DataController do begin try BeginUpdate; RecordCount := 0; finally EndUpdate; end; try BeginUpdate; for I := 0 to tmpList.Count-1 do begin SaleItemMst := TSaleItemMst(tmpList.Items[i]); row_ck := AppendRecord; Values[row_ck,cxGrid1TableView1Column1.Index] := SaleItemMst.Kind; Values[row_ck,cxGrid1TableView1Column2.Index] := SaleItemMst.OrdDate; Values[row_ck,cxGrid1TableView1Column3.Index] := SaleItemMst.CustName; Values[row_ck,cxGrid1TableView1Column4.Index] := SaleItemMst.Name; Values[row_ck,cxGrid1TableView1Column5.Index] := SaleItemMst.Qty; Values[row_ck,cxGrid1TableView1Column6.Index] := SaleItemMst.Unitt; Values[row_ck,cxGrid1TableView1Column7.Index] := SaleItemMst.Descriptions; end; finally EndUpdate; end; end; end; end; finally tmpList.Free; end; except on E: Exception do Memo1.Lines.Add('['+FormatDateTime('yyyymmdd hhnnss.zzz',now)+'] '+'Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; end; procedure TfKioskView.RadioButton1Click(Sender: TObject); begin case (Sender as TRadioButton).Tag of 0 : begin DatePicker7.Date := Now; DatePicker1.Date := Now; end; 1 : begin DatePicker7.Date := IncDay(DatePicker1.Date,-7); DatePicker1.Date := Now; end; 2 : begin DatePicker7.Date := IncDay(DatePicker1.Date,-30); DatePicker1.Date := Now; end; 3 : begin DatePicker7.Date := IncDay(DatePicker1.Date,-90); DatePicker1.Date := Now; end; end; end; procedure TfKioskView.Button5Click(Sender: TObject); begin close; end; procedure TfKioskView.FormShow(Sender: TObject); begin top := fKiosk.top+131; left := fKiosk.Left; DatePicker7.Date := Now; DatePicker1.Date := Now; case RadioGroup1.ItemIndex of 0 : begin cxGridLevel1.Active := True; end; 1 : begin cxGrid1Level1.Active := True; end; 2 : begin cxGrid1Level2.Active := True; end; end; GridRefresh(RadioGroup1.ItemIndex, FormatDateTime('yyyy-mm-dd',DatePicker7.Date), FormatDateTime('yyyy-mm-dd',DatePicker1.Date), Edit1.Text); end; end.