D7szChenfeng/工资管理(Wage.dll)/U_JTList.pas

366 lines
8.7 KiB
ObjectPascal
Raw Permalink Normal View History

2025-07-22 15:51:47 +08:00
unit U_JTList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin,
StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar,
cxButtonEdit, cxTextEdit, cxPC, cxCheckComboBox, cxDropDownEdit, Menus,
RM_e_Xls, TeEngine, Series, TeeProcs, Chart, DbChart;
type
TfrmJTList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
RM1: TRMGridReport;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_HZ: TDataSource;
CDS_HZ: TClientDataSet;
v2ssel: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Panel1: TPanel;
Label5: TLabel;
ZdyName: TEdit;
RMXLSExport2: TRMXLSExport;
RMDBMain: TRMDBDataSet;
v2Column8: TcxGridDBColumn;
ToolButton3: TToolButton;
Edit1: TEdit;
ADOQueryPrt: TADOQuery;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure CustomerChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure v2Column8PropertiesEditValueChanged(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
procedure PrintReport(FZDYNo:string);
function SaveData():Boolean;
public
fFlag:integer;
{ Public declarations }
RKFlag,FCYID,fmanage:String;
end;
var
frmJTList: TfrmJTList;
implementation
uses
U_DataLink,U_Fun,U_ZDYHelp;
{$R *.dfm}
procedure TfrmJTList.PrintReport(FZDYNo:string);
var
fPrintFile,FFCYID:string;
i,j:Integer;
Txt,fImagePath:string;
Moudle: THandle;
Makebar:TMakebar;
Mixtext:TMixtext;
begin
if CDS_HZ.IsEmpty then Exit;
if Trim(Edit1.Text)<>'' then
begin
if TryStrToInt(Edit1.Text,j)=False then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
exit;
end;
end;
fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\<5C><>̨<EFBFBD><CCA8>ǩ.rmf';
with ADOQueryPrt do
begin
close;
sql.Clear;
sql.Add(' select top 1 * from KH_ZDY where ZdyName='''+Trim(FZDYNo)+'''');
open;
end;
try
Moudle:=LoadLibrary('MakeQRBarcode.dll');
@Makebar:=GetProcAddress(Moudle,'Make');
@Mixtext:=GetProcAddress(Moudle,'MixText');
Txt:=Trim(FZDYNo);
fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp';
if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then
CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil);
if FileExists(fImagePath) then DeleteFile(fImagePath);
Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3);
except
CDS_HZ.EnableControls;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',MB_ICONERROR);
exit;
end;
RMVariables['QRBARCODE']:=fImagePath;
for i:=1 to j do
begin
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
RM1.PrintReport;
// RM1.ShowReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+fPrintFile+'!'),'<27><>ʾ',0);
Exit;
end;
end;
end;
procedure TfrmJTList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
SQL.Clear;
sql.Add('select A.*,ZJM=dbo.getPinYin(A.ZdyName) from KH_ZDY A where A.Type=''CarNo''');
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
finally
ADOQueryMain.EnableControls;
ToolButton2.Click;
end;
end;
procedure TfrmJTList.FormDestroy(Sender: TObject);
begin
frmJTList:=nil;
end;
procedure TfrmJTList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmJTList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(trim(self.caption),Tv2,'<27><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmJTList.FormShow(Sender: TObject);
begin
ReadCxGrid(trim(self.caption),Tv2,'<27><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>');
InitGrid();
end;
procedure TfrmJTList.TBRafreshClick(Sender: TObject);
begin
ZdyName.SetFocus;
InitGrid();
end;
procedure TfrmJTList.ToolButton2Click(Sender: TObject);
var
sql:string;
begin
if ADOQueryMain.Active then
begin
sql:=SGetFilters(Panel1,1,2);
SDofilter(ADOQueryMain,sql);
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
if fmanage='<27><>ѯ' then
begin
with CDS_HZ do
begin
DisableControls;
while not Eof do
begin
Edit;
FieldByName('FactoryName').Value:='';
Post;
Next;
end;
EnableControls;
end;
end;
end;
end;
function TfrmJTList.SaveData():Boolean;
var
maxId,CRID:String;
begin
try
ADOQueryCmd.Connection.BeginTrans;
if GetLSNo(ADOQueryCmd,maxId,'SY','KH_ZDY',3,1)=False then
begin
Result:=False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,Type)');
sql.Add('values('
+quotedstr(Trim(maxId))
+',''KuWei'')');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
Result:=True;
except
Result:=True;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
end;
end;
procedure TfrmJTList.cxTabControl1Change(Sender: TObject);
begin
InitGrid;
end;
procedure TfrmJTList.N1Click(Sender: TObject);
begin
IF CDS_HZ.IsEmpty then exit;
with CDS_HZ do
begin
DisableControls;
first;
while not eof do
begin
edit;
fieldbyname('ssel').Value:=true;
post;
next;
end;
First;
EnableControls;
end;
end;
procedure TfrmJTList.N2Click(Sender: TObject);
begin
IF CDS_HZ.IsEmpty then exit;
with CDS_HZ do
begin
DisableControls;
first;
while not eof do
begin
edit;
fieldbyname('ssel').Value:=false;
post;
next;
end;
First;
EnableControls;
end;
end;
procedure TfrmJTList.CustomerChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmJTList.FormCreate(Sender: TObject);
begin
fmanage:=Trim(DParameters1);
end;
procedure TfrmJTList.ToolButton3Click(Sender: TObject);
begin
while CDS_HZ.Locate('SSel',true,[]) do
begin
PrintReport(Trim(CDS_HZ.fieldbyname('ZdyName').AsString));
CDS_HZ.Edit;
CDS_HZ.FieldByName('SSel').Value:=false;
end;
end;
procedure TfrmJTList.v2Column8PropertiesEditValueChanged(
Sender: TObject);
var
mvalue,FFieldName:String;
begin
mvalue:=TcxTextEdit(Sender).EditingText;
FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName);
try
ADOQueryCmd.Connection.BeginTrans;
with CDS_HZ do
begin
Edit;
FieldByName(FFieldName).Value:=Trim(mvalue);
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('UPdate KH_Zdy ');
sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+'''');
SQL.Add(' where ZDYNo='''+Trim(CDS_HZ.fieldbyname('ZDYNo').AsString)+'''');
ExecSQL;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from KH_Zdy where Type=''KuWei''');
sql.Add(' and ZdyName='''+Trim(CDS_HZ.fieldbyname('ZdyName').AsString)+'''');
Open;
end;
if ADOQueryTemp.IsEmpty=False then
begin
if ADOQueryTemp.RecordCount>1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
CDS_HZ.EnableControls;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>','<27><>ʾ',0);
Exit;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
tv2.Controller.EditingController.ShowEdit();
except
tv2.Controller.EditingController.ShowEdit();
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end
end;
end.