📄 lcitem_unit.~pas
字号:
unit LCITEM_Unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBGridEh, ImgList, DBLookupEh, StdCtrls, DBCtrls, DBCtrlsEh,
Mask, Buttons, Tabenter, Grids, ComCtrls, ToolWin, ExtCtrls,db,
TFlatButtonUnit, TFlatPanelUnit, ADODB;
type
TarrChar=array of char;
TLCITEM_Form = class(TForm)
Splitter1: TSplitter;
ToolBar1: TToolBar;
tbbtnPrint: TToolButton;
ToolButton3: TToolButton;
tbbtnNewBill: TToolButton;
tbbtnDeleteBill: TToolButton;
tbbtnCommit: TToolButton;
tbbtnRollback: TToolButton;
ToolButton11: TToolButton;
tbbtnPrior: TToolButton;
ToolButton4: TToolButton;
tbbtnNext: TToolButton;
tbbtnLast: TToolButton;
ToolButton5: TToolButton;
tbbtnFirst: TToolButton;
ToolButton23: TToolButton;
tbbtnSearch: TToolButton;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
DBGridEh1: TDBGridEh;
PageControl2: TPageControl;
TabSheet2: TTabSheet;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Label3: TLabel;
kEnterAsTab1: TkEnterAsTab;
DBEditEh1: TDBEditEh;
DBEditEh2: TDBEditEh;
DBNumberEditEh1: TDBNumberEditEh;
DBMemo1: TDBMemo;
DBLookupComboboxEh1: TDBLookupComboboxEh;
DBLookupComboboxEh2: TDBLookupComboboxEh;
ilSmall: TImageList;
Label5: TLabel;
DBEditEh3: TDBEditEh;
Label8: TLabel;
DBNumberEditEh2: TDBNumberEditEh;
FlatPanel1: TFlatPanel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
FlatButton1: TFlatButton;
FlatButton2: TFlatButton;
Label12: TLabel;
Label13: TLabel;
DBEditEh4: TDBEditEh;
DBEditEh5: TDBEditEh;
ToolButton1: TToolButton;
Label14: TLabel;
DBEditEh6: TDBEditEh;
XCQry: TADOQuery;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure tbbtnNewBillClick(Sender: TObject);
procedure tbbtnDeleteBillClick(Sender: TObject);
procedure tbbtnCommitClick(Sender: TObject);
procedure tbbtnRollbackClick(Sender: TObject);
procedure tbbtnPriorClick(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure tbbtnNextClick(Sender: TObject);
procedure tbbtnLastClick(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure tbbtnFirstClick(Sender: TObject);
procedure tbbtnSearchClick(Sender: TObject);
procedure FlatButton1Click(Sender: TObject);
procedure FlatButton2Click(Sender: TObject);
procedure tbbtnPrintClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
private
{ Private declarations }
public
function BS(M:integer):integer;
function MyIntToHex(aNum, aLength: Integer): TarrChar;
{ Public declarations }
end;
var
LCITEM_Form: TLCITEM_Form;
implementation
uses DMUnit, RPTUnit, U_CheckRights, MainUnit;
{$R *.dfm}
function TLCITEM_Form.BS(M: integer): integer;
begin
if M=0 then
begin
DBEditEh1.Enabled:=True;
DBEditEh2.Enabled:=True;
DBEditEh3.Enabled:=True;
DBEditEh4.Enabled:=True;
DBEditEh5.Enabled:=True;
DBNumberEditEh1.Enabled:=True;
DBNumberEditEh2.Enabled:=True;
DBLookupComboboxEh1.Enabled:=True;
DBLookupComboboxEh2.Enabled:=True;
DBMemo1.Enabled:=True;
DBEditEh6.Enabled:=True;
end;
if M=1 then
begin
DBEditEh1.Enabled:=false;
DBEditEh2.Enabled:=false;
DBEditEh3.Enabled:=false;
DBEditEh4.Enabled:=false;
DBEditEh5.Enabled:=false;
DBNumberEditEh1.Enabled:=false;
DBNumberEditEh2.Enabled:=false;
DBLookupComboboxEh1.Enabled:=false;
DBLookupComboboxEh2.Enabled:=false;
DBMemo1.Enabled:=false;
DBEditEh6.Enabled:=false;
end;
end;
procedure TLCITEM_Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=cafree;
end;
procedure TLCITEM_Form.FormDestroy(Sender: TObject);
begin
LCITEM_Form:=nil;
end;
procedure TLCITEM_Form.FormCreate(Sender: TObject);
begin
with DM.UNIT_ADOQ do
begin
Close;
OPen;
end;
with DM.SORT_ADOQ do
begin
Close;
Open;
end;
with DM.LCITEM_ADOQ do
begin
Close;
OPen;
end;
end;
procedure TLCITEM_Form.tbbtnNewBillClick(Sender: TObject);
begin
DM.LCITEM_ADOQ.First;
end;
procedure TLCITEM_Form.tbbtnDeleteBillClick(Sender: TObject);
begin
DM.LCITEM_ADOQ.Prior;
end;
procedure TLCITEM_Form.tbbtnCommitClick(Sender: TObject);
begin
DM.LCITEM_ADOQ.Next;
end;
procedure TLCITEM_Form.tbbtnRollbackClick(Sender: TObject);
begin
DM.LCITEM_ADOQ.Last;
end;
procedure TLCITEM_Form.tbbtnPriorClick(Sender: TObject);
begin
if DM.LCITEM_ADOQ.State in [DSBROWSE] then
DM.LCITEM_ADOQ.Append;
BS(0);
DBEditEh1.SetFocus;
end;
procedure TLCITEM_Form.ToolButton4Click(Sender: TObject);
begin
if DM.LCITEM_ADOQ.RecordCount<=0 then Exit;
if DM.LCITEM_ADOQ.State in [DSBROWSE] then
DM.LCITEM_ADOQ.Edit;
BS(0);
DBEditEh1.SetFocus;
end;
procedure TLCITEM_Form.tbbtnNextClick(Sender: TObject);
begin
if DM.LCITEM_ADOQ.RecordCount<=0 then Exit;
if Application.MessageBox('是否确认删除该产品信息?', '提示',
MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2) = IDYES then
DM.LCITEM_ADOQ.Delete;
end;
procedure TLCITEM_Form.tbbtnLastClick(Sender: TObject);
begin
if (Trim(DBEditEh1.Text)='') or (Trim(DBEditEh2.Text)='') then Exit;
if DM.LCITEM_ADOQ.State in [DSINSERT,DSEDIT] then
DM.LCITEM_ADOQ.Post;
BS(1);
end;
procedure TLCITEM_Form.ToolButton5Click(Sender: TObject);
begin
DM.LCITEM_ADOQ.Cancel;
BS(1);
end;
procedure TLCITEM_Form.tbbtnFirstClick(Sender: TObject);
begin
with DM.LCITEM_ADOQ do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM LCITEM_ITEM');
Open;
end;
end;
procedure TLCITEM_Form.tbbtnSearchClick(Sender: TObject);
begin
Close;
end;
procedure TLCITEM_Form.FlatButton1Click(Sender: TObject);
var
S:String; //查询
begin
S:='SELECT * FROM LCITEM_ITEM WHERE 2>1';
if Trim(Edit1.Text)<>'' then
S:=S+' AND ITEM_NO='''+Edit1.Text+'''';
if Trim(Edit2.Text)<>'' then
S:=S+' AND ITEM_NAME='''+Edit2.Text+'''';
if Trim(Edit3.Text)<>'' then
S:=S+' AND ITEM_MARKS='''+Edit3.Text+'''';
with DM.LCITEM_ADOQ do
begin
Close;
SQL.Clear;
SQL.Add(S);
Open;
end;
end;
procedure TLCITEM_Form.FlatButton2Click(Sender: TObject);
begin
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
end;
procedure TLCITEM_Form.tbbtnPrintClick(Sender: TObject);
begin
RPTDM.LCITEM_Rpt.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'RPT/列车产品基础信息.frf');
RPTDM.LCITEM_Rpt.ShowReport;
end;
procedure TLCITEM_Form.FormShow(Sender: TObject);
begin
tbbtnPrint.Enabled:=CheckRights('列车产品基础信息','打印');
tbbtnNewBill.Enabled:=CheckRights('列车产品基础信息','最头');
tbbtnDeleteBill.Enabled:=CheckRights('列车产品基础信息','上一条');
tbbtnCommit.Enabled:=CheckRights('列车产品基础信息','下一条');
tbbtnRollback.Enabled:=CheckRights('列车产品基础信息','最后');
tbbtnPrior.Enabled:=CheckRights('列车产品基础信息','新建');
ToolButton4.Enabled:=CheckRights('列车产品基础信息','修改');
tbbtnNext.Enabled:=CheckRights('列车产品基础信息','删除');
tbbtnLast.Enabled:=CheckRights('列车产品基础信息','保存');
ToolButton5.Enabled:=CheckRights('列车产品基础信息','撤消');
tbbtnFirst.Enabled:=CheckRights('列车产品基础信息','刷新');
end;
procedure TLCITEM_Form.ToolButton1Click(Sender: TObject);
var
i:integer;
S:string;
//定义变量
SJDM,ITEM_XH,ITEM_NO,ITEM_NAME,ITEM_UNIT,ITEM_SORT,ITEM_PLIAO,ITEM_FLIAO:string;
Item:array [0..99999] of char;
ITEM_PRICE,ITEM_NUM:TarrChar;
Index,j:Integer;
M:integer;
H:string;
begin
for i:=0 to 99999 do
item[i]:=char(0);
Index:=0;
if Trim(Edit3.Text)='' then
begin
ShowMessage('请先查询再下传数据!');
Exit;
end;
Result:=POS_Comm_Start(1);
if Result=0 then
ShowMessage('通讯成功')
else
begin
ShowMessage(' 通讯失败'+inttostr(Result));
Exit;
end;
With XCQRy do
begin
Close;
SQL.Clear;
SQL.Add('SELECT COUNT(*) FROM LCITEM_ITEM WHERE ITEM_MARKS='''+Edit3.Text+'''');
open;
end;
M:=XCQry.Fields[0].AsInteger;
ITEM_NUM:=MyIntToHex(M,2);
S:='';
H:='SELECT LC.ITEM_XH,LC.ITEM_NO,LC.ITEM_NAME,IU.NUIT_NAME,LC.ITEM_PRICE,S.SORTNAME,LC.ITEM_PLIAO,'+
' LC.ITEM_FLIAO FROM LCITEM_ITEM LC LEFT JOIN ITEM_SORT S ON LC.ITEM_SORT=S.SORTID'+
' LEFT JOIN ITEM_UNIT IU ON IU.NUIT_ID=LC.ITEM_UNIT ';
H:=H+' where ITEM_MARKS='''+Edit3.text+'''';
with XCQRY do
begin
Close;
SQL.Clear;
SQL.Add(H);
OPen;
end;
Try
SJDM:='A002';
S:=S+SJDM;
Item[0]:=#0;
index:=1;
for j:=index to length(S) do
Item[j]:=char(S[j]);
index:=j;
s:='';
for j:=index to index+length(ITEM_NUM)-1 do
Item[j]:=char(ITEM_NUM[j-Index]);
index:=j;
XCQry.First;
while not XCQry.Eof do
begin
ITEM_XH:=XCQry.Fields[0].AsString;
ITEM_XH:=MainForm.FillSpace(ITEM_XH,9);//序号
ITEM_NO:=XCQry.Fields[1].AsString;
ITEM_NO:=MainForm.FillSpace(ITEM_NO,6);//产品编号
ITEM_NAME:=XCQry.Fields[2].AsString;
ITEM_NAME:=MainForm.FillSpace(ITEM_NAME,20);//产品名称
ITEM_UNIT:=XCQry.Fields[3].AsString;
ITEM_UNIT:=MainForm.FillSpace(ITEM_UNIT,6);//单位
ITEM_PRICE:=nil;
ITEM_PRICE:=MyIntToHex(round(XCQry.Fields[4].asCurrency*100),2);//单价
ITEM_SORT:=XCQry.Fields[5].AsString;
ITEM_SORT:=MainForm.FillSpace(ITEM_SORT,6);//类别
ITEM_PLIAO:=XCQry.Fields[6].AsString;
ITEM_PLIAO:=MainForm.FillSpace(ITEM_PLIAO,20); //主料
ITEM_FLIAO:=XCQry.Fields[7].AsString;
ITEM_FLIAO:=MainForm.FillSpace(ITEM_FLIAO,30); //副料
S:=ITEM_XH+ITEM_NO+ITEM_NAME+ITEM_UNIT;
for j:=index to index+length(S)-1 do
Item[j]:=char(S[j-Index+1]);
index:=j;
s:='';
for j:=index to index+length(ITEM_PRICE)-1 do
Item[j]:=char(ITEM_PRICE[j-Index]);
index:=j;
s:=ITEM_SORT+ITEM_PLIAO+ITEM_FLIAO;
for j:=index to index+length(S)-1 do
Item[j]:=char(S[j-Index+1]);
index:=j;
s:='';
XCQry.next;
end;
ITEM_PRICE:=nil;
ITEM_NUM:=nil;
Result:=1;
Result:=POS_DownLoad_Data(2,@Item[1],index-1);
if Result=0 then
begin
ShowMessage('产品信息数据下传成功!');
POS_Comm_End();
end
else
begin
ShowMessage('产品信息数据下传失败!');
Exit;
end;
Except
end;
end;
function TLCITEM_Form.MyIntToHex(aNum, aLength: Integer): TarrChar;
var
s:string;
i:Integer;
begin
setLength(Result,aLength);
s:= inttoHex(aNum,aLength*2);
for i:=0 to aLength-1 do
begin
Result[i]:=chr(strToInt('$'+copy(s,i*2+1,2)));
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -