?? shipment.pas
字號(hào):
unit Shipment;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, NEOFORM, ExtCtrls, ToolWin, ComCtrls, StdCtrls, DBCtrls,
Buttons, GridsEh, DBGridEh, Grids, DBGrids, RpCon, RpConDS, RpBase,
RpSystem, RpDefine, RpRave, rvclass, rvcsstd, RvCsBars, Mask, RvCsRpt, RpMemo,
DB, ADODB,MMSystem;
type
TFrmShipment = class(TGBKPForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
DateTimePickerPostDateSart: TDateTimePicker;
DateTimePickerPostDateEnd: TDateTimePicker;
EdtOrderIDEnd: TEdit;
BitBtn1: TBitBtn;
CheckBoxOrderID: TCheckBox;
CheckBoxPostDate: TCheckBox;
CheckBoxCustomer: TCheckBox;
CheckBoxDevtype: TCheckBox;
EdtCustomer: TEdit;
DBNavigator1: TDBNavigator;
Panel1: TPanel;
DBGridEh1: TDBGridEh;
Panel2: TPanel;
GroupBox2: TGroupBox;
BtnPrint: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
EdtBarCodeEnter: TEdit;
LabelMessage: TLabel;
RvProjectShipLabel: TRvProject;
RvSystemShipLabel: TRvSystem;
RvDataSetConnectionShipLabel: TRvDataSetConnection;
EdtOrderIDSart: TComboBox;
EdtDevtype: TComboBox;
CheckBoxIsOut: TCheckBox;
Label3: TLabel;
EdtAutoPrintNum: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
DBEditBarCode: TDBEdit;
DBEditOrderID: TDBEdit;
DBEditDevName: TDBEdit;
DBEditCustomerName: TDBEdit;
DBEditpostdate: TDBEdit;
DBMemoMemo: TDBMemo;
RadioGroupLAnguage: TRadioGroup;
ImportToExcel: TBitBtn;
Label12: TLabel;
LabelThisOrderCount: TLabel;
LabelThisOrder: TLabel;
LabelTodayCount: TLabel;
DBGridEh2: TDBGridEh;
QToday: TADOQuery;
LabelThisDeviceType: TLabel;
LabelThisDeviceTypeCount: TLabel;
ChkPreview: TCheckBox;
CheckBoxSetPrint: TCheckBox;
CheckBoxRePrint: TCheckBox;
procedure CheckBoxOrderIDClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure EdtBarCodeEnterKeyPress(Sender: TObject; var Key: Char);
procedure BtnPrintClick(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure EdtAutoPrintNumKeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1CellClick(Column: TColumn);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure EdtAutoPrintNumChange(Sender: TObject);
procedure EdtAutoPrintNumExit(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ImportToExcelClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
OrderIDstr: string;
DevNamestr: string;
CustomerNamestr: string;
postdatestr: string;
Memostr: string;
ImportToExcelstr:string;
procedure getStatInfo;
{ Private declarations }
public
function MessageAndSaveBarcodeInfo(infoType: string; OldInfo, newInfo: string): boolean;
function ContrastBarcodeInfo: boolean;
procedure SaveBarcodeInfo;
{ Public declarations }
end;
var
FrmShipment: TFrmShipment;
implementation
uses StockDataModel, PublicFunction, PublicParameter, RvProj;
{$R *.dfm}
//判斷值是否改變
function TFrmShipment.ContrastBarcodeInfo: boolean;
begin
Result := true; //都不變
if OrderIDstr <> DBEditOrderID.Text then //訂單號(hào)不同
begin
if MessageAndSaveBarcodeInfo('訂單號(hào)', OrderIDstr, DBEditOrderID.Text) then
Result := true else Result := false;
exit;
end
else if CustomerNamestr <> DBEditCustomerName.Text then //客戶(hù)名稱(chēng)
begin
if MessageAndSaveBarcodeInfo('客戶(hù)名稱(chēng)', CustomerNamestr, DBEditCustomerName.Text) then
Result := true else Result := false;
exit;
end
else if DevNamestr <> DBEditDevName.Text then //機(jī)型
begin
if MessageAndSaveBarcodeInfo('機(jī)型', DevNamestr, DBEditDevName.Text) then
Result := true else Result := false;
exit;
end else if postdatestr <> DBEditpostdate.Text then //生產(chǎn)日期
begin
if MessageAndSaveBarcodeInfo('生產(chǎn)日期', postdatestr, DBEditpostdate.Text) then
Result := true else Result := false;
exit;
end
else if Memostr <> DBMemoMemo.Text then //配置說(shuō)明
begin
if MessageAndSaveBarcodeInfo('配置說(shuō)明', Memostr, DBMemoMemo.Text) then
Result := true else Result := false;
exit;
end
end;
function TFrmShipment.MessageAndSaveBarcodeInfo(infoType: string; OldInfo, newInfo: string): boolean;
begin
Result := false;
if Application.MessageBox(pchar(infoType + '將由' + #13 + OldInfo + #13 + '改變?yōu)?#039; + #13 + newInfo + #13 + '請(qǐng)確定包裝機(jī)器正確?'), pchar('提示'), MB_YESNO) = IDYES then
begin
Result := true;
//記下原來(lái)所有值
SaveBarcodeInfo;
end;
end;
//記下原來(lái)所有值
procedure TFrmShipment.SaveBarcodeInfo;
begin
OrderIDstr := DBEditOrderID.Text;
DevNamestr := DBEditDevName.Text;
CustomerNamestr := DBEditCustomerName.Text;
postdatestr := DBEditpostdate.Text;
Memostr := DBMemoMemo.Text;
end;
procedure TFrmShipment.CheckBoxOrderIDClick(Sender: TObject);
begin
inherited;
EdtOrderIDSart.Enabled := CheckBoxOrderID.Checked;
EdtOrderIDEnd.Enabled := CheckBoxOrderID.Checked;
DateTimePickerPostDateSart.Enabled := CheckBoxPostDate.Checked;
DateTimePickerPostDateEnd.Enabled := CheckBoxPostDate.Checked;
EdtDevtype.Enabled := CheckBoxDevtype.Checked;
EdtCustomer.Enabled := CheckBoxCustomer.Checked;
if EdtOrderIDSart.Enabled = false then EdtOrderIDSart.Color := clSilver else EdtOrderIDSart.Color := clWindow;
EdtOrderIDEnd.Color := EdtOrderIDSart.Color;
if DateTimePickerPostDateSart.Enabled = false then DateTimePickerPostDateSart.Color := clSilver else DateTimePickerPostDateSart.Color := clWindow;
DateTimePickerPostDateEnd.Color := DateTimePickerPostDateSart.Color;
if EdtDevtype.Enabled = false then EdtDevtype.Color := clSilver else EdtDevtype.Color := clWindow;
if EdtCustomer.Enabled = false then EdtCustomer.Color := clSilver else EdtCustomer.Color := clWindow;
end;
procedure TFrmShipment.BitBtn1Click(Sender: TObject);
var sqlstr: string;
iBegin: Cardinal;
begin
inherited;
iBegin := GetTickCount; // GetTickCount() 取得當(dāng)前系統(tǒng)時(shí)間的毫秒值
sqlstr := '';
//sqlstr := 'select distinct a.barcode,a.*,b.*,c.DevName,d.CustomerName,d.OrderDetail,d.OrderMemo from BarCode a,GBarCode b,DeviceType c,Orders d '
//+' where a.GBarCodeID=b.GBarCodeID and a.Devnum=c.Devnum and a.OrderId=d.OrderID '; //
//QBarCodefind.Locate('BarCode', BarCodeTemp, [])缺少更新或刷新的鍵列信息。
// distinct
sqlstr :=QBarCodefindSQLStr;
ImportToExcelstr:='select a.BarCode 條碼,a.OrderID 訂單號(hào),a.CustomerName 客戶(hù),c.DevName 機(jī)型,a.PostDate 生產(chǎn)日期,a.PackDate 包裝日期,a.InComeDate 入庫(kù)日期 '
+' from BarCode a,DeviceType c where a.Devnum=c.Devnum ';
//'select a.barcode,a.GBarCodeID,a.OrderID,a.DevNum,a.PostDate,a.IsPack,a.IsInCome,a.IsOutCome,a.PackDate,a.PackTime,a.InComeDate,a.InComeTime,a.OutComeDate,a.OutComeTime,a.devHardOptions, c.DevName'+
//' from BarCode a,DeviceType c where a.Devnum=c.Devnum';
if CheckBoxOrderID.Checked then
begin
sqlstr := sqlstr + format(' and a.OrderId=''%s''', [trim(EdtOrderIDSart.Text)]);
end;
if CheckBoxPostDate.Checked then
begin
sqlstr := sqlstr + format(' and a.PostDate >=''%s'' and a.PostDate <= ''%s''', [FormatDateTime('yyyy-mm-dd',DateTimePickerPostDateSart.Date), FormatDateTime('yyyy-mm-dd',DateTimePickerPostDateEnd.Date)]);
end; //保證日期是datetime型
if CheckBoxDevtype.Checked then
begin //可模糊查詢(xún)
sqlstr := sqlstr + format(' and c.DevName like ''%%%s%%'' ', [EdtDevtype.Text]);
end;
if CheckBoxCustomer.Checked then
begin //可模糊查詢(xún)
sqlstr := sqlstr + format(' and a.CustomerName like ''%%%s%%''', [EdtCustomer.Text]);
end;
if CheckBoxIsOut.State = cbChecked then
sqlstr := sqlstr + format(' and a.IsInCome=%d', [1])
else if CheckBoxIsOut.State = cbunchecked then sqlstr := sqlstr + format(' and a.IsInCome=%d', [0]);
with StockDM.QBarCodefind do
begin
Close;
SQL.Clear;
SQL.Text := sqlstr + ' order by a.barcode';
ImportToExcelstr:=ImportToExcelstr+ copy(sqlstr,length(QBarCodefindSQLStr)+1,MaxInt);
Prepared := true;
Open;
//Parameters.Items[0].Value := FormatDateTime('yyyy-mm-dd',FormatDateTime('yyyy-mm-dd',DateTimePickerPostDateSart.Date)); //如果不轉(zhuǎn)換oracle將提示數(shù)據(jù)類(lèi)型不一致
//Parameters.Items[1].Value := FormatDateTime('yyyy-mm-dd',FormatDateTime('yyyy-mm-dd',DateTimePickerPostDateEnd.Date));
//sqlstr:=SQL.Text;
//EdtSum.Text := inttostr(RecordCount);
//EdtSum.Text :=sqlstr;
end;
if not StockDM.QOrders.Active then StockDM.QOrders.Active:=true;
iBegin := GetTickCount - iBegin; //
LabelMessage.Caption:='用時(shí)' + inttostr(iBegin) + '毫秒'
end;
procedure TFrmShipment.FormShow(Sender: TObject);
begin
inherited;
deleteRec(StockDM.ADOConnBarCodeTemp, 'BarCode', ''); //刪除臨時(shí)表
StockDM.QBarCode.Active := false; StockDM.QBarCode.Active := true;
DateTimePickerPostDateSart.Date := date;
DateTimePickerPostDateEnd.Date := date;
RvProjectShipLabel.ProjectFile := CurPath + '\條碼\ShipLabec.rav';
EdtOrderIDSart.Items.AddStrings(GetValueToCMBOrderId('Orders', 'OrderID', 'All'));
EdtDevtype.Items.AddStrings(GetValueToCMB('DeviceType', 'DevName', 'All'));
EdtAutoPrintNum.Text := ReadIniFile('SysConfig', 'AutoPrintNum');
RadioGroupLAnguage.ItemIndex := strtoint(ReadIniFile('SysConfig', 'Language'));
//BitBtn1Click(Sender);
EdtBarCodeEnter.SetFocus;
ActiveControl := EdtBarCodeEnter;
end;
procedure TFrmShipment.EdtBarCodeEnterKeyPress(Sender: TObject;
var Key: Char);
var BarCodeTemp: string;
AutoPrintNum: integer;
begin
inherited;
LabelMessage.Caption := '';
LabelMessage.Refresh;
AutoPrintNum := strtoint(EdtAutoPrintNum.Text);
if key = #13 then //條碼完畢
begin
if not StockDM.QBarCodefind.Active then StockDM.QBarCodefind.Active:=true;
//BarCodeTemp := trim(EdtBarCodeEnter.Text);
BarCodeTemp := copy(trim(EdtBarCodeEnter.Text), length(trim(EdtBarCodeEnter.Text)) - 13 + 1, 13); //掃描時(shí)前面多一個(gè)0
if length(BarCodeTemp)<>13 then
begin
LabelMessage.Caption := BarCodeTemp + '條碼掃描錯(cuò)誤請(qǐng)重新掃描!';
PlaySound(pchar(ExtractFilePath(Application.ExeName) + 'keyerror.wav'), 0, snd_Async);
EdtBarCodeEnter.Text := '';
exit;
end;
if BarCodeTemp = '' then
begin
LabelMessage.Caption := '掃描失敗,請(qǐng)重新掃描!';
PlaySound(pchar(ExtractFilePath(Application.ExeName) + 'keyerror.wav'), 0, snd_Async);
EdtBarCodeEnter.Text := '';
exit;
end;
if StockDM.QBarCode.Locate('BarCode', BarCodeTemp, []) then
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -