📄 boxincome.~pa
字号:
unit BoxIncome;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, NEOFORM, ExtCtrls, ToolWin, ComCtrls, StdCtrls, Buttons, Mask,
DBCtrls, RpBase, RpSystem, RpDefine, RpRave, RpCon, RpConDS, rvclass, rvcsstd, RvCsBars,
DB, ADODB;
type
TFrmBoxIncome = class(TGBKPForm)
GroupBox1: TGroupBox;
MemoBarcodeS: TMemo;
BitBtn1: TBitBtn;
Label1: TLabel;
DBEditBarCode: TDBEdit;
Label2: TLabel;
DBEditOrderID: TDBEdit;
Label3: TLabel;
DBEditDevName: TDBEdit;
Label4: TLabel;
DBEditCustomerName: TDBEdit;
Label5: TLabel;
DBEditpostdate: TDBEdit;
EdtBarCodeEnter: TEdit;
LabelMessage: TLabel;
RvProjectShipLabel: TRvProject;
RvSystemShipLabel: TRvSystem;
RvDataSetConnectionPack: TRvDataSetConnection;
Label6: TLabel;
DBMemoMemo: TDBMemo;
Label7: TLabel;
Label8: TLabel;
LabelThisCount: TLabel;
LabelTodayCount: TLabel;
QToday: TADOQuery;
ChkPreview: TCheckBox;
procedure EdtBarCodeEnterKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure MemoBarcodeSDblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
OrderIDstr: string;
DevNamestr: string;
CustomerNamestr: string;
postdatestr: string;
Memostr: string;
{ Private declarations }
public
function MessageAndSaveBarcodeInfo(infoType: string; OldInfo, newInfo: string): boolean;
function ContrastBarcodeInfo: boolean;
procedure SaveBarcodeInfo;
{ Public declarations }
end;
var
FrmBoxIncome: TFrmBoxIncome;
implementation
uses StockDataModel, PublicParameter;
{$R *.dfm}
procedure TFrmBoxIncome.EdtBarCodeEnterKeyPress(Sender: TObject;
var Key: Char);
var BarCodeTemp: string;
nums: string;
MyPage: TRavePage;
MyText: TRaveText;
I2of5BarCodeBoxPackBarcode: TRaveI2of5BarCode;
TextDevHardOptionS: TRavetext;
begin
inherited;
LabelMessage.Caption := '';
LabelMessage.Refresh;
if key = #13 then //条码完毕
begin
BarCodeTemp := copy(trim(EdtBarCodeEnter.Text), length(trim(EdtBarCodeEnter.Text)) - 15 + 1, 15); //扫描时前面多一个0????
if BarCodeTemp = '' then
begin
LabelMessage.Caption := '扫描失败,请重新扫描!';
exit;
end;
if MemoBarcodeS.Lines.IndexOf(BarCodeTemp) >= 0 then
begin
LabelMessage.Caption := '此条码刚扫描过,机器已经包装,请重新扫描!';
exit;
end;
//定位并显示信息
if not StockDM.QBarCodefind.Locate('BarCode', BarCodeTemp, []) then
begin
LabelMessage.Caption := '此机器还未生产,条码还未生成,请重新扫描!';
exit;
end;
if StockDM.QBarCodefind.FieldValues['IsPack'] then
begin
LabelMessage.Caption := '此机器已经包装,请重新扫描!';
exit;
end;
//进行其他检查
if MemoBarcodeS.Lines.Count = 0 then
begin //是第一个时记下
if Application.MessageBox(pchar('请确定包装机器是否正确?'), pchar('提示'), MB_YESNO) = IDYES then
begin
//记下原来所有值
SaveBarcodeInfo;
end;
end else
begin
if ContrastBarcodeInfo then
SaveBarcodeInfo //有改变并认为是正确的就记下
else exit; //是错的就退出
end;
nums := StockDM.QBarCodefind.Fieldbyname('devHardOptions').AsString;
MemoBarcodeS.Lines.Add(BarCodeTemp);
//自动 打印
RvProjectShipLabel.ProjectFile := CurPath + '\条码\BoxPackBarCode.rav';
RvProjectShipLabel.Open;
with RvProjectShipLabel.ProjMan do
begin
MyPage := FindRaveComponent('ReportMain.Page1', nil) as TRavePage;
I2of5BarCodeBoxPackBarcode := FindRaveComponent('I2of5BarCodeBoxPackBarcode', MyPage) as TRaveI2of5BarCode;
I2of5BarCodeBoxPackBarcode.Text := BarCodeTemp; //条码
//I2of5BarCode3.Reflect;
TextDevHardOptionS := FindRaveComponent('TextDevHardOptionS', MyPage) as TRaveText;
TextDevHardOptionS.Text := nums; //条码
end;
if ChkPreview.Checked then RvSystemShipLabel.DefaultDest := rdPreview
else RvSystemShipLabel.DefaultDest := rdPrinter;
//RvSystemShipLabel.SystemSetups:=rdPrinter;
try //Canvas does not allow drawing //因为系统没有打印机
RvProjectShipLabel.Execute; //是因为TCanvas的FHandle还没有分配的时候就要求执行必须有FHandle才能进行的操作引起的,
except
ShowMessage('打印失败请重新打印!');
Abort;
end;
StockDM.QBarCodefind.Edit; //已经定位
StockDM.QBarCodefind.FieldValues['IsPack'] := true;
StockDM.QBarCodefind.FieldValues['PackDate'] := date;
StockDM.QBarCodefind.FieldValues['PackTime'] := time;
StockDM.QBarCodefind.Post;
with QToday do
begin
close;
parameters.ParamByName('PackDate').Value := date;
open;
labeltodaycount.Caption := inttostr(RecordCount);
end;
labelThiscount.Caption := inttostr(MemoBarcodeS.Lines.Count);
EdtBarCodeEnter.text := '';
end;
EdtBarCodeEnter.SetFocus;
end;
//判断值是否改变
function TFrmBoxIncome.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 TFrmBoxIncome.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 TFrmBoxIncome.SaveBarcodeInfo;
begin
OrderIDstr := DBEditOrderID.Text;
DevNamestr := DBEditDevName.Text;
CustomerNamestr := DBEditCustomerName.Text;
postdatestr := DBEditpostdate.Text;
Memostr := DBMemoMemo.Text;
end;
procedure TFrmBoxIncome.FormCreate(Sender: TObject);
begin
inherited;
//RvProjectShipLabel.ProjectFile := CurPath + '\条码\BoxIncomeBarCode.rav';
if StockDM.QBarCodefind.Active = false then StockDM.QBarCodefind.Active := true;
end;
procedure TFrmBoxIncome.MemoBarcodeSDblClick(Sender: TObject);
begin
inherited;
StockDM.QBarCodefind.Locate('BarCode', MemoBarcodeS.SelText, []);
end;
procedure TFrmBoxIncome.FormShow(Sender: TObject);
begin
inherited;
EdtBarCodeEnter.SetFocus;
ActiveControl := EdtBarCodeEnter;
end;
procedure TFrmBoxIncome.BitBtn1Click(Sender: TObject);
begin
inherited;
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -