D7myzhenyong/机物料仓库(GYJWLCK.dll)/U_LabelList2.pas
DESKTOP-E401PHE\Administrator 237de1c308 0
2025-08-26 15:25:51 +08:00

614 lines
16 KiB
ObjectPascal
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_LabelList2;
interface
uses
Windows, Messages, SysUtils, StrUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, ExtCtrls, DB, ADODB,
RM_System, RM_Common, RM_Class, RM_GridReport, Buttons, FTComboBox, RM_Preview,
RM_e_Xls, RM_e_Graphic, RM_e_bmp, RM_BarCode, RM_DsgGridReport, RM_Dataset,
cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit,
cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore,
dxSkinsDefaultPainters, dxSkinscxPCPainter;
type
TfrmLabelList2 = class(TForm)
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
OpenDialog1: TOpenDialog;
RMGridReport1: TRMGridReport;
ADOQueryTmp: TADOQuery;
RMPreview1: TRMPreview;
ADOQuery1: TADOQuery;
Panel2: TPanel;
cxGrid1: TcxGrid;
tv1: TcxGridDBTableView;
tv1labeltype: TcxGridDBColumn;
tv1labelCaption: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
tv1labelFile: TcxGridDBColumn;
DS_Label: TDataSource;
ADOQueryLabel10: TADOQuery;
Panel3: TPanel;
Note: TMemo;
EngAddress: TEdit;
ChnAddress: TEdit;
engFactory: TEdit;
ChnFactory: TEdit;
TelePhone: TEdit;
ywy: TEdit;
customNo: TBtnEditA;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label3: TLabel;
tv1labelId: TcxGridDBColumn;
ToolBar2: TToolBar;
Tadd: TToolButton;
Tupd: TToolButton;
Tdel: TToolButton;
TOK: TToolButton;
Tclose: TToolButton;
Panel4: TPanel;
ToolButton1: TToolButton;
Label9: TLabel;
Label10: TLabel;
LabelCaption: TEdit;
LabelType: TFTComboBox;
ADOQueryLabel: TClientDataSet;
procedure TcloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TsaveClick(Sender: TObject);
procedure customNoBtnClick(Sender: TObject);
procedure BtOpenClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure RMPreview1DblClick(Sender: TObject);
procedure TaddClick(Sender: TObject);
procedure TupdClick(Sender: TObject);
procedure tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
procedure TdelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure TOkClick(Sender: TObject);
procedure tv1DblClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure LabelTypeChange(Sender: TObject);
procedure tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
private
isLoad: Boolean;
function SaveData(): Boolean;
function EditData(): Boolean;
function IsCheckCustOk(): Boolean;
function DeleteData(): Boolean;
procedure InitWinData();
procedure InitVarDictionary();
procedure InitDataSetDictionary();
procedure InitGrid();
procedure OpenLabel();
procedure SetWinStatus();
procedure DoFilter();
public
fSelLabelId, LBName, LBInt, SLBName: string;
fKeyNo: string;
fchg: Boolean;
fIsShowModal: Boolean;
fWinStatus: integer;
end;
var
frmLabelList2: TfrmLabelList2;
implementation
uses
U_DataLink, U_LabelAdd, U_RTFun;
{$R *.dfm}
procedure TfrmLabelList2.DoFilter();
var
filterStr: string;
begin
filterStr := '';
if trim(LabelType.Text) <> '' then
begin
filterStr := ' and LabelType like ' + quotedStr('%' + trim(LabelType.Text) + '%');
end;
//<2F><><EFBFBD><EFBFBD>
if trim(LabelCaption.Text) <> '' then
begin
filterStr := filterStr + ' and LabelCaption like ' + quotedStr('%' + trim(LabelCaption.Text) + '%');
end;
try
ADOQueryLabel10.DisableControls;
if trim(filterStr) = '' then
begin
ADOQueryLabel.Filtered := false;
ADOQueryLabel.EnableControls;
exit;
end;
filterStr := trim(RightBStr(filterStr, length(filterStr) - 4));
with ADOQueryLabel do
begin
filtered := false;
filter := filterStr;
filtered := true;
end;
SDofilter(ADOQueryLabel10, filterStr);
SCreateCDS20(ADOQueryLabel10, ADOQueryLabel);
SInitCDSData20(ADOQueryLabel10, ADOQueryLabel);
finally
ADOQueryLabel10.EnableControls;
end;
end;
procedure TfrmLabelList2.TcloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmLabelList2.FormCreate(Sender: TObject);
begin
panel1.Align := alClient;
// ClearWinData(panel3);
fSelLabelId := '';
end;
procedure TfrmLabelList2.TsaveClick(Sender: TObject);
begin
if trim(customNO.Text) = '' then
begin
application.MessageBox('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>,<2C><>ѡ<EFBFBD><D1A1><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>', '<27><>ʾ');
customNo.SetFocus;
exit;
end;
if application.MessageBox(<><C8B7>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?', '<27><>ʾ<EFBFBD><CABE>Ϣ', 1) = 2 then
exit;
if fWinStatus = 0 then
begin
if not IsCheckCustOk() then
exit;
if SaveData() then
begin
fWinStatus := 1;
fchg := true;
SetWinStatus();
end;
end
else
begin
if EditData() then
begin
fchg := true;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0)
end;
end;
end;
/////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/////////////////////////////////////////////////////////////////////
function TfrmLabelList2.SaveData(): Boolean;
begin
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from JD_Label');
sql.Add('where 1<>1');
Open;
Append;
fieldByName('customno').value := trim(customno.txtCode);
fieldByName('ChnFactory').value := trim(ChnFactory.text);
fieldByName('engFactory').value := trim(engFactory.text);
fieldByName('TelePhone').value := trim(TelePhone.text);
fieldByName('ChnAddress').value := trim(ChnAddress.text);
fieldByName('EngAddress').value := trim(EngAddress.text);
fieldByName('filler').value := Dname;
fieldByName('filltime').value := DServerDate;
fieldByName('note').value := trim(Note.text);
Post;
end;
result := true;
except
Result := false;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩģ<C7A9><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', 0);
end;
end;
/////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/////////////////////////////////////////////////////////////////////
function TfrmLabelList2.EditData(): Boolean;
begin
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from JD_Label');
sql.Add('where customNo=' + fKeyNo);
Open;
Edit;
fieldByName('customno').value := trim(customno.txtCode);
fieldByName('ChnFactory').value := trim(ChnFactory.text);
fieldByName('engFactory').value := trim(engFactory.text);
fieldByName('TelePhone').value := trim(TelePhone.text);
fieldByName('ChnAddress').value := trim(ChnAddress.text);
fieldByName('EngAddress').value := trim(EngAddress.text);
fieldByName('note').value := trim(Note.text);
Post;
end;
result := true;
except
Result := false;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩģ<C7A9><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', 0);
end;
end;
procedure TfrmLabelList2.customNoBtnClick(Sender: TObject);
begin
{ FormGetCust:=TFormGetCust.Create(self);
if FormGetCust.ShowModal=mrok then
begin
customNo.TxtCode:=trim(FormGetCust.ADOQuery1.Fieldbyname('customno').AsString);
customNo.Text:=trim(FormGetCust.ADOQuery1.Fieldbyname('shortname').AsString);
end;
FormGetCust.Free; }
{ frmCustHelp:=TfrmCustHelp.create(self);
with frmCustHelp do
begin
if showModal=1 then
begin
customNo.TxtCode:=trim(ADOQueryHelp.Fieldbyname('customno').AsString);
customNo.Text:=trim(ADOQueryHelp.Fieldbyname('shortname').AsString);
end;
free;
end;
}
end;
procedure TfrmLabelList2.BtOpenClick(Sender: TObject);
begin
end;
////////////////////////////////////////////////////////////
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
////////////////////////////////////////////////////////////
procedure TfrmLabelList2.InitWinData();
begin
try
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select A.* ,B.customName as customNoName');
sql.Add('from JD_Label A');
sql.Add('INNER JOIN BC_customer B ON A.customNO=B.customNo');
sql.Add('WHERE B.customNo=''' + fkeyNo + '''');
Open;
if isEmpty then
begin
close;
exit;
end;
// SetWinData(ADOQueryTmp,panel3);
{
RMGridReport1.LoadFromBlobField(tblobfield(fieldbyname('labelFile')));
RMGridReport1.Preview :=RMPreview1;
RMGridReport1.PrepareReport;
RMGridReport1.ShowReport ;
}
end;
except
end;
end;
procedure TfrmLabelList2.FormShow(Sender: TObject);
begin
if fWinStatus = 1 then
tok.Visible := false;
InitGrid();
if Trim(SLBName) <> '' then
begin
ADOQueryLabel.Locate('labelCaption', SLBName, []);
end;
end;
procedure TfrmLabelList2.RMPreview1DblClick(Sender: TObject);
begin
//btOpen.Click ;
end;
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
procedure TfrmLabelList2.InitVarDictionary();
var
TmpList: Tstrings;
mm: string;
i: integer;
begin
try
TmpList := TstringList.Create();
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select distinct ItemType from JC_LabelSetItems ');
sql.Add('where valid=''Y''');
Open;
TmpList.Clear;
while not Eof do
begin
TmpList.Add(trim(fieldByName('ItemType').AsString));
Next;
end;
end;
finally
TmpList.Free;
end;
end;
/////////////////////////////////////////////////
//
/////////////////////////////////////////////////
procedure TfrmLabelList2.InitDataSetDictionary();
begin
{ with ADOQuery1 do
begin
close;
sql.Clear ;
sql.Add('exec P_Get_LabelPrintData');
sql.Add(quotedStr(''));
sql.Add(','+quotedStr(''));
sql.Add(','+quotedStr(''));
OPen;
end; }
end;
procedure TfrmLabelList2.TaddClick(Sender: TObject);
begin
try
frmLabelAdd := TfrmLabelAdd.create(self);
with frmLabelAdd do
begin
if showModal = 1 then
begin
fchg := true;
InitGrid();
end;
end;
finally
frmLabelAdd.Free;
end;
end;
procedure TfrmLabelList2.TupdClick(Sender: TObject);
begin
if ADOQueryLabel.IsEmpty then
exit;
try
frmLabelAdd := TfrmLabelAdd.create(self);
with frmLabelAdd do
begin
fKeyNo := ADOQueryLabel.fieldByName('LabelId').AsString;
fWinstatus := 1;
if showModal = 1 then
begin
fchg := true;
InitGrid();
end;
end;
finally
frmLabelAdd.Free;
end;
end;
/////////////////////////////////////////////
//
/////////////////////////////////////////////
procedure TfrmLabelList2.InitGrid();
begin
try
isLoad := false;
ADOQueryLabel10.DisableControls;
with ADOQueryLabel10 do
begin
close;
sql.Clear;
sql.Add('select * from P_Label');
sql.Add('where valid=''Y''');
sql.Add(' order by labelCaption');
Open;
end;
SCreateCDS20(ADOQueryLabel10, ADOQueryLabel);
SInitCDSData20(ADOQueryLabel10, ADOQueryLabel);
finally
ADOQueryLabel10.EnableControls;
isLoad := true;
//DoFilter();
//OpenLabel();
end;
end;
////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3>򿪱<EFBFBD>ǩ<EFBFBD>ļ<EFBFBD>
////////////////////////////////////////////////////////
procedure TfrmLabelList2.OpenLabel();
begin
if ADOQueryLabel.IsEmpty then
exit;
with RMGridReport1 do
begin
LoadFromBlobField(tblobfield(ADOQueryLabel.fieldbyname('labelFile')));
//Preview :=RMPreview1;
ShowReport;
end;
end;
procedure TfrmLabelList2.tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
end;
//////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿͻ<C3BF><CDBB>ı<EFBFBD>ǩ<EFBFBD>Ƿ<EFBFBD><C7B7>Ѵ<EFBFBD><D1B4><EFBFBD>
/////////////////////////////////////////////////////////
function TfrmLabelList2.IsCheckCustOk(): Boolean;
begin
try
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select count(customNO)as cnt from P_Label');
sql.Add('where customNO=''' + trim(customNO.TxtCode) + '''');
Open;
if fieldByName('cnt').AsInteger > 0 then
begin
Result := false;
application.MessageBox('<27>ÿͻ<C3BF><CDBB><EFBFBD>ǩ<EFBFBD><C7A9>Ϣ<EFBFBD>Ѵ<EFBFBD>!', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', 0);
end
else
Result := true;
end;
except
result := false;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ÿͻ<C3BF><CDBB><EFBFBD>ǩ<EFBFBD><C7A9>Ϣ<EFBFBD>Ƿ<EFBFBD><C7B7>Ѵ<EFBFBD><D1B4><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', 0);
end;
end;
/////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////
function TfrmLabelList2.DeleteData(): Boolean;
begin
try
with ADOQueryCmd do
begin
close;
sql.clear;
sql.Add('delete P_Label');
sql.Add('where labelId=' + ADOQueryLabel.fieldByName('LabelID').asString);
sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
sql.Add(' ' + quotedstr(trim(DName)));
sql.Add(',getdate() ');
sql.Add(',' + quotedstr(trim(self.Caption)));
sql.Add(',' + quotedstr(trim('<27><>ǩɾ<C7A9><C9BE>')));
sql.Add(',' + quotedstr(trim('<27><>ǩ<EFBFBD><C7A9><EFBFBD>ƣ<EFBFBD>' + trim(ADOQueryLabel.fieldByName('labelCaption').asString))));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
execSql;
end;
result := true;
except
result := false;
application.MessageBox(<><C9BE>ʧ<EFBFBD><CAA7>!', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', 0);
end;
end;
procedure TfrmLabelList2.TdelClick(Sender: TObject);
begin
if ADOQueryLabel.IsEmpty then
exit;
if application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD>˱<EFBFBD>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', 1) = 2 then
exit;
if DeleteData() then
begin
fchg := true;
InitGrid();
end;
end;
//////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////
procedure TfrmLabelList2.SetWinStatus();
begin
case fWinStatus of
0:
begin
// ToolBar2.Visible :=false;
// tsave.Visible :=true;
customNo.Enabled := true;
panel3.Enabled := true;
end;
1:
begin
// ToolBar2.Visible :=true;
// tsave.Visible :=false;
customNo.Enabled := false;
panel3.Enabled := false;
TOK.Visible := false;
end;
5:
begin
// ToolBar2.Visible :=false;
// tsave.Visible :=false;
panel1.Enabled := false;
panel3.Enabled := false;
end;
end;
end;
procedure TfrmLabelList2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
{if fIsShowModal then
Application:=MainApplication ; }
Action := caFree;
end;
procedure TfrmLabelList2.FormDestroy(Sender: TObject);
begin
frmLabelList2 := nil;
end;
procedure TfrmLabelList2.TOkClick(Sender: TObject);
begin
if ADOQueryLabel.IsEmpty then
exit;
LBName := Trim(ADOQueryLabel.fieldbyname('labelCaption').AsString);
ModalResult := 1;
end;
procedure TfrmLabelList2.tv1DblClick(Sender: TObject);
begin
TOk.Click;
end;
procedure TfrmLabelList2.ToolButton1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmLabelList2.LabelTypeChange(Sender: TObject);
begin
DoFilter();
end;
procedure TfrmLabelList2.tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
if isLoad then
OpenLabel();
end;
end.