D7myzhenyong/应收应付/U_JCDJEdit.pas
DESKTOP-E401PHE\Administrator 237de1c308 0
2025-08-26 15:25:51 +08:00

513 lines
13 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_JCDJEdit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, DB, ADODB, cxControls, cxContainer, cxEdit,
cxTextEdit, cxCurrencyEdit, BtnEdit, StdCtrls, ExtCtrls, cxStyles,
cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxDBData,
cxButtonEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu,
cxGridPopupMenu, DBClient, cxDropDownEdit, Menus, cxLookAndFeelPainters,
strUtils, cxButtons, cxImage, cxDBEdit, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, ShellAPI, IdFTP, ImgList;
type
TfrmJCDJEdit = class(TForm)
ToolBar1: TToolBar;
TSAVE: TToolButton;
Tclose: TToolButton;
ADOQueryTMP: TADOQuery;
ADOQueryCMD: TADOQuery;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxGridPopupMenu2: TcxGridPopupMenu;
CDS_HZ: TClientDataSet;
ADOQueryMain: TADOQuery;
DS_HZ: TDataSource;
ADOQueryImage: TADOQuery;
DataSource1: TDataSource;
Panel1: TPanel;
Label11: TLabel;
Label5: TLabel;
Label2: TLabel;
Label10: TLabel;
Label13: TLabel;
Note: TMemo;
CRTime: TDateTimePicker;
C_CodeName: TEdit;
KHNAME: TBtnEditA;
OrderNo: TBtnEditA;
FactoryName: TEdit;
Label6: TLabel;
C_CODE: TEdit;
Label17: TLabel;
Label1: TLabel;
JCID: TEdit;
ListView1: TListView;
ToolBar2: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ImageList1: TImageList;
IdFTP1: TIdFTP;
Panel2: TPanel;
procedure TcloseClick(Sender: TObject);
procedure TSAVEClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure QtyKeyPress(Sender: TObject; var Key: Char);
procedure NoteDblClick(Sender: TObject);
procedure KHNAMEBtnClick(Sender: TObject);
procedure OrderNoBtnClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ListView1DblClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
private
procedure savedata();
procedure initdata();
procedure initfj();
{ Private declarations }
public
fkeyNo: string;
fflag: integer;
fSYRName: string;
canshu1: string;
fFlileFlag: string;
{ Public declarations }
end;
var
frmJCDJEdit: TfrmJCDJEdit;
implementation
uses
U_DataLink, U_Fun, U_ZDYHelp, U_ZDYHelpSel, U_ZdyAttachment, U_ZdyAttachGYS,
U_ProductOrderListSel, U_CompressionFun;
{$R *.dfm}
procedure TfrmJCDJEdit.initfj();
var
ListItem: TListItem;
Flag: Cardinal;
info: SHFILEINFOA;
Icon: TIcon;
begin
ListView1.Items.Clear;
try
with adoqueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from TP_File ');
sql.Add('where WBID=' + quotedstr(trim(JCID.Text)));
sql.Add('and TFType=' + quotedstr(trim('<27><><EFBFBD><EFBFBD><E2B1A8>')));
open;
if not IsEmpty then
begin
while not eof do
begin
with ListView1 do
begin
LargeImages := ImageList1;
Icon := TIcon.Create;
ListItem := Items.Add;
ListItem.Caption := trim(fieldbyname('fileName').AsString);
// Listitem.SubItems.Add(OpenDiaLog.FileName);
Flag := (SHGFI_SMALLICON or SHGFI_ICON or SHGFI_USEFILEATTRIBUTES);
SHGetFileInfo(Pchar(trim(fieldbyname('fileName').AsString)), 0, info, Sizeof(info), Flag);
Icon.Handle := info.hIcon;
ImageList1.AddIcon(Icon);
ListItem.ImageIndex := ImageList1.Count - 1;
end;
next;
end;
end;
end;
except
end;
end;
procedure TfrmJCDJEdit.initdata();
begin
with ADOQueryMain do
begin
close;
sql.clear;
sql.Add(' select * from JC_LIST ');
sql.Add(' where JCID=' + quotedstr(trim(fkeyNo)));
open;
if not IsEmpty then
begin
SCSHDataNew(ADOQueryMain, Panel1, 0);
end;
end;
end;
procedure TfrmJCDJEdit.savedata();
begin
try
ADOQueryCMD.Connection.BeginTrans;
with ADOQueryCMD do
begin
Close;
sql.Clear;
SQL.Add(' select * from JC_LIST where JCID=''' + Trim(fkeyNo) + ''' ');
Open;
end;
if ADOQueryCMD.IsEmpty then
begin
ADOQueryCMD.Append;
ADOQueryCMD.FieldByName('Filler').Value := Trim(Dname);
end
else
begin
ADOQueryCMD.Edit;
ADOQueryCMD.FieldByName('Editer').Value := Trim(Dname);
ADOQueryCMD.FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTMP);
end;
SSetsaveSqlNew(ADOQueryCMD, 'JC_LIST', Panel1, 0);
ADOQueryCMD.Post;
ADOquerycmd.Connection.CommitTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ', 0);
ModalResult := 1;
except
ADOquerycmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
end;
end;
procedure TfrmJCDJEdit.TcloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmJCDJEdit.TSAVEClick(Sender: TObject);
begin
savedata();
end;
procedure TfrmJCDJEdit.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cahide;
end;
procedure TfrmJCDJEdit.FormDestroy(Sender: TObject);
begin
frmJCDJEdit := nil;
end;
procedure TfrmJCDJEdit.FormShow(Sender: TObject);
begin
SClearData(Panel1, 0);
CRTime.DateTime := SGetServerDate10(adoqueryTmp);
if Trim(fkeyNo) = '' then
begin
if GetLSNo(ADOQueryCMD, fkeyNo, 'JC', 'JC_LIST', 3, 1) = False then
begin
ADOQueryCMD.Connection.RollbackTrans;
Application.MessageBox(<><C8A1>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!', '<27><>ʾ');
Exit;
end;
end;
JCID.Text := fkeyNo;
initData();
initfj();
end;
procedure TfrmJCDJEdit.QtyKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', '.', '-', #8]) then
Key := #0;
if (Key = '.') and (Pos('.', Tedit(Sender).Text) > 0) then
Key := #0;
end;
procedure TfrmJCDJEdit.NoteDblClick(Sender: TObject);
begin
try
frmZDYHelpSel := TfrmZDYHelpSel.Create(Application);
with frmZDYHelpSel do
begin
Flag := 'KSNote';
flagname := '<27><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
Note.Text := Trim(ReturnStr);
end;
end;
finally
frmZDYHelpSel.Free;
end;
end;
procedure TfrmJCDJEdit.KHNAMEBtnClick(Sender: TObject);
begin
try
frmZdyAttachment := TfrmZdyAttachment.Create(Application);
with frmZdyAttachment do
begin
if ShowModal = 1 then
begin
KHNAME.Text := Trim(CDS_HZ.fieldbyname('CoName').AsString);
end;
end;
finally
frmZdyAttachment.Free;
end;
end;
procedure TfrmJCDJEdit.OrderNoBtnClick(Sender: TObject);
var
MMaxno: string;
begin
try
frmProductOrderListSel := TfrmProductOrderListSel.Create(Application);
with frmProductOrderListSel do
begin
if ShowModal = 1 then
begin
with frmProductOrderListSel.Order_Main do
begin
C_Code.Text := Trim(frmProductOrderListSel.Order_Main.fieldbyname('MPRTCode').AsString);
C_CodeName.Text := Trim(frmProductOrderListSel.Order_Main.fieldbyname('MPRTCodeName').AsString);
SELF.OrderNo.Text := Trim(frmProductOrderListSel.Order_Main.fieldbyname('orderno').AsString);
KHNAME.Text := Trim(frmProductOrderListSel.Order_Main.fieldbyname('CustomerNoName').AsString);
end;
end;
end;
finally
frmProductOrderListSel.Free;
end;
end;
procedure TfrmJCDJEdit.ToolButton1Click(Sender: TObject);
var
OpenDiaLog: TOpenDialog;
fFileName: string;
fFilePath: string;
maxNo: string;
// myStream: TADOBlobStream;
// FJStream : TMemoryStream;
FJStream: TMemoryStream;
mfileSize: integer;
mCreationTime: TdateTime;
mWriteTime: TdateTime;
begin
try
OpenDiaLog := TOpenDialog.Create(Self);
if OpenDiaLog.Execute then
begin
fFilePath := OpenDiaLog.FileName;
fFileName := ExtractFileName(OpenDiaLog.FileName);
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('select TFId from TP_File ');
sql.Add('where WBID<>' + quotedstr(trim(JCID.Text)));
sql.Add('and TFType=' + quotedstr(trim('<27><><EFBFBD><EFBFBD><E2B1A8>')));
sql.Add('and FileName=' + quotedstr(trim(fFileName)));
open;
if not adoqueryCmd.IsEmpty then
begin
application.MessageBox('<27>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD><D1B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>޸<EFBFBD><DEB8>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
end;
Panel2.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>Ե<EFBFBD>...';
Panel2.Visible := true;
application.ProcessMessages;
if GetLSNo(ADOQueryCmd, maxNo, 'FJ', 'TP_File', 4, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
//<2F><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
GetFileInfo(fFilePath, mfileSize, mCreationTime, mWriteTime);
adoqueryCmd.Connection.BeginTrans;
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('delete from TP_File ');
sql.Add('where WBID=' + quotedstr(trim(JCID.Text)));
sql.Add('and TFType=' + quotedstr(trim('<27><><EFBFBD><EFBFBD><E2B1A8>')));
sql.Add('and FileName=' + quotedstr(trim(fFileName)));
execsql;
end;
try
FJStream := TMemoryStream.Create;
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from TP_File ');
sql.Add('where WBID=' + quotedstr(trim(JCID.Text)));
sql.Add('and TFType=' + quotedstr(trim('<27><><EFBFBD><EFBFBD><E2B1A8>')));
sql.Add('and FileName=' + quotedstr(trim(fFileName)));
open;
append;
fieldbyname('TFID').Value := trim(maxNo);
fieldbyname('WBID').Value := trim(JCID.Text);
fieldbyname('TFType').Value := '<27><><EFBFBD><EFBFBD><E2B1A8>';
fieldbyname('FileName').Value := trim(fFileName);
FJStream.LoadFromFile(fFilePath);
CompressionStream(FJStream);
tblobfield(FieldByName('Filesother')).LoadFromStream(FJStream);
// tblobfield(FieldByName('Filesother')).LoadFromFile(fFilePath);
post;
end;
{ if fFilePath <> '' then
begin
try
IdFTP1.Host := PicSvr;
IdFTP1.Username := 'three';
IdFTP1.Password := '641010';
IdFTP1.Connect();
IdFTP1.Put(fFilePath, 'FJ\' + Trim(fFileName));
IdFTP1.Quit;
except
IdFTP1.Quit;
Application.MessageBox('<27>ϴ<EFBFBD><CFB4>ͻ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', MB_ICONWARNING);
end;
end;
IdFTP1.Quit; }
Panel2.Visible := false;
initfj();
finally
// FJStream.Free;
end;
adoqueryCmd.Connection.CommitTrans;
end;
except
adoqueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmJCDJEdit.ListView1DblClick(Sender: TObject);
var
sFieldName: string;
fileName: string;
ff: TADOBlobStream;
FJStream: TMemoryStream;
begin
if ListView1.Items.Count < 1 then
EXIT;
if listView1.SelCount < 1 then
exit;
sFieldName := leftbstr(ExtractFilePath(Application.ExeName), 1) + ':\ͼƬ<CDBC>鿴';
if not DirectoryExists(pchar(sFieldName)) then
CreateDirectory(pchar(sFieldName), nil);
fileName := ListView1.Selected.Caption;
sFieldName := sFieldName + '\' + trim(fileName);
{ try
IdFTP1.Host := PicSvr;
IdFTP1.Username := 'three';
IdFTP1.Password := '641010';
IdFTP1.Connect();
except
;
end;
if IdFTP1.Connected then
begin
Panel2.Caption:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>Ե<EFBFBD>...';
Panel2.Visible:=true;
application.ProcessMessages;
try
IdFTP1.Get('FJ\'+ Trim(fileName), sFieldName,true, false);
except
Panel2.Visible:=false;
Application.MessageBox('<27>ͻ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
end
else
begin
Panel2.Visible:=false;
Application.MessageBox('<27>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
Panel2.Visible:=false;
if IdFTP1.Connected then IdFTP1.Quit;
ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL);
}
try
adoqueryTmp.Locate('FileName', fileName, []);
ff := TADOBlobstream.Create(adoqueryTmp.fieldByName('FilesOther') as TblobField, bmRead);
FJStream := TMemoryStream.Create;
ff.SaveToStream(FJStream);
UnCompressionStream(FJStream);
FJStream.SaveToFile(sFieldName);
ShellExecute(Handle, 'open', PChar(sFieldName), '', '', SW_SHOWNORMAL);
finally
FJStream.free;
ff.Free;
end;
end;
procedure TfrmJCDJEdit.ToolButton2Click(Sender: TObject);
var
fFileName: string;
fFilePath: string;
begin
if listView1.SelCount < 1 then
exit;
try
fFileName := ListView1.Selected.Caption;
// ADOQueryTmp.Locate('fileName',fFileName,[]);
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('delete from TP_File ');
sql.Add('where WBID=' + quotedstr(trim(JCID.Text)));
sql.Add('and TFType=' + quotedstr(trim('<27><><EFBFBD><EFBFBD><E2B1A8>')));
sql.Add('and FileName=' + quotedstr(trim(fFileName)));
execsql;
end;
initfj();
except
end;
end;
end.