barcodequery.pas

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

PAS
451
字号
    SQL.Text := sqlstrsub + sqlstr + ' order by a.BarCode';
    Prepared := true;
    Open;
    //'select a.*,c.DevName,a.CustomerName from BarCode a,DeviceType c where  a.Devnum=c.Devnum '
   sqlstrOrderID := 'select distinct a.OrderId from BarCode a,DeviceType c where  a.Devnum=c.Devnum  '; //

   sqlstrGBarCodeID := 'select distinct a.GBarCodeID from BarCode a,DeviceType c where  a.Devnum=c.Devnum';

   sqlstrBarCode := 'select distinct a.BarCode from BarCode a,DeviceType c where  a.Devnum=c.Devnum';


    sqlstrOrderID := sqlstrOrderID + sqlstr;
    sqlstrGBarCodeID := sqlstrGBarCodeID + sqlstr;
    sqlstrBarCode := sqlstrBarCode + sqlstr;
    //Parameters.Items[0].Value := strtodate(FormatDateTime('yyyy-mm-dd',DateTimePickerPostDateSart.Date)); //如果不转换oracle将提示数据类型不一致
    //Parameters.Items[1].Value := FormatDateTime('yyyy-mm-dd',FormatDateTime('yyyy-mm-dd',DateTimePickerPostDateEnd.Date));
    //sqlstr:=SQL.Text;
    //EdtSum.Text := inttostr(RecordCount);
    //EdtSum.Text :=sqlstr;
  end;
  ordersToTreeView;
end;

procedure TFrmBarCodeQuery.ordersToTreeView;
var
  nodeOrderID, nodeGBarCode: TTreeNode;
  sqlstr:string;
