📄 ordertobarcode.pas
字号:
unit OrderToBarCode;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, NEOFORM, ExtCtrls, ToolWin, ComCtrls, StdCtrls, Buttons, DateUtils,
RpBase, RpSystem, RpRave, RpDefine, RpCon, RpConDS, fcdbtreeview,
fcTreeView, GridsEh, DBGridEh, CheckLst, ADODB, Printers,
rvclass, rvcsstd, RvCsBars, Mask, RvCsRpt, RpMemo,
PublicFunction, DBGrids, Grids, DB,MMSystem;
type
TFrmOrderToBarCode = class(TGBKPForm)
Panel1: TPanel;
Panel2: TPanel;
PScrollBoxCenter: TPanel;
Splitter2: TSplitter;
PanelPan: TPanel;
Panel6: TPanel;
Panel7: TPanel;
Label4: TLabel;
Label5: TLabel;
GroupBox2: TGroupBox;
MemoOrderMemo: TMemo;
EdtPanPrincipal: TEdit;
EdtPanAuditing: TEdit;
Panel8: TPanel;
GroupBox1: TGroupBox;
MemoOrderDetail: TMemo;
Panel9: TPanel;
Label1: TLabel;
Label2: TLabel;
Bevel1: TBevel;
Label3: TLabel;
EdtSellPrincipal: TEdit;
EdtPanTab: TEdit;
EdtCustomer: TEdit;
ComboBoxDevName: TComboBox;
StringGridOrder: TStringGrid;
EdtDevName: TEdit;
Panel4: TPanel;
PanelEnge: TPanel;
Panel10: TPanel;
Panel11: TPanel;
Panel12: TPanel;
MemoEngMemo: TMemo;
Label10: TLabel;
Edit9: TEdit;
Label11: TLabel;
EdtOrderID: TEdit;
Panel13: TPanel;
Panel14: TPanel;
Panel15: TPanel;
Panel16: TPanel;
Panel17: TPanel;
Panel18: TPanel;
Label12: TLabel;
EdtEngAudting: TEdit;
Panel19: TPanel;
Panel20: TPanel;
Panel21: TPanel;
Panel22: TPanel;
Panel23: TPanel;
StringGrid1: TStringGrid;
Panel24: TPanel;
StringGrid2: TStringGrid;
Panel25: TPanel;
Panel26: TPanel;
StringGrid3: TStringGrid;
Panel27: TPanel;
Panel28: TPanel;
StringGrid4: TStringGrid;
Panel29: TPanel;
Label13: TLabel;
BitBtnpost: TBitBtn;
BitBtn2: TBitBtn;
BitBtnPrintBarcode: TBitBtn;
ProgressBar1: TProgressBar;
Panel30: TPanel;
MemoRDMemo: TMemo;
Panel31: TPanel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
EdtSpecificPro: TEdit;
EdtApplyDept: TEdit;
EdtProPrincipal: TEdit;
Panel32: TPanel;
Label9: TLabel;
RvDataSetConnectionBarCode: TRvDataSetConnection;
RvProjectBarCode: TRvProject;
RvSystemBarCode: TRvSystem;
Label14: TLabel;
DateTimePickerPostDate: TDateTimePicker;
Panel33: TPanel;
MemoMemo: TMemo;
BitBtn1: TBitBtn;
QToday: TADOQuery;
BitBtn3: TBitBtn;
RvDataSetConnectionGBarCode: TRvDataSetConnection;
LSTOpts: TCheckListBox;
GroupBox4: TGroupBox;
ChkPreview: TCheckBox;
CheckBoxSetPrint: TCheckBox;
chk2Copy: TCheckBox;
BitBtnRePrint: TBitBtn;
PageControl1: TPageControl;
TabSheetBarCodeInfo: TTabSheet;
TabSheet2: TTabSheet;
fcTreeViewBarCode: TTreeView;
GroupBoxRePrintSet: TGroupBox;
Panel3: TPanel;
GroupBox3: TGroupBox;
Label15: TLabel;
LabelThisCount: TLabel;
Label16: TLabel;
LabelTodayCount: TLabel;
Label17: TLabel;
LabelTodayOrderCount: TLabel;
Panel5: TPanel;
GroupBoxRePrintType: TGroupBox;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
EdtRePOrderID: TEdit;
EdtRePStartBarCode: TEdit;
EdtRePBarCode: TEdit;
EdtRePSEndBarCode: TEdit;
ComboBoxRePDevType: TComboBox;
RadioGroupRePrintType: TRadioGroup;
DBGridEh1: TDBGridEh;
BitBtn4: TBitBtn;
Label23: TLabel;
DateTimePickerRepPostDate: TDateTimePicker;
procedure FormCreate(Sender: TObject);
procedure StringGridOrderDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure StringGridOrderSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
procedure FormResize(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BitBtnpostClick(Sender: TObject);
procedure ComboBoxDevNameKeyPress(Sender: TObject; var Key: Char);
procedure BitBtnPrintBarcodeClick(Sender: TObject);
procedure EdtOrderIDKeyPress(Sender: TObject; var Key: Char);
procedure ComboBoxDevNameCloseUp(Sender: TObject);
procedure ComboBoxDevNameSelect(Sender: TObject);
procedure ComboBoxDevNameExit(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure LSTOptsDblClick(Sender: TObject);
procedure BitBtnRePrintClick(Sender: TObject);
procedure RadioGroupRePrintTypeClick(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
private
printCopies: byte;
Canselect: boolean; // :=true
procedure EdtDevNameKeyPressInt(Sender: TObject; var Key: Char);
procedure EdtDevNameKeyPressStr(Sender: TObject; var Key: Char);
function CreateMachineNumberStar(Devnum: dword; postDate: Tdate; orderIDStr: string): string;
function CreateSerialNumberStart(DevNumINT: dword; postDate: tdate; orderIDStr: string): string;
procedure loadBarcodeToTreeView;
//procedure GetDevHardOptionsNumAndEName(DevName: string; var NumS, Enames: string);
function GetDevHardOptionsNumAndEName: string;
procedure DevHardOptionsENameToLSTOpts(EName: string);
procedure getStatInfo;
procedure setPaterSize(Length, Width: smallint);
{ Private declarations }
public
{ Public declarations }
end;
var
FrmOrderToBarCode: TFrmOrderToBarCode;
implementation
uses StockDataModel, PublicParameter, RvProj;
{$R *.dfm}
procedure TFrmOrderToBarCode.FormCreate(Sender: TObject);
var i: integer;
begin
inherited;
//ShowMessage('FormCreate');
Label13.Caption := '通' + #10#13 + '用';
DateTimePickerPostDate.Date := date;
DateTimePickerRepPostDate.Date := date;
EdtDevName.Text := '';
MemoMemo.Lines.Clear;
//ShowMessage(' with StringGridOrder do');
with StringGridOrder do
begin
ColCount := 4;
RowCount := 31;
ColWidths[0] := 25;
Cells[0, 0] := '序号$$M'; //
cells[1, 0] := '名称与规格$$M'; //
Cells[2, 0] := '数量$$M'; //
Cells[3, 0] := '配置说明$$M'; //
for i := 1 to StringGridOrder.RowCount - 1 do
begin
Cells[0, i] := inttostr(i);
end;
end;
end;
procedure TFrmOrderToBarCode.StringGridOrderDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
inherited;
StringGridgridDrawCell(Sender, ACol, ARow, Rect, State);
end;
procedure TFrmOrderToBarCode.StringGridOrderSelectCell(Sender: TObject;
ACol, ARow: Integer; var CanSelect: Boolean);
var
i: integer;
NumS, Enames: string;
begin
inherited;
EdtDevName.Visible := false;
comboboxDevName.Visible := false;
LSTOpts.Visible := false;
//MemoMemo.Visible := false;
with StringGridOrder do
begin
if col = 1 then Cells[col, row] := ComboBoxDevName.Text;
if col = 2 then cells[col, row] := EdtDevName.text;
if col = 3 then cells[col, row] := GetDevHardOptionsNumAndEName;
end;
if acol = 1 then
begin
ComboBoxDevName.Visible := true;
ComboBoxDevName.Text := StringGridOrder.Cells[acol, arow];
with StringGridOrder.CellRect(acol, arow) do
begin
//ComboBoxDevName.Parent := StringGridOrder;
ComboBoxDevName.Top := Top + StringGridOrder.Top;
ComboBoxDevName.Left := left;
ComboBoxDevName.Width := right - left;
ComboBoxDevName.Height := (bottom - top) * (ComboBoxDevName.Items.Count + 1);
ComboBoxDevName.Visible := true;
ComboBoxDevName.SetFocus;
end;
end; //end if acol=0 then
if acol = 2 then
begin
EdtDevName.Visible := true;
if ACol = 2 then EdtDevName.OnKeyPress := EdtDevNameKeyPressInt;
if ACol = 3 then EdtDevName.OnKeyPress := nil; // EdtDevNameKeyPressStr
EdtDevName.Text := StringGridOrder.Cells[acol, arow];
with StringGridOrder.CellRect(acol, arow) do
begin
EdtDevName.Parent := StringGridOrder;
EdtDevName.Top := top + 1;
EdtDevName.Left := left + 1;
EdtDevName.Width := right - left - 2;
EdtDevName.Height := bottom - top - 2;
EdtDevName.SetFocus;
end;
end;
if acol = 3 then
begin
{MemoMemo.Visible := true;
MemoMemo.Text := StringGridOrder.Cells[acol, arow];
with StringGridOrder.CellRect(acol, arow) do
begin
MemoMemo.Parent := StringGridOrder;
MemoMemo.Top := top + 1;
MemoMemo.Left := left + 1;
MemoMemo.Width := right - left - 2;
MemoMemo.Height := bottom - top - 2;
MemoMemo.SetFocus;
end; }
LSTOpts.Visible := true;
DevHardOptionsENameToLSTOpts(StringGridOrder.Cells[acol, arow]);
with StringGridOrder.CellRect(acol, arow) do
begin
LSTOpts.Parent := StringGridOrder;
LSTOpts.Top := top + 1;
LSTOpts.Left := left + 1;
LSTOpts.Width := right - left - 2;
LSTOpts.Height := 180; //bottom - top - 2;
LSTOpts.SetFocus;
end;
end;
end;
procedure TFrmOrderToBarCode.FormResize(Sender: TObject);
begin
inherited;
with StringGridOrder do
begin
ColWidths[3] := Width - (ColWidths[0] + ColWidths[1] + ColWidths[2] + BorderWidth + 20);
end;
end;
procedure TFrmOrderToBarCode.FormShow(Sender: TObject);
begin
inherited;
// ShowMessage('FormShow');
ComboBoxDevName.Items.AddStrings(GetValueToCMB('DeviceType', 'DevName', 'All'));
ComboBoxRePDevType.Items.AddStrings(ComboBoxDevName.Items);
ComboBoxRePDevType.ItemIndex:=0;
LSTOpts.Items.AddStrings(GetValueToCMB('DevHardOptions', 'Ename,ZName', 'All'));
// ShowMessage('LSTOpts.Items.AddStrings完毕');
with StringGridOrder do
begin
ColWidths[3] := Width - (ColWidths[0] + ColWidths[1] + ColWidths[2] + BorderWidth + 20);
end;
RadioGroupRePrintTypeClick(Sender);
end;
procedure TFrmOrderToBarCode.EdtDevNameKeyPressInt(Sender: TObject;
var Key: Char);
begin
inherited;
if (not (Key in ['0'..'9', '.', #8])) then Key := #0;
end;
procedure TFrmOrderToBarCode.EdtDevNameKeyPressStr(Sender: TObject;
var Key: Char);
begin
inherited;
//if (not (Key in ['0'..'9','.',#8])) then Key:=#0;
end;
procedure TFrmOrderToBarCode.BitBtnpostClick(Sender: TObject);
var i, j: integer;
num: dword;
DevNum: string;
SerialNumberStart, SerialNumberTemp, LastSerialNumberStr: string;
LastSerialNumberInt: integer;
NumS, Enames: string;
begin
inherited;
StockDM.QSQLBarCode.Filtered := false;
StockDM.QGBarCode.Filtered := false;
BitBtnPrintBarcode.Enabled := false;
printCopies := 0;
StringGridOrderSelectCell(self, StringGridOrder.Col, StringGridOrder.Row, Canselect);
if (EdtOrderID.Text = '') // or (DBEditNum.Text = '') or (DBEditbusiness.Text = '') or (DBLookupComboBoxDevNum.Text = '')
or (EdtCustomer.Text = '')
then
begin
ShowMessage('信息输入不全,请输入订单号和客户名称!');
exit;
end;
if (length(EdtOrderID.Text) < 13) // or (DBEditNum.Text = '') or (DBEditbusiness.Text = '') or (DBLookupComboBoxDevNum.Text = '')
then
begin
ShowMessage('订单号输入不全,请输入订单号的除"-"所有数字!');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -