unit u_op_seae_mscbc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, iWebPDFEditorLib_TLB, ExtCtrls,
Buttons, DB, ADODB, bsSkinCtrls, DBCtrls, bsdbctrls, StdCtrls, RxLookup,
wwdbedit, Wwdotdot, Wwdbcomb, wwdbdatetimepicker, Mask, wwdblook,
ComCtrls, bsSkinTabs, Wwdbigrd, Wwdbgrid, Grids, DBGridEh, cxControls,
cxSplitter, Menus, ToolWin, ImgList, kbmMemTable,shellapi,
IdAttachmentFile,IdText, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
IdMessageClient, IdSMTPBase, IdSMTP,IdMessage,IdAttachment, RXSplit,
dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, SHDocVw;
type
TfrmOpSeae_mscbc = class(TForm)
pnl1: TPanel;
qry_op_seae: TADOQuery;
ds_op_seae2: TDataSource;
lbl38: TLabel;
lbl39: TLabel;
lbl40: TLabel;
lbl41: TLabel;
lbl42: TLabel;
lbl43: TLabel;
lbl44: TLabel;
lbl45: TLabel;
lbl47: TLabel;
lbl48: TLabel;
dbtxt1: TDBText;
btn5: TbsSkinSpeedButton;
lbl50: TLabel;
bsknpnl1: TbsSkinPanel;
lbldc: TLabel;
dbedt3: TDBEdit;
dbedt4: TDBEdit;
dbedt5: TDBEdit;
dbedt6: TDBEdit;
dbedt7: TDBEdit;
dbedt8: TDBEdit;
RxDBLookupCombo1: TRxDBLookupCombo;
dbedt9: TDBEdit;
dbedt11: TDBEdit;
dbedt12: TDBEdit;
dbedt13: TDBEdit;
scrlbx2: TScrollBox;
bsknpnl4: TbsSkinPanel;
lbl5: TLabel;
lbl6: TLabel;
lbl7: TLabel;
lbl8: TLabel;
lbl9: TLabel;
lbl10: TLabel;
lbl11: TLabel;
lbl12: TLabel;
lbl15: TLabel;
lbl16: TLabel;
lbl17: TLabel;
lbl18: TLabel;
lbl19: TLabel;
lbl20: TLabel;
lbl22: TLabel;
lbl24: TLabel;
lbl25: TLabel;
lbl30: TLabel;
lbl31: TLabel;
lbl14: TLabel;
lbl21: TLabel;
lbl23: TLabel;
lbl26: TLabel;
lbl27: TLabel;
lbl28: TLabel;
lbl29: TLabel;
lbl4: TLabel;
lbl32: TLabel;
lbl33: TLabel;
lbl34: TLabel;
lbl35: TLabel;
lbl36: TLabel;
lbl37: TLabel;
dbedt1: TDBEdit;
wdbdtmpckr1: TwwDBDateTimePicker;
wdbdtmpckr2: TwwDBDateTimePicker;
wdbdtmpckr4: TwwDBDateTimePicker;
wdbdtmpckr5: TwwDBDateTimePicker;
bskndbchckrdbx1: TbsSkinDBCheckRadioBox;
dbmmo4: TDBMemo;
dbmmo5: TDBMemo;
dbmmo6: TDBMemo;
dbmmo7: TDBMemo;
dbmmo8: TDBMemo;
dbedt2: TDBEdit;
dbmmo9: TDBMemo;
cxspltr1: TcxSplitter;
pnl4_jjx: TPanel;
bsknpnl2: TbsSkinPanel;
wdblkpcmb1: TwwDBLookupCombo;
bsknpnl3: TbsSkinPanel;
lbl52: TLabel;
dbtxtTEU: TDBText;
lbl53: TLabel;
dbtxt2: TDBText;
dbtxt3: TDBText;
lbl54: TLabel;
dbtxt4: TDBText;
lbl55: TLabel;
lbl56: TLabel;
dbtxt5: TDBText;
dbedt14: TDBEdit;
dbedt15: TDBEdit;
dbedt16: TDBEdit;
dbedt17: TDBEdit;
dbedt18: TDBEdit;
dbedt19: TDBEdit;
dbedt20: TDBEdit;
dbedt21: TDBEdit;
dbedt22: TDBEdit;
dbedt23: TDBEdit;
dbedt24: TDBEdit;
dbedt26: TDBEdit;
dbedt29: TDBEdit;
dbedt30: TDBEdit;
dbedt32: TDBEdit;
dbedt33: TDBEdit;
dbedt35: TDBEdit;
dbmmo3: TDBMemo;
lbl3: TLabel;
lbl2: TLabel;
dbmmo2: TDBMemo;
lbl1: TLabel;
dbmmo1: TDBMemo;
dbedt34: TDBEdit;
dbedt36: TDBEdit;
dbedt27: TDBEdit;
dbedt28: TDBEdit;
dbedt31: TDBEdit;
pm1_tsk_vcMenu: TPopupMenu;
mni_mniN1Confirm: TMenuItem;
mni_mniN2ConfirmAndFinish: TMenuItem;
il1: TImageList;
tlb1: TToolBar;
btn2Confirm: TToolButton;
btnCancelTask: TToolButton;
btn12: TToolButton;
wwDBGrid1: TwwDBGrid;
lbl57: TLabel;
il2_taskmenu: TImageList;
ds_op_ctn1: TDataSource;
qry_op_ctn: TADOQuery;
mailSend: TkbmMemTable;
strngfldSendStringField: TStringField;
strngfldSendField: TStringField;
strngfldSendField2: TStringField;
strngfldSendField3: TStringField;
strngfldSendField4: TStringField;
strngfldSendField5: TStringField;
strngfldSendField6: TStringField;
strngfldSendField7: TStringField;
bsknpnl2_right: TbsSkinPanel;
scrlbx1: TScrollBox;
bsknpnl6_left: TbsSkinPanel;
cxspltr2: TcxSplitter;
spl2: TSplitter;
lbl75: TLabel;
lbl79: TLabel;
dbmmo10: TDBMemo;
lbl83: TLabel;
dbedt37: TDBEdit;
WebBrowser1: TWebBrowser;
dxDBGrid1: TdxDBGrid;
dxDBGrid1Column1: TdxDBGridMaskColumn;
dxDBGrid1Column2: TdxDBGridMaskColumn;
bsSkinPanel1: TbsSkinPanel;
bsSkinButton2: TbsSkinButton;
t_op_task_fieldvalue: TADOQuery;
t_op_task_fieldvalue1: TDataSource;
bsSkinButton50: TbsSkinButton;
Label1: TLabel;
DBEdit1: TDBEdit;
procedure FormShow(Sender: TObject);
procedure btnCoseClick(Sender: TObject);
procedure btnCancelTaskClick(Sender: TObject);
procedure mniN1ConfirmClick(Sender: TObject);
procedure mni_mniN2ConfirmAndFinishClick(Sender: TObject);
procedure btn1pdfDownloadClick(Sender: TObject);
procedure cxspltr2Moved(Sender: TObject);
procedure bsSkinButton2Click(Sender: TObject);
procedure bsSkinButton50Click(Sender: TObject);
private
{ Private declarations }
m_pdfFileName:string;
m_bsno:string;
m_qryTask:TADOQuery;
procedure InitialBusiData();
procedure openpdfFile();
function sendmail( mailSendTbl: TkbmMemTable;mailtype,bsno:string;ishtml:Boolean):Boolean;
procedure InitialTDWindow();
procedure InitialCh_fee_edi_Window();
public
{ Public declarations }
public procedure InitialData( qryTask:TADOQuery; bsno1,pdfpath:string);
end;
var
frmOpSeae_mscbc: TfrmOpSeae_mscbc;
implementation
{$R *.dfm}
uses my_sys_function,u_main, u_tree_main, u_data_share, u_sys_progress,
u_op_seae_TaskContrast_TD, u_ch_fee_edi, u_op_letter;
///
/// 临时目录
///
function GetWinTempPath: string;
var
TempDir: array[0..255] of char;
begin
GetTempPath(255, @TempDir);
Result := strPas(TempDir);
end;
procedure TfrmOpSeae_mscbc.InitialData( qryTask:TADOQuery; bsno1,pdfpath:string );
var
state,tasktype,strtmp:string;
strsql:string;
begin
m_qryTask:=qryTask;
m_bsno:=bsno1;
m_pdfFileName:=pdfpath;
tasktype:= m_qryTask.FieldByName('任务类型').AsString;
state:=m_qryTask.fieldbyname('任务状态').AsString;
//状态处理
btnCancelTask.Enabled:=False;
btn2Confirm.Enabled:=False;
mni_mniN1Confirm.Visible:=false;
mni_mniN2ConfirmAndFinish.Visible:=False;
if(m_qryTask.FieldByName('是否完成').AsInteger<1) then
begin
btnCancelTask.Enabled:=true;
mni_mniN2ConfirmAndFinish.Visible:=true;
btn2Confirm.Enabled:=True;
if(state<>'PENDING') then
mni_mniN1Confirm.Visible:=True;
//btn1Forword.Enabled:=True;
end ;
end;
procedure TfrmOpSeae_mscbc.InitialBusiData();
var
strtmp,strtmp1:string;
begin
//通过编号获取数据信息
qry_op_seae.Close;
qry_op_seae.SQL.clear;
qry_op_seae.SQL.Add('select *,''主单'' BLTYPE from t_op_seae where 编号='''+ m_bsno + '''');
qry_op_seae.open;
if (qry_op_seae.IsEmpty) then begin
qry_op_seae.Close;
qry_op_seae.SQL.clear;
qry_op_seae.SQL.Add('SELECT AS_ID 编号,bl.主编号,bl.业务状态,bl.费用状态,bl.业务编号,bl.会计期间,bl.周次,bl.主提单号,bl.分提单号,bl.委托编号');
qry_op_seae.SQL.Add(',bl.装运方式,bl.委托单位,bl.发货人,bl.收货人,bl.通知人,bl.发货人代码,bl.收货人代码,bl.通知人代码,bl.代理,bl.代理内容');
qry_op_seae.SQL.Add(',bl.场站,bl.船名,bl.航次,bl.开船日期,bl.截港日期,bl.预抵日期,bl.起运港,bl.装货港,bl.装港代码,bl.卸货港,bl.卸货代码,bl.二程开船日期');
qry_op_seae.SQL.Add(',bl.二程港口,bl.二程船名,bl.二程航次,bl.目的地,bl.交货地点,bl.交货代码,bl.提单份数,bl.签单方式,bl.签单地点,bl.签单日期,bl.付费方式');
qry_op_seae.SQL.Add(',bl.预付地点,bl.到付地点,bl.运输条款,bl.唛头,bl.箱号封号,bl.件数包装,bl.货物描述,bl.货物名称,bl.货物重量,bl.货物尺码,bl.件数');
qry_op_seae.SQL.Add(',bl.包装,bl.重量,bl.尺码,bl.件数大写,bl.箱数大写,bl.箱型1,bl.箱型2,bl.箱型3,bl.箱型4,bl.箱型5,bl.箱型6,bl.箱型7,bl.箱型8,bl.箱型9');
qry_op_seae.SQL.Add(',bl.箱型10,bl.其他箱型,bl.箱TEU,bl.集装箱,bl.录入人,bl.录入日期,bl.操作员,bl.揽货人,bl.客服员,bl.航线,bl.船公司,bl.货代公司');
qry_op_seae.SQL.Add(',bl.备注,bl.报关行,bl.承运车队,bl.分单列表,bl.计费标准,bl.报关日期,bl.报关员,bl.报关单号,bl.发票号,bl.商品编码,bl.危险品分类');
qry_op_seae.SQL.Add(',bl.危险品编号,bl.冷藏通风量,bl.温度单位,bl.设置温度,bl.最低温度,bl.最高温度,bl.货物标识,bl.销售部门,bl.操作部门,bl.工作量,bl.业务来源');
qry_op_seae.SQL.Add(',bl.英文船期,bl.三程开船日期,bl.三程港口,bl.三程船名,bl.三程航次,bl.辅助字段一,bl.辅助字段二,bl.辅助字段三,bl.辅助字段四');
qry_op_seae.SQL.Add(',bl.二程取货日期,bl.二程到港日期,bl.三程取货日期,bl.三程到港日期,bl.附加条款,bl.报关操作,bl.报检操作,bl.目的地代码,bl.包装代码');
qry_op_seae.SQL.Add(',bl.发货人编号,bl.运输方式,bl.是否自有箱,bl.运费协议号,b.结费类型,b.湿度,b.截单日期,b.副本提单份数,b.是否换签,b.订舱单号');
qry_op_seae.SQL.Add(',b.来源明细,bl.EDI备注,bl.第二通知人,''分单'' BLTYPE FROM t_op_seae_assistant bl left join t_op_seae b on (b.编号=bl.编号) where AS_ID='''+ m_bsno + '''');
qry_op_seae.open;
qry_op_ctn.Close;
qry_op_ctn.SQL.Add('select * from t_op_ctn_fendan where AS_ID=:编号');
qry_op_ctn.Open;
end else begin
qry_op_ctn.Active:=False;
qry_op_ctn.Active:=True;
end;
t_op_task_fieldvalue.Close;
t_op_task_fieldvalue.SQL.clear;
t_op_task_fieldvalue.SQL.Add('select * from t_op_task_fieldvalue where 任务编号='''+m_qryTask.FieldByName('任务编号').AsString+'''');
t_op_task_fieldvalue.open;
end;
///
///
///
procedure TfrmOpSeae_mscbc.openpdfFile();
begin
end;
procedure TfrmOpSeae_mscbc.FormShow(Sender: TObject);
begin
InitialBusiData();
end;
procedure TfrmOpSeae_mscbc.btnCoseClick(Sender: TObject);
begin
close();
end;
procedure TfrmOpSeae_mscbc.btnCancelTaskClick(Sender: TObject);
var
sql:string;
begin
if( Application.MessageBox(PChar('您确实要直接结束该任务吗?'+#13#10+'结束任务将直接关闭任务!,是否结束任务?'),'信息提示',MB_YESNO+ MB_ICONQUESTION)<>IDYES) then
Exit;
//
try
//** m_qryTask.Connection.BeginTrans;
m_qryTask.Edit;
m_qryTask.FieldByName('完成时间').AsDateTime:=Now;
m_qryTask.FieldByName('是否完成').AsInteger:=1;
m_qryTask.FieldByName('任务状态').AsString:='结束';
m_qryTask.FieldByName('操作人').AsString:=employee;
m_qryTask.Post;
//
sql:='INSERT INTO t_op_task_state ( [任务编号],[任务状态],[操作人])VALUES (''%s'' ,''%s'' ,''%s'')';
sql:=Format(sql,[m_qryTask.fieldbyname('任务编号').asstring,'结束',employee] );
m_qryTask.Connection.Execute(sql);
//** m_qryTask.Connection.CommitTrans;
m_qryTask.Requery();
Application.MessageBox(PChar('操作完成'),'信息提示');
close();
except
on e:Exception do
begin
// on except
//* m_qryTask.Connection.RollbackTrans;
m_qryTask.Cancel();
Application.MessageBox(PChar('处理发生错误: '+E.Message),'信息提示');
end;
end;
end;
///
///
///
procedure TfrmOpSeae_mscbc.mniN1ConfirmClick(Sender: TObject);
var
sql:string;
optype:string;
begin
//确认 ORIGINAL FTP
//if(m_qryTask.FieldByName('任务类型').AsString='ORIGINAL') and (m_qryTask.FieldByName('任务来源').AsString='FTP' ) then
begin
//
optype:='PENDING';
try
//** m_qryTask.Connection.BeginTrans;
m_qryTask.Edit;
m_qryTask.FieldByName('完成时间').AsDateTime:=Now;
//m_qryTask.FieldByName('是否完成').AsInteger:=1;
m_qryTask.FieldByName('任务状态').AsString:=optype;
m_qryTask.FieldByName('操作人').AsString:=employee;
m_qryTask.Post;
//
sql:='INSERT INTO t_op_task_state ( [任务编号],[任务状态],[操作人])VALUES (''%s'' ,''%s'' ,''%s'')';
sql:=Format(sql,[m_qryTask.fieldbyname('任务编号').asstring,optype,employee] );
m_qryTask.Connection.Execute(sql);
//** m_qryTask.Connection.CommitTrans;
m_qryTask.Requery();
Application.MessageBox(PChar('操作完成'),'信息提示');
close();
except
on e:Exception do
begin
// on except
//** m_qryTask.Connection.RollbackTrans;
m_qryTask.Cancel();
Application.MessageBox(PChar('处理发生错误: '+E.Message),'信息提示');
end;
end;
end;
end;
///
/// 确认并完成任务
///
procedure TfrmOpSeae_mscbc.mni_mniN2ConfirmAndFinishClick(
Sender: TObject);
var
sql,strtmp:string;
mainno,bsno,filename,filetype:string;
optype:string;
isok:Boolean;
remark:string;
begin
//确认 ORIGINAL FTP
//if(m_qryTask.FieldByName('任务类型').AsString='ORIGINAL') and (m_qryTask.FieldByName('任务来源').AsString='FTP' ) then
//
mainno:=m_qryTask.fieldbyname('提单号').AsString;
bsno:=m_qryTask.fieldbyname('SEA编号').AsString;
strtmp:=m_qryTask.fieldbyname('任务类型').AsString;
filename:=m_qryTask.fieldbyname('电子档案路径').AsString;
remark:=m_qryTask.fieldbyname('备注').AsString;
//检查是否允许挂单
optype:='完成';
isok:=true;
try
if (strtmp='MSC BCL') then begin
qry_op_ctn.First;
while not qry_op_ctn.Eof do
qry_op_ctn.Delete;
qry_op_seae.Delete;
end;
//挂单
if (isok=true) then
begin
m_qryTask.Edit;
m_qryTask.FieldByName('完成时间').AsDateTime:=Now;
m_qryTask.FieldByName('是否完成').AsInteger:=1;
m_qryTask.FieldByName('任务状态').AsString:=optype;
m_qryTask.FieldByName('操作人').AsString:=employee;
m_qryTask.Post;
//
sql:='INSERT INTO t_op_task_state ( [任务编号],[任务状态],[操作人])VALUES (''%s'' ,''%s'' ,''%s'')';
sql:=Format(sql,[m_qryTask.fieldbyname('任务编号').asstring,optype,employee] );
m_qryTask.Connection.Execute(sql);
m_qryTask.Requery();
Application.MessageBox(PChar('操作完成'),'信息提示');
close();
end ;
except
on e:Exception do
begin
Application.MessageBox(PChar('处理发生错误: '+E.Message),'信息提示');
end;
end;
//
end;
function TfrmOpSeae_mscbc.sendmail( mailSendTbl: TkbmMemTable;mailtype,bsno:string;ishtml:Boolean):Boolean;
begin
end;
procedure TfrmOpSeae_mscbc.btn1pdfDownloadClick(Sender: TObject);
begin
//
try
frm_tree_main.ConnectDownServer();
except on ex: Exception do
begin
;//s
end;
end;
openpdfFile();
end;
procedure TfrmOpSeae_mscbc.InitialTDWindow();
begin
end;
procedure TfrmOpSeae_mscbc.InitialCh_fee_edi_Window();
begin
end;
procedure TfrmOpSeae_mscbc.cxspltr2Moved(Sender: TObject);
begin
if cxspltr2.Left<200 then
begin
bsknpnl2_right.Left:=200+cxspltr2.Width;
cxspltr2.Left:=200;
end;
end;
procedure TfrmOpSeae_mscbc.bsSkinButton2Click(Sender: TObject);
var
aQuery,aQueryBl:TADOQuery;
begin
if (t_op_task_fieldvalue.IsEmpty) then begin
ShowMessage('没有数据要更新');
exit;
end;
aQuery:=CreateAdoQuery;
aQueryBl:=CreateAdoQuery;
try
aQueryBl.Close;
aQueryBl.SQL.Clear;
aQueryBl.SQL.Add('update t_op_seae_assistant set 到付运费=到付运费');
aQuery.Close;
aQuery.SQL.Clear;
aQuery.SQL.Add('update t_op_seae set 周次=周次');
t_op_task_fieldvalue.First;
while not t_op_task_fieldvalue.Eof do begin
if (t_op_task_fieldvalue.FieldByName('字段').AsString='集装箱') then begin
end else begin
aQuery.SQL.Add(','+t_op_task_fieldvalue.FieldByName('字段').AsString+'='''+t_op_task_fieldvalue.FieldByName('值').AsString+'''');
aQueryBl.SQL.Add(','+t_op_task_fieldvalue.FieldByName('字段').AsString+'='''+t_op_task_fieldvalue.FieldByName('值').AsString+'''');
if (t_op_task_fieldvalue.FieldByName('字段').AsString='船公司航线') then begin
aQuery.SQL.Add(',航线=isnull((select top 1 航线 from t_code_trade_msc where MSC航线名称='''+ t_op_task_fieldvalue.FieldByName('值').AsString +'''),航线) ');
end;
end;
t_op_task_fieldvalue.Next;
end;
aQuery.SQL.Add(' WHERE 编号='''+qry_op_seae.fieldbyname('编号').AsString+'''');
aQueryBl.SQL.Add(' WHERE AS_ID='''+qry_op_seae.fieldbyname('编号').AsString+'''');
aQueryBl.ExecSQL;
aQuery.ExecSQL;
finally
FreeAndNil(aQuery);
FreeAndNil(aQueryBl);
end;
ShowMessage('更新完成!');
end;
procedure TfrmOpSeae_mscbc.bsSkinButton50Click(Sender: TObject);
var
tmpfile:string;
begin
try
tmpfile:=m_qryTask.fieldbyname('电子档案路径').asstring ;
ShellExecute(Handle, nil, pchar(tmpfile), nil, nil, SW_NORMAL);
except
showmessage('不能打开文件,请检查!');
end ;
end;
end.