📄 shipment.~pa
字号:
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;
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;
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;
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 //订单号不同
begin
if MessageAndSaveBarcodeInfo('订单号', OrderIDstr, DBEditOrderID.Text) then
Result := true else Result := false;
exit;
end
else if CustomerNamestr <> DBEditCustomerName.Text then //客户名称
begin
if MessageAndSaveBarcodeInfo('客户名称', CustomerNamestr, DBEditCustomerName.Text) then
Result := true else Result := false;
exit;
end
else if DevNamestr <> DBEditDevName.Text then //机型
begin
if MessageAndSaveBarcodeInfo('机型', DevNamestr, DBEditDevName.Text) then
Result := true else Result := false;
exit;
end else if postdatestr <> DBEditpostdate.Text then //生产日期
begin
if MessageAndSaveBarcodeInfo('生产日期', postdatestr, DBEditpostdate.Text) then
Result := true else Result := false;
exit;
end
else if Memostr <> DBMemoMemo.Text then //配置说明
begin
if MessageAndSaveBarcodeInfo('配置说明', 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 + '改变为' + #13 + newInfo + #13 + '请确定包装机器正确?'), pchar('提示'), MB_YESNO) = IDYES then
begin
Result := true;
//记下原来所有值
SaveBarcodeInfo;
end;
end;
//记下原来所有值
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;
begin
inherited;
sqlstr := '';
sqlstr := 'select a.*,b.*,c.DevName,d.CustomerName,d.postdate from BarCode a,GBarCode b,DeviceType c,Orders d ' +
'where a.GBarCodeID=b.GBarCodeID and b.Devnum=c.Devnum and b.OrderID=d.OrderID '; //
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''', [datetostr(DateTimePickerPostDateSart.Date), datetostr(DateTimePickerPostDateEnd.Date)]);
end; //保证日期是datetime型
if CheckBoxDevtype.Checked then
begin //可模糊查询
sqlstr := sqlstr + format(' and DevName like ''%%%s%%'' ', [EdtDevtype.Text]);
end;
if CheckBoxCustomer.Checked then
begin //可模糊查询
sqlstr := sqlstr + format(' and 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.OrderID';
Prepared := true;
Open;
//Parameters.Items[0].Value := strtodate(datetostr(DateTimePickerPostDateSart.Date)); //如果不转换oracle将提示数据类型不一致
//Parameters.Items[1].Value := strtodate(datetostr(DateTimePickerPostDateEnd.Date));
//sqlstr:=SQL.Text;
//EdtSum.Text := inttostr(RecordCount);
//EdtSum.Text :=sqlstr;
end;
end;
procedure TFrmShipment.FormShow(Sender: TObject);
begin
inherited;
deleteRec(StockDM.ADOConnBarCodeTemp, 'BarCode', ''); //删除临时表
StockDM.QBarCode.Active := false; StockDM.QBarCode.Active := true;
DateTimePickerPostDateSart.Date := date;
DateTimePickerPostDateEnd.Date := date;
RvProjectShipLabel.ProjectFile := CurPath + '\条码\ShipLabec.rav';
EdtOrderIDSart.Items.AddStrings(GetValueToCMB('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
//BarCodeTemp := trim(EdtBarCodeEnter.Text);
BarCodeTemp := copy(trim(EdtBarCodeEnter.Text), length(trim(EdtBarCodeEnter.Text)) - 15 + 1, 15); //扫描时前面多一个0
if BarCodeTemp = '' then
begin
LabelMessage.Caption := '扫描失败,请重新扫描!';
exit;
end;
if StockDM.QBarCode.Locate('BarCode', BarCodeTemp, []) then
begin
LabelMessage.Caption := BarCodeTemp+'此条码刚扫描过,请重新扫描!';
EdtBarCodeEnter.Text:='';
exit;
end;
if not StockDM.QBarCodefind.Locate('BarCode', BarCodeTemp, []) then
begin
LabelMessage.Caption := BarCodeTemp+'此条码机器还未生产,请重新扫描其他机器!';
EdtBarCodeEnter.Text:='';
exit;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -