3286 lines
99 KiB
ObjectPascal
3286 lines
99 KiB
ObjectPascal
unit uKiosk;
|
||
|
||
interface
|
||
|
||
uses
|
||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, System.Types, System.Math,
|
||
System.TypInfo,
|
||
|
||
RegisterClasses_base, wItem, EmpMst, Vcl.Grids, Vcl.ComCtrls, Vcl.Imaging.jpeg,
|
||
acPNG, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters,
|
||
cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit, cxNavigator,
|
||
dxDateRanges, dxScrollbarAnnotations, Data.DB, cxDBData,
|
||
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
|
||
cxClasses, cxGridCustomView, cxGrid, cxCalc, cxTextEdit,
|
||
|
||
dxSkinDevExpressStyle,
|
||
|
||
cxCheckBox, cxContainer, cxMaskEdit, cxDropDownEdit,
|
||
cxCheckComboBox, Vcl.WinXCtrls, IniFiles, Vcl.WinXPickers,
|
||
|
||
System.Net.HttpClient, System.Net.URLClient,
|
||
System.Net.HttpClientComponent, System.JSON,
|
||
|
||
MaterialData, SaleItemMst, ProductMst, CustMst, MachineMst,
|
||
Vcl.Touch.GestureMgr, Vcl.Menus,
|
||
|
||
EmpLog, cxCurrencyEdit;
|
||
|
||
type
|
||
TfKiosk = class(TForm)
|
||
Panel1: TPanel;
|
||
GroupBox1: TGroupBox;
|
||
lbDBName: TLabeledEdit;
|
||
lbHost: TLabeledEdit;
|
||
lbPort: TLabeledEdit;
|
||
lbPassword: TLabeledEdit;
|
||
lbUserName: TLabeledEdit;
|
||
btDBConnect: TButton;
|
||
btDBdisConnect: TButton;
|
||
Button3: TButton;
|
||
Memo1: TMemo;
|
||
Memo2: TMemo;
|
||
StringGrid1: TStringGrid;
|
||
Panel2: TPanel;
|
||
Button2: TButton;
|
||
btQuery: TButton;
|
||
Pan_Main: TPanel;
|
||
Panel4: TPanel;
|
||
Image1: TImage;
|
||
Label4: TLabel;
|
||
Timer_datetime: TTimer;
|
||
Pan_default: TPanel;
|
||
PageControl1: TPageControl;
|
||
tab_pan_1: TTabSheet;
|
||
Pan_tab_1: TPanel;
|
||
tab_pan_2: TTabSheet;
|
||
Pan_tab_2: TPanel;
|
||
tab_pan_3: TTabSheet;
|
||
Pan_tab_3: TPanel;
|
||
Panel5: TPanel;
|
||
Label5: TLabel;
|
||
Panel6: TPanel;
|
||
Label6: TLabel;
|
||
Panel7: TPanel;
|
||
Label7: TLabel;
|
||
Panel8: TPanel;
|
||
Panel9: TPanel;
|
||
Panel10: TPanel;
|
||
Panel11: TPanel;
|
||
Label8: TLabel;
|
||
Panel12: TPanel;
|
||
Label9: TLabel;
|
||
Panel13: TPanel;
|
||
Label10: TLabel;
|
||
Panel14: TPanel;
|
||
Panel15: TPanel;
|
||
Button1: TButton;
|
||
Panel16: TPanel;
|
||
GridOrderList: TcxGrid;
|
||
GridOrderListTV: TcxGridTableView;
|
||
GridOrderListTVColumn1: TcxGridColumn;
|
||
GridOrderListTVColumn2: TcxGridColumn;
|
||
GridOrderListTVColumn3: TcxGridColumn;
|
||
GridOrderListTVColumn4: TcxGridColumn;
|
||
GridOrderListTVColumn5: TcxGridColumn;
|
||
GridOrderListTVColumn6: TcxGridColumn;
|
||
GridOrderListTVColumn7: TcxGridColumn;
|
||
GridOrderListTVColumn8: TcxGridColumn;
|
||
GridOrderListTVColumn9: TcxGridColumn;
|
||
GridOrderListTVColumn10: TcxGridColumn;
|
||
GridOrderListTVColumn11: TcxGridColumn;
|
||
GridOrderListTVColumn12: TcxGridColumn;
|
||
GridOrderListTVColumn13: TcxGridColumn;
|
||
GridOrderListTVColumn14: TcxGridColumn;
|
||
GridOrderListTVColumn15: TcxGridColumn;
|
||
GridOrderListLv: TcxGridLevel;
|
||
GridPanel1: TGridPanel;
|
||
Panel17: TPanel;
|
||
Panel18: TPanel;
|
||
Panel19: TPanel;
|
||
Panel20: TPanel;
|
||
Button4: TButton;
|
||
TabSheet1: TTabSheet;
|
||
Panel21: TPanel;
|
||
TabSheet2: TTabSheet;
|
||
Panel23: TPanel;
|
||
Label11: TLabel;
|
||
Panel24: TPanel;
|
||
Label12: TLabel;
|
||
Label13: TLabel;
|
||
Label14: TLabel;
|
||
Label15: TLabel;
|
||
Label16: TLabel;
|
||
Label17: TLabel;
|
||
Label18: TLabel;
|
||
Label19: TLabel;
|
||
Label20: TLabel;
|
||
Edit1: TEdit;
|
||
Edit2: TEdit;
|
||
Edit3: TEdit;
|
||
Edit4: TEdit;
|
||
Edit5: TEdit;
|
||
Edit6: TEdit;
|
||
ComboBox1: TComboBox;
|
||
Panel22: TPanel;
|
||
Label21: TLabel;
|
||
Label22: TLabel;
|
||
Label23: TLabel;
|
||
Label24: TLabel;
|
||
Label25: TLabel;
|
||
Label26: TLabel;
|
||
Label27: TLabel;
|
||
Label28: TLabel;
|
||
Panel25: TPanel;
|
||
Label29: TLabel;
|
||
Panel26: TPanel;
|
||
Label30: TLabel;
|
||
Edit7: TEdit;
|
||
Edit8: TEdit;
|
||
Edit9: TEdit;
|
||
Edit10: TEdit;
|
||
Edit11: TEdit;
|
||
Edit12: TEdit;
|
||
ComboBox2: TComboBox;
|
||
TabSheet3: TTabSheet;
|
||
Pan_Setting: TPanel;
|
||
Edit15: TEdit;
|
||
Label35: TLabel;
|
||
Panel3: TPanel;
|
||
Panel29: TPanel;
|
||
Label36: TLabel;
|
||
Edit16: TEdit;
|
||
Label37: TLabel;
|
||
ComboBox4: TComboBox;
|
||
ComboBox5: TComboBox;
|
||
ComboBox6: TComboBox;
|
||
Label41: TLabel;
|
||
Label42: TLabel;
|
||
Label43: TLabel;
|
||
DatePicker1: TDatePicker;
|
||
DatePicker2: TDatePicker;
|
||
DatePicker3: TDatePicker;
|
||
Panel31: TPanel;
|
||
Panel32: TPanel;
|
||
Panel33: TPanel;
|
||
Label44: TLabel;
|
||
Edit19: TEdit;
|
||
Edit20: TEdit;
|
||
Edit21: TEdit;
|
||
Panel34: TPanel;
|
||
Label45: TLabel;
|
||
Panel35: TPanel;
|
||
Edit22: TEdit;
|
||
Edit23: TEdit;
|
||
Edit24: TEdit;
|
||
Panel36: TPanel;
|
||
ComboBox7: TComboBox;
|
||
tab_Pan_4: TTabSheet;
|
||
tab_Pan_5: TTabSheet;
|
||
Pan_tab_4: TPanel;
|
||
Panel41: TPanel;
|
||
Panel42: TPanel;
|
||
Label51: TLabel;
|
||
Panel43: TPanel;
|
||
Edit17: TEdit;
|
||
Edit25: TEdit;
|
||
Edit26: TEdit;
|
||
Panel44: TPanel;
|
||
Pan_tab_5: TPanel;
|
||
Panel49: TPanel;
|
||
Panel50: TPanel;
|
||
Label55: TLabel;
|
||
Panel51: TPanel;
|
||
Edit27: TEdit;
|
||
Edit28: TEdit;
|
||
Edit29: TEdit;
|
||
Panel52: TPanel;
|
||
Pan_6: TPanel;
|
||
Label49_1: TLabel;
|
||
Pan_7: TPanel;
|
||
Label49: TLabel;
|
||
Pan_8: TPanel;
|
||
Label50: TLabel;
|
||
TabSheet4: TTabSheet;
|
||
Pan_tab_6: TPanel;
|
||
Panel45: TPanel;
|
||
Panel46: TPanel;
|
||
Panel48: TPanel;
|
||
cxGrid1: TcxGrid;
|
||
cxGridTableView1: TcxGridTableView;
|
||
cxGridLevel1: TcxGridLevel;
|
||
Edit30: TEdit;
|
||
Button5: TButton;
|
||
Button7: TButton;
|
||
Panel53: TPanel;
|
||
Label59: TLabel;
|
||
Edit34: TEdit;
|
||
Label61: TLabel;
|
||
Edit35: TEdit;
|
||
TabSheet5: TTabSheet;
|
||
TabSheet6: TTabSheet;
|
||
cxGridTableView1Column1: TcxGridColumn;
|
||
cxGridTableView1Column2: TcxGridColumn;
|
||
cxGridTableView1Column3: TcxGridColumn;
|
||
cxGridTableView1Column4: TcxGridColumn;
|
||
Button6: TButton;
|
||
Button14: TButton;
|
||
pan_tab_8: TPanel;
|
||
Panel38: TPanel;
|
||
Edit31: TEdit;
|
||
Button11: TButton;
|
||
Button12: TButton;
|
||
Panel39: TPanel;
|
||
Panel40: TPanel;
|
||
Label52: TLabel;
|
||
Label53: TLabel;
|
||
Button15: TButton;
|
||
Panel47: TPanel;
|
||
Edit32: TEdit;
|
||
Edit33: TEdit;
|
||
pan_tab_7: TPanel;
|
||
Panel55: TPanel;
|
||
cxGrid3: TcxGrid;
|
||
cxGridTableView3: TcxGridTableView;
|
||
cxGridTableView3Column1: TcxGridColumn;
|
||
cxGridTableView3Column2: TcxGridColumn;
|
||
cxGridTableView3Column3: TcxGridColumn;
|
||
cxGridTableView3Column4: TcxGridColumn;
|
||
cxGridLevel3: TcxGridLevel;
|
||
Edit36: TEdit;
|
||
Button8: TButton;
|
||
Button9: TButton;
|
||
Panel56: TPanel;
|
||
Panel57: TPanel;
|
||
Label48: TLabel;
|
||
Label54: TLabel;
|
||
Button13: TButton;
|
||
Panel58: TPanel;
|
||
Edit37: TEdit;
|
||
Edit38: TEdit;
|
||
Label56: TLabel;
|
||
Label58: TLabel;
|
||
Label60: TLabel;
|
||
Label62: TLabel;
|
||
Edit41: TEdit;
|
||
Edit42: TEdit;
|
||
Edit40: TEdit;
|
||
Edit43: TEdit;
|
||
Label63: TLabel;
|
||
Label64: TLabel;
|
||
Edit45: TEdit;
|
||
Label65: TLabel;
|
||
Label66: TLabel;
|
||
Label67: TLabel;
|
||
Edit47: TEdit;
|
||
Label68: TLabel;
|
||
Edit44: TEdit;
|
||
DatePicker7: TDatePicker;
|
||
DatePicker4: TDatePicker;
|
||
Label69: TLabel;
|
||
Edit13: TEdit;
|
||
Label70: TLabel;
|
||
Edit14: TEdit;
|
||
Label71: TLabel;
|
||
DatePicker5: TDatePicker;
|
||
Label72: TLabel;
|
||
GroupBox2: TGroupBox;
|
||
RadioButton1: TRadioButton;
|
||
RadioButton2: TRadioButton;
|
||
Label73: TLabel;
|
||
GroupBox3: TGroupBox;
|
||
RadioButton3: TRadioButton;
|
||
RadioButton4: TRadioButton;
|
||
Label74: TLabel;
|
||
GroupBox4: TGroupBox;
|
||
RadioButton5: TRadioButton;
|
||
RadioButton6: TRadioButton;
|
||
Label75: TLabel;
|
||
GroupBox5: TGroupBox;
|
||
RadioButton7: TRadioButton;
|
||
RadioButton8: TRadioButton;
|
||
Label76: TLabel;
|
||
Label78: TLabel;
|
||
Label79: TLabel;
|
||
Label80: TLabel;
|
||
Tmr_close: TTimer;
|
||
edt_close: TEdit;
|
||
Image4: TImage;
|
||
Image5: TImage;
|
||
Image6: TImage;
|
||
TabSheet7: TTabSheet;
|
||
Pan_Login: TPanel;
|
||
Image3: TImage;
|
||
Label34: TLabel;
|
||
Label57: TLabel;
|
||
Panel27: TPanel;
|
||
Image2: TImage;
|
||
Label31: TLabel;
|
||
Panel30: TPanel;
|
||
Image7: TImage;
|
||
Label32: TLabel;
|
||
Label33: TLabel;
|
||
edt_PASS: TEdit;
|
||
Panel28: TPanel;
|
||
edt_ID: TEdit;
|
||
RadioGroup1: TRadioGroup;
|
||
RadioGroup2: TRadioGroup;
|
||
RadioGroup3: TRadioGroup;
|
||
GroupBox6: TGroupBox;
|
||
RadioButton9: TRadioButton;
|
||
RadioButton10: TRadioButton;
|
||
Edit49: TEdit;
|
||
Panel37: TPanel;
|
||
cxGrid2: TcxGrid;
|
||
cxGridTableView2: TcxGridTableView;
|
||
cxGridTableView2Column1: TcxGridColumn;
|
||
cxGridTableView2Column2: TcxGridColumn;
|
||
cxGridTableView2Column3: TcxGridColumn;
|
||
cxGridTableView2Column4: TcxGridColumn;
|
||
cxGridTableView2Column5: TcxGridColumn;
|
||
cxGridTableView2Column6: TcxGridColumn;
|
||
cxGridTableView2Column7: TcxGridColumn;
|
||
cxGridTableView2Column8: TcxGridColumn;
|
||
cxGridLevel2: TcxGridLevel;
|
||
cxGrid4: TcxGrid;
|
||
cxGridTableView4: TcxGridTableView;
|
||
cxGridLevel4: TcxGridLevel;
|
||
cxGridTableView4Column1: TcxGridColumn;
|
||
cxGrid2Level1: TcxGridLevel;
|
||
cxGrid2TableView1: TcxGridTableView;
|
||
cxGrid2TableView1Column1: TcxGridColumn;
|
||
cxGrid2TableView1Column2: TcxGridColumn;
|
||
cbCustList: TComboBox;
|
||
Image8: TImage;
|
||
Panel60: TPanel;
|
||
Label38: TLabel;
|
||
Panel54: TPanel;
|
||
Panel59: TPanel;
|
||
ComboBox3: TComboBox;
|
||
RadioButton11: TRadioButton;
|
||
ComboBox8: TComboBox;
|
||
ComboBox9: TComboBox;
|
||
Edit18: TEdit;
|
||
cxGridTableView3Column5: TcxGridColumn;
|
||
Edit39: TEdit;
|
||
cxGridTableView2Column9: TcxGridColumn;
|
||
edtManufact: TEdit;
|
||
edtModel: TEdit;
|
||
edtMatUnitPrice: TEdit;
|
||
cxGridTableView2Column10: TcxGridColumn;
|
||
Edit46: TEdit;
|
||
Panel61: TPanel;
|
||
cxGridTableView2Column11: TcxGridColumn;
|
||
Edit48: TEdit;
|
||
cxGridTableView2Column12: TcxGridColumn;
|
||
Edit50: TEdit;
|
||
btnFINISH: TButton;
|
||
edt_OBID: TEdit;
|
||
edt_loginDateTime: TEdit;
|
||
|
||
procedure btDBConnectClick(Sender: TObject);
|
||
procedure btDBdisConnectClick(Sender: TObject);
|
||
procedure Button2Click(Sender: TObject);
|
||
procedure btQueryClick(Sender: TObject);
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure FormDestroy(Sender: TObject);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure Button3Click(Sender: TObject);
|
||
procedure StringGrid1DblClick(Sender: TObject);
|
||
procedure Panel2MouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure Panel2MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||
Y: Integer);
|
||
procedure Panel2MouseUp(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure Pan_MainMouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure Timer_datetimeTimer(Sender: TObject);
|
||
procedure Label5Click(Sender: TObject);
|
||
procedure Label8Click(Sender: TObject);
|
||
procedure Button1Click(Sender: TObject);
|
||
procedure Panel18Click(Sender: TObject);
|
||
procedure Button4Click(Sender: TObject);
|
||
procedure Label12Click(Sender: TObject);
|
||
procedure Label30Click(Sender: TObject);
|
||
procedure Panel28Click(Sender: TObject);
|
||
procedure Image3Click(Sender: TObject);
|
||
procedure Label4Click(Sender: TObject);
|
||
procedure Panel3Click(Sender: TObject);
|
||
procedure Panel29Click(Sender: TObject);
|
||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
procedure Panel32Click(Sender: TObject);
|
||
procedure Panel33Click(Sender: TObject);
|
||
procedure Panel35Click(Sender: TObject);
|
||
procedure Panel36Click(Sender: TObject);
|
||
procedure Button6Click(Sender: TObject);
|
||
procedure Image1Click(Sender: TObject);
|
||
procedure Button14Click(Sender: TObject);
|
||
procedure Button12Click(Sender: TObject);
|
||
procedure Button9Click(Sender: TObject);
|
||
procedure Button5Click(Sender: TObject);
|
||
procedure cxGridTableView1CustomDrawCell(Sender: TcxCustomGridTableView;
|
||
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
|
||
var ADone: Boolean);
|
||
procedure Button8Click(Sender: TObject);
|
||
procedure Button11Click(Sender: TObject);
|
||
procedure cxGridTableView1FocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
procedure cxGridTableView3FocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
procedure cxGridTableView2FocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
procedure Button7Click(Sender: TObject);
|
||
procedure Button13Click(Sender: TObject);
|
||
procedure edt_IDKeyPress(Sender: TObject; var Key: Char);
|
||
procedure edt_PASSKeyPress(Sender: TObject; var Key: Char);
|
||
procedure Tmr_closeTimer(Sender: TObject);
|
||
procedure Label31Click(Sender: TObject);
|
||
procedure Button15Click(Sender: TObject);
|
||
procedure Label49_1Click(Sender: TObject);
|
||
procedure RadioButton9Click(Sender: TObject);
|
||
procedure Edit31Change(Sender: TObject);
|
||
procedure cxGridTableView4CustomDrawCell(Sender: TcxCustomGridTableView;
|
||
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
|
||
var ADone: Boolean);
|
||
procedure cxGridTableView4FocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
procedure cxGridTableView4CellClick(Sender: TcxCustomGridTableView;
|
||
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
|
||
AShift: TShiftState; var AHandled: Boolean);
|
||
procedure cxGrid2TableView1FocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
procedure PageControl1Changing(Sender: TObject; var AllowChange: Boolean);
|
||
procedure Panel54Click(Sender: TObject);
|
||
procedure Panel59Click(Sender: TObject);
|
||
procedure cxGrid2TableView1CustomDrawCell(Sender: TcxCustomGridTableView;
|
||
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
|
||
var ADone: Boolean);
|
||
procedure Edit34KeyPress(Sender: TObject; var Key: Char);
|
||
procedure Panel61Click(Sender: TObject);
|
||
procedure cxGridTableView4MouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure cxGridTableView4MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||
Y: Integer);
|
||
procedure cxGridTableView4MouseUp(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure cxGridTableView2MouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure cxGridTableView2MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||
Y: Integer);
|
||
procedure cxGridTableView2MouseUp(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure cxGrid2TableView1MouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure cxGrid2TableView1MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||
Y: Integer);
|
||
procedure cxGrid2TableView1MouseUp(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure cxGridTableView3MouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure cxGridTableView3MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||
Y: Integer);
|
||
procedure cxGridTableView3MouseUp(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure cxGridTableView1MouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure cxGridTableView1MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||
Y: Integer);
|
||
procedure cxGridTableView1MouseUp(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure cxGridTableView4MouseEnter(Sender: TObject);
|
||
procedure Panel38MouseEnter(Sender: TObject);
|
||
procedure Panel40MouseEnter(Sender: TObject);
|
||
procedure btnFINISHClick(Sender: TObject);
|
||
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
||
private
|
||
{ Private declarations }
|
||
dev_mode : integer;
|
||
|
||
FqryList: TList;
|
||
|
||
FDragging: Boolean;
|
||
FOffset: TPoint;
|
||
inifilename : string;
|
||
|
||
FDragScrolling: Boolean;
|
||
FStartY: Integer;
|
||
FStartTopRow: Integer;
|
||
|
||
procedure xShowInfo(tmpList: TList);
|
||
procedure xFreeAll(tmpList: TList);
|
||
function xGetObjEmpInfo: TList;
|
||
procedure pan_select(tag: integer);
|
||
procedure label_set_alclient;
|
||
procedure Buttonselect(tag: integer);
|
||
procedure Buttonselect_1(tag: integer);
|
||
procedure BTCreate_1(page_no,count: integer);
|
||
procedure BTCreate_2(page_no,count: integer);
|
||
procedure DynamicButton_1Click(Sender: TObject);
|
||
procedure DynamicButton_2Click(Sender: TObject);
|
||
procedure SelectFocusedRecord;
|
||
procedure recordselectbt_1(fpanel:TPanel ; ck: integer);
|
||
procedure PG_Connect;
|
||
procedure Material_refresh;
|
||
procedure Material_RTP_refresh;
|
||
procedure SaleItem_refresh;
|
||
function qCreateGetUniqueString(clsName: string): string;
|
||
procedure xCreateInsertSql(curMaterial: TMaterialData);
|
||
procedure xCreateInsertSql_EmpLog(EmpLog: TEmpLog);
|
||
procedure xCreateInsertSql_FobjSale(curSaleItem: TSaleItemMst);
|
||
procedure AlertCall(msg: string);
|
||
function ConfirmCall(msg: string):Boolean;
|
||
procedure login_;
|
||
procedure logout_;
|
||
procedure easyselectgridRefresh;
|
||
procedure cbCustList_Refresh;
|
||
function Alarm_use_CK: Boolean;
|
||
function Alarm_use_UPDATE(_set:string): Boolean;
|
||
function nametostock(_name: string): string;
|
||
function NametoProdModel(_name: string): string;
|
||
function NametoMatUnitPrice(_name: string): string;
|
||
procedure ordermstupdate(_name, _OBID, _LcStatus:string);
|
||
procedure login_API(logdata:string);
|
||
function GetLocalIPAddress: string;
|
||
function GetTimeDiffStr(StartTime, EndTime: TDateTime): string;
|
||
procedure alarmstatusCK(ck: Boolean);
|
||
procedure alarmstatusRefresh;
|
||
public
|
||
{ Public declarations }
|
||
procedure xAutoResizeStringGridColumns(Grid: TStringGrid; Canvas: TCanvas);
|
||
end;
|
||
|
||
var
|
||
fKiosk: TfKiosk;
|
||
|
||
implementation
|
||
uses uDM, NeolTestMain, Editor, uKioskView, uConfirmMessage, uAlertMessage, IdStack, uLogManagerThread;
|
||
|
||
{$R *.dfm}
|
||
|
||
procedure TfKiosk.PageControl1Changing(Sender: TObject;
|
||
var AllowChange: Boolean);
|
||
begin
|
||
// cbCustList_Refresh;
|
||
end;
|
||
|
||
procedure TfKiosk.cbCustList_Refresh;
|
||
var
|
||
CustMst : TCustMst;
|
||
tmpList : TStrings;
|
||
i : integer;
|
||
begin
|
||
try
|
||
cbCustList.Clear;
|
||
ComboBox8.Clear;
|
||
ComboBox9.Clear;
|
||
tmpList := TStringList.Create;
|
||
CustMst := TCustMst.Create(Self);
|
||
tmpList := CustMst.xGetStrsDistinctCustName(dm.FDQuery1);
|
||
if tmpList.Count > 0 then begin
|
||
for i := 0 to tmpList.Count -1 do begin
|
||
cbCustList.Items.Add(tmpList[i]);
|
||
end;
|
||
ComboBox8.Items := cbCustList.Items;
|
||
ComboBox9.Items := cbCustList.Items;
|
||
end;
|
||
finally
|
||
tmpList.Free;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel18Click(Sender: TObject);
|
||
begin
|
||
recordselectbt_1(Sender as TPanel, (Sender as TPanel).Tag);
|
||
end;
|
||
|
||
procedure TfKiosk.recordselectbt_1(fpanel:TPanel ; ck:integer);
|
||
begin
|
||
fpanel.Color := $00978F62;
|
||
|
||
if (GridOrderListTV.DataController.RecordCount > 0) then
|
||
begin
|
||
if GridOrderListTV.DataController.GetSelectedCount = 0 then
|
||
GridOrderListTV.DataController.FocusedRecordIndex := 0;
|
||
|
||
case ck of
|
||
0 : begin
|
||
GridOrderListTV.DataController.FocusedRecordIndex := 0;
|
||
end;
|
||
1 : begin
|
||
// if GridOrderListTV.DataController.FocusedRecordIndex - 1 >= 0 then
|
||
// GridOrderListTV.DataController.FocusedRecordIndex := GridOrderListTV.DataController.FocusedRecordIndex - 1;
|
||
if GridOrderListTV.DataController.FocusedRecordIndex - 7 >= 0 then
|
||
GridOrderListTV.DataController.FocusedRecordIndex := GridOrderListTV.DataController.FocusedRecordIndex - 7
|
||
else
|
||
GridOrderListTV.DataController.FocusedRecordIndex := 0;
|
||
end;
|
||
2 : begin
|
||
// if GridOrderListTV.DataController.FocusedRecordIndex + 1 < GridOrderListTV.DataController.RecordCount then
|
||
// GridOrderListTV.DataController.FocusedRecordIndex := GridOrderListTV.DataController.FocusedRecordIndex + 1;
|
||
if GridOrderListTV.DataController.FocusedRecordIndex + 7 < GridOrderListTV.DataController.RecordCount then
|
||
GridOrderListTV.DataController.FocusedRecordIndex := GridOrderListTV.DataController.FocusedRecordIndex + 7
|
||
else
|
||
GridOrderListTV.DataController.FocusedRecordIndex := GridOrderListTV.DataController.RecordCount - 1;
|
||
end;
|
||
3 : begin
|
||
GridOrderListTV.DataController.FocusedRecordIndex := GridOrderListTV.DataController.RecordCount - 1;
|
||
end;
|
||
end;
|
||
|
||
SelectFocusedRecord;
|
||
end;
|
||
|
||
Refresh;
|
||
Sleep(100);
|
||
fpanel.Color := $00E8E8D5;
|
||
end;
|
||
|
||
procedure TfKiosk.SelectFocusedRecord;
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD> <20><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD> <20><><EFBFBD>ڵ带 <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||
GridOrderListTV.DataController.SelectRows(GridOrderListTV.DataController.FocusedRecordIndex, GridOrderListTV.DataController.FocusedRecordIndex);
|
||
GridOrderListTV.DataController.ClearSelection;
|
||
GridOrderListTV.Controller.FocusedRow.Selected := True;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel28Click(Sender: TObject);
|
||
begin
|
||
login_;
|
||
end;
|
||
|
||
function TfKiosk.GetLocalIPAddress: string;
|
||
begin
|
||
// Indy <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȱ<><C8B0>ȭ<EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ּҸ<D6BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
TIdStack.IncUsage;
|
||
try
|
||
Result := GStack.LocalAddress;
|
||
finally
|
||
TIdStack.DecUsage;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.login_API(logdata:string);
|
||
var
|
||
HTTP: TNetHTTPClient;
|
||
Params: TStringList;
|
||
Response: IHTTPResponse;
|
||
URL: string;
|
||
begin
|
||
try
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵忡 <20><><EFBFBD>õ<EFBFBD> <20><>Ȯ<EFBFBD><C8AE> URL <20><><EFBFBD><EFBFBD>
|
||
URL := 'https://log.smart-factory.kr/apisvc/sendLogData.json';
|
||
HTTP := TNetHTTPClient.Create(nil);
|
||
Params := TStringList.Create;
|
||
try
|
||
Params.Add('crtfcKey=' + '$5$API$eGQm84us0vMutKCHr/q0zDgtgBqSK24rMGdRUKEdf1A'); // <20>α<EFBFBD>API<50><49><EFBFBD><EFBFBD>Ű [cite: 108]
|
||
Params.Add('logDt=' + FormatDateTime('yyyy-mm-dd hh:nn:ss.zzz', Now)); // <20>α<EFBFBD><CEB1>Ͻ<EFBFBD> [cite: 108]
|
||
Params.Add('useSe=' + logdata); // <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>
|
||
Params.Add('sysUser=' + edt_ID.Text); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
|
||
Params.Add('conectIp=' + GetLocalIPAddress); // <20><><EFBFBD><EFBFBD> IP
|
||
Params.Add('dataUsgqty=' + IntToStr(0)); // <20><><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>뷮 [cite: 108]
|
||
// POST <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
Response := HTTP.Post(URL, Params);
|
||
if Response.StatusCode = 200 then
|
||
AddLog_Thread(Response.ContentAsString())
|
||
else
|
||
AddLog_Thread('Error: ' + IntToStr(Response.StatusCode));
|
||
finally
|
||
Params.Free;
|
||
HTTP.Free;
|
||
end;
|
||
except
|
||
//
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.login_;
|
||
var
|
||
EmpLog : TEmpLog;
|
||
begin
|
||
Panel28.Color := $005C583D;
|
||
label57.Visible := false;
|
||
Refresh;
|
||
try
|
||
try
|
||
// Pan_Login.Visible := False;
|
||
|
||
DM.FDQuery1.Close;
|
||
DM.FDQuery1.SQL.Text := 'SELECT * FROM "EmpMst" WHERE "EmpID"='''+edt_ID.Text+''' AND "EmpPwd"='''+edt_PASS.Text+'''';
|
||
DM.FDQuery1.Open;
|
||
|
||
if DM.FDQuery1.RecordCount > 0 then begin
|
||
Pan_Login.Visible := False;
|
||
|
||
try
|
||
EmpLog := TEmpLog.Create(Self);
|
||
EmpLog.Name := DM.FDQuery1.FieldByName('Name').AsString;
|
||
EmpLog.OBID := qCreateGetUniqueString('EmpLog');
|
||
EmpLog.wClassName := 'EmpLog';
|
||
EmpLog.CreateDate := FormatDateTime('yyyy-mm-dd',Now);
|
||
EmpLog.CreateTime := FormatDateTime('hh:nn:ss',Now);
|
||
EmpLog.CreatorID := 'asdf';
|
||
EmpLog.IsValid := 'true';
|
||
EmpLog.LcStatus := 'Working';
|
||
EmpLog.EmpID := DM.FDQuery1.FieldByName('EmpID').AsString;
|
||
EmpLog.TeamName := DM.FDQuery1.FieldByName('TeamName').AsString;
|
||
EmpLog.Role := DM.FDQuery1.FieldByName('Role').AsString;
|
||
EmpLog.ConnDate := FormatDateTime('yyyy-mm-dd',Now);
|
||
EmpLog.ConnTime := FormatDateTime('hh:nn:ss',Now);
|
||
EmpLog.ExitDate := '';
|
||
EmpLog.ExitTime := '';
|
||
EmpLog.UseTime := '';
|
||
|
||
xCreateInsertSql_EmpLog(EmpLog);
|
||
edt_loginDateTime.Text := FormatDateTime('yyyy-mm-dd hh:nn:ss',Now);
|
||
|
||
edt_OBID.Text := EmpLog.OBID;
|
||
|
||
finally
|
||
EmpLog.Free;
|
||
end;
|
||
|
||
login_API('DO6001'); // <20>α<EFBFBD><CEB1><EFBFBD>
|
||
|
||
cbCustList_Refresh;
|
||
|
||
case ComboBox7.ItemIndex of
|
||
1 : pan_select(6);
|
||
2 : pan_select(7);
|
||
3 : pan_select(8);
|
||
end;
|
||
end
|
||
else begin
|
||
label57.Visible := True;
|
||
edt_ID.SetFocus;
|
||
end;
|
||
|
||
except
|
||
on E: Exception do
|
||
//Memo1.Lines.Add('['+FormatDateTime('yyyymmdd hhnnss.zzz',now)+'] '+'<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
|
||
ShowMessage('<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
|
||
end;
|
||
finally
|
||
Panel28.Color := $00978F62;
|
||
end;
|
||
end;
|
||
|
||
function TfKiosk.GetTimeDiffStr(StartTime, EndTime: TDateTime): string;
|
||
var
|
||
Diff: TDateTime;
|
||
Days: Integer;
|
||
Hour, Min, Sec, MS: Word;
|
||
result_str : string;
|
||
begin
|
||
result_str := '';
|
||
// 1. <20><><EFBFBD>̰<EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ϱ<EFBFBD>)
|
||
if StartTime > EndTime then
|
||
Diff := StartTime - EndTime
|
||
else
|
||
Diff := EndTime - StartTime;
|
||
// 2. '<27><>(Day)' <20><><EFBFBD><EFBFBD>: TDateTime<6D><65> <20><><EFBFBD><EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD> <20><>¥ <20><><EFBFBD>Դϴ<D4B4>.
|
||
Days := Trunc(Diff);
|
||
// 3. <20><>, <20><>, <20><> <20><><EFBFBD><EFBFBD>: DecodeTime<6D><65> <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> <20>Ҽ<EFBFBD><D2BC><EFBFBD>(<28>ð<EFBFBD>) <20>κи<CEBA> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴϴ<DDB4>.
|
||
DecodeTime(Diff, Hour, Min, Sec, MS);
|
||
|
||
Format('%d<><64> %d<>ð<EFBFBD> %d<><64> %d<><64>', [Days, Hour, Min, Sec]);
|
||
if Days > 0 then result_str := Format('%d<><64> ', [Days]);
|
||
if Hour > 0 then result_str := result_str + Format('%d<>ð<EFBFBD> ', [Hour]);
|
||
if Min > 0 then result_str := result_str + Format('%d<><64> ', [Min]);
|
||
if Sec > 0 then result_str := result_str + Format('%d<><64>', [Sec]);
|
||
|
||
// 4. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><>ȯ (%d<><64> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ġȯ)
|
||
Result := Trim(result_str);
|
||
end;
|
||
|
||
procedure TfKiosk.logout_;
|
||
var
|
||
update_sql : string;
|
||
StartDateTime, EndDateTime: TDateTime;
|
||
begin
|
||
if Trim(edt_OBID.Text) <> '' then begin
|
||
StartDateTime := StrToDateTime(edt_loginDateTime.Text);
|
||
EndDateTime := Now;
|
||
|
||
update_sql := ' UPDATE "EmpLog"' +
|
||
' SET "ExitDate" = '''+ FormatDateTime('yyyy-mm-dd',Now) +''' , '+
|
||
' "ExitTime" = '''+ FormatDateTime('hh:nn:ss',Now) +''' , '+
|
||
' "UseTime" = '''+ GetTimeDiffStr(StartDateTime,EndDateTime) +''' '+
|
||
' WHERE "OBID" = '''+ edt_OBID.Text +''' '+
|
||
' AND "EmpID" = '''+ edt_ID.Text +''' ';
|
||
|
||
if not DM.FDConnection1.Connected then DM.FDConnection1.Connected := True;
|
||
if DM.FDConnection1.Connected then
|
||
begin
|
||
DM.FDQuery1.Active := false;
|
||
DM.FDQuery1.SQL.Clear;
|
||
DM.FDQuery1.SQL.Add(update_sql);
|
||
DM.FDQuery1.ExecSQL;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel29Click(Sender: TObject);
|
||
begin
|
||
Pan_Setting.Visible := False;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel2MouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
if Button = mbLeft then
|
||
begin
|
||
FDragging := True;
|
||
FOffset := Point(X, Y);
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel2MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||
Y: Integer);
|
||
var
|
||
NewPos: TPoint;
|
||
begin
|
||
if FDragging then
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>콺 <20><>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>θ<EFBFBD> <20><> <20><>ǥ <20><><EFBFBD><EFBFBD>
|
||
NewPos := Panel1.ClientToParent(Point(X, Y));
|
||
Panel1.Left := NewPos.X - FOffset.X;
|
||
Panel1.Top := NewPos.Y - FOffset.Y;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel2MouseUp(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
if Button = mbLeft then
|
||
begin
|
||
FDragging := false;
|
||
FOffset := Point(X, Y);
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel32Click(Sender: TObject);
|
||
begin
|
||
if Edit19.Text <> '1' then
|
||
begin
|
||
Edit19.Text := IntToStr(StrToInt(Edit19.Text)-1);
|
||
|
||
BTCreate_1(StrToInt(Edit19.Text)-1,StrToInt(Edit20.Text));
|
||
|
||
Label44.Caption := Edit19.Text + '/'+Edit21.Text;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel33Click(Sender: TObject);
|
||
begin
|
||
if Edit19.Text <> Edit21.Text then
|
||
begin
|
||
Edit19.Text := IntToStr(StrToInt(Edit19.Text)+1);
|
||
|
||
BTCreate_1(StrToInt(Edit19.Text)-1,StrToInt(Edit20.Text));
|
||
|
||
Label44.Caption := Edit19.Text + '/'+Edit21.Text;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel35Click(Sender: TObject);
|
||
begin
|
||
if Edit22.Text <> '1' then
|
||
begin
|
||
Edit22.Text := IntToStr(StrToInt(Edit22.Text)-1);
|
||
|
||
BTCreate_2(StrToInt(Edit22.Text)-1,StrToInt(Edit23.Text));
|
||
|
||
Label45.Caption := Edit22.Text + '/'+Edit24.Text;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel36Click(Sender: TObject);
|
||
begin
|
||
if Edit22.Text <> Edit24.Text then
|
||
begin
|
||
Edit22.Text := IntToStr(StrToInt(Edit22.Text)+1);
|
||
|
||
BTCreate_2(StrToInt(Edit22.Text)-1,StrToInt(Edit23.Text));
|
||
|
||
Label45.Caption := Edit22.Text + '/'+Edit24.Text;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel38MouseEnter(Sender: TObject);
|
||
begin
|
||
if btnFINISH.Visible then
|
||
btnFINISH.Visible := False;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel3Click(Sender: TObject);
|
||
var
|
||
IniFile : TIniFile;
|
||
begin
|
||
(Sender as TPanel).Color := $005C583D;
|
||
Refresh;
|
||
|
||
try
|
||
IniFile := TIniFile.Create(inifilename);
|
||
try
|
||
IniFile.WriteString('Setting', 'I', Edit15.Text);
|
||
IniFile.WriteString('Setting', 'P', Edit16.Text);
|
||
IniFile.WriteBool('Setting_1', 'bool', True);
|
||
IniFile.WriteInteger('Setting', 'init_Mo', ComboBox7.ItemIndex);
|
||
finally
|
||
IniFile.Free;
|
||
end;
|
||
|
||
|
||
finally
|
||
Sleep(50);
|
||
(Sender as TPanel).Color := $00978F62;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel40MouseEnter(Sender: TObject);
|
||
begin
|
||
if btnFINISH.Visible then
|
||
btnFINISH.Visible := False;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel54Click(Sender: TObject);
|
||
var
|
||
re : Boolean;
|
||
begin
|
||
re := Alarm_use_UPDATE('ON');
|
||
|
||
alarmstatusCK(re);
|
||
|
||
{
|
||
if ConfirmCall('[<5B>˶<EFBFBD> <20><><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD> <20>Ͻðڽ<C3B0><DABD>ϱ<EFBFBD>?'+#13+#13+'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٷ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>˴ϴ<CBB4>.') then begin
|
||
Alarm_use_UPDATE('ON');
|
||
|
||
Pan_Setting.Visible := False;
|
||
end;
|
||
}
|
||
end;
|
||
|
||
procedure TfKiosk.alarmstatusRefresh;
|
||
var
|
||
re : Boolean;
|
||
|
||
tmpList : TList;
|
||
MachineMst : TMachineMst;
|
||
update_sql : string;
|
||
begin
|
||
try
|
||
tmpList := TList.Create;
|
||
MachineMst := TMachineMst.Create(Self);
|
||
tmpList := MachineMst.xGetStrSqlMachineMstList(DM.FDQuery1,'','','ALARM');
|
||
if tmpList.Count = 1 then begin
|
||
MachineMst := tmpList.Items[0];
|
||
alarmstatusCK(MachineMst.LcStatus = 'ON');
|
||
end;
|
||
finally
|
||
tmpList.free;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.alarmstatusCK(ck:Boolean);
|
||
var
|
||
re : Boolean;
|
||
begin
|
||
if ck then begin
|
||
Panel54.Color := $00809443;
|
||
Panel59.Color := $009D9D9D;
|
||
end
|
||
else begin
|
||
Panel54.Color := $009D9D9D;
|
||
Panel59.Color := $00809443;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Panel59Click(Sender: TObject);
|
||
var
|
||
re : Boolean;
|
||
begin
|
||
re := Alarm_use_UPDATE('OFF');
|
||
|
||
alarmstatusCK(not re);
|
||
|
||
{
|
||
if ConfirmCall('[<5B>˶<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD> <20>Ͻðڽ<C3B0><DABD>ϱ<EFBFBD>?'+#13+#13+'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٷ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>˴ϴ<CBB4>.') then begin
|
||
|
||
Alarm_use_UPDATE('OFF');
|
||
|
||
Pan_Setting.Visible := False;
|
||
end;
|
||
}
|
||
end;
|
||
|
||
procedure TfKiosk.Panel61Click(Sender: TObject);
|
||
begin
|
||
close;
|
||
end;
|
||
|
||
function TfKiosk.Alarm_use_UPDATE(_set:string):Boolean;
|
||
var
|
||
tmpList : TList;
|
||
MachineMst : TMachineMst;
|
||
update_sql : string;
|
||
begin
|
||
Result := false;
|
||
|
||
try
|
||
tmpList := TList.Create;
|
||
MachineMst := TMachineMst.Create(Self);
|
||
tmpList := MachineMst.xGetStrSqlMachineMstList(DM.FDQuery1,'','','ALARM');
|
||
if tmpList.Count = 1 then begin
|
||
MachineMst := tmpList.Items[0];
|
||
|
||
update_sql := ' UPDATE "MachineMst"' +
|
||
' SET "LcStatus" = '''+ _set +''' '+
|
||
' WHERE "OBID" = '''+ MachineMst.OBID +''' ';
|
||
|
||
if not DM.FDConnection1.Connected then DM.FDConnection1.Connected := True;
|
||
if DM.FDConnection1.Connected then
|
||
begin
|
||
DM.FDQuery1.Active := false;
|
||
DM.FDQuery1.SQL.Clear;
|
||
DM.FDQuery1.SQL.Add(update_sql);
|
||
DM.FDQuery1.ExecSQL;
|
||
end;
|
||
|
||
Result := True;
|
||
end;
|
||
finally
|
||
tmpList.free;
|
||
end;
|
||
|
||
{
|
||
var
|
||
update_sql : string;
|
||
begin
|
||
try
|
||
|
||
update_sql := '';
|
||
update_sql := 'UPDATE "plc_Data" SET '+
|
||
'"dev_status"='''+Plc_status+''' '+
|
||
'"UpdateDT"=now() '+
|
||
' WHERE "plcID"='+inttostr(PLC_NO);
|
||
|
||
if not FDConnection1.Connected then FDConnection1.Connected := True;
|
||
if FDConnection1.Connected then
|
||
begin
|
||
FDQuery1.Active := false;
|
||
FDQuery1.SQL.Clear;
|
||
FDQuery1.SQL.Add(update_sql);
|
||
FDQuery1.ExecSQL;
|
||
|
||
lastDBInsert := now;
|
||
|
||
if lb_status.Caption <> Plc_status then begin
|
||
lb_status.Caption := Plc_status;
|
||
end;
|
||
end;
|
||
|
||
except
|
||
on e : exception do
|
||
begin
|
||
Memo2_ADD('[insertSQL()]Database Connect Error :: '+e.Message);
|
||
end;
|
||
end;
|
||
end;
|
||
}
|
||
|
||
end;
|
||
|
||
function TfKiosk.Alarm_use_CK:Boolean;
|
||
var
|
||
tmpList : TList;
|
||
MachineMst : TMachineMst;
|
||
begin
|
||
Result := false;
|
||
|
||
try
|
||
tmpList := TList.Create;
|
||
MachineMst := TMachineMst.Create(Self);
|
||
tmpList := MachineMst.xGetStrSqlMachineMstList(DM.FDQuery1,'','','ALARM');
|
||
if tmpList.Count = 1 then begin
|
||
MachineMst := tmpList.Items[0];
|
||
if MachineMst.LcStatus = 'ON' then begin
|
||
Result := True;
|
||
end;
|
||
end;
|
||
finally
|
||
tmpList.free;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Pan_MainMouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
if dev_mode = 1 then begin
|
||
ReleaseCapture;
|
||
Perform( WM_SYSCOMMAND, $F012, 0 );
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.xAutoResizeStringGridColumns(Grid: TStringGrid;
|
||
Canvas: TCanvas);
|
||
var
|
||
Col, Row: Integer;
|
||
MaxWidth: Integer;
|
||
CellText: string;
|
||
begin
|
||
for Col := 0 to Grid.ColCount - 1 do begin
|
||
MaxWidth := 0;
|
||
for Row := 0 to Grid.RowCount - 1 do begin
|
||
CellText := Grid.Cells[Col, Row];
|
||
MaxWidth := max(MaxWidth, Canvas.TextWidth(CellText));
|
||
end;
|
||
Grid.ColWidths[Col] := MaxWidth + 10;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.xFreeAll(tmpList: TList);
|
||
var
|
||
i: Integer;
|
||
tmpEmp: TEmpMst;
|
||
begin
|
||
i := 0;
|
||
while i < tmpList.Count do begin
|
||
tmpEmp := TEmpMst(tmpList.Items[0]);
|
||
tmpEmp.Free;
|
||
tmpList.Delete(0);
|
||
end;
|
||
tmpList.Free; tmpList:=nil;
|
||
end;
|
||
|
||
function TfKiosk.xGetObjEmpInfo: TList;
|
||
var
|
||
curEmp: TEmpMst;
|
||
begin
|
||
Result := TList.Create;
|
||
with dm do begin
|
||
while not FDQuery1.Eof do begin
|
||
curEmp := TEmpMst.Create(Self);
|
||
curEmp.OBID := FDQuery1.FieldByName('OBID').AsString;
|
||
curEmp.Name := FDQuery1.FieldByName('Name').AsString;
|
||
curEmp.wClassName := FDQuery1.FieldByName('wClassName').AsString;
|
||
curEmp.CreateDate := FDQuery1.FieldByName('CreateDate').AsString;
|
||
//curEmp.CreateTime := FDQuery1.FieldByName('CreateTime').AsString;
|
||
curEmp.CreateTime := FormatDateTime('hh:nn:ss', FDQuery1.FieldByName('CreateTime').AsDateTime);
|
||
curEmp.CreatorID := FDQuery1.FieldByName('CreatorID').AsString;
|
||
curEmp.IsValid := FDQuery1.FieldByName('IsValid').AsString;
|
||
curEmp.OrdCode := FDQuery1.FieldByName('OrdCode').AsString;
|
||
curEmp.Position := FDQuery1.FieldByName('Position').AsString;
|
||
curEmp.Role := FDQuery1.FieldByName('Role').AsString;
|
||
curEmp.InDate := FDQuery1.FieldByName('InDate').AsString;
|
||
curEmp.OutDate := FDQuery1.FieldByName('OutDate').AsString;
|
||
curEmp.Status := FDQuery1.FieldByName('Status').AsString;
|
||
curEmp.EmpTelNum := FDQuery1.FieldByName('EmpTelNum').AsString;
|
||
curEmp.EmpAddress := FDQuery1.FieldByName('EmpAddress').AsString;
|
||
curEmp.Descriptions := FDQuery1.FieldByName('Descriptions').AsString;
|
||
|
||
Result.Add(curEmp);
|
||
|
||
FDQuery1.Next;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.xShowInfo(tmpList: TList);
|
||
var
|
||
i, cidx, ridx: Integer;
|
||
tmpEmp: TEmpMst;
|
||
begin
|
||
ridx := 0;
|
||
StringGrid1.RowCount := tmpList.Count+1;
|
||
for i := 0 to tmpList.Count-1 do begin
|
||
tmpEmp := TEmpMst(tmpList.Items[i]);
|
||
Inc(ridx);
|
||
cidx := StringGrid1.Rows[0].IndexOf('OBID');
|
||
StringGrid1.Objects[cidx,ridx] := tmpEmp;
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.OBID;
|
||
cidx := StringGrid1.Rows[0].IndexOf('Name');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.Name;
|
||
cidx := StringGrid1.Rows[0].IndexOf('wClassName');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.wClassName;
|
||
cidx := StringGrid1.Rows[0].IndexOf('CreateDate');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.CreateDate;
|
||
cidx := StringGrid1.Rows[0].IndexOf('CreateTime');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.CreateTime;
|
||
cidx := StringGrid1.Rows[0].IndexOf('CreatorID');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.CreatorID;
|
||
cidx := StringGrid1.Rows[0].IndexOf('IsValid');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.IsValid;
|
||
cidx := StringGrid1.Rows[0].IndexOf('OrdCode');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.OrdCode;
|
||
cidx := StringGrid1.Rows[0].IndexOf('Position');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.Position;
|
||
cidx := StringGrid1.Rows[0].IndexOf('Role');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.Role;
|
||
cidx := StringGrid1.Rows[0].IndexOf('InDate');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.InDate;
|
||
cidx := StringGrid1.Rows[0].IndexOf('OutDate');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.OutDate;
|
||
cidx := StringGrid1.Rows[0].IndexOf('Status');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.Status;
|
||
cidx := StringGrid1.Rows[0].IndexOf('EmpTelNum');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.EmpTelNum;
|
||
cidx := StringGrid1.Rows[0].IndexOf('EmpAddress');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.EmpAddress;
|
||
cidx := StringGrid1.Rows[0].IndexOf('Descriptions');
|
||
StringGrid1.Cells[cidx,ridx] := tmpEmp.Descriptions;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.btDBConnectClick(Sender: TObject);
|
||
begin
|
||
DM.PG_DBName := lbDBName.Text;
|
||
DM.PG_UserName := lbUserName.Text;
|
||
DM.PG_Password := lbPassword.Text;
|
||
DM.PG_Host := lbHost.Text;
|
||
DM.PG_Port := lbPort.Text;
|
||
|
||
if dm.DM_Connect then begin
|
||
btDBConnect.Enabled := False;
|
||
btDBdisConnect.Enabled := True;
|
||
Memo1.Lines.Add('PG_Connected : TRUE');
|
||
end
|
||
else begin
|
||
btDBConnect.Enabled := True;
|
||
btDBdisConnect.Enabled := False;
|
||
Memo1.Lines.Add('PG_Connected : FALSE');
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.btDBdisConnectClick(Sender: TObject);
|
||
begin
|
||
if dm.DM_Close then begin
|
||
btDBConnect.Enabled := True;
|
||
btDBdisConnect.Enabled := False;
|
||
Memo1.Lines.Add('PG_disConnected');
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.btnFINISHClick(Sender: TObject);
|
||
begin
|
||
if RadioButton9.Checked and ConfirmCall(Label80.Caption + #13+ #13+' <20>Ϸ<EFBFBD> ó<><C3B3> <20>Ͻðڽ<C3B0><DABD>ϱ<EFBFBD>?') then begin
|
||
|
||
ordermstupdate(Label80.Caption, Edit50.Text, 'FINISH');
|
||
|
||
Edit14.Text := '';
|
||
Edit32.Text := '';
|
||
Edit48.Text := '';
|
||
Edit50.Text := '';
|
||
cbCustList.ItemIndex := -1;
|
||
DatePicker5.Date := Now;
|
||
|
||
easyselectgridRefresh;
|
||
SaleItem_refresh;
|
||
end;
|
||
btnFINISH.Visible := False;
|
||
end;
|
||
|
||
procedure TfKiosk.btQueryClick(Sender: TObject);
|
||
var
|
||
i: Integer;
|
||
tmpList: TList;
|
||
tmpItem: TwItem;
|
||
tmpEmp: TEmpMst;
|
||
begin
|
||
try
|
||
DM.FDQuery1.Close;
|
||
DM.FDQuery1.SQL.Text := Memo2.Lines.Text;
|
||
DM.FDQuery1.Open;
|
||
except
|
||
on E: Exception do ShowMessage('<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: ' + E.Message);
|
||
end;
|
||
if FqryList <> nil then xFreeAll(FqryList);
|
||
FqryList := xGetObjEmpInfo;
|
||
xShowInfo(FqryList);
|
||
xAutoResizeStringGridColumns(StringGrid1, Canvas);
|
||
end;
|
||
|
||
procedure TfKiosk.Button11Click(Sender: TObject);
|
||
begin
|
||
easyselectgridRefresh;
|
||
SaleItem_refresh;
|
||
end;
|
||
|
||
|
||
function TfKiosk.nametostock(_name:string):string;
|
||
begin
|
||
result := '0';
|
||
DM.FDQuery1.SQL.Text := ' SELECT "item", "balance" ' +
|
||
' FROM "stock_summary" '+
|
||
' WHERE "item" = '''+_name+''';';
|
||
|
||
DM.FDQuery1.Open;
|
||
|
||
if DM.FDQuery1.RecordCount = 1 then begin
|
||
if Trim(DM.FDQuery1.FieldByName('balance').AsString) = '' then
|
||
result := '0'
|
||
else
|
||
result := Trim(DM.FDQuery1.FieldByName('balance').AsString);
|
||
end;
|
||
end;
|
||
|
||
function TfKiosk.NametoProdModel(_name:string):string;
|
||
begin
|
||
result := '';
|
||
DM.FDQuery1.SQL.Text := ' SELECT "Name", "Model" ' +
|
||
' FROM "ProductMst" '+
|
||
' WHERE "Name" = '''+_name+''';';
|
||
|
||
DM.FDQuery1.Open;
|
||
|
||
if DM.FDQuery1.RecordCount = 1 then begin
|
||
result := Trim(DM.FDQuery1.FieldByName('Model').AsString);
|
||
end;
|
||
end;
|
||
|
||
function TfKiosk.NametoMatUnitPrice(_name:string):string;
|
||
begin
|
||
result := '';
|
||
DM.FDQuery1.SQL.Text := ' SELECT "item", "MatUnitPrice" ' +
|
||
' FROM "stock_summary" '+
|
||
' WHERE "item" = '''+_name+''';';
|
||
|
||
DM.FDQuery1.Open;
|
||
|
||
if DM.FDQuery1.RecordCount = 1 then begin
|
||
result := Trim(DM.FDQuery1.FieldByName('MatUnitPrice').AsString);
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.SaleItem_refresh;
|
||
var
|
||
row_ck, i : Integer;
|
||
tmpList : TList;
|
||
kind, stock_qty : string;
|
||
SaleItemMst : TSaleItemMst;
|
||
begin
|
||
try
|
||
DM.FDQuery1.Close;
|
||
|
||
if RadioButton9.Checked then begin // <20><>ǰ <20><EFBFBD> : ordermst -> salemst
|
||
if Trim(Edit31.Text) <> '' then begin
|
||
DM.FDQuery1.SQL.Text := ' SELECT "OBID","LcStatus","OrdCode","Name","CustName","Qty","MatKind","Unitt","ProdCode","Manufact", ' +
|
||
' "stock_summary"."balance" '+
|
||
' FROM "OrderMst" LEFT JOIN "stock_summary" '+
|
||
' ON "OrderMst"."Name" = "stock_summary"."item" '+
|
||
' WHERE "LcStatus"=''ORDER'' '+
|
||
' AND "IsValid"=true '+
|
||
' AND ( '+
|
||
' ("OrdCode" Like '''+Trim(Edit31.Text)+'%'') '+
|
||
' OR ("Name" Like '''+Trim(Edit31.Text)+'%'') '+
|
||
' ) '+
|
||
' ORDER BY "Name"';
|
||
end
|
||
else begin
|
||
DM.FDQuery1.SQL.Text := ' SELECT "OBID","LcStatus","OrdCode","Name","CustName","Qty","MatKind","Unitt","ProdCode","Manufact", ' +
|
||
' "stock_summary"."balance" '+
|
||
' FROM "OrderMst" LEFT JOIN "stock_summary" '+
|
||
' ON "OrderMst"."Name" = "stock_summary"."item"'+
|
||
' WHERE "LcStatus"=''ORDER'' '+
|
||
' AND "IsValid"=true '+
|
||
' ORDER BY "Name"';
|
||
end;
|
||
|
||
DM.FDQuery1.Open;
|
||
if DM.FDQuery1.RecordCount > 0 then begin
|
||
with cxGridTableView2.DataController do begin
|
||
try
|
||
BeginUpdate;
|
||
RecordCount := 0;
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
|
||
try
|
||
BeginUpdate;
|
||
|
||
DM.FDQuery1.First;
|
||
while not DM.FDQuery1.Eof do begin
|
||
row_ck := AppendRecord;
|
||
// "OBID","LcStatus","OrdCode","Name","CustName","Qty","MatKind"
|
||
Values[row_ck,cxGridTableView2Column1.Index] := DM.FDQuery1.FieldByName('OrdCode').AsString;
|
||
Values[row_ck,cxGridTableView2Column2.Index] := DM.FDQuery1.FieldByName('Name').AsString;
|
||
Values[row_ck,cxGridTableView2Column3.Index] := DM.FDQuery1.FieldByName('CustName').AsString;
|
||
Values[row_ck,cxGridTableView2Column4.Index] := DM.FDQuery1.FieldByName('Qty').AsString;
|
||
Values[row_ck,cxGridTableView2Column5.Index] := DM.FDQuery1.FieldByName('Unitt').AsString;
|
||
Values[row_ck,cxGridTableView2Column6.Index] := DM.FDQuery1.FieldByName('LcStatus').AsString;
|
||
Values[row_ck,cxGridTableView2Column7.Index] := DM.FDQuery1.FieldByName('MatKind').AsString;
|
||
Values[row_ck,cxGridTableView2Column8.Index] := DM.FDQuery1.FieldByName('OBID').AsString;
|
||
Values[row_ck,cxGridTableView2Column9.Index] := DM.FDQuery1.FieldByName('ProdCode').AsString;
|
||
Values[row_ck,cxGridTableView2Column10.Index] := DM.FDQuery1.FieldByName('Manufact').AsString;
|
||
Values[row_ck,cxGridTableView2Column11.Index] := DM.FDQuery1.FieldByName('balance').AsString;
|
||
Values[row_ck,cxGridTableView2Column12.Index] := DM.FDQuery1.FieldByName('OBID').AsString;
|
||
// Values[row_ck,cxGridTableView2Column8.Index] := DM.FDQuery1.FieldByName('Thickness').AsString;
|
||
// Values[row_ck,cxGridTableView2Column9.Index] := DM.FDQuery1.FieldByName('ProdLength').AsString;
|
||
|
||
DM.FDQuery1.Next;
|
||
end;
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
end;
|
||
end
|
||
else begin
|
||
with cxGridTableView2.DataController do begin
|
||
try
|
||
BeginUpdate;
|
||
RecordCount := 0;
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
end;
|
||
end;
|
||
end else
|
||
if RadioButton10.Checked then begin // <20><>ǰ <20><><EFBFBD><EFBFBD> : salemst -> - <20>Է<EFBFBD>
|
||
DM.FDQuery1.SQL.Text := ' SELECT * ' +
|
||
' FROM stock_summary '+
|
||
' ORDER BY item; ';
|
||
|
||
DM.FDQuery1.Open;
|
||
|
||
if DM.FDQuery1.RecordCount > 0 then begin
|
||
with cxGrid2TableView1.DataController do begin
|
||
try
|
||
BeginUpdate;
|
||
RecordCount := 0;
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
|
||
try
|
||
BeginUpdate;
|
||
|
||
DM.FDQuery1.First;
|
||
while not DM.FDQuery1.Eof do begin
|
||
row_ck := AppendRecord;
|
||
Values[row_ck,cxGrid2TableView1Column1.Index] := DM.FDQuery1.FieldByName('item').AsString;
|
||
Values[row_ck,cxGrid2TableView1Column2.Index] := DM.FDQuery1.FieldByName('balance').AsString;
|
||
|
||
DM.FDQuery1.Next;
|
||
end;
|
||
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
end;
|
||
end;
|
||
end else
|
||
if RadioButton11.Checked then begin // <20><>ǰ <20>ҷ<EFBFBD> <20><EFBFBD> : product -> salemst - <20>Է<EFBFBD>
|
||
DM.FDQuery1.SQL.Text := ' SELECT * ' +
|
||
' FROM "ProductMst" '+
|
||
' WHERE "IsValid" = true '+
|
||
' ORDER BY "Name"; ';
|
||
|
||
DM.FDQuery1.Open;
|
||
|
||
if DM.FDQuery1.RecordCount > 0 then begin
|
||
with cxGrid2TableView1.DataController do begin
|
||
try
|
||
BeginUpdate;
|
||
RecordCount := 0;
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
|
||
try
|
||
BeginUpdate;
|
||
|
||
DM.FDQuery1.First;
|
||
while not DM.FDQuery1.Eof do begin
|
||
row_ck := AppendRecord;
|
||
Values[row_ck,cxGrid2TableView1Column1.Index] := DM.FDQuery1.FieldByName('Name').AsString;
|
||
Values[row_ck,cxGrid2TableView1Column2.Index] := DM.FDQuery1.FieldByName('ProdSpec').AsString;
|
||
|
||
DM.FDQuery1.Next;
|
||
end;
|
||
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
Memo1.Lines.Add('['+FormatDateTime('yyyymmdd hhnnss.zzz',now)+'] '+'<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(Material_refresh): ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Button12Click(Sender: TObject);
|
||
var
|
||
fKioskView : TfKioskView;
|
||
begin
|
||
if (Trim(label80.Caption) = '') or (Trim(label80.Caption) = '<27><>ǰ<EFBFBD><C7B0>') then exit;
|
||
|
||
fKioskView := TfKioskView.Create(nil);
|
||
try
|
||
fKioskView.RadioGroup1.ItemIndex := 2; // 0 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1 : RTP<54><50><EFBFBD><EFBFBD>, 2 : <20><>ǰ
|
||
fKioskView.RadioGroup2.Columns := 4; // <20>ҷ<EFBFBD> <20>߰<EFBFBD>
|
||
fKioskView.RadioGroup2.Items.Add('<27>ҷ<EFBFBD>');
|
||
fKioskView.Label2.Caption := Trim(label80.Caption); // '<27><>ǰ<EFBFBD><C7B0>';
|
||
fKioskView.edit1.text := Edit42.Text;
|
||
|
||
fKioskView.ShowModal; // <20><><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> ǥ<><C7A5>
|
||
// <20>Ǵ<EFBFBD> NewForm.Show; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> ǥ<><C7A5>
|
||
finally
|
||
fKioskView.Free;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Button13Click(Sender: TObject);
|
||
var
|
||
FobjMat : TMaterialData;
|
||
begin
|
||
if (Trim(Edit37.Text) = '') or (Trim(Edit37.Text) = '0') or (Trim(Edit37.Text) = '0.0') or (Trim(Edit37.Text) = '.0') or (Trim(Edit37.Text) = '0.') or (Trim(Panel58.Caption) = '') or (Trim(Panel58.Caption) = 'RTP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') then exit;
|
||
|
||
if Trim(Edit37.Text) <> '' then begin
|
||
if StrToFloatDef(Trim(Edit37.Text),0.0) <= 0.0 then exit;
|
||
if not RadioButton5.Checked then begin
|
||
if StrToFloatDef(Trim(Edit44.Text),0.0) < StrToFloatDef(Trim(Edit37.Text),0.0) then begin
|
||
AlertCall('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ Ȯ<><C8AE> <20><><EFBFBD><EFBFBD>.');
|
||
Exit;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
FobjMat := TMaterialData.Create(Self);
|
||
FobjMat.Name := Panel58.Caption;
|
||
|
||
FobjMat.MatKind := Edit18.Text;
|
||
|
||
FobjMat.OBID := qCreateGetUniqueString('MaterialData');
|
||
FobjMat.wClassName := 'MaterialData';
|
||
FobjMat.CreateDate := FormatDateTime('yyyy-MM-dd',Now);
|
||
FobjMat.CreateTime := FormatDateTime('HH:nn:ss',Now);
|
||
FobjMat.CreatorID := edt_ID.Text;
|
||
FobjMat.IsValid := 't';
|
||
FobjMat.LcStatus := 'Working';
|
||
FobjMat.OrdNum := '0';
|
||
FobjMat.OrdCode := Edit41.Text;
|
||
FobjMat.Standard := '';
|
||
if RadioButton5.Checked then begin
|
||
FobjMat.Kind := '<27><EFBFBD>';
|
||
FobjMat.InQty := Edit37.Text;
|
||
FobjMat.OutQty := '0';
|
||
end
|
||
else begin
|
||
FobjMat.Kind := '<27><><EFBFBD><EFBFBD>';
|
||
FobjMat.InQty := '0';
|
||
FobjMat.OutQty := Edit37.Text;
|
||
end;
|
||
FobjMat.StockQty := '0';
|
||
FobjMat.Status := '';
|
||
FobjMat.Descriptions := Edit38.Text;
|
||
FobjMat.Unitt := Edit47.Text;
|
||
FobjMat.OrdDate := FormatDateTime('yyyy-MM-dd',DatePicker4.Date);
|
||
FobjMat.CustName := ComboBox8.Text;
|
||
FobjMat.MatType := 'RTP';
|
||
if ConfirmCall(FobjMat.Kind+' ó<><C3B3> <20>Ͻðڽ<C3B0><DABD>ϱ<EFBFBD>?') then begin
|
||
xCreateInsertSql(FobjMat);
|
||
|
||
Edit37.Text := '';
|
||
Edit38.Text := '';
|
||
DatePicker4.Date := Now;
|
||
// Edit44.Text := FobjMat.xGetStrSumStockQty(dm.FDQuery1,Edit41.Text,'RTP');
|
||
// Edit44.Text := FobjMat.xGetStrSumStockQty(dm.FDQuery1,'',Trim(Panel58.Caption),'RTP');
|
||
Edit44.Text := FobjMat.xGetStrSumStockQty(dm.FDQuery1,Trim(Edit41.Text),'RTP');
|
||
{
|
||
class function TMaterialData.xGetStrSumStockQty(AQuery: TFDQuery;
|
||
code, mtype: string): string;
|
||
}
|
||
AlertCall(FobjMat.Kind+' ó<><C3B3> <20>Ϸ<EFBFBD>.');
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Button14Click(Sender: TObject);
|
||
begin
|
||
ConfirmCall('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<><C8AE><EFBFBD>Ͻðھ<C3B0><DABE><EFBFBD>?');
|
||
end;
|
||
|
||
procedure TfKiosk.Button15Click(Sender: TObject);
|
||
var
|
||
FobjSaleItem : TSaleItemMst;
|
||
begin
|
||
// if (RadioButton9.Checked or RadioButton10.Checked) and
|
||
// ((Trim(Edit32.Text) = '') or (Trim(Edit32.Text) = '0') or (Trim(Edit32.Text) = '0.0') or (Trim(Edit32.Text) = '.0') or (Trim(Edit32.Text) = '0.') or (Trim(Label80.Caption) = '') or (Trim(Label80.Caption) = '<27><>ǰ<EFBFBD><C7B0>')) then exit;
|
||
|
||
if (Trim(Edit32.Text) = '') or (Trim(Edit32.Text) = '0') or (Trim(Edit32.Text) = '0.0') or (Trim(Edit32.Text) = '.0') or (Trim(Edit32.Text) = '0.') or (Trim(Label80.Caption) = '') or (Trim(Label80.Caption) = '<27><>ǰ<EFBFBD><C7B0>') then exit;
|
||
|
||
if ( RadioButton9.Checked or RadioButton10.Checked ) and (Trim(Edit32.Text) <> '') then begin
|
||
if StrToFloatDef(Trim(Edit32.Text),0.0) <= 0.0 then exit;
|
||
|
||
|
||
if RadioButton10.Checked then begin // <20><>ǰ <20><><EFBFBD><EFBFBD>
|
||
if StrToFloatDef(Trim(Edit13.Text),0.0) < StrToFloatDef(Trim(Edit32.Text),0.0) then begin
|
||
AlertCall('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ Ȯ<><C8AE> <20><><EFBFBD><EFBFBD>.');
|
||
Exit;
|
||
end;
|
||
end else
|
||
|
||
{ // 2026-01-13 <20><EFBFBD> <20>ۼ<EFBFBD><DBBC><EFBFBD> <20><>û<EFBFBD><C3BB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if RadioButton9.Checked then begin // <20><>ǰ <20><EFBFBD>
|
||
if StrToFloatDef(Trim(Edit32.Text),0.0) < (StrToFloatDef(Trim(Edit48.Text),0.0) - StrToFloatDef(Trim(Edit13.Text),0.0)) then begin
|
||
AlertCall('<<3C><EFBFBD> <20><><EFBFBD><EFBFBD>>'+#13+
|
||
'<27><EFBFBD> <20><><EFBFBD><EFBFBD> >= (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)'+#13+#13+
|
||
'<<3C><EFBFBD> <20>Ұ<EFBFBD>>'+#13+
|
||
'<27><EFBFBD> <20><><EFBFBD><EFBFBD> < (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)');
|
||
Exit;
|
||
end;
|
||
end;
|
||
}
|
||
end;
|
||
|
||
FobjSaleItem := TSaleItemMst.Create(Self);
|
||
FobjSaleItem.Name := Label80.Caption;
|
||
FobjSaleItem.OBID := qCreateGetUniqueString('SaleItemMst');
|
||
FobjSaleItem.wClassName := 'SaleItemMst';
|
||
FobjSaleItem.CreateDate := FormatDateTime('yyyy-MM-dd',Now);
|
||
FobjSaleItem.CreateTime := FormatDateTime('HH:nn:ss',Now);
|
||
FobjSaleItem.CreatorID := edt_ID.Text;
|
||
FobjSaleItem.IsValid := 't';
|
||
FobjSaleItem.LcStatus := 'Working';
|
||
FobjSaleItem.OrdDate := FormatDateTime('yyyy-MM-dd',DatePicker5.Date);
|
||
FobjSaleItem.OrdCode := Edit39.Text;
|
||
FobjSaleItem.Qty := IntToStr(StrToIntDef(Edit32.Text,0));
|
||
FobjSaleItem.GoodQty := '0';
|
||
FobjSaleItem.DefQty := '0';
|
||
FobjSaleItem.Unitt := Edit14.Text;
|
||
FobjSaleItem.Descriptions := Edit33.Text;
|
||
FobjSaleItem.ReQty := '0';
|
||
FobjSaleItem.DeliveryQty := '0';
|
||
FobjSaleItem.MatKind := Edit49.Text;
|
||
if RadioButton9.Checked then begin
|
||
FobjSaleItem.Status := '';
|
||
FobjSaleItem.Kind := '<27><EFBFBD>';
|
||
end else
|
||
if RadioButton10.Checked then begin
|
||
FobjSaleItem.Status := '';
|
||
FobjSaleItem.Kind := '<27><><EFBFBD><EFBFBD>';
|
||
end else
|
||
if RadioButton11.Checked then begin
|
||
FobjSaleItem.Status := ComboBox3.Text;
|
||
FobjSaleItem.Kind := '<27>ҷ<EFBFBD>';
|
||
end;
|
||
|
||
FobjSaleItem.CustName := cbCustList.Text;
|
||
|
||
FobjSaleItem.Manufact := edtManufact.Text;
|
||
|
||
edtModel.Text := NametoProdModel(FobjSaleItem.Name);
|
||
|
||
FobjSaleItem.Model := edtModel.Text;
|
||
|
||
edtMatUnitPrice.Text := NametoMatUnitPrice(FobjSaleItem.Name);
|
||
|
||
FobjSaleItem.MatUnitPrice := FloatToStr(StrToFloatDef(Trim(edtMatUnitPrice.Text),0.0)); //edtMatUnitPrice.Text;
|
||
|
||
FobjSaleItem.MatCost := FloatToStr(StrToFloatDef(Trim(edtMatUnitPrice.Text),0.0) * StrToFloatDef(Trim(Edit32.Text),0.0));
|
||
|
||
if ConfirmCall(FobjSaleItem.Kind+' ó<><C3B3> <20>Ͻðڽ<C3B0><DABD>ϱ<EFBFBD>?') then begin
|
||
xCreateInsertSql_FobjSale(FobjSaleItem);
|
||
{ // 2026-01-13 <20><><EFBFBD><EFBFBD>ȣ <20><><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if RadioButton9.Checked then begin
|
||
ordermstupdate(Label80.Caption, Edit50.Text, 'FINISH');
|
||
end;
|
||
}
|
||
Edit14.Text := '';
|
||
Edit32.Text := '';
|
||
Edit48.Text := '';
|
||
Edit50.Text := '';
|
||
cbCustList.ItemIndex := -1;
|
||
DatePicker5.Date := Now;
|
||
// Edit13.Text := FobjSaleItem.xGetStrSumStockQty(dm.FDQuery1,Edit40.Text,'NORMAL'); <20><><EFBFBD><EFBFBD> Ȯ<><C8AE> <20>ʿ<EFBFBD>
|
||
|
||
AlertCall(FobjSaleItem.Kind+' ó<><C3B3> <20>Ϸ<EFBFBD>.');
|
||
|
||
easyselectgridRefresh;
|
||
SaleItem_refresh;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.ordermstupdate(_name,_OBID,_LcStatus:string);
|
||
var
|
||
update_sql : string;
|
||
begin
|
||
update_sql := ' UPDATE "OrderMst"' +
|
||
' SET "LcStatus" = '''+ _LcStatus +''' '+
|
||
' WHERE "OBID" = '''+ _OBID +''' '+
|
||
' AND "Name" = '''+ _name +''' ';
|
||
|
||
if not DM.FDConnection1.Connected then DM.FDConnection1.Connected := True;
|
||
if DM.FDConnection1.Connected then
|
||
begin
|
||
DM.FDQuery1.Active := false;
|
||
DM.FDQuery1.SQL.Clear;
|
||
DM.FDQuery1.SQL.Add(update_sql);
|
||
DM.FDQuery1.ExecSQL;
|
||
end;
|
||
end;
|
||
|
||
function TfKiosk.ConfirmCall(msg: string):Boolean;
|
||
var
|
||
fConfirmMessage : TfConfirmMessage;
|
||
begin
|
||
Result := False;
|
||
fConfirmMessage := TfConfirmMessage.Create(nil);
|
||
try
|
||
fConfirmMessage.Label1.Caption := msg;
|
||
|
||
fConfirmMessage.ShowModal; // <20><><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> ǥ<><C7A5>
|
||
|
||
if fConfirmMessage.ModalResult = mrYes then
|
||
Result := True
|
||
else
|
||
Result := False;
|
||
finally
|
||
fConfirmMessage.Free;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Button1Click(Sender: TObject);
|
||
var
|
||
CK_ROW : integer;
|
||
I : integer;
|
||
begin
|
||
try
|
||
GridOrderListTV.DataController.BeginUpdate;
|
||
|
||
for I := 0 to 10 do begin
|
||
with GridOrderListTV.DataController do begin
|
||
|
||
CK_ROW := AppendRecord;
|
||
|
||
Values[CK_ROW, GridOrderListTVColumn1.Index] := 'A'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn2.Index] := 'B'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn3.Index] := 'C'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn4.Index] := 'D'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn5.Index] := 'E'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn6.Index] := 'F'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn7.Index] := 'G'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn8.Index] := 'H'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn9.Index] := 'I'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn10.Index] := 'J'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn11.Index] := 'K'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn12.Index] := 'L'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn13.Index] := 'M'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn14.Index] := 'N'+IntToStr(CK_ROW);
|
||
Values[CK_ROW, GridOrderListTVColumn15.Index] := 'O'+IntToStr(CK_ROW);
|
||
end;
|
||
end;
|
||
|
||
finally
|
||
GridOrderListTV.DataController.EndUpdate;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Button2Click(Sender: TObject);
|
||
begin
|
||
Memo2.Lines.Clear;
|
||
Memo2.Lines.Add('SELECT * FROM "EmpMst" WHERE "IsValid"=' + dm.xAddSqlMark('t') + ';');
|
||
end;
|
||
|
||
procedure TfKiosk.Button3Click(Sender: TObject);
|
||
begin
|
||
frmNeolTestMain := TfrmNeolTestMain.Create(nil);
|
||
frmNeolTestMain.Show;
|
||
end;
|
||
|
||
procedure TfKiosk.Button4Click(Sender: TObject);
|
||
begin
|
||
try
|
||
GridOrderListTV.DataController.BeginUpdate;
|
||
|
||
GridOrderListTV.DataController.RecordCount:=0;
|
||
|
||
finally
|
||
GridOrderListTV.DataController.EndUpdate;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Button5Click(Sender: TObject);
|
||
begin
|
||
Material_refresh;
|
||
end;
|
||
|
||
procedure TfKiosk.Material_refresh;
|
||
var
|
||
row_ck, i : Integer;
|
||
begin
|
||
try
|
||
DM.FDQuery1.Close;
|
||
if Trim(Edit30.Text) <> '' then begin
|
||
DM.FDQuery1.SQL.Text := ' SELECT "OrdCode", "Name", "Unitt", '+
|
||
' SUM("InQty") - SUM("OutQty") AS balance '+
|
||
' FROM "MaterialData" '+
|
||
' WHERE "MatType"=''NORMAL'' '+
|
||
' AND "IsValid"=true '+
|
||
|
||
' AND ( '+
|
||
' ("Name" Like ''%'+Trim(Edit30.Text)+'%'') '+
|
||
' OR ("CustName" Like ''%'+Trim(Edit30.Text)+'%'') '+
|
||
' ) '+
|
||
' GROUP BY "OrdCode", "Name", "Unitt" '+
|
||
' ORDER BY "Name"';
|
||
end
|
||
else begin
|
||
DM.FDQuery1.SQL.Text := ' SELECT "OrdCode", "Name", "Unitt", '+
|
||
' SUM("InQty") - SUM("OutQty") AS balance '+
|
||
' FROM "MaterialData" '+
|
||
' WHERE "MatType"=''NORMAL'' '+
|
||
' AND "IsValid"=true '+
|
||
' GROUP BY "OrdCode", "Name", "Unitt" '+
|
||
' ORDER BY "Name"';
|
||
end;
|
||
DM.FDQuery1.Open;
|
||
|
||
if DM.FDQuery1.RecordCount > 0 then begin
|
||
with cxGridTableView1.DataController do begin
|
||
try
|
||
BeginUpdate;
|
||
RecordCount := 0;
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
|
||
try
|
||
BeginUpdate;
|
||
|
||
DM.FDQuery1.First;
|
||
while not DM.FDQuery1.Eof do begin
|
||
row_ck := AppendRecord;
|
||
|
||
Values[row_ck,cxGridTableView1Column1.Index] := DM.FDQuery1.FieldByName('OrdCode').AsString;
|
||
Values[row_ck,cxGridTableView1Column2.Index] := DM.FDQuery1.FieldByName('Name').AsString;
|
||
Values[row_ck,cxGridTableView1Column3.Index] := DM.FDQuery1.FieldByName('Unitt').AsString;
|
||
Values[row_ck,cxGridTableView1Column4.Index] := DM.FDQuery1.FieldByName('balance').AsString;
|
||
|
||
DM.FDQuery1.Next;
|
||
end;
|
||
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
Memo1.Lines.Add('['+FormatDateTime('yyyymmdd hhnnss.zzz',now)+'] '+'<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(Material_refresh): ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Button6Click(Sender: TObject);
|
||
var
|
||
fKioskView : TfKioskView;
|
||
begin
|
||
if (Trim(Panel53.Caption) = '') or (Trim(Panel53.Caption) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') then exit;
|
||
|
||
fKioskView := TfKioskView.Create(nil);
|
||
try
|
||
fKioskView.RadioGroup1.ItemIndex := 0; // 0 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1 : RTP<54><50><EFBFBD><EFBFBD>, 2 : <20><>ǰ
|
||
fKioskView.Label2.Caption := Trim(Panel53.Caption); // '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||
fKioskView.edit1.text := Edit40.Text;
|
||
|
||
fKioskView.ShowModal; // <20><><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> ǥ<><C7A5>
|
||
// <20>Ǵ<EFBFBD> NewForm.Show; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> ǥ<><C7A5>
|
||
finally
|
||
fKioskView.Free;
|
||
end;
|
||
end;
|
||
|
||
function TfKiosk.qCreateGetUniqueString(clsName: string): string;
|
||
var
|
||
randomInt: Integer;
|
||
tmStmp: TTimeStamp;
|
||
dbName: string;
|
||
begin
|
||
//****************OBID<49><44>Ģ*****************//
|
||
//Result := clsName(Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) + '-Ÿ<>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD>-' + '-6<>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-' + '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||
//****************OBID<49><44>Ģ*****************//
|
||
Result := '';
|
||
tmStmp := DateTimeToTimeStamp(Now);
|
||
randomInt := random(899998) + 100001; //100001 ~ 999999
|
||
dbName := 'neol_data';
|
||
Result := 'T' + clsName + '-' + IntToStr(tmStmp.Date) + IntToStr(tmStmp.Time) + '-' + IntToStr(randomInt) + '-' + dbName;
|
||
end;
|
||
|
||
procedure TfKiosk.RadioButton9Click(Sender: TObject);
|
||
begin
|
||
Edit31.Clear;
|
||
if RadioButton9.Checked then begin
|
||
easyselectgridRefresh;
|
||
SaleItem_refresh;
|
||
cxGridLevel2.Active := True;
|
||
|
||
cxGridTableView2Column1.Caption := '<27><>ǰ<EFBFBD>ڵ<EFBFBD>';
|
||
cxGridTableView2Column4.Caption := '<27><><EFBFBD><EFBFBD>';
|
||
|
||
Label78.Visible := False;
|
||
ComboBox3.Visible := False;
|
||
end
|
||
else begin
|
||
if RadioButton10.Checked then begin
|
||
cxGrid2TableView1Column2.Visible := true;
|
||
Label78.Visible := False;
|
||
ComboBox3.Visible := False;
|
||
end else
|
||
if RadioButton11.Checked then begin
|
||
cxGrid2TableView1Column2.Visible := False;
|
||
Label78.Visible := True;
|
||
ComboBox3.Visible := True;
|
||
end;
|
||
|
||
easyselectgridRefresh;
|
||
SaleItem_refresh;
|
||
cxGrid2Level1.Active := True;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.easyselectgridRefresh;
|
||
var
|
||
row_ck, i : Integer;
|
||
|
||
tmpList : TList;
|
||
kind, stock_qty : string;
|
||
SaleItemMst : TSaleItemMst;
|
||
begin
|
||
try
|
||
DM.FDQuery2.Close;
|
||
|
||
if RadioButton9.Checked then begin
|
||
DM.FDQuery2.SQL.Text := ' SELECT DISTINCT LEFT("OrderMst"."Name", 3) AS estext ' +
|
||
' FROM "OrderMst" '+
|
||
' ORDER BY estext; ';
|
||
end else
|
||
if RadioButton10.Checked then begin
|
||
DM.FDQuery2.SQL.Text := ' SELECT DISTINCT LEFT(ss.item, 3) AS estext ' +
|
||
' FROM stock_summary ss '+
|
||
' ORDER BY estext; ';
|
||
end else
|
||
if RadioButton11.Checked then begin
|
||
DM.FDQuery2.SQL.Text := ' SELECT DISTINCT LEFT(ss."Name", 3) AS estext ' +
|
||
' FROM "ProductMst" ss '+
|
||
' WHERE "IsValid" = true '+
|
||
' ORDER BY estext; ';
|
||
end;
|
||
|
||
DM.FDQuery2.Open;
|
||
|
||
if DM.FDQuery2.RecordCount > 0 then begin
|
||
with cxGridTableView4.DataController do begin
|
||
try
|
||
BeginUpdate;
|
||
RecordCount := 0;
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
|
||
try
|
||
BeginUpdate;
|
||
DM.FDQuery2.First;
|
||
while not DM.FDQuery2.Eof do begin
|
||
row_ck := AppendRecord;
|
||
Values[row_ck,cxGridTableView4Column1.Index] := DM.FDQuery2.FieldByName('estext').AsString;
|
||
DM.FDQuery2.Next;
|
||
end;
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
Memo1.Lines.Add('['+FormatDateTime('yyyymmdd hhnnss.zzz',now)+'] '+'<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(easyselectgridRefresh): ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Button7Click(Sender: TObject);
|
||
var
|
||
FobjMat : TMaterialData;
|
||
begin
|
||
if (Trim(Edit34.Text) = '') or (Trim(Edit34.Text) = '0') or (Trim(Edit34.Text) = '0.0') or (Trim(Edit34.Text) = '.0') or (Trim(Edit34.Text) = '0.') or (Trim(Panel53.Caption) = '') or (Trim(Panel53.Caption) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') then exit;
|
||
|
||
if Trim(Edit34.Text) <> '' then begin
|
||
if StrToFloatDef(Trim(Edit34.Text),0.0) <= 0.0 then exit;
|
||
if not RadioButton1.Checked then begin
|
||
if StrToFloatDef(Trim(Edit43.Text),0.0) < StrToFloatDef(Trim(Edit34.Text),0.0) then begin
|
||
AlertCall('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ Ȯ<><C8AE> <20><><EFBFBD><EFBFBD>.');
|
||
Exit;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
FobjMat := TMaterialData.Create(Self);
|
||
FobjMat.Name := Panel53.Caption;
|
||
|
||
FobjMat.MatKind := Edit40.Text;
|
||
|
||
FobjMat.OBID := qCreateGetUniqueString('MaterialData');
|
||
FobjMat.wClassName := 'MaterialData';
|
||
FobjMat.CreateDate := FormatDateTime('yyyy-MM-dd',Now);
|
||
FobjMat.CreateTime := FormatDateTime('HH:nn:ss',Now);
|
||
FobjMat.CreatorID := edt_ID.Text;
|
||
FobjMat.IsValid := 't';
|
||
FobjMat.LcStatus := 'Working';
|
||
FobjMat.OrdNum := '0';
|
||
FobjMat.OrdCode := Edit40.Text;
|
||
FobjMat.Standard := '';
|
||
if RadioButton1.Checked then begin
|
||
FobjMat.Kind := '<27><EFBFBD>';
|
||
FobjMat.InQty := Edit34.Text;
|
||
FobjMat.OutQty := '0';
|
||
end
|
||
else begin
|
||
FobjMat.Kind := '<27><><EFBFBD><EFBFBD>';
|
||
FobjMat.InQty := '0';
|
||
FobjMat.OutQty := Edit34.Text;
|
||
end;
|
||
FobjMat.StockQty := '0';
|
||
FobjMat.Status := '';
|
||
FobjMat.Descriptions := Edit35.Text;
|
||
FobjMat.Unitt := Edit45.Text;
|
||
FobjMat.OrdDate := FormatDateTime('yyyy-MM-dd',DatePicker7.Date);
|
||
FobjMat.CustName := ComboBox9.Text;
|
||
FobjMat.MatType := 'NORMAL';
|
||
|
||
if ConfirmCall(FobjMat.Kind+' ó<><C3B3> <20>Ͻðڽ<C3B0><DABD>ϱ<EFBFBD>?') then begin
|
||
xCreateInsertSql(FobjMat);
|
||
|
||
Edit34.Text := '';
|
||
Edit35.Text := '';
|
||
DatePicker7.Date := Now;
|
||
// Edit43.Text := FobjMat.xGetStrSumStockQty(dm.FDQuery1,Edit40.Text,'NORMAL'); Trim(Panel53.Caption)
|
||
// Edit43.Text := FobjMat.xGetStrSumStockQty(dm.FDQuery1,'',Trim(Panel53.Caption),'NORMAL');
|
||
|
||
Edit43.Text := FobjMat.xGetStrSumStockQty(dm.FDQuery1,Trim(Edit40.Text),'NORMAL');
|
||
|
||
AlertCall(FobjMat.Kind+' ó<><C3B3> <20>Ϸ<EFBFBD>.');
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.AlertCall(msg:string);
|
||
var
|
||
fAlertMessage : TfAlertMessage;
|
||
begin
|
||
fAlertMessage := TfAlertMessage.Create(nil);
|
||
try
|
||
fAlertMessage.Label1.Caption := msg;
|
||
|
||
fAlertMessage.ShowModal; // <20><><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> ǥ<><C7A5>
|
||
// <20>Ǵ<EFBFBD> NewForm.Show; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> ǥ<><C7A5>
|
||
finally
|
||
fAlertMessage.Free;
|
||
end;
|
||
end;
|
||
|
||
|
||
procedure TfKiosk.xCreateInsertSql(curMaterial: TMaterialData);
|
||
var
|
||
i, cnt: Integer;
|
||
sqlStr, attrStr, valStr: string;
|
||
attrStrs, valStrs: TStrings;
|
||
PropList: PPropList;
|
||
begin
|
||
sqlStr := 'INSERT INTO ' + curMaterial.xAddSqlDoubleMark(curMaterial.wClassName);
|
||
attrStrs := TStringList.Create;
|
||
valStrs := TStringList.Create;
|
||
cnt := GetPropList(curMaterial,PropList);
|
||
for i := 0 to cnt-1 do begin
|
||
if SameText('Tag',PropList[i].Name) then system.Continue;
|
||
|
||
attrStrs.Add(PropList[i].Name);
|
||
valStrs.Add(GetPropValue(curMaterial,PropList[i].Name,True));
|
||
end;
|
||
FreeMem(PropList);
|
||
|
||
attrStr := '';
|
||
for i := 0 to attrStrs.Count-1 do begin
|
||
if i = 0 then attrStr := ' (' + curMaterial.xAddSqlDoubleMark(attrStrs.Strings[i])
|
||
else attrStr := attrStr + ', ' + curMaterial.xAddSqlDoubleMark(attrStrs.Strings[i]);
|
||
end;
|
||
attrStr := attrStr + ') ';
|
||
sqlStr := sqlStr + attrStr;
|
||
valStr := '';
|
||
for i := 0 to valStrs.Count-1 do begin
|
||
if Length(Trim(valStrs.Strings[i])) = 0 then begin
|
||
if i = 0 then valStr := 'VALUES (' + ''''''
|
||
else valStr := valStr + ', ' + '''''';
|
||
end else begin
|
||
if i = 0 then valStr := 'VALUES (' + curMaterial.xAddSqlMark(valStrs.Strings[i])
|
||
else valStr := valStr + ', ' + curMaterial.xAddSqlMark(valStrs.Strings[i]);
|
||
end;
|
||
end;
|
||
sqlStr := sqlStr + valStr;
|
||
sqlStr := sqlStr + ')';
|
||
sqlStr := sqlStr + ';';
|
||
|
||
if DM.FDConnection1.Connected then begin
|
||
DM.FDQuery1.SQL.Text := sqlStr;
|
||
DM.FDQuery1.ExecSQL;
|
||
end;
|
||
|
||
attrStrs.Free;
|
||
valStrs.Free;
|
||
end;
|
||
|
||
procedure TfKiosk.xCreateInsertSql_EmpLog(EmpLog: TEmpLog);
|
||
var
|
||
i, cnt: Integer;
|
||
sqlStr, attrStr, valStr: string;
|
||
attrStrs, valStrs: TStrings;
|
||
PropList: PPropList;
|
||
begin
|
||
sqlStr := 'INSERT INTO ' + EmpLog.xAddSqlDoubleMark(EmpLog.wClassName);
|
||
attrStrs := TStringList.Create;
|
||
valStrs := TStringList.Create;
|
||
cnt := GetPropList(EmpLog,PropList);
|
||
for i := 0 to cnt-1 do begin
|
||
if SameText('Tag',PropList[i].Name) then system.Continue;
|
||
|
||
attrStrs.Add(PropList[i].Name);
|
||
valStrs.Add(GetPropValue(EmpLog,PropList[i].Name,True));
|
||
end;
|
||
FreeMem(PropList);
|
||
|
||
attrStr := '';
|
||
for i := 0 to attrStrs.Count-1 do begin
|
||
if i = 0 then attrStr := ' (' + EmpLog.xAddSqlDoubleMark(attrStrs.Strings[i])
|
||
else attrStr := attrStr + ', ' + EmpLog.xAddSqlDoubleMark(attrStrs.Strings[i]);
|
||
end;
|
||
attrStr := attrStr + ') ';
|
||
sqlStr := sqlStr + attrStr;
|
||
valStr := '';
|
||
for i := 0 to valStrs.Count-1 do begin
|
||
if Length(Trim(valStrs.Strings[i])) = 0 then begin
|
||
if i = 0 then valStr := 'VALUES (' + ''''''
|
||
else valStr := valStr + ', ' + '''''';
|
||
end else begin
|
||
if i = 0 then valStr := 'VALUES (' + EmpLog.xAddSqlMark(valStrs.Strings[i])
|
||
else valStr := valStr + ', ' + EmpLog.xAddSqlMark(valStrs.Strings[i]);
|
||
end;
|
||
end;
|
||
sqlStr := sqlStr + valStr;
|
||
sqlStr := sqlStr + ')';
|
||
sqlStr := sqlStr + ';';
|
||
|
||
if DM.FDConnection1.Connected then begin
|
||
DM.FDQuery1.SQL.Text := sqlStr;
|
||
DM.FDQuery1.ExecSQL;
|
||
end;
|
||
|
||
attrStrs.Free;
|
||
valStrs.Free;
|
||
end;
|
||
|
||
procedure TfKiosk.xCreateInsertSql_FobjSale(curSaleItem: TSaleItemMst);
|
||
var
|
||
i, cnt: Integer;
|
||
sqlStr, attrStr, valStr: string;
|
||
attrStrs, valStrs: TStrings;
|
||
PropList: PPropList;
|
||
begin
|
||
sqlStr := 'INSERT INTO ' + curSaleItem.xAddSqlDoubleMark(curSaleItem.wClassName);
|
||
attrStrs := TStringList.Create;
|
||
valStrs := TStringList.Create;
|
||
cnt := GetPropList(curSaleItem,PropList);
|
||
for i := 0 to cnt-1 do begin
|
||
if SameText('Tag',PropList[i].Name) then system.Continue;
|
||
|
||
attrStrs.Add(PropList[i].Name);
|
||
valStrs.Add(GetPropValue(curSaleItem,PropList[i].Name,True));
|
||
end;
|
||
FreeMem(PropList);
|
||
|
||
attrStr := '';
|
||
for i := 0 to attrStrs.Count-1 do begin
|
||
if i = 0 then attrStr := ' (' + curSaleItem.xAddSqlDoubleMark(attrStrs.Strings[i])
|
||
else attrStr := attrStr + ', ' + curSaleItem.xAddSqlDoubleMark(attrStrs.Strings[i]);
|
||
end;
|
||
attrStr := attrStr + ') ';
|
||
sqlStr := sqlStr + attrStr;
|
||
valStr := '';
|
||
for i := 0 to valStrs.Count-1 do begin
|
||
if Length(Trim(valStrs.Strings[i])) = 0 then begin
|
||
if i = 0 then valStr := 'VALUES (' + ''''''
|
||
else valStr := valStr + ', ' + '''''';
|
||
end else begin
|
||
if i = 0 then valStr := 'VALUES (' + curSaleItem.xAddSqlMark(valStrs.Strings[i])
|
||
else valStr := valStr + ', ' + curSaleItem.xAddSqlMark(valStrs.Strings[i]);
|
||
end;
|
||
end;
|
||
sqlStr := sqlStr + valStr;
|
||
sqlStr := sqlStr + ')';
|
||
sqlStr := sqlStr + ';';
|
||
|
||
if DM.FDConnection1.Connected then begin
|
||
DM.FDQuery1.SQL.Text := sqlStr;
|
||
DM.FDQuery1.ExecSQL;
|
||
end;
|
||
|
||
attrStrs.Free;
|
||
valStrs.Free;
|
||
end;
|
||
|
||
procedure TfKiosk.Button8Click(Sender: TObject);
|
||
begin
|
||
Material_RTP_refresh;
|
||
end;
|
||
|
||
procedure TfKiosk.Material_RTP_refresh;
|
||
var
|
||
row_ck, i : Integer;
|
||
begin
|
||
try
|
||
DM.FDQuery1.Close;
|
||
if Trim(Edit36.Text) <> '' then begin
|
||
DM.FDQuery1.SQL.Text := ' SELECT "OrdCode", "Name", "Unitt", "MatKind", '+
|
||
' SUM("InQty") - SUM("OutQty") AS balance '+
|
||
' FROM "MaterialData" '+
|
||
' WHERE "MatType"=''RTP'' '+
|
||
' AND "IsValid"=true '+
|
||
|
||
' AND ( '+
|
||
' ("Name" Like ''%'+Trim(Edit36.Text)+'%'') '+
|
||
' OR ("CustName" Like ''%'+Trim(Edit36.Text)+'%'') '+
|
||
' ) '+
|
||
' GROUP BY "OrdCode", "Name", "Unitt", "MatKind" '+
|
||
' ORDER BY "Name"';
|
||
end
|
||
else begin
|
||
DM.FDQuery1.SQL.Text := ' SELECT "OrdCode", "Name", "Unitt", "MatKind", '+
|
||
' SUM("InQty") - SUM("OutQty") AS balance '+
|
||
' FROM "MaterialData" '+
|
||
' WHERE "MatType"=''RTP'' '+
|
||
' AND "IsValid"=true '+
|
||
' GROUP BY "OrdCode", "Name", "Unitt", "MatKind" '+
|
||
' ORDER BY "Name"';
|
||
end;
|
||
DM.FDQuery1.Open;
|
||
|
||
if DM.FDQuery1.RecordCount > 0 then begin
|
||
with cxGridTableView3.DataController do begin
|
||
try
|
||
BeginUpdate;
|
||
RecordCount := 0;
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
|
||
try
|
||
BeginUpdate;
|
||
|
||
DM.FDQuery1.First;
|
||
while not DM.FDQuery1.Eof do begin
|
||
row_ck := AppendRecord;
|
||
|
||
Values[row_ck,cxGridTableView3Column1.Index] := DM.FDQuery1.FieldByName('OrdCode').AsString;
|
||
Values[row_ck,cxGridTableView3Column2.Index] := DM.FDQuery1.FieldByName('Name').AsString;
|
||
Values[row_ck,cxGridTableView3Column3.Index] := DM.FDQuery1.FieldByName('Unitt').AsString;
|
||
|
||
|
||
Values[row_ck,cxGridTableView3Column4.Index] := DM.FDQuery1.FieldByName('balance').AsString;
|
||
|
||
|
||
Values[row_ck,cxGridTableView3Column5.Index] := DM.FDQuery1.FieldByName('MatKind').AsString;
|
||
|
||
DM.FDQuery1.Next;
|
||
end;
|
||
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
Memo1.Lines.Add('['+FormatDateTime('yyyymmdd hhnnss.zzz',now)+'] '+'<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(Material_RTP_refresh): ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Button9Click(Sender: TObject);
|
||
var
|
||
fKioskView : TfKioskView;
|
||
begin
|
||
if (Trim(Panel58.Caption) = '') or (Trim(Panel58.Caption) = 'RTP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') then exit;
|
||
|
||
fKioskView := TfKioskView.Create(nil);
|
||
try
|
||
fKioskView.RadioGroup1.ItemIndex := 1; // 0 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1 : RTP<54><50><EFBFBD><EFBFBD>, 2 : <20><>ǰ
|
||
fKioskView.Label2.Caption := Trim(Panel58.Caption); // 'RTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||
fKioskView.edit1.text := Edit41.Text;
|
||
|
||
fKioskView.ShowModal; // <20><><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> ǥ<><C7A5>
|
||
// <20>Ǵ<EFBFBD> NewForm.Show; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> ǥ<><C7A5>
|
||
finally
|
||
fKioskView.Free;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.FormClose(Sender: TObject; var Action: TCloseAction);
|
||
var
|
||
IniFile : TIniFile;
|
||
begin
|
||
if dev_mode = 1 then begin
|
||
IniFile := TIniFile.Create(inifilename);
|
||
try
|
||
IniFile.WriteInteger('Setting', 'top', top);
|
||
IniFile.WriteInteger('Setting', 'left', left);
|
||
finally
|
||
IniFile.Free;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
||
begin
|
||
LogOut_;
|
||
CanClose := True;
|
||
end;
|
||
|
||
procedure TfKiosk.FormCreate(Sender: TObject);
|
||
var
|
||
IniFile : TIniFile;
|
||
begin
|
||
InitLogger('.\Logs', 'log', rtHourly);
|
||
|
||
inifilename := StringReplace(Application.ExeName,'.exe','.ini',[rfReplaceAll]);
|
||
|
||
IniFile := TIniFile.Create(inifilename);
|
||
try
|
||
Edit15.Text := IniFile.ReadString('Setting', 'I', '');
|
||
Edit16.Text := IniFile.ReadString('Setting', 'P', '');
|
||
|
||
ComboBox7.ItemIndex := IniFile.ReadInteger('Setting', 'init_Mo', 0);
|
||
|
||
dev_mode := IniFile.ReadInteger('Setting', 'dev', 0);
|
||
|
||
if dev_mode = 1 then begin
|
||
top := IniFile.ReadInteger('Setting', 'top', 0);
|
||
left := IniFile.ReadInteger('Setting', 'left', 0);
|
||
end
|
||
else begin
|
||
top := 0;
|
||
left := 0;
|
||
end;
|
||
|
||
|
||
edt_ID.Text := Edit15.Text;
|
||
edt_PASS.Text := Edit16.Text;
|
||
|
||
lbHost.Text := IniFile.ReadString('DATABASE_PG', 'IP', 'qst-s.iptime.org');
|
||
lbPort.Text := IniFile.ReadString('DATABASE_PG', 'Port', '54323');
|
||
lbUserName.Text := IniFile.ReadString('DATABASE_PG', 'User', 'qsentech');
|
||
lbPassword.Text := IniFile.ReadString('DATABASE_PG', 'PW', 'qsentech!1233');
|
||
lbDBName.Text := IniFile.ReadString('DATABASE_PG', 'Schema', 'neol');
|
||
|
||
finally
|
||
IniFile.Free;
|
||
end;
|
||
|
||
Pan_Login.Top := 0;
|
||
Pan_Login.Left := 0;
|
||
|
||
Pan_Main.Top := 0;
|
||
Pan_Main.Left := 0;
|
||
FqryList := nil;
|
||
|
||
pan_tab_1.Parent := Pan_default;
|
||
pan_tab_2.Parent := Pan_default;
|
||
pan_tab_3.Parent := Pan_default;
|
||
pan_tab_4.Parent := Pan_default;
|
||
pan_tab_5.Parent := Pan_default;
|
||
pan_tab_6.Parent := Pan_default;
|
||
pan_tab_7.Parent := Pan_default;
|
||
pan_tab_8.Parent := Pan_default;
|
||
|
||
Pan_Login.Parent := Pan_Main;
|
||
|
||
|
||
Pan_Setting.Parent := Pan_Main;
|
||
|
||
Pan_Setting.Top := 205;
|
||
Pan_Setting.Left := 500;
|
||
|
||
Pan_Setting.Visible := False;
|
||
|
||
Panel21.Parent := Panel14;
|
||
|
||
DatePicker7.Date := Now;
|
||
DatePicker4.Date := Now;
|
||
DatePicker5.Date := Now;
|
||
|
||
label_set_alclient;
|
||
|
||
Label4.Caption := FormatDateTime('yyyy-mm-dd hh:nn:ss ',now);
|
||
Label31.Caption := FormatDateTime('yyyy-mm-dd hh:nn:ss ',now);
|
||
|
||
// pan_select(1);
|
||
Pan_default.Visible := false;
|
||
|
||
Pan_Login.BringToFront;
|
||
|
||
end;
|
||
|
||
procedure TfKiosk.label_set_alclient;
|
||
begin
|
||
{
|
||
Label1.Align := alClient;
|
||
Label2.Align := alClient;
|
||
Label3.Align := alClient;
|
||
|
||
Label46.Align := alClient; // <20><>ǰ<EFBFBD><EFBFBD>_main bt
|
||
Label47.Align := alClient; // <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>_main bt
|
||
}
|
||
|
||
Label5.Align := alClient;
|
||
Label6.Align := alClient;
|
||
Label7.Align := alClient;
|
||
Label8.Align := alClient;
|
||
Label9.Align := alClient;
|
||
Label10.Align := alClient;
|
||
end;
|
||
|
||
procedure TfKiosk.FormDestroy(Sender: TObject);
|
||
begin
|
||
// login_API('DO6002'); //<2F>αƿ<D7BE>
|
||
|
||
if FqryList <> nil then xFreeAll(FqryList);
|
||
end;
|
||
|
||
procedure TfKiosk.FormShow(Sender: TObject);
|
||
var
|
||
tmpStrs: TStrings;
|
||
begin
|
||
Memo1.Lines.Clear;
|
||
Memo2.Lines.Clear;
|
||
|
||
tmpStrs := TStringList.Create;
|
||
tmpStrs.Add('OBID'); tmpStrs.Add('Name'); tmpStrs.Add('wClassName');
|
||
tmpStrs.Add('CreateDate'); tmpStrs.Add('CreateTime'); tmpStrs.Add('CreatorID');
|
||
tmpStrs.Add('IsValid'); tmpStrs.Add('OrdCode'); tmpStrs.Add('Position');
|
||
tmpStrs.Add('Role'); tmpStrs.Add('InDate'); tmpStrs.Add('OutDate');
|
||
tmpStrs.Add('Status'); tmpStrs.Add('EmpTelNum'); tmpStrs.Add('EmpAddress');
|
||
tmpStrs.Add('Descriptions');
|
||
StringGrid1.ColCount := tmpStrs.Count;
|
||
StringGrid1.Rows[0].AddStrings(tmpStrs);
|
||
tmpStrs.Free;
|
||
xAutoResizeStringGridColumns(StringGrid1, Canvas);
|
||
|
||
PG_Connect;
|
||
end;
|
||
|
||
procedure TfKiosk.PG_Connect;
|
||
begin
|
||
DM.PG_DBName := lbDBName.Text;
|
||
DM.PG_UserName := lbUserName.Text;
|
||
DM.PG_Password := lbPassword.Text;
|
||
DM.PG_Host := lbHost.Text;
|
||
DM.PG_Port := lbPort.Text;
|
||
|
||
if dm.DM_Connect then begin
|
||
btDBConnect.Enabled := False;
|
||
btDBdisConnect.Enabled := True;
|
||
Memo1.Lines.Add('PG_Connected : TRUE');
|
||
end
|
||
else begin
|
||
btDBConnect.Enabled := True;
|
||
btDBdisConnect.Enabled := False;
|
||
Memo1.Lines.Add('PG_Connected : FALSE');
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Image1Click(Sender: TObject);
|
||
begin
|
||
Pan_Main.BringToFront;
|
||
Pan_Main.Visible := True;
|
||
Pan_default.Visible := False;
|
||
end;
|
||
|
||
procedure TfKiosk.Image3Click(Sender: TObject);
|
||
begin
|
||
// ShowMessage('SETTING SHOW');
|
||
Pan_Setting.Visible := True;
|
||
Pan_Setting.BringToFront;
|
||
alarmstatusRefresh;
|
||
end;
|
||
|
||
procedure TfKiosk.pan_select(tag:integer);
|
||
begin
|
||
case tag of
|
||
6 : begin
|
||
Material_refresh;
|
||
pan_tab_6.BringToFront;
|
||
end;
|
||
7 : begin
|
||
Material_RTP_refresh;
|
||
pan_tab_7.BringToFront;
|
||
end;
|
||
8 : begin
|
||
easyselectgridRefresh;
|
||
SaleItem_refresh;
|
||
pan_tab_8.BringToFront;
|
||
end;
|
||
end;
|
||
|
||
Pan_default.Left := 0;
|
||
Pan_default.Top := 131;
|
||
Pan_default.BringToFront;
|
||
Pan_default.Visible := True;
|
||
end;
|
||
|
||
procedure TfKiosk.Label12Click(Sender: TObject);
|
||
begin
|
||
Panel21.Parent := TabSheet1;
|
||
|
||
Panel31.Visible := (StrToInt(Edit20.Text) > 15);
|
||
end;
|
||
|
||
procedure TfKiosk.Label30Click(Sender: TObject);
|
||
begin
|
||
Panel22.Parent := TabSheet2;
|
||
|
||
Panel34.Visible := (StrToInt(Edit23.Text) > 15);
|
||
end;
|
||
|
||
procedure TfKiosk.Label31Click(Sender: TObject);
|
||
begin
|
||
edt_close.Text := IntToStr(StrToInt(edt_close.Text)+1);
|
||
end;
|
||
|
||
procedure TfKiosk.Label49_1Click(Sender: TObject);
|
||
begin
|
||
cbCustList_Refresh;
|
||
pan_select((Sender as TLabel).Tag);
|
||
end;
|
||
|
||
procedure TfKiosk.Label4Click(Sender: TObject);
|
||
begin
|
||
{
|
||
Panel1.Visible := not Panel1.Visible;
|
||
if Panel1.Visible then
|
||
Panel1.BringToFront;
|
||
}
|
||
|
||
edt_close.Text := IntToStr(StrToInt(edt_close.Text)+1);
|
||
end;
|
||
|
||
procedure TfKiosk.Label5Click(Sender: TObject);
|
||
begin
|
||
Buttonselect((Sender as TLabel).Tag);
|
||
end;
|
||
|
||
procedure TfKiosk.BTCreate_1(page_no,count:integer);
|
||
const
|
||
ButtonWidth = 200;
|
||
ButtonHeight = 200;
|
||
ButtonWidthSpacing = 50;
|
||
ButtonHeightSpacing = 70;
|
||
ButtonsPerRow = 5; // <20><> <20>ٿ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>ư<EFBFBD><C6B0> <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD>
|
||
var
|
||
i, Row, Col, x: Integer;
|
||
NewButton: TPanel;
|
||
NewLabel : TLabel;
|
||
begin
|
||
Panel21.Parent := TabSheet1;
|
||
|
||
// Panel1<6C><31> <20>ڽ<EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20><> TButton<6F><6E> ã<>Ƽ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
for i := Panel14.ControlCount - 1 downto 0 do
|
||
begin
|
||
if Panel14.Controls[i] is TPanel then
|
||
Panel14.Controls[i].Free;
|
||
end;
|
||
if count <= 15 then
|
||
x := count
|
||
else
|
||
x := 15;
|
||
for i := 0 to x-1 do // <20><> 15<31><35> <20><><EFBFBD><EFBFBD>
|
||
begin
|
||
Row := i div ButtonsPerRow;
|
||
Col := i mod ButtonsPerRow;
|
||
|
||
NewButton := TPanel.Create(Self);
|
||
NewButton.Parent := Panel14;
|
||
NewButton.Width := ButtonWidth;
|
||
NewButton.Height := ButtonHeight;
|
||
NewButton.BevelOuter := bvNone;
|
||
NewButton.ParentBackground := False;
|
||
NewButton.ShowCaption := False;
|
||
|
||
if (i mod 2) = 0 then
|
||
NewButton.Color := $00978F62
|
||
else
|
||
NewButton.Color := $00D3CFBA;
|
||
|
||
NewButton.Left := Col * (ButtonWidth + ButtonWidthSpacing) + 50;
|
||
NewButton.Top := Row * (ButtonHeight + ButtonHeightSpacing) + 38;
|
||
|
||
NewButton.Name := Format('Bt_1_%d', [(page_no*15)+i+1]); // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
NewButton.Tag := i + 1; // <20><><EFBFBD><EFBFBD> <20><>ȣ <20>±<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
|
||
NewLabel := TLabel.Create(Self);
|
||
NewLabel.Parent := NewButton;
|
||
NewLabel.Font.Size := 40;
|
||
NewLabel.Caption := #13 + Format('<27><EFBFBD>_%d', [(page_no*15)+i+1]) + #13 + '[000]';
|
||
NewLabel.Alignment := taCenter;
|
||
NewLabel.Align := alClient;
|
||
NewLabel.Tag := i + 1; // <20><><EFBFBD><EFBFBD> <20><>ȣ <20>±<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
NewLabel.Name := Format('lb_1_%d', [(page_no*15)+i+1]); // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
|
||
NewLabel.OnClick := DynamicButton_1Click;
|
||
|
||
end;
|
||
|
||
Panel31.Visible := (count > 15);
|
||
|
||
Edit19.Text := inttostr(page_no+1);
|
||
Edit20.Text := IntToStr(count);
|
||
if (count mod 15) > 0 then begin
|
||
Edit21.Text := IntToStr((count div 15)+1);
|
||
end
|
||
else begin
|
||
Edit21.Text := IntToStr((count div 15));
|
||
end;
|
||
label44.Caption := inttostr(page_no+1)+ '/'+Edit21.Text;
|
||
end;
|
||
|
||
procedure TfKiosk.BTCreate_2(page_no,count:integer);
|
||
const
|
||
ButtonWidth = 200;
|
||
ButtonHeight = 200;
|
||
ButtonWidthSpacing = 50;
|
||
ButtonHeightSpacing = 70;
|
||
ButtonsPerRow = 5; // <20><> <20>ٿ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>ư<EFBFBD><C6B0> <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD>
|
||
var
|
||
i, Row, Col, x: Integer;
|
||
NewButton: TPanel;
|
||
NewLabel: TLabel;
|
||
begin
|
||
Panel22.Parent := TabSheet2;
|
||
|
||
// Panel1<6C><31> <20>ڽ<EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20><> TButton<6F><6E> ã<>Ƽ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
|
||
for i := Panel15.ControlCount - 1 downto 0 do
|
||
begin
|
||
if (Panel15.Controls[i] is TPanel) or (Panel15.Controls[i] is TLabel) then
|
||
Panel15.Controls[i].Free;
|
||
end;
|
||
|
||
if count <= 15 then
|
||
x := count
|
||
else
|
||
x := 15;
|
||
for i := 0 to x-1 do // <20><> 15<31><35> <20><><EFBFBD><EFBFBD>
|
||
begin
|
||
Row := i div ButtonsPerRow;
|
||
Col := i mod ButtonsPerRow;
|
||
|
||
NewButton := TPanel.Create(Self);
|
||
NewButton.Parent := Panel15;
|
||
NewButton.Width := ButtonWidth;
|
||
NewButton.Height := ButtonHeight;
|
||
NewButton.BevelOuter := bvNone;
|
||
NewButton.ParentBackground := False;
|
||
NewButton.ShowCaption := False;
|
||
|
||
if (i mod 2) = 0 then
|
||
NewButton.Color := $00978F62
|
||
else
|
||
NewButton.Color := $00D3CFBA;
|
||
|
||
NewButton.Left := Col * (ButtonWidth + ButtonWidthSpacing) + 50;
|
||
NewButton.Top := Row * (ButtonHeight + ButtonHeightSpacing) + 38;
|
||
|
||
NewButton.Name := Format('Bt_2_%d', [(page_no*15)+i+1]); // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
NewButton.Tag := i + 1; // <20><><EFBFBD><EFBFBD> <20><>ȣ <20>±<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
|
||
NewLabel := TLabel.Create(Self);
|
||
NewLabel.Parent := NewButton;
|
||
NewLabel.Font.Size := 40;
|
||
NewLabel.Caption := #13 + Format('<27><><EFBFBD><EFBFBD>_%d', [(page_no*15)+i+1]) + #13 + '[000]';
|
||
NewLabel.Alignment := taCenter;
|
||
NewLabel.Align := alClient;
|
||
NewLabel.Tag := i + 1; // <20><><EFBFBD><EFBFBD> <20><>ȣ <20>±<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
NewLabel.Name := Format('lb_2_%d', [(page_no*15)+i+1]); // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
|
||
NewLabel.OnClick := DynamicButton_2Click;
|
||
end;
|
||
|
||
Panel34.Visible := (count > 15);
|
||
|
||
Edit22.Text := inttostr(page_no+1);
|
||
Edit23.Text := IntToStr(count);
|
||
if (count mod 15) > 0 then begin
|
||
Edit24.Text := IntToStr((count div 15)+1);
|
||
end
|
||
else begin
|
||
Edit24.Text := IntToStr((count div 15));
|
||
end;
|
||
label45.Caption := inttostr(page_no+1)+ '/'+Edit24.Text;
|
||
end;
|
||
|
||
procedure TfKiosk.DynamicButton_1Click(Sender: TObject);
|
||
//var
|
||
// Btn: TLabel;
|
||
begin
|
||
// Btn := Sender as TLabel;
|
||
// ShowMessage(Format('Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>ư <20><EFBFBD> : %s (Tag: %d)', [Btn.Name, Btn.Tag]));
|
||
|
||
Panel21.Parent := Panel14;
|
||
Panel21.BringToFront;
|
||
Panel21.Visible := True;;
|
||
|
||
// Panel31.Visible := (count > 15);
|
||
Panel31.Visible := false;
|
||
end;
|
||
|
||
procedure TfKiosk.DynamicButton_2Click(Sender: TObject);
|
||
//var
|
||
// Btn: TLabel;
|
||
begin
|
||
// Btn := Sender as TLabel;
|
||
// ShowMessage(Format('Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>ư <20><><EFBFBD><EFBFBD> : %s (Tag: %d)', [Btn.Name, Btn.Tag]));
|
||
|
||
Panel22.Parent := Panel15;
|
||
Panel22.BringToFront;
|
||
Panel22.Visible := True;
|
||
|
||
Panel34.Visible := False;
|
||
end;
|
||
|
||
procedure TfKiosk.Edit31Change(Sender: TObject);
|
||
begin
|
||
if RadioButton9.Checked then begin
|
||
with cxGridTableView2.DataController.Filter do
|
||
begin
|
||
Root.Clear;
|
||
Root.AddItem(
|
||
cxGridTableView2Column2,
|
||
foLike,
|
||
'%'+Edit31.Text+'%',
|
||
Edit31.Text+' <20><><EFBFBD><EFBFBD>'
|
||
);
|
||
|
||
Active := True;
|
||
end;
|
||
end
|
||
else begin
|
||
with cxGrid2TableView1.DataController.Filter do
|
||
begin
|
||
Root.Clear;
|
||
Root.AddItem(
|
||
cxGrid2TableView1Column1,
|
||
foLike,
|
||
'%'+Edit31.Text+'%',
|
||
Edit31.Text+' <20><><EFBFBD><EFBFBD>'
|
||
);
|
||
|
||
Active := True;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Edit34KeyPress(Sender: TObject; var Key: Char);
|
||
begin
|
||
if not (Key in ['0'..'9', #46, #8, #13]) then // #8: Backspace, #13: Enter , #46 : .
|
||
begin
|
||
Key := #0; // <20>Է<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
end
|
||
else begin
|
||
if (Key in [#46]) then begin
|
||
if pos('.',(Sender as TEdit).Text) > 0 then Key := #0; // <20>Է<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.edt_IDKeyPress(Sender: TObject; var Key: Char);
|
||
begin
|
||
if Key = #13 then edt_PASS.SetFocus;
|
||
end;
|
||
|
||
procedure TfKiosk.edt_PASSKeyPress(Sender: TObject; var Key: Char);
|
||
begin
|
||
if Key = #13 then login_;
|
||
end;
|
||
|
||
procedure TfKiosk.Label8Click(Sender: TObject);
|
||
begin
|
||
Buttonselect_1((Sender as TLabel).Tag);
|
||
end;
|
||
|
||
procedure TfKiosk.Buttonselect(tag:integer);
|
||
begin
|
||
case tag of
|
||
1 : begin
|
||
Panel5.Color := $00978F62;
|
||
Panel6.Color := $00D3CFBA;
|
||
Panel7.Color := $00D3CFBA;
|
||
BTCreate_1(0,10); // BTCreate_1(DBTable);
|
||
end;
|
||
2 : begin
|
||
Panel5.Color := $00D3CFBA;
|
||
Panel6.Color := $00978F62;
|
||
Panel7.Color := $00D3CFBA;
|
||
BTCreate_1(0,24); // BTCreate_1(DBTable);
|
||
end;
|
||
3 : begin
|
||
Panel5.Color := $00D3CFBA;
|
||
Panel6.Color := $00D3CFBA;
|
||
Panel7.Color := $00978F62;
|
||
BTCreate_1(0,7); // BTCreate_1(DBTable);
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Buttonselect_1(tag:integer);
|
||
begin
|
||
case tag of
|
||
1 : begin
|
||
Panel11.Color := $00978F62;
|
||
Panel12.Color := $00D3CFBA;
|
||
Panel13.Color := $00D3CFBA;
|
||
BTCreate_2(0,34); // BTCreate_2(DBTable);
|
||
end;
|
||
2 : begin
|
||
Panel11.Color := $00D3CFBA;
|
||
Panel12.Color := $00978F62;
|
||
Panel13.Color := $00D3CFBA;
|
||
BTCreate_2(0,13); // BTCreate_2(DBTable);
|
||
end;
|
||
3 : begin
|
||
Panel11.Color := $00D3CFBA;
|
||
Panel12.Color := $00D3CFBA;
|
||
Panel13.Color := $00978F62;
|
||
BTCreate_2(0,9); // BTCreate_2(DBTable);
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGrid2TableView1CustomDrawCell(
|
||
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
|
||
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
|
||
begin
|
||
if (not AViewInfo.Selected) and ((AViewInfo.GridRecord.RecordIndex mod 2) = 1) then begin
|
||
ACanvas.Canvas.Brush.Color := $00EFF1E9;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGrid2TableView1FocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
|
||
var
|
||
ProductMst : TProductMst;
|
||
tmpList : TList;
|
||
begin
|
||
if Assigned(AFocusedRecord) then begin
|
||
label80.Caption := cxGrid2TableView1.DataController.GetValue(AFocusedRecord.RecordIndex,cxGrid2TableView1Column1.Index); //<2F><>ǰ<EFBFBD><C7B0>
|
||
Edit14.Text := 'EA'; // <20><><EFBFBD><EFBFBD>
|
||
if RadioButton10.Checked then begin
|
||
Edit13.Text := cxGrid2TableView1.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView2Column2.Index); // <20><><EFBFBD><EFBFBD>
|
||
Edit32.Text := Edit13.Text; //<2F><><EFBFBD><EFBFBD>
|
||
Edit48.Text := Edit13.Text; //<2F><><EFBFBD><EFBFBD>
|
||
Edit50.Text := ''; // OBID
|
||
end else
|
||
if RadioButton11.Checked then begin
|
||
Edit13.Text := '';
|
||
Edit32.Text := '';
|
||
Edit48.Text := '';
|
||
Edit50.Text := '';
|
||
end;
|
||
|
||
try
|
||
tmpList := TList.Create;
|
||
ProductMst := TProductMst.Create(Self);
|
||
tmpList := ProductMst.xGetStrSqlProductMstList(dm.FDQuery1,'',label80.Caption);
|
||
if tmpList.Count = 1 then begin
|
||
ProductMst := TProductMst(tmpList.Items[0]);
|
||
Edit42.Text := ProductMst.ProdCode;
|
||
Edit39.Text := ProductMst.ProdCode;
|
||
Edit49.Text := ProductMst.MatKind;
|
||
edtManufact.Text := ProductMst.Manufact;
|
||
end;
|
||
|
||
edtModel.Text := '';
|
||
edtMatUnitPrice.Text := '';
|
||
|
||
cbCustList.ItemIndex := -1;
|
||
finally
|
||
tmpList.free;
|
||
end;
|
||
end
|
||
else begin
|
||
label80.Caption := '<27><>ǰ<EFBFBD><C7B0>';
|
||
Edit13.Text := '0';
|
||
Edit32.Text := '';
|
||
Edit48.Text := '';
|
||
Edit50.Text := '';
|
||
Edit14.Text := 'EA';
|
||
|
||
Edit42.Text := '';
|
||
Edit39.Text := '';
|
||
Edit49.Text := '';
|
||
edtManufact.Text := '';
|
||
edtModel.Text := '';
|
||
edtMatUnitPrice.Text := '';
|
||
|
||
cbCustList.ItemIndex := -1;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGrid2TableView1MouseDown(Sender: TObject;
|
||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
if Button = mbLeft then begin
|
||
FDragScrolling := True;
|
||
FStartY := Y;
|
||
FStartTopRow := cxGrid2TableView1.Controller.TopRowIndex; // <20><><EFBFBD><EFBFBD> <20>ֻ<EFBFBD><D6BB><EFBFBD> Row <20><><EFBFBD><EFBFBD>
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGrid2TableView1MouseMove(Sender: TObject;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
var
|
||
DeltaY, RowOffset: Integer;
|
||
begin
|
||
if not FDragScrolling then Exit;
|
||
DeltaY := Y - FStartY; // <20>̵<EFBFBD> <20>Ÿ<EFBFBD> (<28>Ʒ<EFBFBD><C6B7><EFBFBD> <20>巡<EFBFBD><E5B7A1><EFBFBD>ϸ<EFBFBD> +)
|
||
RowOffset := DeltaY div 20; // <20>ΰ<EFBFBD><CEB0><EFBFBD> - <20>ȼ<EFBFBD> <20><> Row <20><>ȯ (<28><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||
cxGrid2TableView1.Controller.TopRowIndex := FStartTopRow - RowOffset;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGrid2TableView1MouseUp(Sender: TObject;
|
||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
FDragScrolling := False;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView1CustomDrawCell(Sender: TcxCustomGridTableView;
|
||
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
|
||
var ADone: Boolean);
|
||
begin
|
||
if (not AViewInfo.Selected) and ((AViewInfo.GridRecord.RecordIndex mod 2) = 1) then begin
|
||
ACanvas.Canvas.Brush.Color := $00EFF1E9;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView1FocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
|
||
var
|
||
MaterialData : TMaterialData;
|
||
begin
|
||
if Assigned(AFocusedRecord) then begin
|
||
Panel53.Caption := cxGridTableView1.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView1Column2.Index);
|
||
Edit40.Text := cxGridTableView1.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView1Column1.Index);
|
||
MaterialData := TMaterialData.Create(Self);
|
||
// Edit43.Text := MaterialData.xGetStrSumStockQty(dm.FDQuery1,Edit40.Text,'NORMAL');
|
||
{
|
||
if RadioGroup1.ItemIndex = 0 then
|
||
Edit43.Text := MaterialData.xGetStrSumStockQty(dm.FDQuery1,Trim(Edit40.Text),'','NORMAL')
|
||
else
|
||
Edit43.Text := MaterialData.xGetStrSumStockQty(dm.FDQuery1,'',Trim(Panel53.Caption),'NORMAL');
|
||
}
|
||
Edit43.Text := MaterialData.xGetStrSumStockQty(dm.FDQuery1,Trim(Edit40.Text),'NORMAL');
|
||
|
||
Edit45.Text := cxGridTableView1.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView1Column3.Index);
|
||
|
||
ComboBox9.ItemIndex := ComboBox9.Items.IndexOf(cxGridTableView1.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView1Column4.Index));
|
||
end
|
||
else begin
|
||
Panel53.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||
Edit40.Text := '';
|
||
Edit43.Text := '0';
|
||
Edit45.Text := '';
|
||
ComboBox9.ItemIndex := -1;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView1MouseDown(Sender: TObject;
|
||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
if Button = mbLeft then begin
|
||
FDragScrolling := True;
|
||
FStartY := Y;
|
||
FStartTopRow := cxGridTableView1.Controller.TopRowIndex; // <20><><EFBFBD><EFBFBD> <20>ֻ<EFBFBD><D6BB><EFBFBD> Row <20><><EFBFBD><EFBFBD>
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView1MouseMove(Sender: TObject; Shift: TShiftState;
|
||
X, Y: Integer);
|
||
var
|
||
DeltaY, RowOffset: Integer;
|
||
begin
|
||
if not FDragScrolling then Exit;
|
||
DeltaY := Y - FStartY; // <20>̵<EFBFBD> <20>Ÿ<EFBFBD> (<28>Ʒ<EFBFBD><C6B7><EFBFBD> <20>巡<EFBFBD><E5B7A1><EFBFBD>ϸ<EFBFBD> +)
|
||
RowOffset := DeltaY div 20; // <20>ΰ<EFBFBD><CEB0><EFBFBD> - <20>ȼ<EFBFBD> <20><> Row <20><>ȯ (<28><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||
cxGridTableView1.Controller.TopRowIndex := FStartTopRow - RowOffset;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView1MouseUp(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
FDragScrolling := False;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView2FocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
|
||
var
|
||
SaleItemMst : TSaleItemMst;
|
||
begin
|
||
if Assigned(AFocusedRecord) then begin
|
||
label80.Caption := cxGridTableView2.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView2Column2.Index);
|
||
Edit42.Text := cxGridTableView2.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView2Column1.Index);
|
||
Edit39.Text := cxGridTableView2.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView2Column9.Index);
|
||
Edit14.Text := cxGridTableView2.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView2Column5.Index);
|
||
cbCustList.ItemIndex := cbCustList.Items.IndexOf(cxGridTableView2.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView2Column3.Index));
|
||
Edit49.Text := cxGridTableView2.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView2Column7.Index);
|
||
Edit13.Text := nametostock(Trim(label80.Caption));
|
||
// Edit13.Text := SaleItemMst.xGetBalanceQtyByName(dm.FDQuery1,Trim(label80.Caption));
|
||
Edit32.Text := cxGridTableView2.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView2Column4.Index);
|
||
Edit48.Text := cxGridTableView2.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView2Column4.Index);
|
||
Edit50.Text := cxGridTableView2.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView2Column12.Index);
|
||
edtManufact.Text := cxGridTableView2.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView2Column10.Index);
|
||
edtModel.Text := '';
|
||
edtMatUnitPrice.Text := '';
|
||
end
|
||
else begin
|
||
label80.Caption := '<27><>ǰ<EFBFBD><C7B0>';
|
||
Edit42.Text := '';
|
||
Edit39.Text := '';
|
||
Edit13.Text := '0';
|
||
Edit14.Text := '';
|
||
cbCustList.ItemIndex := -1;
|
||
Edit32.Text := '';
|
||
Edit48.Text := '';
|
||
Edit50.Text := '';
|
||
Edit49.Text := '';
|
||
|
||
edtManufact.Text := '';
|
||
edtModel.Text := '';
|
||
edtMatUnitPrice.Text := '';
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView2MouseDown(Sender: TObject;
|
||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
if Button = mbLeft then begin
|
||
FDragScrolling := True;
|
||
FStartY := Y;
|
||
FStartTopRow := cxGridTableView2.Controller.TopRowIndex; // <20><><EFBFBD><EFBFBD> <20>ֻ<EFBFBD><D6BB><EFBFBD> Row <20><><EFBFBD><EFBFBD>
|
||
if btnFINISH.Visible then
|
||
btnFINISH.Visible := False;
|
||
end else
|
||
if Button = mbRight then begin
|
||
btnFINISH.Top := y;
|
||
btnFINISH.Left := cxGrid4.Width + x;
|
||
btnFINISH.Visible := True;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView2MouseMove(Sender: TObject; Shift: TShiftState;
|
||
X, Y: Integer);
|
||
var
|
||
DeltaY, RowOffset: Integer;
|
||
begin
|
||
if not FDragScrolling then Exit;
|
||
DeltaY := Y - FStartY; // <20>̵<EFBFBD> <20>Ÿ<EFBFBD> (<28>Ʒ<EFBFBD><C6B7><EFBFBD> <20>巡<EFBFBD><E5B7A1><EFBFBD>ϸ<EFBFBD> +)
|
||
RowOffset := DeltaY div 20; // <20>ΰ<EFBFBD><CEB0><EFBFBD> - <20>ȼ<EFBFBD> <20><> Row <20><>ȯ (<28><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||
cxGridTableView2.Controller.TopRowIndex := FStartTopRow - RowOffset;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView2MouseUp(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
FDragScrolling := False;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView3FocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
|
||
var
|
||
MaterialData : TMaterialData;
|
||
begin
|
||
if Assigned(AFocusedRecord) then begin
|
||
Panel58.Caption := cxGridTableView3.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView3Column2.Index);
|
||
Edit41.Text := cxGridTableView3.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView3Column1.Index);
|
||
Edit18.Text := cxGridTableView3.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView3Column5.Index);
|
||
|
||
MaterialData := TMaterialData.Create(Self);
|
||
// Edit44.Text := MaterialData.xGetStrSumStockQty(dm.FDQuery1,Edit41.Text,'RTP');
|
||
// Edit44.Text := MaterialData.xGetStrSumStockQty(dm.FDQuery1,'',Trim(Panel58.Caption),'RTP');
|
||
Edit44.Text := MaterialData.xGetStrSumStockQty(dm.FDQuery1,Edit41.Text,'RTP');
|
||
Edit47.Text := cxGridTableView3.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView3Column3.Index);
|
||
ComboBox8.ItemIndex := ComboBox8.Items.IndexOf(cxGridTableView3.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView3Column4.Index));
|
||
end
|
||
else begin
|
||
Panel58.Caption := 'RTP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||
Edit41.Text := '';
|
||
Edit44.Text := '0';
|
||
Edit47.Text := '';
|
||
ComboBox8.ItemIndex := -1;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView3MouseDown(Sender: TObject;
|
||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
if Button = mbLeft then begin
|
||
FDragScrolling := True;
|
||
FStartY := Y;
|
||
FStartTopRow := cxGridTableView3.Controller.TopRowIndex; // <20><><EFBFBD><EFBFBD> <20>ֻ<EFBFBD><D6BB><EFBFBD> Row <20><><EFBFBD><EFBFBD>
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView3MouseMove(Sender: TObject; Shift: TShiftState;
|
||
X, Y: Integer);
|
||
var
|
||
DeltaY, RowOffset: Integer;
|
||
begin
|
||
if not FDragScrolling then Exit;
|
||
DeltaY := Y - FStartY; // <20>̵<EFBFBD> <20>Ÿ<EFBFBD> (<28>Ʒ<EFBFBD><C6B7><EFBFBD> <20>巡<EFBFBD><E5B7A1><EFBFBD>ϸ<EFBFBD> +)
|
||
RowOffset := DeltaY div 20; // <20>ΰ<EFBFBD><CEB0><EFBFBD> - <20>ȼ<EFBFBD> <20><> Row <20><>ȯ (<28><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||
cxGridTableView3.Controller.TopRowIndex := FStartTopRow - RowOffset;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView3MouseUp(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
FDragScrolling := False;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView4CellClick(Sender: TcxCustomGridTableView;
|
||
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
|
||
AShift: TShiftState; var AHandled: Boolean);
|
||
var
|
||
View: TcxGridTableView;
|
||
NewValue, OldValue: Variant;
|
||
begin
|
||
if Assigned(ACellViewInfo) then begin
|
||
if Edit46.Text = '1' then begin
|
||
Edit31.Clear;
|
||
Edit46.Text := '0';
|
||
end
|
||
else begin
|
||
Edit31.Text := ACellViewInfo.Value;
|
||
Edit46.Text := '1';
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView4CustomDrawCell(Sender: TcxCustomGridTableView;
|
||
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
|
||
var ADone: Boolean);
|
||
begin
|
||
if (not AViewInfo.Selected) and ((AViewInfo.GridRecord.RecordIndex mod 2) = 1) then begin
|
||
ACanvas.Canvas.Brush.Color := $00EFF1E9;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView4FocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
|
||
begin
|
||
if Assigned(AFocusedRecord) then begin
|
||
Edit31.Text := cxGridTableView4.DataController.GetValue(AFocusedRecord.RecordIndex,cxGridTableView4Column1.Index);
|
||
Edit46.Text := '0';
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView4MouseDown(Sender: TObject;
|
||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
if Button = mbLeft then begin
|
||
FDragScrolling := True;
|
||
FStartY := Y;
|
||
FStartTopRow := cxGridTableView4.Controller.TopRowIndex; // <20><><EFBFBD><EFBFBD> <20>ֻ<EFBFBD><D6BB><EFBFBD> Row <20><><EFBFBD><EFBFBD>
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView4MouseEnter(Sender: TObject);
|
||
begin
|
||
if btnFINISH.Visible then
|
||
btnFINISH.Visible := False;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView4MouseMove(Sender: TObject; Shift: TShiftState;
|
||
X, Y: Integer);
|
||
var
|
||
DeltaY, RowOffset: Integer;
|
||
begin
|
||
if not FDragScrolling then Exit;
|
||
DeltaY := Y - FStartY; // <20>̵<EFBFBD> <20>Ÿ<EFBFBD> (<28>Ʒ<EFBFBD><C6B7><EFBFBD> <20>巡<EFBFBD><E5B7A1><EFBFBD>ϸ<EFBFBD> +)
|
||
RowOffset := DeltaY div 20; // <20>ΰ<EFBFBD><CEB0><EFBFBD> - <20>ȼ<EFBFBD> <20><> Row <20><>ȯ (<28><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||
cxGridTableView4.Controller.TopRowIndex := FStartTopRow - RowOffset;
|
||
end;
|
||
|
||
procedure TfKiosk.cxGridTableView4MouseUp(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
FDragScrolling := False;
|
||
end;
|
||
|
||
procedure TfKiosk.StringGrid1DblClick(Sender: TObject);
|
||
var
|
||
cidx, ridx: Integer;
|
||
curEmp: TEmpMst;
|
||
tmpForm: TfrmEditor;
|
||
begin
|
||
cidx := StringGrid1.Rows[0].IndexOf('OBID');
|
||
ridx := StringGrid1.Row;
|
||
if StringGrid1.Objects[cidx,ridx] = nil then Exit;
|
||
curEmp := TEmpMst(StringGrid1.Objects[cidx,ridx]);
|
||
|
||
tmpForm := TfrmEditor.Create(Self);
|
||
tmpForm.objEmp := curEmp;
|
||
if tmpForm.ShowModal = mrOk then begin
|
||
btQuery.OnClick(Sender);
|
||
end;
|
||
tmpForm.Free; tmpForm:=nil;
|
||
end;
|
||
|
||
procedure TfKiosk.Timer_datetimeTimer(Sender: TObject);
|
||
begin
|
||
Label4.Caption := FormatDateTime('yyyy-mm-dd hh:nn:ss ',now);
|
||
if Pan_Login.Visible then
|
||
Label31.Caption := FormatDateTime('yyyy-mm-dd hh:nn:ss ',now);
|
||
|
||
if Pan_Setting.Visible then begin
|
||
if DM.FDConnection1.Connected then begin
|
||
alarmstatusRefresh;
|
||
end
|
||
else begin
|
||
Panel54.Enabled := false;
|
||
Panel59.Enabled := false;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfKiosk.Tmr_closeTimer(Sender: TObject);
|
||
begin
|
||
if StrToInt(edt_close.Text) >= 3 then begin
|
||
Tmr_close.Enabled := False;
|
||
Close;
|
||
end
|
||
else begin
|
||
edt_close.Text := '0';
|
||
end;
|
||
end;
|
||
|
||
end.
|