begin
  fcTreeView1.Items.Clear;

  QOrders := TADOQuery.Create(self);
  QGBarcode := TADOQuery.Create(self);
  DataSource1.DataSet:=QOrders;
  DataSource2.DataSet:=QGBarcode;
  try
    with QOrders do
    begin
      Connection := StockDM.ADOConn;
      close;
      sql.Clear;
      sql.Add(format('select d.* from Orders d where OrderiD  in (%s)', [sqlstrOrderID]));
      open;
      first;

      QGBarcode.close;
      QGBarcode.Connection := StockDM.ADOConn;
      QGBarcode.sql.Clear;
      sqlstr:=format('select a.*,b.devname from GBarCode a,DeviceType b where a.devnum=b.devnum and a.GBarCodeID in (%s)', [sqlstrGBarCodeID]);
      QGBarcode.sql.Add(sqlstr);
      QGBarcode.open;


      while not eof do
      begin
      nodeOrderID := fcTreeView1.items.Add(nil, FieldByName('OrderID').AsString + ' ' + FieldByName('CustomerName').AsString + ' ' + FieldByName('postDate').AsString); //  ,pointer(copy(FieldByName('OrderID').AsString,4,maxint))

        QGBarcode.Close;
        QGBarcode.Filter:='UPDateDate=''' + FormatDateTime('yyyy-mm-dd',fieldbyname('postdate').AsDateTime) + '''';
        QGBarcode.Filtered:=true;
        QGBarcode.open;
        while not QGBarcode.Eof do
        begin
          nodeGBarCode := fcTreeView1.items.AddChildObject(nodeOrderID, QGBarcode.FieldByName('devName').AsString + ' 数量:' + QGBarcode.FieldByName('num').AsString, pointer(QGBarcode.FieldByName('GBarCodeID').Asinteger));
          QGBarcode.next;
        end;
        next;
      end;
    end;
  finally
  QGBarcode.Filtered:=false;
  end;
  fcTreeView1.Repaint;

end;
//procedure TFrmBarCodeQuery.ordersToTreeView;

procedure TFrmBarCodeQuery.fcTreeView1Click(Sender: TObject);
//Node,
begin
  inherited;
 // fcTreeView1.Selected
 // if (Node.Level = 0)
end;

procedure TFrmBarCodeQuery.loadOrderS(nodedatastr: string);
begin
  with StockDM.QBarCodefind do
  begin
    Locate('OrderID', nodedatastr, []);
    QOrders.Locate('OrderID', nodedatastr, []);
    EdtOrderID.Text := FieldValues['OrderID'];
    EdtPostDate.Text := FieldValues['POSTDATE'];
    EdtCustomerName.Text := FieldValues['CustomerName'];
    MemoOrderDetail.Text := QOrders.FieldValues['OrderDetail'];
    MemoOrderMemo.Text :=QOrders.FieldValues['OrderMemo'];
  end;
end;

procedure TFrmBarCodeQuery.loadBarCodeS(nodedataInt: integer);
begin
  with StockDM.QBarCodefind do
  begin
    Locate('GBarCodeID', nodedataInt, []);
    QGBarcode.Locate('GBarCodeID', nodedataInt, []);
    EdtDevName.Text := FieldValues['DevName'];
    EdtNum.Text := QGBarcode.FieldValues['num'];
    MemoBarcode.Text := QGBarcode.FieldValues['Memo'];
   //加载条码
    StockDM.QBarCodeQuery.Close;
    StockDM.QBarCodeQuery.SQL.Clear;
    StockDM.QBarCodeQuery.SQL.Add(Format(' select distinct a.barcode,a.* from barcode a where a.GBarCodeID=%d and a.barcode in (%s)', [nodedataInt, sqlstrBarCode]));
    StockDM.QBarCodeQuery.open;
  end;
end;

procedure TFrmBarCodeQuery.PageControl1Change(Sender: TObject);
var nodedataInt: integer;
begin
  inherited;
  {if fcTreeView1.Items.Count <= 0 then exit;
  if fcTreeView1.Selected = nil then

    fcTreeView1.Items[0].Selected := true;
  if PageControl1.ActivePage = TabSheetOrderID then
  begin
    if fcTreeView1.Selected.Level = 0 then
      loadOrderS(fcTreeView1.Selected.Text)
    else loadOrderS(fcTreeView1.Selected.Text);
    
  end;
   if fcTreeView1.Selected<>nil then
  if PageControl1.ActivePage = TabSheetBarcode then
  begin
    if fcTreeView1.Selected.Level = 1 then
      nodedataInt := integer(fcTreeView1.Selected.data)
    else  if (fcTreeView1.Selected.Level = 0)and (fcTreeView1.Selected.HasChildren) then nodedataInt := integer(fcTreeView1.Selected.GetFirstChild.Data);
    loadBarCodeS(nodedataInt);
  end;  }
end;

procedure TFrmBarCodeQuery.FormShow(Sender: TObject);
begin
  inherited;
  DateTimePickerPostDateSart.Date := date;
  DateTimePickerPostDateend.Date := date;

  DateTimePickerPackDateStart.Date := date;
  DateTimePickerPackDateEnd.Date := date;

  DateTimePickerInComeDateStart.Date := date;
  DateTimePickerInComeDateend.Date := date;

  DateTimePickerOutComeDateStart.Date := date;
  DateTimePickerOutComeDateend.Date := date;

  EdtOrderIDSart.Items.AddStrings(GetValueToCMBOrderId('Orders', 'OrderID', 'All'));
  EdtOrderIDend.Items.AddStrings(GetValueToCMBOrderId('Orders',  'OrderID', 'All'));

  EdtDevtype.Items.AddStrings(GetValueToCMB('DeviceType', 'DevName', 'All'));
end;

procedure TFrmBarCodeQuery.EdtOrderIDSartChange(Sender: TObject);
begin
  inherited;
  EdtOrderIDEnd.Text := EdtOrderIDSart.Text;
end;

procedure TFrmBarCodeQuery.fcTreeView1Change(Sender: TObject;
  Node: TTreeNode);
var nodedataInt: integer;
begin
  inherited;

  if node.Level = 0 then
  begin
    //nodedataInt := integer(node.Data);
    PageControl1.ActivePage := TabSheetOrderID;
    StockDM.QBarCodefind.Locate('OrderID',copy(node.Text,1,13) , []);
    loadOrderS(copy(node.Text,1,13));
  end;

  if node.Level = 1 then
  begin
    nodedataInt := integer(node.Data);
    StockDM.QBarCodefind.Locate('OrderID',copy(node.Text,1,13) , []);
    PageControl1.ActivePage := TabSheetBarcode;
    loadBarCodeS(nodedataInt);
  end;
end;

procedure TFrmBarCodeQuery.FormCreate(Sender: TObject);
begin
  inherited;
  //with StockDM.QBarCodefind do
  //begin
  //  Close;
  //  sql.Clear;
  //  sql.Add('select a.*,b.*,c.DevName,d.CustomerName,d.OrderDetail,d.OrderMemo  from BarCode a,GBarCode b,DeviceType c,Orders d  where a.GBarCodeID=b.GBarCodeID and a.Devnum=c.Devnum and a.OrderId=d.OrderID ');
  //  Open;
  //end;
end;

procedure TFrmBarCodeQuery.EdtBarcodeKeyPress(Sender: TObject;
  var Key: Char);
var BarCodeTemp: string;
begin
  inherited;
  if key = #13 then //条码完毕
  begin
    BarCodeTemp := copy(trim(EdtBarcode.Text), length(trim(EdtBarcode.Text)) - 13 + 1, 13); //扫描时前面多一个0????
    EdtBarcode.Text := BarCodeTemp;
  end;
end;

procedure TFrmBarCodeQuery.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
 FreeAndNil(QOrders);
    FreeAndNil(QGBarcode);
end;

end.

⌨️ 快捷键说明

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