⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ordertobarcode.pas

📁 Barcode And LabelPrint
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -