RTFormwork/项目代码/RTBasicsV1/A01基础公司管理/U_LabelList.pas

592 lines
15 KiB
ObjectPascal
Raw Normal View History

2024-07-07 09:35:27 +08:00
unit U_LabelList;
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, RTComboBox,
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;
type
TfrmLabelList = 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: TRTComboBox;
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
frmLabelList: TfrmLabelList;
implementation
uses
U_DataLink, U_LabelAdd,U_RTFun;
{$R *.dfm}
procedure TfrmLabelList.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;
SCreateCDS(ADOQueryLabel10,ADOQueryLabel);
SInitCDSData(ADOQueryLabel10,ADOQueryLabel);
finally
ADOQueryLabel10.EnableControls;
end;
end;
procedure TfrmLabelList.TcloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmLabelList.FormCreate(Sender: TObject);
begin
panel1.Align :=alClient;
// ClearWinData(panel3);
fSelLabelId := '';
end;
procedure TfrmLabelList.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 TfrmLabelList.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 TfrmLabelList.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 TfrmLabelList.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 TfrmLabelList.BtOpenClick(Sender: TObject);
begin
end;
////////////////////////////////////////////////////////////
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
////////////////////////////////////////////////////////////
procedure TfrmLabelList.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 TfrmLabelList.FormShow(Sender: TObject);
begin
if fWinStatus=1 then tok.Visible:=false;
InitGrid();
if Trim(SLBName)<>'' then
begin
ADOQueryLabel.Locate('labelCaption',SLBName,[]);
end;
end;
procedure TfrmLabelList.RMPreview1DblClick(Sender: TObject);
begin
//btOpen.Click ;
end;
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
procedure TfrmLabelList.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 TfrmLabelList.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 TfrmLabelList.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 TfrmLabelList.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 TfrmLabelList.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;
SCreateCDS(ADOQueryLabel10,ADOQueryLabel);
SInitCDSData(ADOQueryLabel10,ADOQueryLabel);
finally
ADOQueryLabel10.EnableControls;
isLoad:=true;
//DoFilter();
//OpenLabel();
end;
end;
////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3>򿪱<EFBFBD>ǩ<EFBFBD>ļ<EFBFBD>
////////////////////////////////////////////////////////
procedure TfrmLabelList.OpenLabel();
begin
if ADOQueryLabel.IsEmpty then exit;
with RMGridReport1 do
begin
LoadFromBlobField(tblobfield(ADOQueryLabel.fieldbyname('labelFile')));
//Preview :=RMPreview1;
ShowReport ;
end;
end;
procedure TfrmLabelList.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 TfrmLabelList.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 TfrmLabelList.DeleteData():Boolean;
begin
try
with ADOQueryCmd do
begin
close;
sql.clear;
sql.Add('delete P_Label');
sql.Add('where labelId='+ADOQueryLabel.fieldByName('LabelID').asString);
execSql;
end;
result:=true;
except
result:=false;
application.MessageBox(<><C9BE>ʧ<EFBFBD><CAA7>!','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ',0);
end;
end;
procedure TfrmLabelList.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 TfrmLabelList.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 TfrmLabelList.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
{if fIsShowModal then
Application:=MainApplication ; }
Action:=caFree;
end;
procedure TfrmLabelList.FormDestroy(Sender: TObject);
begin
frmLabelList:=nil;
end;
procedure TfrmLabelList.TOkClick(Sender: TObject);
begin
if ADOQueryLabel.IsEmpty then exit;
LBName:=Trim(ADOQueryLabel.fieldbyname('labelCaption').AsString);
ModalResult:=1;
end;
procedure TfrmLabelList.tv1DblClick(Sender: TObject);
begin
TOk.Click ;
end;
procedure TfrmLabelList.ToolButton1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmLabelList.LabelTypeChange(Sender: TObject);
begin
DoFilter();
end;
procedure TfrmLabelList.tv1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
if isLoad then
OpenLabel();
end;
end.