D7FZaideng/基础资料维护(BaseInfo.dll)/U_CPKWList.pas
DESKTOP-E401PHE\Administrator 82c6347dad ~
2025-04-30 16:21:22 +08:00

347 lines
9.5 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_CPKWList;
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, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, Menus;
type
TfrmCPKWList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
defstr1: TEdit;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_HZ: TDataSource;
CDS_HZ: TClientDataSet;
ToolButton3: TToolButton;
v2Column6: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
Label1: TLabel;
ZdyCode: TEdit;
ToolButton4: TToolButton;
v2Column8: TcxGridDBColumn;
Label2: TLabel;
DEFstr3: TComboBox;
v2Column10: TcxGridDBColumn;
v2Column11: TcxGridDBColumn;
v2Column12: TcxGridDBColumn;
v2Column13: TcxGridDBColumn;
defstr2: TEdit;
Label4: TLabel;
v2Column2: TcxGridDBColumn;
ToolButton5: TToolButton;
ADOQueryPrint: TADOQuery;
RMGridReport1: TRMGridReport;
RMDBDataSet1: TRMDBDataSet;
Tv2Column1: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
DataSource2: TDataSource;
CDS_Sub: TClientDataSet;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
ADOQuerySub: TADOQuery;
Tv1Column5: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure defstr1Change(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
private
{ Private declarations }
procedure InitGrid();
public
end;
var
frmCPKWList: TfrmCPKWList;
implementation
uses
U_DataLink, U_Fun, U_ZDYHelp, U_CPKWEdit;
{$R *.dfm}
procedure TfrmCPKWList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add(' select A.* ');
// sql.Add(' ,cpNum=(select count(MJID) from CK_BanCP_KC X where X.KCKW=A.zdyCode and X.kcQty>0)');
sql.Add(' from KH_Zdy_Attachment A ');
sql.Add(' where Type=''CPKW'' ');
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_HZ);
SInitCDSData20(ADOQueryMain, CDS_HZ);
finally
ADOQueryMain.EnableControls;
end;
ToolButton2.Click;
end;
procedure TfrmCPKWList.FormDestroy(Sender: TObject);
begin
frmCPKWList := nil;
end;
procedure TfrmCPKWList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmCPKWList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(self.Caption, Tv2, '<27>ͻ<EFBFBD><CDBB>Զ<EFBFBD><D4B6><EFBFBD>');
WriteCxGrid(self.Caption, Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ');
Close;
end;
procedure TfrmCPKWList.TBDelClick(Sender: TObject);
begin
if CDS_HZ.IsEmpty then
Exit;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
if Trim(CDS_HZ.fieldbyname('ATID').AsString) <> '' then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete KH_Zdy_Attachment where ATID=''' + Trim(CDS_HZ.fieldbyname('ATID').AsString) + '''');
sql.Add('delete KH_Zdy where ZdyNo=''' + Trim(CDS_HZ.fieldbyname('ATID').AsString) + '''');
ExecSQL;
end;
end;
CDS_HZ.Delete;
end;
procedure TfrmCPKWList.FormShow(Sender: TObject);
begin
cxGrid2.Align := alclient;
ReadCxGrid(self.Caption, Tv2, '<27>ͻ<EFBFBD><CDBB>Զ<EFBFBD><D4B6><EFBFBD>');
ReadCxGrid(self.Caption, Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ');
InitGrid();
end;
procedure TfrmCPKWList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCPKWList.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_HZ);
SInitCDSData20(ADOQueryMain, CDS_HZ);
end;
end;
procedure TfrmCPKWList.defstr1Change(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmCPKWList.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid2);
// SelExportData(Tv2,ADOQueryMain,'<27><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>');
end;
procedure TfrmCPKWList.ToolButton4Click(Sender: TObject);
begin
try
frmCPKWEdit := TfrmCPKWEdit.Create(Application);
with frmCPKWEdit do
begin
FCYID := Trim(Self.CDS_HZ.fieldbyname('ATID').AsString);
if ShowModal = 1 then
begin
TBRafresh.Click;
end;
end;
finally
frmCPKWEdit.Free;
end;
end;
procedure TfrmCPKWList.ToolButton3Click(Sender: TObject);
begin
try
frmCPKWEdit := TfrmCPKWEdit.Create(Application);
with frmCPKWEdit do
begin
FCYID := '';
if ShowModal = 1 then
begin
TBRafresh.Click;
end;
end;
finally
frmCPKWEdit.Free;
end;
end;
procedure TfrmCPKWList.ToolButton5Click(Sender: TObject);
var
fPrintFile: string;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
if CDS_HZ.IsEmpty then
Exit;
if CDS_HZ.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
CDS_HZ.DisableControls;
with CDS_HZ do
begin
First;
while not Eof do
begin
if CDS_HZ.FieldByName('SSel').AsBoolean then
begin
with ADOQueryPrint do
begin
Close;
SQL.Clear;
sql.Add('select A.* ');
sql.Add(' from KH_Zdy_Attachment A');
SQL.Add(' where ATID=''' + Trim(CDS_HZ.fieldbyname('ATID').AsString) + '''');
SQL.Add(' and Type=''CPKW'' ');
Open;
end;
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(ADOQueryPrint.fieldbyname('ATID').AsString);
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
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
CDS_HZ.EnableControls;
exit;
end;
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\<5C><>Ʒ<EFBFBD><C6B7>λ<EFBFBD><CEBB>ǩ.rmf';
if FileExists(fPrintFile) then
begin
RMVariables['QRBARCODE'] := fImagePath;
RM1.LoadFromFile(fPrintFile);
// RM1.ShowReport;
RM1.PrintReport;
sleep(200);
end
else
begin
CDS_HZ.EnableControls;
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + trim(fPrintFile)), '<27><>ʾ', 0);
Exit;
end;
end;
Next;
end;
end;
CDS_HZ.EnableControls;
end;
procedure TfrmCPKWList.N1Click(Sender: TObject);
begin
SelOKNo(CDS_HZ, true);
end;
procedure TfrmCPKWList.N2Click(Sender: TObject);
begin
SelOKNo(CDS_HZ, false);
end;
procedure TfrmCPKWList.Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
try
with ADOQuerySub do
begin
close;
sql.Clear;
sql.Add('select * from CK_SXPB_CRMX A');
sql.Add(' INNER JOIN BP_InOut B on B.CRID=A.CRID and B.CRNO=A.CRNO ');
sql.Add(' where A.CKNO=' + quotedstr(trim(CDS_HZ.fieldbyname('ZdyCode').AsString)));
sql.Add(' and A.CRZT=''<27><><EFBFBD><EFBFBD>''');
sql.Add(' and A.kcqty2>0');
// SQL.Add('and not EXISTS(SELECT MXID FROM CK_SXPB_CRMX C WHERE C.FZMXID=A.MXID)');
sql.Add(' order by A.MXID');
// ShowMessage(SQL.text);
open;
end;
SCreateCDS20(ADOQuerySub, CDS_Sub);
SInitCDSData20(ADOQuerySub, CDS_Sub);
finally
end;
end;
end.