D7wmhengming/基础资料维护(BaseInfo.dll)/U_ZdyAttachPB.pas

558 lines
16 KiB
ObjectPascal
Raw Normal View History

2025-04-16 09:11:01 +08:00
unit U_ZdyAttachPB;
interface
uses
2025-06-11 11:06:19 +08:00
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
ComObj, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB,
ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin,
2025-04-16 09:11:01 +08:00
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,
2025-06-11 11:06:19 +08:00
IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
cxTextEdit, Menus, cxLookAndFeelPainters, cxButtons, cxLookAndFeels,
cxNavigator, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint,
dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide,
dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy,
dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian,
dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis,
dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black,
dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue,
dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray,
dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic,
dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust,
dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters,
dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue,
dxSkinscxPCPainter;
2025-04-16 09:11:01 +08:00
type
2025-06-11 11:06:19 +08:00
FdDy = record
inc: integer; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>׽<EFBFBD><D7BD>־<EFBFBD><D6BE><EFBFBD>
FDdys: string[32]; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD>
FdDysName: string[32]; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD>
end;
2025-04-16 09:11:01 +08:00
TfrmZdyAttachPB = 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;
ZdyName: TEdit;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_HZ: TDataSource;
CDS_HZ: TClientDataSet;
ToolButton3: TToolButton;
v2Column6: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
v2Column4: TcxGridDBColumn;
v2Column9: TcxGridDBColumn;
Label1: TLabel;
ZdyCode: TEdit;
ToolButton4: TToolButton;
Label2: TLabel;
DEFstr5: TComboBox;
v2Column7: TcxGridDBColumn;
v2Column11: TcxGridDBColumn;
v2Column13: TcxGridDBColumn;
OpenDialog1: TOpenDialog;
ToolButton5: TToolButton;
v2Mrate: TcxGridDBColumn;
v2Column14: TcxGridDBColumn;
v2Column15: TcxGridDBColumn;
ToolButton6: TToolButton;
Panel2: TPanel;
RadioGroup1: TRadioGroup;
Label4: TLabel;
cxButton1: TcxButton;
cxButton2: TcxButton;
Tv2Column1: TcxGridDBColumn;
2025-05-12 15:20:41 +08:00
Tv2Column3: TcxGridDBColumn;
Tv2Column4: TcxGridDBColumn;
Tv2Column5: TcxGridDBColumn;
2025-06-25 15:16:04 +08:00
ToolButton7: TToolButton;
CDS_LM: TClientDataSet;
2025-04-16 09:11:01 +08:00
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 ZdyNameChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure cxButton2Click(Sender: TObject);
procedure cxButton1Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
2025-06-25 15:16:04 +08:00
procedure ToolButton7Click(Sender: TObject);
2025-04-16 09:11:01 +08:00
private
{ Private declarations }
procedure InitGrid();
public
2025-06-11 11:06:19 +08:00
fkhType: string;
2025-04-16 09:11:01 +08:00
dFdDy: array[0..20] of FdDy; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
end;
var
frmZdyAttachPB: TfrmZdyAttachPB;
implementation
2025-06-11 11:06:19 +08:00
2025-04-16 09:11:01 +08:00
uses
2025-06-11 11:06:19 +08:00
U_DataLink, U_Fun, U_ZDYHelp, U_ZdyAttInputPB;
2025-04-16 09:11:01 +08:00
{$R *.dfm}
procedure TfrmZdyAttachPB.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
2025-06-11 11:06:19 +08:00
Filtered := False;
2025-04-16 09:11:01 +08:00
Close;
SQL.Clear;
sql.Add(' select ATID,ZdyName,ZdyCode,DEFstr1,DEFstr2,defNote1,Mrate,defNote2,defNote3,DEFstr3,DEFstr5,DEFstr4,');
sql.Add(' DEFstr6,DEFstr7,DEFstr8,Note,DEFstr4,DEFstr5,defflt1,CPhh,Filler,FillTime ');
sql.Add(' from KH_Zdy_Attachment where Type=''CP'' and DEFstr5=''<27><><EFBFBD><EFBFBD>'' ');
2025-06-11 11:06:19 +08:00
sql.Add(' and isnull(khType,'''')=' + quotedstr(trim(fkhType)));
2025-04-16 09:11:01 +08:00
sql.Add(' order by zdyName,dbo.getNum(Defstr3) ');
// sql.Add(' order by zdyName ');
Open;
end;
2025-06-11 11:06:19 +08:00
SCreateCDS20(ADOQueryMain, CDS_HZ);
SInitCDSData20(ADOQueryMain, CDS_HZ);
2025-04-16 09:11:01 +08:00
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmZdyAttachPB.FormDestroy(Sender: TObject);
begin
2025-06-11 11:06:19 +08:00
frmZdyAttachPB := nil;
2025-04-16 09:11:01 +08:00
end;
procedure TfrmZdyAttachPB.FormClose(Sender: TObject; var Action: TCloseAction);
begin
2025-06-11 11:06:19 +08:00
Action := caFree;
2025-04-16 09:11:01 +08:00
end;
procedure TfrmZdyAttachPB.TBCloseClick(Sender: TObject);
begin
2025-06-25 15:16:04 +08:00
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>131', Tv2, '<27><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>131');
2025-04-16 09:11:01 +08:00
Close;
end;
2025-06-11 11:06:19 +08:00
2025-04-16 09:11:01 +08:00
procedure TfrmZdyAttachPB.TBDelClick(Sender: TObject);
begin
2025-06-11 11:06:19 +08:00
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
2025-04-16 09:11:01 +08:00
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
2025-06-11 11:06:19 +08:00
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) + '''');
2025-04-16 09:11:01 +08:00
ExecSQL;
end;
2025-06-25 15:16:04 +08:00
end;
2025-04-16 09:11:01 +08:00
CDS_HZ.Delete;
end;
procedure TfrmZdyAttachPB.FormShow(Sender: TObject);
begin
2025-06-25 15:16:04 +08:00
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>131', Tv2, '<27><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>131');
2025-04-16 09:11:01 +08:00
InitGrid();
end;
procedure TfrmZdyAttachPB.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZdyAttachPB.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
2025-06-11 11:06:19 +08:00
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_HZ);
SInitCDSData20(ADOQueryMain, CDS_HZ);
2025-04-16 09:11:01 +08:00
end;
end;
procedure TfrmZdyAttachPB.ZdyNameChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmZdyAttachPB.ToolButton1Click(Sender: TObject);
begin
2025-06-11 11:06:19 +08:00
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid2);
2025-04-16 09:11:01 +08:00
// SelExportData(Tv2,ADOQueryMain,'<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>');
end;
procedure TfrmZdyAttachPB.ToolButton4Click(Sender: TObject);
begin
try
2025-06-11 11:06:19 +08:00
frmZdyAttInputPB := TfrmZdyAttInputPB.Create(Application);
2025-04-16 09:11:01 +08:00
with frmZdyAttInputPB do
begin
2025-06-11 11:06:19 +08:00
FCYID := Trim(Self.CDS_HZ.fieldbyname('ATID').AsString);
fkhType := self.fkhType;
if ShowModal = 1 then
2025-04-16 09:11:01 +08:00
begin
TBRafresh.Click;
end;
end;
finally
frmZdyAttInputPB.Free;
end;
end;
procedure TfrmZdyAttachPB.ToolButton3Click(Sender: TObject);
begin
try
2025-06-11 11:06:19 +08:00
frmZdyAttInputPB := TfrmZdyAttInputPB.Create(Application);
2025-04-16 09:11:01 +08:00
with frmZdyAttInputPB do
begin
2025-06-11 11:06:19 +08:00
FCYID := '';
fkhType := self.fkhType;
if ShowModal = 1 then
2025-04-16 09:11:01 +08:00
begin
TBRafresh.Click;
2025-06-11 11:06:19 +08:00
end;
end;
2025-04-16 09:11:01 +08:00
finally
2025-06-11 11:06:19 +08:00
frmZdyAttInputPB.Free;
2025-04-16 09:11:01 +08:00
end;
end;
procedure TfrmZdyAttachPB.ToolButton5Click(Sender: TObject);
var
2025-06-11 11:06:19 +08:00
excelApp, WorkBook: Variant;
i, j, k, ExcelRowCount: integer;
maxId: string;
2025-04-16 09:11:01 +08:00
begin
try
2025-06-11 11:06:19 +08:00
excelApp := CreateOleObject('Excel.Application');
openDialog1.Filter := '*.CSV;*.xls';
if opendialog1.Execute then
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
WorkBook := excelApp.WorkBooks.Open(OpenDialog1.FileName);
2025-04-16 09:11:01 +08:00
end
else
exit;
2025-06-11 11:06:19 +08:00
excelApp.Visible := false;
ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count;
2025-04-16 09:11:01 +08:00
except
2025-06-11 11:06:19 +08:00
application.MessageBox('<27><><EFBFBD><EFBFBD>EXCEL<45><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
2025-04-16 09:11:01 +08:00
exit;
end;
try
2025-06-11 11:06:19 +08:00
k := 0;
for i := 1 to 20 do
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
if trim(excelApp.Cells[1, i].value) = '' then
break;
if trim(excelApp.Cells[1, i].value) = '<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>' then
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
dFdDy[k].inc := i;
dFdDy[k].FDdys := 'ZdyCode';
dFdDy[k].FdDysName := '<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>';
2025-04-16 09:11:01 +08:00
end;
2025-06-11 11:06:19 +08:00
if trim(excelApp.Cells[1, i].value) = '<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>' then
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
dFdDy[k].inc := i;
dFdDy[k].FDdys := 'ZdyName';
dFdDy[k].FdDysName := '<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>';
2025-04-16 09:11:01 +08:00
end;
2025-06-11 11:06:19 +08:00
if trim(excelApp.Cells[1, i].value) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
dFdDy[k].inc := i;
dFdDy[k].FDdys := 'defNote3';
dFdDy[k].FdDysName := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
2025-04-16 09:11:01 +08:00
end;
2025-06-11 11:06:19 +08:00
if trim(excelApp.Cells[1, i].value) = '<27><>ɫ' then
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
dFdDy[k].inc := i;
dFdDy[k].FDdys := 'DEFstr3';
dFdDy[k].FdDysName := '<27><>ɫ';
2025-04-16 09:11:01 +08:00
end;
2025-06-11 11:06:19 +08:00
if trim(excelApp.Cells[1, i].value) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ' then
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
dFdDy[k].inc := i;
dFdDy[k].FDdys := 'DEFstr6';
dFdDy[k].FdDysName := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ';
2025-04-16 09:11:01 +08:00
end;
2025-06-11 11:06:19 +08:00
if trim(excelApp.Cells[1, i].value) = '<27><><EFBFBD><EFBFBD>' then
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
dFdDy[k].inc := i;
dFdDy[k].FDdys := 'DEFstr5';
dFdDy[k].FdDysName := '<27><><EFBFBD><EFBFBD>';
2025-04-16 09:11:01 +08:00
end;
2025-06-11 11:06:19 +08:00
if trim(excelApp.Cells[1, i].value) = '<27><><EFBFBD><EFBFBD>' then
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
dFdDy[k].inc := i;
dFdDy[k].FDdys := 'DEFstr1';
dFdDy[k].FdDysName := '<27><><EFBFBD><EFBFBD>';
2025-04-16 09:11:01 +08:00
end;
2025-06-11 11:06:19 +08:00
if trim(excelApp.Cells[1, i].value) = '<27>ɷ<EFBFBD>' then
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
dFdDy[k].inc := i;
dFdDy[k].FDdys := 'DEFstr2';
dFdDy[k].FdDysName := '<27>ɷ<EFBFBD>';
2025-04-16 09:11:01 +08:00
end;
2025-06-11 11:06:19 +08:00
k := k + 1;
2025-04-16 09:11:01 +08:00
end;
except
end;
ADOQueryCmd.Connection.BeginTrans;
try
2025-06-11 11:06:19 +08:00
for i := 2 to ExcelRowCount do
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
if GetLSNo(ADOQueryCmd, maxId, 'AT', 'KH_Zdy_Attachment', 4, 1) = False then
2025-04-16 09:11:01 +08:00
begin
ADOQueryCmd.Connection.RollbackTrans;
2025-06-11 11:06:19 +08:00
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
2025-04-16 09:11:01 +08:00
Exit;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from KH_Zdy_Attachment where 1=2');
open;
end;
ADOQueryCmd.Append;
2025-06-11 11:06:19 +08:00
for j := 0 to k - 1 do
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
ADOQueryCmd.fieldbyname(dFdDy[j].FDdys).Value := excelApp.Cells[i, dFdDy[j].inc].Value;
2025-04-16 09:11:01 +08:00
end;
2025-06-11 11:06:19 +08:00
ADOQueryCmd.FieldByName('ATID').Value := Trim(maxId);
ADOQueryCmd.FieldByName('zdyCode').Value := Trim(maxId);
ADOQueryCmd.FieldByName('khType').Value := Trim(fkhType);
ADOQueryCmd.FieldByName('Type').Value := 'CP';
ADOQueryCmd.FieldByName('Filler').Value := Trim(DName);
2025-04-16 09:11:01 +08:00
ADOQueryCmd.Post;
end;
WorkBook.Close;
2025-06-11 11:06:19 +08:00
excelApp.Quit;
excelApp := Unassigned;
2025-04-16 09:11:01 +08:00
WorkBook := Unassigned;
ADOQueryCmd.Connection.CommitTrans;
InitGrid();
except
WorkBook.Close;
2025-06-11 11:06:19 +08:00
excelApp.Quit;
excelApp := Unassigned;
2025-04-16 09:11:01 +08:00
WorkBook := Unassigned;
2025-06-11 11:06:19 +08:00
ADOQueryCmd.Connection.RollbackTrans;
2025-04-16 09:11:01 +08:00
end;
end;
procedure TfrmZdyAttachPB.cxButton2Click(Sender: TObject);
begin
2025-06-11 11:06:19 +08:00
Panel2.Visible := false;
2025-04-16 09:11:01 +08:00
end;
procedure TfrmZdyAttachPB.cxButton1Click(Sender: TObject);
var
2025-06-11 11:06:19 +08:00
fPrintFile: string;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
2025-04-16 09:11:01 +08:00
begin
2025-06-11 11:06:19 +08:00
if CDS_HZ.IsEmpty then
exit;
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(CDS_HZ.fieldbyname('ZDYCODE').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);
exit;
end;
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + trim(RadioGroup1.Items[RadioGroup1.ItemIndex]) + '.rmf';
2025-04-16 09:11:01 +08:00
if FileExists(fPrintFile) then
begin
2025-06-11 11:06:19 +08:00
RMVariables['QRBARCODE'] := fImagePath;
2025-04-16 09:11:01 +08:00
RM1.LoadFromFile(fPrintFile);
// Rm2.DefaultCopies:=strtointdef(trim(ComboBox1.Text),1);
// RM1.ShowReport;
RM1.PrintReport;
end
else
2025-06-11 11:06:19 +08:00
Application.MessageBox(PChar(<><C3BB><EFBFBD>ҵ<EFBFBD><D2B5>ļ<EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
2025-04-16 09:11:01 +08:00
end;
procedure TfrmZdyAttachPB.ToolButton6Click(Sender: TObject);
begin
2025-06-11 11:06:19 +08:00
Panel2.Left := (self.Width - Panel2.Width) div 2;
Panel2.Top := (self.Height - Panel2.Height) div 2 - 100;
Panel2.Visible := true;
2025-04-16 09:11:01 +08:00
end;
2025-06-25 15:16:04 +08:00
procedure TfrmZdyAttachPB.ToolButton7Click(Sender: TObject);
var
excelApp, WorkBook: Variant;
i, j, k, LX, ExcelRowCount: integer;
maxId, FCPID, FCPName, t1, t2, t3, FFID: string;
begin
with CDS_LM do
begin
FieldDefs.Clear;
FieldDefs.Add('LXH', ftInteger, 0);
FieldDefs.Add('lCode', ftString, 40);
FieldDefs.Add('LName', ftString, 40);
close;
CreateDataSet;
end;
try
excelApp := CreateOleObject('Excel.Application');
openDialog1.Filter := '*.CSV;*.xls';
if opendialog1.Execute then
begin
WorkBook := excelApp.WorkBooks.Open(OpenDialog1.FileName);
end
else
exit;
excelApp.Visible := false;
ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count;
except
application.MessageBox('<27><><EFBFBD><EFBFBD>EXCEL<45><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
exit;
end;
CDS_LM.EmptyDataSet;
for j := 0 to Tv2.ColumnCount - 1 do
begin
with CDS_LM do
begin
Append;
FieldByName('LCode').Value := trim(Tv2.Columns[j].DataBinding.FieldName);
FieldByName('LName').Value := trim(Tv2.Columns[j].Caption);
Post;
end;
end;
try
for i := 1 to 50 do
begin
if trim(WorkBook.WorkSheets[1].Cells[1, i].value) = '' then
continue;
if CDS_LM.Locate('LName', trim(WorkBook.WorkSheets[1].Cells[1, i].value), []) then
begin
with CDS_LM do
begin
Edit;
FieldByName('LXH').Value := i;
Post;
end;
end;
end;
except
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
exit;
end;
ADOQueryCmd.Connection.BeginTrans;
try
for i := 2 to ExcelRowCount do
begin
if GetLSNo(ADOQueryCmd, maxId, 'AT', 'KH_Zdy_Attachment', 4, 1) = False then
begin
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('select * from KH_Zdy_Attachment where 1=2');
open;
end;
ADOQueryCmd.Append;
with CDS_HZ do
begin
Append;
CDS_LM.First;
while not CDS_LM.Eof do
begin
if CDS_LM.FieldByName('LXH').AsInteger > 0 then
ADOQueryCmd.fieldbyname(CDS_LM.FieldByName('LCode').AsString).Value := WorkBook.WorkSheets[1].Cells[i, CDS_LM.FieldByName('LXH').AsInteger].Value;
ADOQueryCmd.FieldByName('ATID').Value := Trim(maxId);
ADOQueryCmd.FieldByName('Filler').Value := Trim(DName);
ADOQueryCmd.FieldByName('FillTime').Value := SGetServerDateTime(ADOQueryTemp);
ADOQueryCmd.FieldByName('Type').Value := 'CP';
CDS_LM.Next;
end;
ADOQueryCmd.Post;
end;
end;
WorkBook.Close;
excelApp.Quit;
excelApp := Unassigned;
WorkBook := Unassigned;
ADOQueryCmd.Connection.CommitTrans;
InitGrid();
except
WorkBook.Close;
excelApp.Quit;
excelApp := Unassigned;
WorkBook := Unassigned;
ADOQueryCmd.Connection.RollbackTrans;
end;
end;
2025-04-16 09:11:01 +08:00
end.