D7DJkairan/合同管理2(ContractManagement.dll)/U_CPManagePBsel.pas

1134 lines
30 KiB
ObjectPascal
Raw Permalink Normal View History

2025-07-19 13:52:55 +08:00
unit U_CPManagePBsel;
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, jpeg, U_SLT, ComObj, Menus,
cxButtonEdit, cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters,
cxTLdxBarBuiltInMenu, cxNavigator;
type
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;
TfrmCPManagePBsel = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
DataSource1: TDataSource;
ADOQueryTree20: TADOQuery;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
cxGridPopupMenu1: TcxGridPopupMenu;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxSplitter1: TcxSplitter;
Panel1: TPanel;
Label2: TLabel;
CYID: TEdit;
TBFilter: TToolButton;
v1CYNo: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
DataSource2: TDataSource;
ADOQueryMain: TADOQuery;
CDS_Main: TClientDataSet;
v1Column12: TcxGridDBColumn;
TBExport: TToolButton;
ToolButton4: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
ODPat: TOpenDialog;
IdFTP1: TIdFTP;
SaveDialog1: TSaveDialog;
TBUP: TToolButton;
Label3: TLabel;
CYNO: TEdit;
TBCopy: TToolButton;
Panel2: TPanel;
v1Column19: TcxGridDBColumn;
ADOQueryTree: TClientDataSet;
Panel5: TPanel;
cxDBTreeList1: TcxDBTreeList;
cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
Label11: TLabel;
Label12: TLabel;
ComboBox1: TComboBox;
Panel3: TPanel;
GroupBox1: TGroupBox;
ScrollBox1: TScrollBox;
adoqueryPicture: TADOQuery;
ToolButton8: TToolButton;
v1Column39: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
Label4: TLabel;
CYName: TEdit;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBMLEdit: TToolButton;
Edit1: TEdit;
Label5: TLabel;
CYSpec: TEdit;
Label6: TLabel;
CYCF: TEdit;
Label7: TLabel;
CYNote: TEdit;
TBImport: TToolButton;
OpenDialog1: TOpenDialog;
Label9: TLabel;
Label10: TLabel;
CYKZ: TEdit;
CarType: TEdit;
Label8: TLabel;
CYMF: TEdit;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
CDS_Sub: TClientDataSet;
DS_Sub: TDataSource;
ToolButton1: TToolButton;
v1Column11: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
v1Column16: TcxGridDBColumn;
ToolButton2: TToolButton;
Tv1Column1: TcxGridDBColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cxDBTreeList1DblClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBFilterClick(Sender: TObject);
procedure CYIDKeyPress(Sender: TObject; var Key: Char);
procedure CYNoChange(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure TBUPClick(Sender: TObject);
procedure TBImportClick(Sender: TObject);
procedure TBCopyClick(Sender: TObject);
procedure CYNOKeyPress(Sender: TObject; var Key: Char);
procedure ToolButton8Click(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure TBMLEditClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure ToolButton1Click(Sender: TObject);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure ToolButton2Click(Sender: TObject);
private
{ Private declarations }
CPID: string;
PState: Integer;
FCPID, FTopID: string;
FJurisdiction: string;
procedure SetJurisdiction();
procedure InitTree();
procedure InitGrid();
procedure InitSubGrid();
procedure ReadINIFile();
procedure InitImage();
public
dFdDy: array[0..20] of FdDy; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{ Public declarations }
CANSHU1: string;
end;
var
frmCPManagePBsel: TfrmCPManagePBsel;
Mach: array of TfrmSlt;
implementation
uses
U_DataLink, U_Fun;
//U_CPAdd, U_FileUp, U_YPCR, U_CPAddPNPB, U_YPTypeHelp,
//U_YPGL_YGDJ;
{$R *.dfm}
procedure TfrmCPManagePBsel.SetJurisdiction();
begin
if trim(self.Caption) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ¼<CFA2><C2BC>' then
begin
FJurisdiction := '<27>Ǽ<EFBFBD>';
end
else if trim(self.Caption) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>' then
begin
FJurisdiction := '<27><><EFBFBD><EFBFBD>';
end
else
begin
FJurisdiction := '<27><>ѯ';
end;
TBAdd.Visible := false;
TBCopy.Visible := false;
TBEdit.Visible := false;
TBMLEdit.Visible := false;
TBDel.Visible := false;
// TBImport.Visible := false;
TBUP.Visible := false;
TBExport.Visible := false;
if FJurisdiction = '<27><><EFBFBD><EFBFBD>' then
begin
TBAdd.Visible := true;
TBCopy.Visible := true;
TBEdit.Visible := true;
// TBMLEdit.Visible := true;
TBDel.Visible := true;
// TBImport.Visible := true;
TBUP.Visible := true;
TBExport.Visible := true;
end
else if FJurisdiction = '<27>Ǽ<EFBFBD>' then
begin
TBAdd.Visible := true;
TBCopy.Visible := true;
TBEdit.Visible := true;
// TBMLEdit.Visible := true;
TBDel.Visible := true;
// TBImport.Visible := true;
TBUP.Visible := true;
TBExport.Visible := true;
end;
end;
procedure TfrmCPManagePBsel.InitTree();
var
i: Integer;
begin
with ADOQueryTree20 do
begin
Close;
SQL.Clear;
SQL.Add('select * from CP_Type order by CPlevel,CPOrder,CPName');
Open;
end;
SCreateCDS20(ADOQueryTree20, ADOQueryTree);
SInitCDSData20(ADOQueryTree20, ADOQueryTree);
cxDBTreeList1.Items[0].Expand(false);
//cxDBTreeList1.Items[1].Expand(False);
end;
procedure TfrmCPManagePBsel.InitSubGrid();
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add(' select * from CP_YDang_PBMX where CYID=''' + Trim(CDS_Main.fieldbyname('CYID').AsString) + '''');
Open;
end;
SCreateCDS20(ADOQueryTemp, CDS_Sub);
SInitCDSData20(ADOQueryTemp, CDS_Sub);
end;
procedure TfrmCPManagePBsel.InitGrid();
begin
Panel2.Visible := True;
Panel2.Refresh;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
// SQL.Add('exec P_Select_CP_YDang :Code,:PState,:CYType');
// Parameters.ParamByName('Code').Value := '';
// Parameters.ParamByName('PState').Value := 0;
// Parameters.ParamByName('CYType').Value := Trim(ADOQueryTree.fieldbyname('CPID').AsString);
// SQL.Add('select * from CP_YDang ');
SQL.Add('select A.*,B.CPName from CP_YDang A inner join CP_Type B On A.CYType=B.CPID where 1=1');
if trim(canshu1) = <><C2BC>' then
sql.Add('and filler=''' + trim(DNAME) + '''');
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
Panel2.Visible := False;
end;
procedure TfrmCPManagePBsel.FormClose(Sender: TObject; var Action: TCloseAction);
var
i, j: integer;
begin
j := length(Mach);
if j > 0 then
begin
for i := 0 to j - 1 do
begin
Mach[i].free;
end;
end;
SetLength(Mach, 0);
// writeCxGrid(self.Caption+tv1.Name,tv1);
// Application := mainApplication;
Action := cafree;
end;
procedure TfrmCPManagePBsel.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(self.Caption, Tv1, '<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>');
if DirectoryExists(ExtractFileDir('D:\Right1209')) then
winexec('cmd /c rd /s /q D:\Right1209', sw_hide);
Close;
end;
procedure TfrmCPManagePBsel.TBDelClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
if FJurisdiction = '<27>Ǽ<EFBFBD>' then
begin
if Trim(CDS_Main.fieldbyname('CYID').AsString) <> '' then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete CP_YDang where CYID=''' + Trim(CDS_Main.fieldbyname('CYID').AsString) + '''');
ExecSQL;
end;
end;
CDS_Main.Delete;
end;
if FJurisdiction = '<27><><EFBFBD><EFBFBD>' then
begin
while CDS_Main.Locate('SSel', true, []) do
begin
if Trim(CDS_Main.fieldbyname('CYID').AsString) <> '' then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete CP_YDang where CYID=''' + Trim(CDS_Main.fieldbyname('CYID').AsString) + '''');
ExecSQL;
end;
end;
CDS_Main.Delete;
end;
end;
end;
procedure TfrmCPManagePBsel.FormShow(Sender: TObject);
begin
Panel3.Align := alclient;
InitTree();
ReadCxGrid(self.Caption, Tv1, '<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>');
SetJurisdiction();
//
// with ADOQueryMain do
// begin
// Filtered := False;
// Close;
// SQL.Clear;
// SQL.Add('exec P_Select_CP_YDang :Code,:PState,:CYType');
// Parameters.ParamByName('Code').Value := '';
// Parameters.ParamByName('PState').Value := 0;
// Parameters.ParamByName('CYType').Value := 'XXXXXXX';
// Open;
// end;
// SCreateCDS20(ADOQueryMain, CDS_Main);
// SInitCDSData20(ADOQueryMain, CDS_Main);
InitGrid();
end;
procedure TfrmCPManagePBsel.cxDBTreeList1DblClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCPManagePBsel.TBRafreshClick(Sender: TObject);
begin
// InitTree();
InitGrid();
end;
procedure TfrmCPManagePBsel.TBFilterClick(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
end;
end;
procedure TfrmCPManagePBsel.CYIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
if Trim(CYID.Text) = '' then
Exit;
with ADOQueryMain do
begin
Close;
Filtered := False;
sql.Clear;
sql.Add('exec P_Select_CP_YDang :Code,1,'''' ');
Parameters.ParamByName('Code').Value := Trim(CYID.Text);
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
CYID.Text := '';
ADOQueryTree.Locate('CPID', CPID, []);
end;
end;
procedure TfrmCPManagePBsel.CYNoChange(Sender: TObject);
begin
//if Length(Trim(TEdit(Sender).Text))<4 then Exit;
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
end;
end;
procedure TfrmCPManagePBsel.TBExportClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
TcxGridToExcel('<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>', cxGrid1);
end;
procedure TfrmCPManagePBsel.ToolButton4Click(Sender: TObject);
var
fPrintFile, FFCYID: string;
DPS, i, j: Integer;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
CYNO.SetFocus;
if CDS_Main.IsEmpty then
Exit;
if trim(ComboBox1.Text) = '' then
begin
Application.MessageBox('<27><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
exit;
end;
//if CDS_CYNO.IsEmpty then Exit;
if Trim(Edit1.Text) <> '' then
begin
if TryStrToInt(Edit1.Text, i) = False then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
exit;
end;
end;
ExportFtErpFile(trim(ComboBox1.Text) + '.rmf', ADOQueryTemp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + trim(ComboBox1.Text) + '.rmf';
// CDS_Main.DisableControls;
DPS := 0;
FFCYID := '';
i := 1;
if Trim(Edit1.Text) = '' then
begin
j := 1;
end
else
begin
j := StrToInt(Edit1.Text);
end;
with CDS_Main do
begin
First;
while not Eof do
begin
if CDS_Main.FieldByName('SSel').AsBoolean = True then
begin
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(CDS_Main.fieldbyname('CYID').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;
RMVariables['QRBARCODE'] := fImagePath;
for i := 1 to j do
begin
if FileExists(fPrintFile) then
begin
RM1.ShowPrintDialog := False;
RM1.LoadFromFile(fPrintFile);
RM1.PrintReport;
// RM1.ShowReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
Exit;
end;
end;
if DPS = 0 then
begin
FFCYID := Trim(CDS_Main.fieldbyname('CYID').AsString);
end;
end;
//CDS_Main.Locate('CYID',Trim(CDS_CYNO.fieldbyname('CYID').AsString),[]);
Next;
end;
end;
CDS_Main.EnableControls;
CDS_Main.Locate('CYID', FFCYID, []);
Edit1.Text := '1';
end;
procedure TfrmCPManagePBsel.TBUPClick(Sender: TObject);
begin
// try
// frmFileUp := TfrmFileUp.Create(Application);
// with frmFileUp do
// begin
// Code.Text := Trim(Self.CDS_Main.fieldbyname('CYNO').AsString);
// CYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString);
//
// if ShowModal = 1 then
// begin
//// Self.InitGrid();
//// Self.CDS_Main.Locate('CYID', CYID, []);
// end;
// end;
// finally
// frmFileUp.Free;
// end;
// InitImage();
end;
procedure TfrmCPManagePBsel.TBImportClick(Sender: TObject);
var
excelApp, WorkBook: Variant;
i, j, k, LX, ExcelRowCount: integer;
maxId, FCPID, FCPName, t1, t2, t3: string;
begin
FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString);
FCPName := Trim(Self.ADOQueryTree.fieldbyname('CPName').AsString);
if GetLSNo(ADOQueryCmd, maxId, 'Y', 'CP_YDang', 2, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if trim(FCPID) = '' then
exit;
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;
try
k := 0;
for i := 1 to 30 do
begin
if trim(excelApp.Cells[1, i].value) = '' then
break;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󶨽<EFBFBD><F3B6A8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ֶκ<D6B6><CEBA><EFBFBD><EFBFBD><EFBFBD>
for j := 0 to Tv1.ColumnCount - 1 do
begin
if trim(excelApp.Cells[1, i].value) = trim(Tv1.Columns[j].Caption) then
begin
dFdDy[k].inc := i;
dFdDy[k].FDdys := trim(Tv1.Columns[j].DataBinding.FieldName);
dFdDy[k].FdDysName := trim(Tv1.Columns[j].Caption);
end;
end;
k := k + 1;
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
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CP_YDang where 1=2');
open;
end;
if trim(excelApp.Cells[i, LX].value) <> trim(FCPName) then
continue;
ADOQueryCmd.Append;
for j := 0 to k - 1 do
begin
if trim(dFdDy[j].FDdys) = '' then
continue;
t1 := dFdDy[j].FDdys;
t2 := inttostr(dFdDy[j].inc);
t3 := excelApp.Cells[i, dFdDy[j].inc].Value;
if trim(dFdDy[j].FDdys) <> 'CPName' then
ADOQueryCmd.fieldbyname(dFdDy[j].FDdys).Value := excelApp.Cells[i, dFdDy[j].inc].Value;
end;
ADOQueryCmd.FieldByName('CYValid').Value := 'Y';
ADOQueryCmd.FieldByName('CYType').Value := Trim(FCPID);
ADOQueryCmd.FieldByName('CYID').Value := maxId + inttostr(i);
ADOQueryCmd.Post;
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;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
exit;
end;
end;
procedure TfrmCPManagePBsel.ReadINIFile();
var
programIni: Tinifile; //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
FileName: string;
begin
FileName := ExtractFilePath(Paramstr(0)) + 'SYSTEMSET.INI';
programIni := Tinifile.create(FileName);
server := programIni.ReadString('SERVER', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ', '127.0.0.1');
programIni.Free;
end;
procedure TfrmCPManagePBsel.InitImage();
var
i, j: integer;
jpg: TJpegImage;
myStream: TADOBlobStream;
begin
j := length(Mach);
if j > 0 then
begin
for i := 0 to j - 1 do
begin
Mach[i].free;
end;
end;
SetLength(Mach, 0);
if CDS_sub.IsEmpty then
exit;
try
with adoqueryPicture do
begin
close;
sql.Clear;
sql.Add(' select A.TFID,A.WBID,A.FilesOther,B.FileName from TP_File A,XD_File B ');
sql.add('where A.TFID =B.XFID and A.WBID=' + quotedstr(trim(CDS_Main.fieldbyname('CYID').AsString)));
open;
end;
j := adoqueryPicture.RecordCount;
if j < 1 then
exit;
adoqueryPicture.DisableControls;
adoqueryPicture.First;
SetLength(Mach, j);
jpg := TJpegImage.Create();
for i := 0 to j - 1 do
begin
if triM(adoqueryPicture.fieldbyname('FilesOther').AsString) <> '' then
begin
myStream := tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')), bmread);
jpg.LoadFromStream(myStream);
Mach[i] := TfrmSlt.Create(Self);
Mach[i].Name := trim(adoqueryPicture.fieldbyname('TFID').AsString);
Mach[i].Parent := ScrollBox1;
Mach[i].Left := 0 + i * 165;
Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString, adoqueryPicture.fieldbyname('FileName').AsString, jpg);
end;
adoqueryPicture.Next;
end;
adoqueryPicture.EnableControls;
finally
jpg.free;
application.ProcessMessages;
end;
end;
procedure TfrmCPManagePBsel.TBCopyClick(Sender: TObject);
begin
// try
// frmCPAddPNPB := TfrmCPAddPNPB.Create(Application);
// with frmCPAddPNPB do
// begin
// CopyInt := 1;
// FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString);
// FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString);
// FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString);
// if ShowModal = 1 then
// begin
// Self.InitGrid();
// end;
// end;
// finally
// frmCPAddPNPB.Free;
// end;
end;
procedure TfrmCPManagePBsel.CYNOKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
if Trim(CYNO.Text) = '' then
Exit;
if Length(Trim(CYNO.Text)) < 4 then
Exit;
with ADOQueryMain do
begin
Close;
Filtered := False;
sql.Clear;
sql.Add('exec P_Select_CP_YDang :Code,2,'''' ');
Parameters.ParamByName('Code').Value := '%' + Trim(CYNO.Text) + '%';
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
CYID.Text := '';
ADOQueryTree.Locate('CPID', CPID, []);
end;
end;
procedure TfrmCPManagePBsel.ToolButton8Click(Sender: TObject);
var
fPrintFile, FFCYID: string;
DPS, i, j: Integer;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
CYNO.SetFocus;
if CDS_Main.IsEmpty then
Exit;
if trim(ComboBox1.Text) = '' then
begin
Application.MessageBox('<27><>Ʒ<EFBFBD><C6B7>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
exit;
end;
//if CDS_CYNO.IsEmpty then Exit;
if Trim(Edit1.Text) <> '' then
begin
if TryStrToInt(Edit1.Text, i) = False then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
exit;
end;
end;
ExportFtErpFile(trim(ComboBox1.Text) + '.rmf', ADOQueryTemp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + trim(ComboBox1.Text) + '.rmf';
CDS_Main.DisableControls;
DPS := 0;
FFCYID := '';
i := 1;
if Trim(Edit1.Text) = '' then
begin
j := 1;
end
else
begin
j := StrToInt(Edit1.Text);
end;
with CDS_Main do
begin
First;
while not Eof do
begin
if CDS_Main.FieldByName('SSel').AsBoolean = True then
begin
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(CDS_Main.fieldbyname('CYID').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;
RMVariables['QRBARCODE'] := fImagePath;
for i := 1 to j do
begin
if FileExists(fPrintFile) then
begin
RM1.ShowPrintDialog := True;
RM1.LoadFromFile(fPrintFile);
// RM1.PrintReport;
RM1.ShowReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + ExtractFilePath(Application.ExeName) + 'Report\<5C><>Ʒ<EFBFBD><C6B7>ǩ.rmf'), '<27><>ʾ', 0);
Exit;
end;
end;
if DPS = 0 then
begin
FFCYID := Trim(CDS_Main.fieldbyname('CYID').AsString);
end;
end;
//CDS_Main.Locate('CYID',Trim(CDS_CYNO.fieldbyname('CYID').AsString),[]);
Next;
end;
end;
CDS_Main.EnableControls;
CDS_Main.Locate('CYID', FFCYID, []);
Edit1.Text := '1';
end;
procedure TfrmCPManagePBsel.TBAddClick(Sender: TObject);
var
i: Integer;
FieldName: string;
begin
// try
// frmCPAddPNPB := TfrmCPAddPNPB.Create(Application);
// with frmCPAddPNPB do
// begin
// CopyInt := 0;
// FCYID := '';
// FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString);
// FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString);
// FCPName := Trim(Self.ADOQueryTree.fieldbyname('CPName').AsString);
// if ShowModal = 1 then
// begin
// Self.InitGrid();
// end;
// end;
// finally
// frmCPAddPNPB.Free;
// end;
end;
procedure TfrmCPManagePBsel.TBEditClick(Sender: TObject);
begin
// if CDS_Main.IsEmpty then
// Exit;
// try
// frmCPAddPNPB := TfrmCPAddPNPB.Create(Application);
// with frmCPAddPNPB do
// begin
// CopyInt := 0;
// FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString);
// FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString);
// FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString);
// if ShowModal = 1 then
// begin
// Self.InitGrid();
// end;
// end;
// finally
// frmCPAddPNPB.Free;
// end;
end;
procedure TfrmCPManagePBsel.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
ToolButton2.Click;
// try
// frmCPAddPNPB := TfrmCPAddPNPB.Create(Application);
// with frmCPAddPNPB do
// begin
// CopyInt := 0;
// FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString);
// FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString);
// FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString);
// FCPName := Trim(Self.ADOQueryTree.fieldbyname('CPName').AsString);
// if FJurisdiction = '<27><>ѯ' then
// begin
// ToolButton1.Visible := False;
// end;
//
// if ShowModal = 1 then
// begin
// Self.CDS_Main.Edit;
// CDS_Main.FieldByName('CPName').Value := FCPName;
// CDS_Main.FieldByName('CYID').Value := FCYID;
// CDS_Main.FieldByName('CYType').Value := FCPID;
// CDS_Main.FieldByName('CYNo').Value := CYNo.Text;
// CDS_Main.FieldByName('CYName').Value := CYName.Text;
//
// Self.CDS_Main.Post;
// end;
// end;
// finally
// frmCPAddPNPB.Free;
// end;
end;
procedure TfrmCPManagePBsel.TBMLEditClick(Sender: TObject);
var
fYPType: string;
begin
// if CDS_Main.IsEmpty then
// exit;
// if CDS_Main.Locate('ssel', true, []) = false then
// begin
// Application.MessageBox('û<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
// Exit;
// end;
// fYPType := '';
//
// frmYPTypeHelp := TfrmYPTypeHelp.create(self);
// with frmYPTypeHelp do
// begin
// if showmodal = 1 then
// begin
// fYPType := trim(ADOQueryHelp.fieldbyname('CPID').asstring);
// end;
// free;
// end;
//
// if trim(fYPType) = '' then
// exit;
//
// try
// with CDS_Main do
// begin
// DisableControls;
// First;
// while not eof do
// begin
// if fieldbyname('ssel').AsBoolean then
// begin
// with ADOQueryCmd do
// begin
// close;
// sql.Clear;
// sql.Add('update CP_YDang SET CYType=''' + trim(fYPType) + ''' ');
// sql.Add('where CYID=' + quotedstr(trim(CDS_Main.fieldbyname('CYID').AsString)));
// execsql;
// end;
// end;
// next;
// end;
// First;
// EnableControls;
// end;
// application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
// initgrid();
// except
// CDS_Main.EnableControls;
// application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
// end;
end;
procedure TfrmCPManagePBsel.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmCPManagePBsel.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmCPManagePBsel.TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if CDS_Main.IsEmpty then
Exit;
InitImage();
end;
procedure TfrmCPManagePBsel.ToolButton1Click(Sender: TObject);
var
excelApp, WorkBook: Variant;
i, j, k, LX, ExcelRowCount: integer;
maxId, FCYID, FCPName, t1, t2, t3: string;
begin
FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString);
if GetLSNo(ADOQueryCmd, maxId, 'P', 'CP_YDang_MX', 2, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if trim(FCPID) = '' then
exit;
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;
try
k := 0;
for i := 1 to 30 do
begin
if trim(excelApp.Cells[1, i].value) = '' then
break;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󶨽<EFBFBD><F3B6A8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ֶκ<D6B6><CEBA><EFBFBD><EFBFBD><EFBFBD>
for j := 0 to Tv1.ColumnCount - 1 do
begin
if trim(excelApp.Cells[1, i].value) = trim(Tv1.Columns[j].Caption) then
begin
dFdDy[k].inc := i;
dFdDy[k].FDdys := trim(Tv1.Columns[j].DataBinding.FieldName);
dFdDy[k].FdDysName := trim(Tv1.Columns[j].Caption);
end;
end;
k := k + 1;
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
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CP_YDang_MX where 1=2');
open;
end;
if trim(excelApp.Cells[i, LX].value) <> trim(FCPName) then
continue;
ADOQueryCmd.Append;
for j := 0 to k - 1 do
begin
if trim(dFdDy[j].FDdys) = '' then
continue;
t1 := dFdDy[j].FDdys;
t2 := inttostr(dFdDy[j].inc);
t3 := excelApp.Cells[i, dFdDy[j].inc].Value;
ADOQueryCmd.fieldbyname(dFdDy[j].FDdys).Value := excelApp.Cells[i, dFdDy[j].inc].Value;
end;
ADOQueryCmd.FieldByName('CYID').Value := Trim(FCYID);
ADOQueryCmd.FieldByName('MXID').Value := maxId + inttostr(i);
ADOQueryCmd.Post;
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;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
exit;
end;
end;
procedure TfrmCPManagePBsel.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
// InitImage();
end;
procedure TfrmCPManagePBsel.ToolButton2Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
ModalResult := 1;
end;
end.