📄 untitembarcode.pas
字号:
unit untItemBarCode;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
TreeModelForm, Db, Grids, Wwdbigrd, Wwdbgrid, ComCtrls, sDBTree,
ExtCtrls, SingleBillFrame, SingleFrame, DBClient, MConnect, SConnect,
DBCtrls, StdCtrls, Mask, Wwdbcomb, wwdbedit, Wwdotdot, wwDialog, wwidlg,
stClientDataSet, Menus, jpeg, fcdbtreeview, wwdbdatetimepicker;
type
TItemBarCodefrm = class(TTreeModelFrm)
scEOLShQ: TSocketConnection;
Panel1: TPanel;
DBMemo1: TDBMemo;
DBImage1: TDBImage;
wwLookupDialog1: TwwLookupDialog;
wwLookupDialog2: TwwLookupDialog;
cdsLItemType: TstClientDataSet;
StringField7: TStringField;
StringField41: TStringField;
StringField42: TStringField;
StringField43: TStringField;
StringField44: TStringField;
StringField45: TStringField;
StringField46: TStringField;
StringField47: TStringField;
StringField48: TStringField;
StringField49: TStringField;
StringField50: TStringField;
StringField51: TStringField;
cdsLMeasure: TstClientDataSet;
cdsLMeasureMeasureCode: TStringField;
cdsLMeasureMeasureName: TStringField;
cdsLMeasureBasicUnit: TStringField;
cdsLMeasureCompanyCode: TStringField;
cdsLMeasureSecondUnit: TStringField;
cdsLMeasureSecondCoef: TBCDField;
cdsLMeasureThirdUnit: TStringField;
cdsLMeasureThirdCoef: TBCDField;
cdsLMeasureFourthUnit: TStringField;
cdsLMeasureFourthCoef: TBCDField;
cdsLMeasureFifthUnit: TStringField;
cdsLMeasureFifthCoef: TBCDField;
cdsLMeasureSixthUnit: TStringField;
cdsLMeasureSixthCoef: TBCDField;
cdsLMeasureAllowUsed: TStringField;
cdsLMeasureDefaultPur: TIntegerField;
cdsLMeasureDefaultInv: TIntegerField;
cdsLMeasureDefaultSal: TIntegerField;
OpenDialog1: TOpenDialog;
PopupMenu1: TPopupMenu;
addimage: TMenuItem;
cdsMat_Basic: TClientDataSet;
cdsMat_BasicCompanyCode: TStringField;
cdsMat_BasicItemNo: TStringField;
cdsMat_BasicItemType: TStringField;
cdsMat_BasicItemName: TStringField;
cdsMat_BasicMeasureMethod: TStringField;
cdsMat_BasicModeSpec: TStringField;
cdsMat_BasicStandardPrice: TBCDField;
cdsMat_BasicCostPrice: TBCDField;
cdsMat_BasicIsPurchase: TStringField;
cdsMat_BasicIsMake: TStringField;
cdsMat_BasicIsSale: TStringField;
cdsMat_BasicAllowUsed: TStringField;
cdsMat_BasicReqBatchNo: TStringField;
cdsMat_BasicRemark: TStringField;
cdsMat_BasicImage: TBlobField;
cdsMat_BasicBarCode: TStringField;
cdsMat_BasicSaleType: TStringField;
cdsMat_BasicVendCustCode: TStringField;
Panel3: TPanel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label12: TLabel;
Label13: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
edNo: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBCheckBox4: TDBCheckBox;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
wwDBComboDlg1: TwwDBComboDlg;
wwDBComboDlg2: TwwDBComboDlg;
wwDBComboBox1: TwwDBComboBox;
DBEdit1: TDBEdit;
DBEdit6: TDBEdit;
wwDBComboDlg3: TwwDBComboDlg;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
wwDBComboBox2: TwwDBComboBox;
wwDBComboBox3: TwwDBComboBox;
DBCheckBox1: TDBCheckBox;
wwDBDateTimePicker1: TwwDBDateTimePicker;
wwDBDateTimePicker2: TwwDBDateTimePicker;
cdsMat_BasicMemberPrice: TBCDField;
cdsMat_BasicSalePrice: TBCDField;
cdsMat_BasicComparePrice: TBCDField;
cdsMat_BasicBatchPrice: TBCDField;
cdsMat_BasicProdArea: TStringField;
cdsMat_BasicTaxRate: TBCDField;
cdsMat_BasicIsInCode: TStringField;
cdsMat_BasicFirstDate: TDateTimeField;
cdsMat_BasicLastDate: TDateTimeField;
cdsMat_BasicRackId: TIntegerField;
cdsMat_BasicTrademark: TStringField;
cdsMat_BasicIsModiPrice: TStringField;
cdsMat_BasicOperator: TStringField;
cdsMat_BasicOtherPrice: TStringField;
cdsMat_BasicIsPack: TStringField;
procedure FormShow(Sender: TObject);
procedure sDBTree1GetFirstLevelData(Sender: TObject;
ColConstrain: String; DataSet: TClientDataSet);
procedure sDBTree1GetNextLevelData(Sender: TObject; RowConstrain,
ColConstrain: String; DataSet: TClientDataSet);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure wwDBComboDlg1CustomDlg(Sender: TObject);
procedure cdsLItemTypeBeforeOpen(DataSet: TDataSet);
procedure wwDBComboDlg2CustomDlg(Sender: TObject);
procedure SingleBillFrame1BtnSaveClick(Sender: TObject);
procedure DBImage1DblClick(Sender: TObject);
procedure addimageClick(Sender: TObject);
procedure cdsMat_BasicNewRecord(DataSet: TDataSet);
procedure Edit1Exit(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
//定义线程
TRecvThread = class(TThread)
private
fdataset : TClientDataset;
procedure dateApply;
protected
procedure Execute; override;
public
constructor create(dataset:TClientDataset);
end;
var
ItemBarCodefrm: TItemBarCodefrm;
implementation
uses select,SystemConstUnit,Dataset2VariantUnit, main;
{$R *.DFM}
constructor TRecvThread.create(dataset:TClientDataset);
begin
fDataset := dataset;
FreeOnTerminate := True;
inherited create(false);
end;
procedure TRecvThread.Execute;
begin
Synchronize(dateApply);
end;
procedure TRecvThread.dateApply;
begin
fdataset.ApplyUpdates(0);
end;
//---------------执行线程end--------
procedure TItemBarCodefrm.FormCreate(Sender: TObject);
begin
inherited;
scEOLShQ.Host := sHost;
scEOLShQ.Connected := True;
end;
procedure TItemBarCodefrm.FormShow(Sender: TObject);
begin
inherited;
DataDo := doFilter;
//临时屏蔽增加、删除
SingleBillFrame1.BtnNew.Visible := False;
SingleBillFrame1.BtnDelete.Visible := False;
end;
procedure TItemBarCodefrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
cdsMat_Basic.Close;
end;
//生成树
procedure TItemBarCodefrm.sDBTree1GetFirstLevelData(Sender: TObject;
ColConstrain: String; DataSet: TClientDataSet);
var
Data : OLEVariant;
begin
inherited;
if scEOLShQ.AppServer.GetFirstItemType(ColConStrain,Data,'')=0 then
ReleaseTOClnt(DataSet,Data);
end;
procedure TItemBarCodefrm.sDBTree1GetNextLevelData(Sender: TObject; RowConstrain,
ColConstrain: String; DataSet: TClientDataSet);
var
Data : OLEVariant;
begin
inherited;
if scEOLShQ.AppServer.GetNextItemType(RowConstrain,ColConStrain,Data,'')=0 then
ReleaseTOClnt(DataSet,Data);
end;
//选择物料类别
procedure TItemBarCodefrm.wwDBComboDlg1CustomDlg(Sender: TObject);
begin
inherited;
if not wwLookupDialog1.LookupTable.Active then wwLookupDialog1.LookupTable.Open;
if wwLookupDialog1.Execute then
begin
wwDBComboDlg1.DataSource.DataSet.Edit;
wwDBComboDlg1.Field.AsString := wwLookupDialog1.LookupTable.FieldByName('ItemType').AsString;
end;
end;
//设置表的打开条件
procedure TItemBarCodefrm.cdsLItemTypeBeforeOpen(DataSet: TDataSet);
begin
inherited;
if not TClientDataSet(DataSet).RemoteServer.Connected then
TClientDataSet(DataSet).RemoteServer.Connected := True;
if TClientDataSet(DataSet).Params.Count = 0 then TClientDataSet(DataSet).FetchParams;
TClientDataSet(DataSet).Params.ParamByName('CompanyCode').AsString := '';
end;
//选择计量单位
procedure TItemBarCodefrm.wwDBComboDlg2CustomDlg(Sender: TObject);
begin
inherited;
if not wwLookupDialog2.LookupTable.Active then wwLookupDialog2.LookupTable.Open;
if wwLookupDialog2.Execute then
begin
wwDBComboDlg2.DataSource.DataSet.Edit;
wwDBComboDlg2.Field.AsString := wwLookupDialog2.LookupTable.FieldByName('MeasureCode').AsString;
end;
end;
//调用线程存储
procedure TItemBarCodefrm.SingleBillFrame1BtnSaveClick(Sender: TObject);
begin
// inherited;
if cdsMat_Basic.State in [dsedit,dsinsert] then
begin
cdsMat_Basic.post;
// cdsMat_Basic.ApplyUpdates(0);
TRecvThread.Create(cdsMat_Basic) ;
end;
end;
//选择图形文件
procedure TItemBarCodefrm.DBImage1DblClick(Sender: TObject);
var
Temp1 : TBitMap;
Temp2: TJPEGImage;
begin
inherited;
Temp2 := TJPEGImage.Create;
try
if OpenDialog1.Execute then
begin
if ExtractFileExt(OpenDialog1.FileName)='.jpg' then
begin
Temp2.LoadFromFile(OpenDialog1.FileName);
if Assigned(Temp2) then
begin
Temp1 := TbitMap.Create;
try
temp1.assign(temp2);
cdsMat_Basic.Edit;
cdsMat_BasicImage.Assign(Temp1) ;
cdsMat_Basic.post;
TRecvThread.Create(cdsMat_Basic) ;
finally
Temp1.Free;
end;
end;
end else
begin
cdsMat_Basic.Edit;
cdsMat_BasicImage.LoadFromFile(OpenDialog1.FileName);
cdsMat_Basic.post;
TRecvThread.Create(cdsMat_Basic) ;
end;
end;
finally
Temp2.Free;
end;
end;
//
procedure TItemBarCodefrm.addimageClick(Sender: TObject);
var
FormSelect : Tfrmselect;
Temp1 : TBitMap;
Temp2: TJPEGImage;
begin
frmselect := Tfrmselect.Create(self);
if frmselect.Showmodal = mrOK then
begin
Temp2 := TJPEGImage.Create;
try
if ExtractFileExt(frmselect.filelistbox1.FileName)='.jpg' then
begin
Temp2.LoadFromFile(frmselect.filelistbox1.FileName);
if Assigned(Temp2) then
begin
Temp1 := TbitMap.Create;
try
temp1.assign(temp2);
cdsMat_Basic.Edit;
cdsMat_BasicImage.Assign(Temp1) ;
cdsMat_Basic.post;
TRecvThread.Create(cdsMat_Basic) ;
finally
Temp1.Free;
end;
end;
end
else if ExtractFileExt(frmselect.filelistbox1.FileName)='.bmp' then
begin
cdsMat_Basic.Edit;
cdsMat_BasicImage.LoadFromFile(frmselect.filelistbox1.FileName);
cdsMat_Basic.post;
TRecvThread.Create(cdsMat_Basic) ;
end;
finally
Temp2.Free;
end;
end;
frmselect.Free;
end;
procedure TItemBarCodefrm.cdsMat_BasicNewRecord(DataSet: TDataSet);
var
ItemNo,BarCode : string;
begin
inherited;
with Dataset do
begin
FieldByName('CompanyCode').AsString := '';
FieldByName('AllowUsed').AsString := '1';
// FieldByName('VendCustCode').asstring := cdsProve.FieldByName('VendCustCode').asstring;
// TSocketConnection(cdsMat_Basic.RemoteServer).Appserver.GetItemAndBarCode
// (cdsProve.FieldByName('VendCustCode').asstring,ItemNo,BarCode);
FieldByName('BarCode').asstring := BarCode;
FieldByName('ItemNo').Asstring := ItemNo;
end;
end;
procedure TItemBarCodefrm.Edit1Exit(Sender: TObject);
begin
inherited;
if Edit1.Text= '' then
begin
Edit1.SetFocus;
exit;
end;
if length(Edit1.Text)>12 then
Edit1.Text := copy(Edit1.Text,1,12);
cdsMat_Basic.Close;
cdsMat_Basic.Params.ParamByName('BarCode').asstring := Trim(Edit1.Text);
cdsMat_Basic.Params.ParamByName('ItemNo').asstring := Trim(Edit1.Text);
cdsMat_Basic.Open;
Edit1.Text := '';
DBMemo1.SetFocus;
end;
procedure TItemBarCodefrm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if key = vk_Home then
Edit1.SetFocus;
end;
procedure TItemBarCodefrm.Button1Click(Sender: TObject);
begin
inherited;
if cdsMat_Basic.RecordCount > 0 then
DBImage1DblClick(sender);
end;
procedure TItemBarCodefrm.Button2Click(Sender: TObject);
begin
inherited;
if cdsMat_Basic.RecordCount > 0 then
addimageClick(sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -