📄 untbarcodepd.~pas
字号:
unit UntBarcodePD;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBCtrls, ComCtrls, StdCtrls, Buttons, ExtCtrls, Grids, DBGridEh;
type
TfrmBarcodePD = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
GroupBox2: TGroupBox;
Label1: TLabel;
Label4: TLabel;
SpeedButton2: TSpeedButton;
Edit1: TEdit;
BitBtn1: TBitBtn;
DateTimePicker2: TDateTimePicker;
Button1: TButton;
GroupBox1: TGroupBox;
Label2: TLabel;
Label3: TLabel;
SpeedButton1: TSpeedButton;
Edit3: TEdit;
DateTimePicker1: TDateTimePicker;
btbQuery: TBitBtn;
btbClear: TBitBtn;
DBNavigator1: TDBNavigator;
Panel2: TPanel;
OpenDialog1: TOpenDialog;
Memo1: TMemo;
DBGridEh1: TDBGridEh;
BitBtn2: TBitBtn;
TabSheet3: TTabSheet;
Panel3: TPanel;
GroupBox3: TGroupBox;
DBLookupComboBox1: TDBLookupComboBox;
Button2: TButton;
Memo2: TMemo;
Button3: TButton;
GroupBox4: TGroupBox;
Label5: TLabel;
DateTimePicker3: TDateTimePicker;
BitBtn3: TBitBtn;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
DBNavigator2: TDBNavigator;
DBGridEh2: TDBGridEh;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
procedure SpeedButton2Click(Sender: TObject);
procedure btbQueryClick(Sender: TObject);
procedure btbClearClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure DBGridEh1TitleClick(Column: TColumnEh);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
private
{ Private declarations }
ErrorBarCodes:TStringList;
public
{ Public declarations }
end;
var
frmBarcodePD: TfrmBarcodePD;
implementation
uses UntDMAsset,selffunc,ADODB,DB;
{$R *.dfm}
procedure TfrmBarcodePD.SpeedButton2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
edit1.Text:=OpenDialog1.FileName;
end;
procedure TfrmBarcodePD.btbQueryClick(Sender: TObject);
var
sql:string;
begin
//查询盘点的条码
sql:='select * from queryPD where 2>1 ';
sql:=sql+' AND PDdate='+'#'+DateToStr(DateTimePicker1.date)+'#';
myquery(sql,DMAsset.ADOBarcodePD);
end;
procedure TfrmBarcodePD.btbClearClick(Sender: TObject);
begin
// 删除库存盘点数据
{if DisplayMessage('确定删除库存盘点数据吗?',MT_WARNINGCHOICE)=ID_NO then
exit;
Query:=TADOQuery.Create(application);
Try
Query.Connection:=DMQFBasis.aconQF;
Query.SQL.Clear;
if Edit3.Text<>'' then
begin
Query.sql.add('delete from Tbarcodes_pd where PDDate=:Date and BarCode in (select barCode from VqfBarProDetail where style=:Style)');
}
end;
procedure TfrmBarcodePD.BitBtn1Click(Sender: TObject);
var
i:integer;
FDate,FBarCode:string;
BarCodes:TStringList;
Query:TADOQuery;
begin
//导入数据
if Trim(Edit1.text)<>'' then
begin
BarCodes:=TStringList.Create;
ErrorBarCodes.Clear;
Query:=TADOQuery.Create(application);
try
try
BarCodes.LoadFromFile(edit1.text);
except
raise;
end;
Query.Connection:=DMasset.ADOConn;
Query.SQL.Clear;
Query.Prepared:=true;
Query.SQL.add('Insert INTO barcodepd(BarCode,PDDate) Values(:BID,:Date)');
FDate:=DateToStr(DateTimePicker2.Date);
if BarCodes.Count>0 then
for i:=0 to Barcodes.Count-1 do
begin
//复制条码中条码部分 比如3,2008-06-17 就要去掉','后面 pos(',',BarCodes[i])-1
FBarCode:=copy(BarCodes[i],1,pos(',',BarCodes[i])-1);
if not BarCodeIsValid(FBarCode) then
begin
ErrorBarCodes.add(BarCodes[i]);
continue;
end;
Try
Query.Parameters.ParamByName('BID').Value:=FBarCode;
Query.Parameters.ParamByName('Date').Value:=FDate;
Query.ExecSQL;
except
ErrorBarCodes.add(BarCodes[i]);
end;
end;
finally
Query.free;
BarCodes.Free;
ShowMessage('数据导入完毕!');
end;
end;
end;
procedure TfrmBarcodePD.Button1Click(Sender: TObject);
begin
//查看错误条码
memo1.Lines.Assign(ErrorBarCodes);
self.PageControl1.ActivePageIndex:=1;
end;
procedure TfrmBarcodePD.FormCreate(Sender: TObject);
begin
ErrorBarCodes:=TStringList.Create;
DateTimePicker1.Date:=Date;
DateTimePicker2.Date:=Date;
DateTimePicker3.Date:=Date;
edit1.Clear;
edit3.clear;
end;
procedure TfrmBarcodePD.BitBtn2Click(Sender: TObject);
begin
memo1.Clear;
end;
procedure TfrmBarcodePD.Button3Click(Sender: TObject);
begin
Memo2.Clear;
end;
procedure TfrmBarcodePD.Button2Click(Sender: TObject);
var
str:string;
begin
str:=IntToStr(DBLookupComboBox1.KeyValue)+','+DBLookupComboBox1.Text;
memo2.Lines.Add(str);
end;
procedure TfrmBarcodePD.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
//加彩色格子
if gdSelected in State then Exit;
if (TDBGridEh(Sender).DataSource=nil)or(TDBGridEh(Sender).DataSource.DataSet=nil) then Exit;
if TDBGridEh(Sender).DataSource.DataSet.RecNo mod 2 = 0 then
TDBGridEh(Sender).Canvas.Brush.Color := clInfoBk
else
TDBGridEh(Sender).Canvas.Brush.Color := RGB(191, 255, 223);
TDBGridEh(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
TDBGridEh(Sender).Canvas.Pen.Color := $00C08000;
TDBGridEh(Sender).Canvas.MoveTo(Rect.Left, Rect.Bottom);
TDBGridEh(Sender).Canvas.LineTo(Rect.Right, Rect.Bottom);
TDBGridEh(Sender).Canvas.LineTo(Rect.Right, Rect.Top);
end;
procedure TfrmBarcodePD.DBGridEh1TitleClick(Column: TColumnEh);
begin
DBGridTitleSort(Column);
end;
procedure TfrmBarcodePD.BitBtn3Click(Sender: TObject);
var
i,j,k:integer;
str,sql,sql2,sql3,sql4:string;
begin
str:='';
sql:='';
j:=0;
k:=0;
if memo2.Lines.Count>0 then
for i:=0 to memo2.Lines.Count-1 do
str:=str+copy(memo2.Lines[i],1,pos(',',memo2.Lines[i])-1)+',';
sql:='select count(*)AS ctAsset from asset where StatusID in ';
sql:=sql+'('+str+')';
DMasset.ADOTemp.Close;
DMasset.ADOTemp.CommandText:='';
DMasset.ADOTemp.CommandText:=sql;
DMasset.ADOTemp.Open;
j:= DMasset.ADOTemp.fieldbyname('ctAsset').AsInteger;
Label9.Caption:='';
Label9.Caption:=IntToStr(j);
sql2:='select count(*) AS ctPD from BarcodePD where pddate=';
sql2:=sql2+'#'+DateToStr(DateTimePicker3.date)+'#';
DMasset.ADOTemp.Close;
DMasset.ADOTemp.CommandText:='';
DMasset.ADOTemp.CommandText:=sql2;
DMasset.ADOTemp.Open;
k:= DMasset.ADOTemp.fieldbyname('ctPD').AsInteger;
Label10.Caption:='';
Label10.Caption:=IntToStr(K);
if j>k then
begin
Label6.Caption:='';
Label6.Caption:='盘亏 '+IntToStr(j-k)+'个';
end
else
begin
Label6.Caption:='';
Label6.Caption:='盘盈 '+IntToStr(k-j)+'个';
end;
sql3:='SELECT AssetID AS 条码,Company AS 公司,DepartmentName AS 部门,';
sql3:=sql3+'AssetCategory AS 设备,Code AS 编号,MakeName AS 品牌,ModelNumberName AS 型号,';
sql3:=sql3+'Employee AS 使用者,place AS 存放地,PurchasePrice AS 购买价格';
sql3:=sql3+ '';
sql3:=sql3+' FROM queryasset WHERE (assetid not in (';
sql3:=sql3+'select barcode from barcodePD where PDdate=';
sql3:=sql3+'#'+DateToStr(DateTimePicker3.date)+'#'+')) ';
sql3:=sql3+' and (StatusID in ('+str+'))';
DMasset.ADOTemp.Close;
DMasset.ADOTemp.CommandText:='';
DMasset.ADOTemp.CommandText:=sql3;
DMasset.ADOTemp.Open;
end;
procedure TfrmBarcodePD.BitBtn4Click(Sender: TObject);
begin
DBGridEhToXLS(DBGridEh2);
end;
procedure TfrmBarcodePD.BitBtn5Click(Sender: TObject);
begin
DBGridEhToXLS(DBGridEh1);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -