D10gmBitao/B01基础合同管理/U_LabelList.pas

410 lines
10 KiB
ObjectPascal
Raw Normal View History

2025-04-11 10:54:54 +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,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore,
dxSkinsDefaultPainters, dxDateRanges;
type
TfrmLabelList = class(TForm)
ADOQueryCmd: TADOQuery;
OpenDialog1: TOpenDialog;
RMGridReport1: TRMGridReport;
ADOQueryTmp: TADOQuery;
RMPreview1: TRMPreview;
ADOQuery1: TADOQuery;
DS_Label: TDataSource;
ADOQueryLabel10: TADOQuery;
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;
cxGrid1: TcxGrid;
tv1: TcxGridDBTableView;
tv1labelId: TcxGridDBColumn;
tv1labeltype: TcxGridDBColumn;
tv1labelCaption: TcxGridDBColumn;
tv1labelFile: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
procedure TcloseClick(Sender: TObject);
procedure FormCreate(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 DeleteData(): Boolean;
procedure InitWinData();
procedure InitVarDictionary();
procedure InitDataSetDictionary();
procedure InitGrid();
procedure OpenLabel();
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;
SDofilter(ADOQueryLabel10, filterStr);
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
// ClearWinData(panel3);
fSelLabelId := '';
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;
/////////////////////////////////////////////////////////////
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);
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 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.FormClose(Sender: TObject; var Action: TCloseAction);
begin
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.