barcodequery.pas

来自「Barcode And LabelPrint」· PAS 代码 · 共 451 行 · 第 1/2 页

PAS
451
字号
unit BarCodeQuery;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, NEOFORM, ExtCtrls, ToolWin, ComCtrls, StdCtrls, DBCtrls, Buttons,
  fcImager, fcdbtreeview, fcStatusBar, fcTreeView, GridsEh, DBGridEh, ADODB,
  Grids, DBGrids, DB;

type
  TFrmBarCodeQuery = class(TGBKPForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    DateTimePickerPostDateSart: TDateTimePicker;
    DateTimePickerPostDateEnd: TDateTimePicker;
    BitBtn1: TBitBtn;
    CheckBoxOrderID: TCheckBox;
    CheckBoxPostDate: TCheckBox;
    CheckBoxCustomer: TCheckBox;
    CheckBoxDevtype: TCheckBox;
    EdtBarcode: TEdit;
    EdtOrderIDSart: TComboBox;
    EdtDevtype: TComboBox;
    CheckBoxIsPack: TCheckBox;
    EdtOrderIDEnd: TComboBox;
    fcStatusBar1: TfcStatusBar;
    PageControl1: TPageControl;
    TabSheetOrderID: TTabSheet;
    TabSheetBarcode: TTabSheet;
    GroupBox2: TGroupBox;
    MemoOrderDetail: TMemo;
    GroupBox3: TGroupBox;
    MemoOrderMemo: TMemo;
    GroupBox4: TGroupBox;
    Label11: TLabel;
    EdtOrderID: TEdit;
    Label3: TLabel;
    EdtCustomerName: TEdit;
    Label14: TLabel;
    EdtPostDate: TEdit;
    GroupBox5: TGroupBox;
    EdtDevName: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    EdtNum: TEdit;
    DBGridEh1: TDBGridEh;
    Label8: TLabel;
    MemoBarcode: TMemo;
    CheckBoxBarCode: TCheckBox;
    EdtCustomer: TEdit;
    fcTreeView1: TTreeView;
    CheckBoxIsInCome: TCheckBox;
    CheckBoxIsOutCome: TCheckBox;
    Label9: TLabel;
    Label10: TLabel;
    DateTimePickerPackDateStart: TDateTimePicker;
    DateTimePickerPackDateEnd: TDateTimePicker;
    CheckBoxPackDate: TCheckBox;
    Label12: TLabel;
    Label13: TLabel;
    DateTimePickerInComeDateStart: TDateTimePicker;
    DateTimePickerInComeDateEnd: TDateTimePicker;
    CheckBoxInComeDate: TCheckBox;
    Label15: TLabel;
    Label16: TLabel;
    DateTimePickerOutComeDateStart: TDateTimePicker;
    DateTimePickerOutComeDateEnd: TDateTimePicker;
    CheckBoxOutComeDate: TCheckBox;
    TabSheet1: TTabSheet;
    DBGridEh2: TDBGridEh;
    DBNavigator1: TDBNavigator;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    procedure CheckBoxOrderIDClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure fcTreeView1Click(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure EdtOrderIDSartChange(Sender: TObject);
    procedure fcTreeView1Change(Sender: TObject; Node: TTreeNode);
    procedure FormCreate(Sender: TObject);
    procedure EdtBarcodeKeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    sqlstrOrderID: string;
    sqlstrGBarCodeID: string;
    sqlstrBarCode: string;
    QOrders, QGBarcode: TADOQuery;
    { Private declarations }
    procedure ordersToTreeView;
    procedure loadOrderS(nodedatastr: string);
    procedure loadBarCodeS(nodedataInt: integer);
  public
    { Public declarations }
  end;

var
  FrmBarCodeQuery: TFrmBarCodeQuery;

implementation

uses StockDataModel,  PublicFunction;

{$R *.dfm}

procedure TFrmBarCodeQuery.CheckBoxOrderIDClick(Sender: TObject);
begin
  inherited;
  EdtOrderIDSart.Enabled := CheckBoxOrderID.Checked;
  EdtOrderIDEnd.Enabled := CheckBoxOrderID.Checked;
  DateTimePickerPostDateSart.Enabled := CheckBoxPostDate.Checked;
  DateTimePickerPostDateEnd.Enabled := CheckBoxPostDate.Checked;

  DateTimePickerPackDateStart.Enabled := CheckBoxPackDate.Checked;
  DateTimePickerPackDateEnd.Enabled := CheckBoxPackDate.Checked;

  DateTimePickerInComeDateStart.Enabled := CheckBoxInComeDate.Checked;
  DateTimePickerInComeDateEnd.Enabled := CheckBoxInComeDate.Checked;

  DateTimePickerOutComeDateStart.Enabled := CheckBoxOutComeDate.Checked;
  DateTimePickerOutComeDateEnd.Enabled := CheckBoxOutComeDate.Checked;


  EdtDevtype.Enabled := CheckBoxDevtype.Checked;
  EdtCustomer.Enabled := CheckBoxCustomer.Checked;
  EdtBarcode.Enabled := CheckBoxBarCode.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 DateTimePickerPackDateStart.Enabled = false then DateTimePickerPackDateStart.Color := clSilver else DateTimePickerPackDateStart.Color := clWindow;
  DateTimePickerPackDateEnd.Color := DateTimePickerPackDateStart.Color;

  if DateTimePickerInComeDateStart.Enabled = false then DateTimePickerInComeDateStart.Color := clSilver else DateTimePickerInComeDateStart.Color := clWindow;
  DateTimePickerInComeDateEnd.Color := DateTimePickerInComeDateStart.Color;

  if DateTimePickerOutComeDateStart.Enabled = false then DateTimePickerOutComeDateStart.Color := clSilver else DateTimePickerOutComeDateStart.Color := clWindow;
  DateTimePickerOutComeDateEnd.Color := DateTimePickerOutComeDateStart.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;
  if EdtBarcode.Enabled = false then EdtBarcode.Color := clSilver else EdtBarcode.Color := clYellow;
end;

procedure TFrmBarCodeQuery.BitBtn1Click(Sender: TObject);
var sqlstr: string;
  sqlstrsub: string;
begin
  inherited;
  if CheckBoxOrderID.Checked then
  begin
    if (trim(EdtOrderIDSart.Text) = '') or (trim(EdtOrderIDend.Text) = '') then
    begin
      ShowMessage('请输入订单号');
      exit;
    end;
  end;
  sqlstr := '';
  sqlstrsub := '';
  sqlstrOrderID := '';
  sqlstrGBarCodeID := '';
  //sqlstrsub := 'select a.*,b.*,c.DevName from BarCode a,GBarCode b,DeviceType c'+
  // ' where a.GBarCodeID=b.GBarCodeID and a.Devnum=c.Devnum '; //
  sqlstrsub := QBarCodefindSQLStr;// '  select a.*,b.*,c.DevName,d.CustomerName from BarCode a,GBarCode b,DeviceType c,orders d '+
              // 'where a.GBarCodeID=b.GBarCodeID and a.Devnum=c.Devnum and b.orderidid=d.id';
  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 CheckBoxPackDate.Checked then
  begin
    sqlstr := sqlstr + format(' and PackDate >=''%s'' and PackDate <= ''%s''', [ FormatDateTime('yyyy-mm-dd',DateTimePickerPackDateStart.Date),  FormatDateTime('yyyy-mm-dd',DateTimePickerPackDateEnd.Date)]);
  end; //保证日期是datetime型
  if CheckBoxIncomeDate.Checked then
  begin
    sqlstr := sqlstr + format(' and IncomeDate >=''%s'' and IncomeDate <= ''%s''', [FormatDateTime('yyyy-mm-dd',DateTimePickerIncomeDateStart.Date), FormatDateTime('yyyy-mm-dd',DateTimePickerIncomeDateEnd.Date)]);
  end; //保证日期是datetime型
  if CheckBoxOutComeDate.Checked then
  begin
    sqlstr := sqlstr + format(' and OutComeDate >=''%s'' and OutComeDate <= ''%s''', [FormatDateTime('yyyy-mm-dd',DateTimePickerOutComeDateStart.Date), FormatDateTime('yyyy-mm-dd',DateTimePickerOutComeDateEnd.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 a.CustomerName like ''%%%s%%''', [EdtCustomer.Text]);
  end;
  if CheckBoxIsPack.State = cbChecked then
    sqlstr := sqlstr + format(' and a.IsPack=%d', [1])
  else if CheckBoxIsPack.State = cbunchecked then sqlstr := sqlstr + format(' and a.IsPack=%d', [0]);

  if CheckBoxIsInCome.State = cbChecked then
    sqlstr := sqlstr + format(' and a.IsInCome=%d', [1])
  else if CheckBoxIsInCome.State = cbunchecked then sqlstr := sqlstr + format(' and a.IsInCome=%d', [0]);

  if CheckBoxIsOutCome.State = cbChecked then
    sqlstr := sqlstr + format(' and a.IsOutCome=%d', [1])
  else if CheckBoxIsOutCome.State = cbunchecked then sqlstr := sqlstr + format(' and a.IsOutCome=%d', [0]);

  if CheckBoxBarCode.Checked then
  begin
     //可模糊查询
    sqlstr := sqlstr + format(' and a.BarCode like ''%%%s%%''', [EdtBarcode.Text]);
  end;
  //查询出所有符合条件的条码
  with StockDM.QBarCodefind do
  begin
    Close;
    SQL.Clear;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?