|
|
unit u_op_seae_edi_cargosmart;
|
|
|
|
|
|
interface
|
|
|
|
|
|
uses
|
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
|
Dialogs, BusinessSkinForm, bsSkinCtrls, StdCtrls,inifiles, DB, ADODB,IdFTP,IdFTPCommon,
|
|
|
ExtCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
|
|
|
IdExplicitTLSClientServerBase, Menus;
|
|
|
|
|
|
type
|
|
|
|
|
|
TCarrier = Record //ÏûÏ¢¿Í»§¶ËÏûÏ¢½á¹¹
|
|
|
EdiNo :String;
|
|
|
CarrierName :String;
|
|
|
end;
|
|
|
|
|
|
Tfrm_op_seae_edi_cargosmart = class(TForm)
|
|
|
Label2: TLabel;
|
|
|
Label1: TLabel;
|
|
|
Edit2: TEdit;
|
|
|
Edit1: TEdit;
|
|
|
bsSkinButton1: TbsSkinButton;
|
|
|
bsSkinButton2: TbsSkinButton;
|
|
|
bsBusinessSkinForm1: TbsBusinessSkinForm;
|
|
|
SaveDialog1: TSaveDialog;
|
|
|
Label3: TLabel;
|
|
|
Label4: TLabel;
|
|
|
Edit3: TEdit;
|
|
|
Edit4: TEdit;
|
|
|
t_op_ctn: TADOQuery;
|
|
|
Label5: TLabel;
|
|
|
Label6: TLabel;
|
|
|
Label7: TLabel;
|
|
|
Edit5: TEdit;
|
|
|
Edit6: TEdit;
|
|
|
Edit7: TEdit;
|
|
|
RadioGroup1: TRadioGroup;
|
|
|
bsSkinButton3: TbsSkinButton;
|
|
|
bsSkinButton4: TbsSkinButton;
|
|
|
GroupBox1: TGroupBox;
|
|
|
Label8: TLabel;
|
|
|
Edit8: TEdit;
|
|
|
Edit9: TEdit;
|
|
|
Edit10: TEdit;
|
|
|
Label9: TLabel;
|
|
|
Label10: TLabel;
|
|
|
Edit11: TEdit;
|
|
|
Label11: TLabel;
|
|
|
RadioGroup2: TRadioGroup;
|
|
|
t_op_edi: TADOQuery;
|
|
|
RadioGroup3: TRadioGroup;
|
|
|
bsck: TbsSkinCheckRadioBox;
|
|
|
t_op_edictn: TADOQuery;
|
|
|
Label13: TLabel;
|
|
|
Edit13: TEdit;
|
|
|
IdFTP1: TIdFTP;
|
|
|
bsSkinButton7: TbsSkinButton;
|
|
|
PopupMenu3: TPopupMenu;
|
|
|
N17: TMenuItem;
|
|
|
N18: TMenuItem;
|
|
|
N34: TMenuItem;
|
|
|
N1: TMenuItem;
|
|
|
CMA1: TMenuItem;
|
|
|
INTTRA1: TMenuItem;
|
|
|
N2: TMenuItem;
|
|
|
CARGO1: TMenuItem;
|
|
|
N3: TMenuItem;
|
|
|
N4: TMenuItem;
|
|
|
CMA2: TMenuItem;
|
|
|
Label14: TLabel;
|
|
|
Edit14: TEdit;
|
|
|
GroupBox2: TGroupBox;
|
|
|
Label15: TLabel;
|
|
|
Label16: TLabel;
|
|
|
Label17: TLabel;
|
|
|
Label18: TLabel;
|
|
|
Edit15: TEdit;
|
|
|
Edit16: TEdit;
|
|
|
Edit17: TEdit;
|
|
|
Edit18: TEdit;
|
|
|
Edit12: TEdit;
|
|
|
Label12: TLabel;
|
|
|
Edit19: TEdit;
|
|
|
Label19: TLabel;
|
|
|
CheckIFT: TbsSkinCheckRadioBox;
|
|
|
Label20: TLabel;
|
|
|
Edit20: TEdit;
|
|
|
bsSkinButton5: TbsSkinButton;
|
|
|
procedure bsSkinButton1Click(Sender: TObject);
|
|
|
|
|
|
procedure FormShow(Sender: TObject);
|
|
|
|
|
|
|
|
|
function get_txtBooking(strL:Tstringlist;afilename:String):integer;
|
|
|
function get_txtSI(strL:Tstringlist;afilename:String):integer;
|
|
|
function get_goods(str:widestring):widestring;
|
|
|
procedure bsSkinButton3Click(Sender: TObject);
|
|
|
|
|
|
|
|
|
function isEditrue:boolean;
|
|
|
|
|
|
function GetCtnCode(ctnkind,ctnsize:String):String;
|
|
|
function GetPkgCode(Pkg:String):String;
|
|
|
function GetPort(PortID:String): String;
|
|
|
function GetLoadPortEdiID(Port:String): String;
|
|
|
function GetPortEdiID(Port:String): String;
|
|
|
function GetShipEdiNO(Ship:String): String;
|
|
|
function Changestr(str:widestring):string;
|
|
|
|
|
|
function GetCtnGoods(bsno:String):String;
|
|
|
|
|
|
|
|
|
function GetLengthword(var s: String; l: Integer;str:String): String;
|
|
|
procedure GetLengthTString(var sl:TStringList;l:integer);
|
|
|
function GetStrNum(str:String):integer;
|
|
|
function GetCharNum(str:String):integer;
|
|
|
function IsZhongwen(Str:String):Boolean;
|
|
|
procedure bsSkinButton4Click(Sender: TObject);
|
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
|
procedure bsSkinButton7Click(Sender: TObject);
|
|
|
function get_txtBooking_txt(str:Tstringlist):integer;
|
|
|
function get_txtSI_txt(str:Tstringlist):integer;
|
|
|
procedure bsSkinButton5Click(Sender: TObject);
|
|
|
|
|
|
|
|
|
|
|
|
private
|
|
|
{ Private declarations }
|
|
|
public
|
|
|
{ Public declarations }
|
|
|
aCarrier:TCarrier;
|
|
|
SelectCarrier:Boolean;
|
|
|
function ControlLines(LinesCount,CorpTypeid,BsTypeid:Integer;SName:string):String;
|
|
|
|
|
|
function GetCarrier(i:integer):TCarrier;
|
|
|
|
|
|
function GetcntCount:string;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
var
|
|
|
frm_op_seae_edi_cargosmart: Tfrm_op_seae_edi_cargosmart;
|
|
|
|
|
|
implementation
|
|
|
|
|
|
uses u_op_seae, my_sys_function, u_main, u_data_share, u_op_seae_assistant;
|
|
|
|
|
|
{$R *.dfm}
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.GetcntCount:string;
|
|
|
var aAdoQuery:TAdoQuery;
|
|
|
begin
|
|
|
result:='0';
|
|
|
aAdoQuery:=CreateAdoQuery;
|
|
|
with aAdoQuery do
|
|
|
try
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
Close;t_op_ctn.SQL.Clear;
|
|
|
SQL.Add('SELECT sum(t_op_ctn.ÊýÁ¿) ÊýÁ¿');
|
|
|
SQL.Add('FROM t_op_ctn');
|
|
|
SQL.Add('WHERE t_op_ctn.񅧏=:񅧏');
|
|
|
Parameters.ParamByName('񅧏').Value:=frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('SELECT sum(t_op_ctn_fendan.ÊýÁ¿) ÊýÁ¿');
|
|
|
SQL.Add('FROM t_op_ctn_fendan');
|
|
|
SQL.Add('WHERE t_op_ctn_fendan.as_id=:as_id');
|
|
|
Parameters.ParamByName('as_id').Value:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('as_id').asinteger;
|
|
|
end;
|
|
|
Open;
|
|
|
if IsEmpty then
|
|
|
result:='0'
|
|
|
else result:=fieldbyname('ÊýÁ¿').AsString;
|
|
|
finally
|
|
|
Free;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.GetCarrier(i:integer):TCarrier;
|
|
|
begin
|
|
|
case RadioGroup2.ItemIndex of
|
|
|
0:begin // COSU
|
|
|
Result.EdiNo:='COSU';
|
|
|
Result.CarrierName:='COSCO';
|
|
|
end;
|
|
|
1:begin // COSU
|
|
|
Result.EdiNo:='OOLU';
|
|
|
Result.CarrierName:='OOCL';
|
|
|
end;
|
|
|
2:begin // COSU
|
|
|
Result.EdiNo:='HLCU';
|
|
|
Result.CarrierName:='HLCU';
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.ControlLines(LinesCount,CorpTypeid,BsTypeid:Integer;SName:string):String;
|
|
|
begin
|
|
|
Result:='';
|
|
|
if LinesCount>5 then
|
|
|
begin
|
|
|
if RadioGroup2.ItemIndex=5 then
|
|
|
begin
|
|
|
case CorpTypeid of
|
|
|
0:begin
|
|
|
case BsTypeid of
|
|
|
0: Result:=SName+'ÏêϸÐÅÏ¢³¬¹ý5ÐÐ,³¬³ö²¿·ÖÇëÔÚ»ù±¾ÐÅÏ¢»õÃèÖÐÌîд¸ñʽΪ:-¼Ó¶à³ö²¿·Ö';
|
|
|
1: Result:=SName+'ÏêϸÐÅÏ¢³¬¹ý5ÐÐ,³¬³ö²¿·ÖÇëÔÚ×°ÏäÃ÷ϸ×îºóÒ»¸ö»õÃèÖÐÌîд¸ñʽΪ:-¼Ó¶à³ö²¿·Ö';
|
|
|
end;
|
|
|
end;
|
|
|
1:begin
|
|
|
case BsTypeid of
|
|
|
0: Result:=SName+'ÏêϸÐÅÏ¢³¬¹ý5ÐÐ,³¬³ö²¿·ÖÇëÔÚ»ù±¾ÐÅÏ¢»õÃèÖÐÌîд¸ñʽΪ:--¼Ó¶à³ö²¿·Ö';
|
|
|
1: Result:=SName+'ÏêϸÐÅÏ¢³¬¹ý5ÐÐ,³¬³ö²¿·ÖÇëÔÚ×°ÏäÃ÷ϸ×îºóÒ»¸ö»õÃèÖÐÌîд¸ñʽΪ:--¼Ó¶à³ö²¿·Ö';
|
|
|
end;
|
|
|
end;
|
|
|
2:begin
|
|
|
case BsTypeid of
|
|
|
0: Result:=SName+'ÏêϸÐÅÏ¢³¬¹ý5ÐÐ,³¬³ö²¿·ÖÇëÔÚ»ù±¾ÐÅÏ¢»õÃèÖÐÌîд¸ñʽΪ:---¼Ó¶à³ö²¿·Ö';
|
|
|
1: Result:=SName+'ÏêϸÐÅÏ¢³¬¹ý5ÐÐ,³¬³ö²¿·ÖÇëÔÚ×°ÏäÃ÷ϸ×îºóÒ»¸ö»õÃèÖÐÌîд¸ñʽΪ:---¼Ó¶à³ö²¿·Ö';
|
|
|
end;
|
|
|
end;
|
|
|
3:begin
|
|
|
case BsTypeid of
|
|
|
0: Result:=SName+'ÏêϸÐÅÏ¢²»Äܳ¬¹ý5ÐÐ';
|
|
|
1: Result:=SName+'ÏêϸÐÅÏ¢²»Äܳ¬¹ý5ÐÐ';
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
case CorpTypeid of
|
|
|
0:begin
|
|
|
case BsTypeid of
|
|
|
0: Result:=SName+'ÏêϸÐÅÏ¢³¬¹ý5ÐÐ,³¬³ö²¿·ÖÇëÔÚ»ù±¾ÐÅÏ¢»õÃèÖÐÌîд¸ñʽΪ:*¼Ó¶à³ö²¿·Ö';
|
|
|
1: Result:=SName+'ÏêϸÐÅÏ¢³¬¹ý5ÐÐ,³¬³ö²¿·ÖÇëÔÚ×°ÏäÃ÷ϸ×îºóÒ»¸ö»õÃèÖÐÌîд¸ñʽΪ:*¼Ó¶à³ö²¿·Ö';
|
|
|
end;
|
|
|
end;
|
|
|
1:begin
|
|
|
case BsTypeid of
|
|
|
0: Result:=SName+'ÏêϸÐÅÏ¢³¬¹ý5ÐÐ,³¬³ö²¿·ÖÇëÔÚ»ù±¾ÐÅÏ¢»õÃèÖÐÌîд¸ñʽΪ:**¼Ó¶à³ö²¿·Ö';
|
|
|
1: Result:=SName+'ÏêϸÐÅÏ¢³¬¹ý5ÐÐ,³¬³ö²¿·ÖÇëÔÚ×°ÏäÃ÷ϸ×îºóÒ»¸ö»õÃèÖÐÌîд¸ñʽΪ:**¼Ó¶à³ö²¿·Ö';
|
|
|
end;
|
|
|
end;
|
|
|
2:begin
|
|
|
case BsTypeid of
|
|
|
0: Result:=SName+'ÏêϸÐÅÏ¢³¬¹ý5ÐÐ,³¬³ö²¿·ÖÇëÔÚ»ù±¾ÐÅÏ¢»õÃèÖÐÌîд¸ñʽΪ:***¼Ó¶à³ö²¿·Ö';
|
|
|
1: Result:=SName+'ÏêϸÐÅÏ¢³¬¹ý5ÐÐ,³¬³ö²¿·ÖÇëÔÚ×°ÏäÃ÷ϸ×îºóÒ»¸ö»õÃèÖÐÌîд¸ñʽΪ:***¼Ó¶à³ö²¿·Ö';
|
|
|
end;
|
|
|
end;
|
|
|
3:begin
|
|
|
case BsTypeid of
|
|
|
0: Result:=SName+'ÏêϸÐÅÏ¢²»Äܳ¬¹ý5ÐÐ';
|
|
|
1: Result:=SName+'ÏêϸÐÅÏ¢²»Äܳ¬¹ý5ÐÐ';
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.GetCtnGoods(bsno:String):String;
|
|
|
var at_op_ctn,at_op_ctndetail :TADOQuery;
|
|
|
ctnlist:TStringList;
|
|
|
b_ctncount:Boolean;
|
|
|
begin
|
|
|
result:='';
|
|
|
|
|
|
at_op_ctn:=CreateAdoQuery;
|
|
|
at_op_ctndetail:=CreateAdoQuery;
|
|
|
ctnlist:=TStringList.Create;
|
|
|
ctnlist.Clear;
|
|
|
with at_op_ctn do
|
|
|
begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('select ctn_id from t_op_ctn');
|
|
|
SQL.Add('where 񅧏=:bsno');
|
|
|
Parameters.ParamByName('bsno').Value:=bsno;
|
|
|
open;First;
|
|
|
while not eof do
|
|
|
begin
|
|
|
ctnlist.Add(FieldByName('ctn_id').AsString);
|
|
|
Next;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
if Trim(ctnlist.CommaText)<>'' then
|
|
|
with at_op_ctndetail do
|
|
|
begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('select count(ctn_id) ctn_id from t_op_ctn_detail');
|
|
|
SQL.Add('where ctn_id in ('+ctnlist.CommaText+')');
|
|
|
Open;
|
|
|
if FieldByName('ctn_id').AsInteger>0 then
|
|
|
b_ctncount:=True;
|
|
|
end;
|
|
|
|
|
|
if b_ctncount then
|
|
|
begin
|
|
|
with at_op_ctndetail do
|
|
|
begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('select ctn_id,sum(¼þÊý)¼þÊý,sum(ÖØÁ¿) ÖØÁ¿,sum(³ßÂë) ³ßÂë from t_op_ctn_detail');
|
|
|
SQL.Add('where ctn_id=:ctn_id');
|
|
|
SQL.Add('Group by ctn_id');
|
|
|
end;
|
|
|
|
|
|
with at_op_ctn do
|
|
|
begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('select ctn_id,¼þÊý,ÖØÁ¿,³ßÂë from t_op_ctn');
|
|
|
SQL.Add('where 񅧏=:bsno');
|
|
|
Parameters.ParamByName('bsno').Value:=bsno;
|
|
|
open;First;
|
|
|
while not eof do
|
|
|
begin
|
|
|
at_op_ctndetail.Close;
|
|
|
at_op_ctndetail.Parameters.ParamByName('ctn_id').Value:=FieldByName('ctn_id').AsInteger;
|
|
|
at_op_ctndetail.Open;
|
|
|
if at_op_ctndetail.FieldByName('¼þÊý').AsInteger<>FieldByName('¼þÊý').AsInteger then
|
|
|
begin
|
|
|
if Trim(result)='' then
|
|
|
result:='·ÖÏä¼þÊýºÏ¼Æ:'+at_op_ctndetail.FieldByName('¼þÊý').AsString+'²»µÈÓÚÏä×ܼþÊý:'+FieldByName('¼þÊý').AsString
|
|
|
else result:=result+#13#10+'·ÖÏä¼þÊýºÏ¼Æ:'+at_op_ctndetail.FieldByName('¼þÊý').AsString+'²»µÈÓÚÏä×ܼþÊý:'+FieldByName('¼þÊý').AsString;
|
|
|
end;
|
|
|
if at_op_ctndetail.FieldByName('ÖØÁ¿').AsFloat<>FieldByName('ÖØÁ¿').AsFloat then
|
|
|
begin
|
|
|
if Trim(result)='' then
|
|
|
result:='·ÖÏäÖØÁ¿ºÏ¼Æ:'+at_op_ctndetail.FieldByName('ÖØÁ¿').AsString+'²»µÈÓÚÏä×ÜÖØÁ¿:'+FieldByName('ÖØÁ¿').AsString
|
|
|
else result:=result+#13#10+'·ÖÏäÖØÁ¿ºÏ¼Æ:'+at_op_ctndetail.FieldByName('ÖØÁ¿').AsString+'²»µÈÓÚÏä×ÜÖØÁ¿:'+FieldByName('ÖØÁ¿').AsString;
|
|
|
end;
|
|
|
|
|
|
if at_op_ctndetail.FieldByName('³ßÂë').AsFloat<>FieldByName('³ßÂë').AsFloat then
|
|
|
begin
|
|
|
if Trim(result)='' then
|
|
|
result:='·ÖÏä³ßÂëºÏ¼Æ:'+at_op_ctndetail.FieldByName('³ßÂë').AsString+'²»µÈÓÚÏä×ܳßÂë:'+FieldByName('³ßÂë').AsString
|
|
|
else result:=result+#13#10+'·ÖÏä³ßÂëºÏ¼Æ:'+at_op_ctndetail.FieldByName('³ßÂë').AsString+'²»µÈÓÚÏä×ܳßÂë:'+FieldByName('³ßÂë').AsString;
|
|
|
end;
|
|
|
Next;
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
try
|
|
|
finally
|
|
|
at_op_ctn.Free;
|
|
|
at_op_ctndetail.Free;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.isEditrue: boolean;
|
|
|
var
|
|
|
cntrs,s,Edis,cntrGoods,Goods,Lines:String;
|
|
|
sl:TStringList;
|
|
|
i:integer;
|
|
|
|
|
|
begin
|
|
|
result:=true;
|
|
|
SelectCarrier:=False;
|
|
|
sl:=TStringList.Create;
|
|
|
t_op_edi.Close;
|
|
|
t_op_edi.Parameters.ParamByName('񅧏').Value:=frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring;
|
|
|
t_op_edi.Open;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if Edit1.Text='' then
|
|
|
begin
|
|
|
if trim(Edis)='' then
|
|
|
Edis:='·¢ËÍ·½´úÂë'
|
|
|
else Edis:=Edis+','+'·¢ËÍ·½´úÂë';
|
|
|
end;
|
|
|
|
|
|
if Edit2.Text='' then
|
|
|
begin
|
|
|
if trim(Edis)='' then
|
|
|
Edis:='·¢ËÍ·½Ãû³Æ'
|
|
|
else Edis:=Edis+','+'·¢ËÍ·½Ãû³Æ';
|
|
|
end;
|
|
|
|
|
|
if Edit3.Text='' then
|
|
|
begin
|
|
|
if trim(Edis)='' then
|
|
|
Edis:='½ÓÊÜ·½´úÂë'
|
|
|
else Edis:=Edis+','+'½ÓÊÜ·½´úÂë';
|
|
|
end;
|
|
|
|
|
|
if Edit4.Text='' then
|
|
|
begin
|
|
|
if trim(Edis)='' then
|
|
|
Edis:='½ÓÊÜ·½Ãû³Æ'
|
|
|
else Edis:=Edis+','+'½ÓÊÜ·½Ãû³Æ';
|
|
|
end;
|
|
|
|
|
|
if Edit5.Text='' then
|
|
|
begin
|
|
|
if trim(Edis)='' then
|
|
|
Edis:='²Ù×÷ÁªÏµµç»°'
|
|
|
else Edis:=Edis+','+'²Ù×÷ÁªÏµµç»°';
|
|
|
end;
|
|
|
|
|
|
|
|
|
if Edit7.Text='' then
|
|
|
begin
|
|
|
if trim(Edis)='' then
|
|
|
Edis:='·¢ËÍ·½²Ù×÷'
|
|
|
else Edis:=Edis+','+'·¢ËÍ·½²Ù×÷';
|
|
|
end;
|
|
|
|
|
|
if Edit6.Text='' then
|
|
|
begin
|
|
|
if trim(Edis)='' then
|
|
|
Edis:='ÓʼþµØÖ·'
|
|
|
else Edis:=Edis+','+'ÓʼþµØÖ·';
|
|
|
end;
|
|
|
|
|
|
if Edit12.Text='' then
|
|
|
begin
|
|
|
if trim(Edis)='' then
|
|
|
Edis:='¹«Ë¾´úÂë'
|
|
|
else Edis:=Edis+','+'¹«Ë¾´úÂë';
|
|
|
end;
|
|
|
|
|
|
if Edit19.Text='' then
|
|
|
begin
|
|
|
if trim(Edis)='' then
|
|
|
Edis:='³ÇÊÐ(Ó¢)'
|
|
|
else Edis:=Edis+','+'³ÇÊÐ(Ó¢)';
|
|
|
end;
|
|
|
|
|
|
if trim(Edis)<>'' then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg(trim(Edis)+'²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
begin
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('Ìáµ¥ºÅ²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('Ìáµ¥ºÅ²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
|
|
|
end;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('¶©²Õµ¥ºÅ').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('¶©²Õµ¥ºÅ²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
{
|
|
|
if RadioGroup2.ItemIndex=5 then
|
|
|
begin
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊ䷽ʽ').asstring)='' then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('HL »õÀà´úÂë²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊ䷽ʽ').asstring)='' then
|
|
|
begin
|
|
|
MessageDlg('×¢Òâ»õÀà´úÂëΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
end;
|
|
|
}
|
|
|
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
begin
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('Ìáµ¥ºÅ²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if trim(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥Ìáµ¥ºÅ²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
begin
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('´¬Ãû').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('´¬Ãû²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('º½´Î').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('º½´Î²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('´¬¹«Ë¾²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if GetShipEdiNO(frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring)='' then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('´¬¹«Ë¾EDI´úÂë²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
aCarrier:=GetCarrier(RadioGroup2.ItemIndex);
|
|
|
|
|
|
if aCarrier.EdiNo<>GetShipEdiNO(frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring) then
|
|
|
begin
|
|
|
if MessageDlg('Ñ¡ÔñµÄ´¬¹«Ë¾Îª:'+aCarrier.CarrierName+' ϵͳ¼ÈëµÄ´¬¹«Ë¾Îª:'+frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring+#13#10+',ÒªÒÔÑ¡ÔñµÄ´¬¹«Ë¾·¢ËÍÂð?',mtWarning,[mbyes,mbno],0)=mryes then
|
|
|
begin
|
|
|
SelectCarrier:=true;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
{
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('EDI±¸×¢').asString)='' then begin
|
|
|
|
|
|
result:=false;
|
|
|
MessageDlg('EDI±¸×¢²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if trim(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('EDI±¸×¢').asString)='' then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('EDI±¸×¢²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
sl.Clear;
|
|
|
sl.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('µÚ¶þ֪ͨÈË').asstring);
|
|
|
for i:=0 to sl.Count-1 do
|
|
|
begin
|
|
|
if IsZhongwen(sl[i]) then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('EDIÐÅÏ¢Öеڶþ֪ͨÈËÖÐÓÐÖÐÎÄ×Ö·û»òTAB¼ü!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
if Length(sl[i])>35 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('µÚ¶þ֪ͨÈËÖÐÿÐÐ×Ö·û²»Äܳ¬¹ý35¸ö×Ö·û!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
end;
|
|
|
if sl.Count>5 then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('µÚ¶þ֪ͨÈ˲»ÄÜ´óÓÚ5ÐÐ!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
sl.Clear;
|
|
|
sl.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('·¢»õÈË´úÂë').asstring);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
if IsZhongwen(sl[i]) then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('·¢»õÈËÖÐÓÐÖÐÎÄ×Ö·û»òTAB¼ü!',mtWarning,[mbOk],0);
|
|
|
// Exit;
|
|
|
end;
|
|
|
|
|
|
if Length(sl[i])>35 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·¢»õÈËÖÐÿÐÐ×Ö·û²»Äܳ¬¹ý35¸ö×Ö·û!',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
{
|
|
|
if (Pos('TEL',sl[i])>0) or (Pos('TEL',sl[i])>0) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·¢»õÈË´æÔڵ绰ºÍ´«Õæ!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
}
|
|
|
end;
|
|
|
Lines:=ControlLines(sl.Count,0,0,'·¢»õÈË'); //LinesCount,CorpTypeid,BsTypeid:Integer;SName:string
|
|
|
if Lines<>'' then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg(Lines+'!',mtWarning,[mbOk],0);
|
|
|
// Exit;
|
|
|
end;
|
|
|
|
|
|
|
|
|
if bsck.Checked then
|
|
|
begin
|
|
|
sl.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('·¢»õÈË´úÂë').asstring);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
if IsZhongwen(sl[i]) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥EDIÐÅÏ¢Öз¢»õÈËÖÐÓÐÖÐÎÄ×Ö·û»òTAB¼ü!',mtWarning,[mbOk],0);
|
|
|
// Exit;
|
|
|
end;
|
|
|
|
|
|
if Length(sl[i])>35 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥·¢»õÈËÖÐÿÐÐ×Ö·û²»Äܳ¬¹ý35¸ö×Ö·û!',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
{
|
|
|
if (Pos('TEL',sl[i])>0) or (Pos('TEL',sl[i])>0) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥·¢»õÈË´æÔڵ绰ºÍ´«Õæ!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
}
|
|
|
end;
|
|
|
Lines:=ControlLines(sl.Count,0,1,'·¢»õÈË'); //LinesCount,CorpTypeid,BsTypeid:Integer;SName:string
|
|
|
if Lines<>'' then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥EDIÐÅÏ¢ÖÐ'+Lines+'!',mtWarning,[mbOk],0);
|
|
|
// Exit;
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
sl.Clear;
|
|
|
|
|
|
sl.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('ÊÕ»õÈË´úÂë').asstring);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
if IsZhongwen(sl[i]) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('EDIÐÅÏ¢ÖÐÊÕ»õÈËÖÐÓÐÖÐÎÄ×Ö·û»òTAB¼ü!',mtWarning,[mbOk],0);
|
|
|
// Exit;
|
|
|
end;
|
|
|
|
|
|
if Length(sl[i])>35 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ÊÕ»õÈËÖÐÿÐÐ×Ö·û²»Äܳ¬¹ý35¸ö×Ö·û!',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
{
|
|
|
if (Pos('TEL',sl[i])>0) or (Pos('TEL',sl[i])>0) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ÊÕ»õÈË´æÔڵ绰ºÍ´«Õæ!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
}
|
|
|
end;
|
|
|
Lines:=ControlLines(sl.Count,1,0,'ÊÕ»õÈË'); //LinesCount,CorpTypeid,BsTypeid:Integer;SName:string
|
|
|
if Lines<>'' then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('EDIÐÅÏ¢ÖÐ'+Lines+'!',mtWarning,[mbOk],0);
|
|
|
// Exit;
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if bsck.Checked then
|
|
|
begin
|
|
|
sl.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ÊÕ»õÈË´úÂë').asstring);
|
|
|
for i:=0 to sl.Count-1 do
|
|
|
begin
|
|
|
if IsZhongwen(sl[i]) then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥EDIÐÅÏ¢ÖÐÊÕ»õÈËÖÐÓÐÖÐÎÄ×Ö·û»òTAB¼ü!',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
if Length(sl[i])>35 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥ÊÕ»õÈËÖÐÿÐÐ×Ö·û²»Äܳ¬¹ý35¸ö×Ö·û!',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
{
|
|
|
if (Pos('TEL',sl[i])>0) or (Pos('TEL',sl[i])>0) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·ÖƱÊÕ»õÈË´æÔڵ绰ºÍ´«Õæ!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
}
|
|
|
end;
|
|
|
Lines:=ControlLines(sl.Count,1,1,'ÊÕ»õÈË'); //LinesCount,CorpTypeid,BsTypeid:Integer;SName:string
|
|
|
if Lines<>'' then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥EDIÐÅÏ¢ÖÐ'+Lines+'!',mtWarning,[mbOk],0);
|
|
|
// Exit;
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
sl.Clear;
|
|
|
|
|
|
sl.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('֪ͨÈË´úÂë').asstring);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
if IsZhongwen(sl[i]) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('EDIÐÅÏ¢ÖÐ֪ͨÈËÖÐÓÐÖÐÎÄ×Ö·û»òTAB¼ü!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
if Length(sl[i])>35 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('֪ͨÈËÖÐÿÐÐ×Ö·û²»Äܳ¬¹ý35¸ö×Ö·û!',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
{
|
|
|
if (Pos('TEL',sl[i])>0) or (Pos('TEL',sl[i])>0) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('֪ͨÈË´æÔڵ绰ºÍ´«Õæ!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
}
|
|
|
end;
|
|
|
Lines:=ControlLines(sl.Count,2,0,'֪ͨÈË'); //LinesCount,CorpTypeid,BsTypeid:Integer;SName:string
|
|
|
if Lines<>'' then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('EDIÐÅÏ¢ÖÐ'+Lines+'!',mtWarning,[mbOk],0);
|
|
|
// Exit;
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if bsck.Checked then
|
|
|
begin
|
|
|
sl.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('֪ͨÈË´úÂë').asstring);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
if IsZhongwen(sl[i]) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥EDIÐÅÏ¢ÖÐ֪ͨÈËÖÐÓÐÖÐÎÄ×Ö·û»òTAB¼ü!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
if Length(sl[i])>35 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥Í¨ÖªÈËÖÐÿÐÐ×Ö·û²»Äܳ¬¹ý35¸ö×Ö·û!',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
{
|
|
|
if (Pos('TEL',sl[i])>0) or (Pos('TEL',sl[i])>0) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥·¢»õÈË´æÔڵ绰ºÍ´«Õæ!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
}
|
|
|
end;
|
|
|
Lines:=ControlLines(sl.Count,2,1,'֪ͨÈË'); //LinesCount,CorpTypeid,BsTypeid:Integer;SName:string
|
|
|
if Lines<>'' then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥EDIÐÅÏ¢ÖÐ'+Lines+'!',mtWarning,[mbOk],0);
|
|
|
// Exit;
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
sl.Clear;
|
|
|
sl.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('ßéÍ·').asstring);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
if IsZhongwen(sl[i]) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('EDIÐÅÏ¢ÖÐßéÍ·ÓÐÖÐÎÄ×Ö·û»òTAB¼ü!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
if Length(sl[i])>35 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ßéÍ·ÖÐÿÐÐ×Ö·û²»Äܳ¬¹ý35¸ö×Ö·û!',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
sl.Clear;
|
|
|
sl.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('»õÎïÃèÊö').asstring);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
if IsZhongwen(sl[i]) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('EDIÐÅÏ¢ÖлõÎïÃèÊöÓÐÖÐÎÄ×Ö·û»òTAB¼ü!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
if bsck.Checked then
|
|
|
begin
|
|
|
sl.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ßéÍ·').asstring);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
if IsZhongwen(sl[i]) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥EDIÐÅÏ¢ÖÐßéÍ·ÖÐÓÐÖÐÎÄ×Ö·û»òTAB¼ü!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
if Length(sl[i])>35 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥ßéÍ·ÖÐÿÐÐ×Ö·û²»Äܳ¬¹ý35¸ö×Ö·û!',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
if bsck.Checked then
|
|
|
begin
|
|
|
sl.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('»õÎïÃèÊö').asstring);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
if IsZhongwen(sl[i]) then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('·Öµ¥EDIÐÅÏ¢ÖлõÎïÃèÊöÖÐÓÐÖÐÎÄ×Ö·û»òTAB¼ü!',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
FreeAndNil(sl);
|
|
|
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('×°¸Û´úÂë').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('×°¸Û´úÂë²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
if Length(trim(frm_op_seae.t_op_seae.fieldbyname('×°¸Û´úÂë').asstring))<>5 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('×°¸Û´úÂë±ØÐëΪ5¸ö×Ö·û',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
|
|
|
{
|
|
|
if trim(GetLoadPortEdiID(frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring))='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('×°¸Û´úÂë²»ÄÜΪ¿Õ,ÇëÔÚÆðÔËά»¤ EDI´úÂë',mtWarning,[mbOk],0);
|
|
|
exit;
|
|
|
end;
|
|
|
}
|
|
|
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ÆôÔ˸۲»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('¿ª´¬ÈÕÆÚ').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('¿ª´¬ÈÕÆÚ²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('¿ª´¬ÈÕÆÚ').asDateTime<(now-120) then begin
|
|
|
result:=false;
|
|
|
MessageDlg('¿ª´¬ÈÕÆÚ±ØÐëÔÚ½ñÈÕµÄ120ÌìÄÚ!',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
begin
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('´¬Ãû').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('´¬Ãû²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('º½´Î').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('º½´Î²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ´úÂë').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('Ä¿µÄµØ´úÂë²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
|
|
|
if Length(trim(frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ´úÂë').asstring))<>5 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('Ä¿µÄµØ´úÂë±ØÐëΪ5¸ö×Ö·û',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('Ä¿µÄµØ²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
//xit;
|
|
|
end;
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('½»»õµØµã').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('½»»õµØµã²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
}
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ж»õ´úÂë').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ж»õ´úÂë²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
end;
|
|
|
|
|
|
if Length(trim(frm_op_seae.t_op_seae.fieldbyname('ж»õ´úÂë').asstring))<>5 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ж»õ´úÂë±ØÐëΪÎå¸ö×Ö·û',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
|
|
|
{
|
|
|
if trim(GetPortEdiID(frm_op_seae.t_op_seae.fieldbyname('ж»õ¸Û').asstring))='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ж»õ´úÂë²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
exit;
|
|
|
end;
|
|
|
|
|
|
}
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ж»õ¸Û').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ж»õ¸Û²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
if GetPkgCode(trim(frm_op_seae.t_op_seae.fieldbyname('°ü×°').asstring))='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('°ü×°´úÂë²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if GetPkgCode(trim(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('°ü×°').asstring))='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('°ü×°´úÂë²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('»õÎïÃèÊö').asstring)='' then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('»õÎïÃèÊö²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if trim(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('»õÎïÃèÊö').asstring)='' then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('»õÎïÃèÊö²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ßéÍ·').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ßéÍ·²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if trim(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ßéÍ·').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ßéÍ·²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('¼þÊý').asinteger=0 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('¼þÊý²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('ÖØÁ¿').asfloat=0 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ÖØÁ¿²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('³ßÂë').asfloat=0 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('³ßÂë²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('¼þÊý').asinteger=0 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('¼þÊý²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
if frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ÖØÁ¿').asfloat=0 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ÖØÁ¿²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
if frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('³ßÂë').asfloat=0 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('³ßÂë²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring)='D' then begin
|
|
|
if Trim(frm_op_seae.t_op_seae.fieldbyname('ΣÏÕÆ··ÖÀà').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ΣÏÕÆ·µÈ¼¶²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
if Trim(frm_op_seae.t_op_seae.fieldbyname('ΣÏÕÆ·±àºÅ').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ΣÏÕÆ·±àºÅ²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
if GetStrNum(Trim(frm_op_seae.t_op_seae.fieldbyname('ΣÏÕÆ·±àºÅ').asstring))<>4 then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ΣÏÕÆ·±àºÅ±ØÐëÊÇ4λÊý×Ö',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring)='R' then begin
|
|
|
if Trim(frm_op_seae.t_op_seae.fieldbyname('ÉèÖÃζÈ').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ÉèÖÃζȲ»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
if GetStrNum(trim(frm_op_seae.t_op_seae.fieldbyname('ÉèÖÃζÈ').asstring))<>3 then
|
|
|
begin
|
|
|
result:=false;
|
|
|
MessageDlg('ÉèÖÃζȱØÐëÊÇ3λÊý×Ö',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if RadioGroup1.ItemIndex=1 then begin
|
|
|
if (trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥µØµã').asstring)='')
|
|
|
or (GetPortEdiID(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥µØµã').asstring)='')
|
|
|
then begin //Ç©µ¥µØµã´úÂë
|
|
|
result:=false;
|
|
|
MessageDlg('Ç©µ¥µØµã(»òedi´úÂë)²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('ÔËÊäÌõ¿î²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
t_op_ctn.Close;t_op_ctn.SQL.Clear;
|
|
|
t_op_ctn.SQL.Add('SELECT t_op_ctn.±àºÅ,t_op_ctn.ÊýÁ¿, t_code_ctn.EDI´úÂë,t_op_ctn.³ß´ç,t_op_ctn.°ü×°');
|
|
|
t_op_ctn.SQL.Add(',t_op_ctn.ÏäÐÍ,t_op_ctn.ÏäºÅ,t_op_ctn.ÖØÁ¿,t_op_ctn.·âºÅ,t_op_ctn.³ßÂë,t_op_ctn.¼þÊý,t_op_ctn.Æ·Ãû');
|
|
|
t_op_ctn.SQL.Add('FROM t_op_ctn INNER JOIN');
|
|
|
t_op_ctn.SQL.Add('t_code_ctn ON t_op_ctn.´úÂë = t_code_ctn.´úÂë');
|
|
|
t_op_ctn.SQL.Add('WHERE t_op_ctn.񅧏=:񅧏');
|
|
|
t_op_ctn.Parameters.ParamByName('񅧏').Value:=frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
t_op_ctn.Close;t_op_ctn.SQL.Clear;
|
|
|
t_op_ctn.SQL.Add('SELECT t_op_ctn_fendan.±àºÅ,t_op_ctn_fendan.ÊýÁ¿, t_code_ctn.EDI´úÂë,t_op_ctn_fendan.³ß´ç,t_op_ctn_fendan.°ü×°');
|
|
|
t_op_ctn.SQL.Add(',t_op_ctn_fendan.ÏäÐÍ,t_op_ctn_fendan.ÏäºÅ,t_op_ctn_fendan.ÖØÁ¿,t_op_ctn_fendan.·âºÅ,t_op_ctn_fendan.³ßÂë,t_op_ctn_fendan.¼þÊý,t_op_ctn_fendan.Æ·Ãû');
|
|
|
t_op_ctn.SQL.Add('FROM t_op_ctn_fendan INNER JOIN');
|
|
|
t_op_ctn.SQL.Add('t_code_ctn ON t_op_ctn_fendan.´úÂë = t_code_ctn.´úÂë');
|
|
|
t_op_ctn.SQL.Add('WHERE t_op_ctn_fendan.as_id=:as_id');
|
|
|
t_op_ctn.Parameters.ParamByName('as_id').Value:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('as_id').asinteger;
|
|
|
end;
|
|
|
|
|
|
|
|
|
t_op_ctn.open;
|
|
|
if t_op_ctn.IsEmpty then begin
|
|
|
result:=false;
|
|
|
MessageDlg('¼¯×°Ïä²»ÄÜΪ¿Õ',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
t_op_ctn.first;
|
|
|
while not t_op_ctn.eof do
|
|
|
begin
|
|
|
cntrs:=GetCtnCode(t_op_ctn.fieldByName('ÏäÐÍ').asString,t_op_ctn.fieldByName('³ß´ç').asString);
|
|
|
if cntrs='' then begin
|
|
|
result:=false;
|
|
|
MessageDlg('¼¯×°ÏäÀàÐÍEDI´úÂë²»´æÔÚ!',mtWarning,[mbOk],0);
|
|
|
// exit;
|
|
|
end;
|
|
|
|
|
|
if t_op_ctn.fieldByName('Æ·Ãû').asString='' then
|
|
|
begin
|
|
|
if Goods='' then
|
|
|
Goods:=t_op_ctn.fieldByName('ÏäÐÍ').asString+t_op_ctn.fieldByName('³ß´ç').asString
|
|
|
else Goods:=Goods+#13#10+t_op_ctn.fieldByName('ÏäÐÍ').asString+t_op_ctn.fieldByName('³ß´ç').asString;
|
|
|
end;
|
|
|
t_op_ctn.next;
|
|
|
end;
|
|
|
{
|
|
|
if trim(Goods)<>'' then
|
|
|
MessageDlg('×¢Òâ'+#13#10+Goods+#13#10+'¼¯×°Ïä»õÎïÃû³ÆΪ¿Õ!',mtWarning,[mbOk],0);
|
|
|
}
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.get_goods(str:widestring):widestring;
|
|
|
var
|
|
|
str_all:Tstringlist;
|
|
|
r_str:widestring;
|
|
|
i:integer;
|
|
|
begin
|
|
|
str:=Changestr(trim(str));
|
|
|
str_all:=Tstringlist.Create;
|
|
|
str_all.Text:=str;
|
|
|
for i:=0 to str_all.Count-1 do
|
|
|
begin
|
|
|
r_str:=r_str+' '+str_all[i];
|
|
|
end;
|
|
|
result:=trim(r_str);
|
|
|
end;
|
|
|
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.GetCtnCode(ctnkind,ctnsize:String): String;
|
|
|
var
|
|
|
aQuery:TADOQuery;
|
|
|
begin
|
|
|
aQuery:=CreateAdoQuery;
|
|
|
ctnsize:=StringReplace(ctnsize,'''','''''',[rfReplaceAll]);
|
|
|
|
|
|
try
|
|
|
with aQuery do
|
|
|
begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('Select EDI´úÂë from t_code_ctn where ÏäÐÍ='''+ctnkind+''' and ³ß´ç='''+ctnsize+'''');
|
|
|
Open;
|
|
|
if not IsEmpty then
|
|
|
Result:=Trim(FieldByName('EDI´úÂë').asstring)
|
|
|
else
|
|
|
Result:='';
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(aQuery);
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.GetPkgCode(Pkg:String): String;
|
|
|
var
|
|
|
aQuery:TADOQuery;
|
|
|
begin
|
|
|
aQuery:=CreateAdoQuery;
|
|
|
try
|
|
|
with aQuery do begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('Select EDI´úÂë from t_code_package where ´úÂë='''+pkg+'''');
|
|
|
Open;
|
|
|
if not IsEmpty then
|
|
|
Result:=Trim(FieldByName('EDI´úÂë').asstring)
|
|
|
else
|
|
|
Result:='';
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(aQuery);
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
function Tfrm_op_seae_edi_cargosmart.GetPort(PortID:String): String;
|
|
|
var
|
|
|
aQuery:TADOQuery;
|
|
|
begin
|
|
|
aQuery:=CreateAdoQuery;
|
|
|
try
|
|
|
with aQuery do begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('Select ¸Û¿ÚÃû³Æ Ó¢ÎÄÃû from t_code_edi_port where EDI´úÂë='''+PortID+'''');
|
|
|
Open;
|
|
|
if not IsEmpty then
|
|
|
Result:=Trim(FieldByName('Ó¢ÎÄÃû').asstring)
|
|
|
else
|
|
|
Result:='';
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(aQuery);
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
function Tfrm_op_seae_edi_cargosmart.GetLoadPortEdiID(Port:String): String;
|
|
|
var
|
|
|
aQuery:TADOQuery;
|
|
|
begin
|
|
|
aQuery:=CreateAdoQuery;
|
|
|
try
|
|
|
with aQuery do begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('Select EDI´úÂë from t_code_loaport where Ó¢ÎÄÃû='''+Port+'''');
|
|
|
Open;
|
|
|
if not IsEmpty then
|
|
|
Result:=Trim(FieldByName('EDI´úÂë').asstring)
|
|
|
else
|
|
|
Result:='';
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(aQuery);
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.GetPortEdiID(Port:String): String;
|
|
|
var
|
|
|
aQuery:TADOQuery;
|
|
|
begin
|
|
|
aQuery:=CreateAdoQuery;
|
|
|
try
|
|
|
with aQuery do begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('Select EDI´úÂë from t_code_disport where Ó¢ÎÄÃû='''+Port+'''');
|
|
|
Open;
|
|
|
if not IsEmpty then
|
|
|
Result:=Trim(FieldByName('EDI´úÂë').asstring)
|
|
|
else
|
|
|
Result:='';
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(aQuery);
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.GetShipEdiNO(Ship:String): String;
|
|
|
var
|
|
|
aQuery:TADOQuery;
|
|
|
begin
|
|
|
aQuery:=CreateAdoQuery;
|
|
|
try
|
|
|
with aQuery do begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('Select ´úÂë,EDI´úÂë,¿Í»§¼ò³Æ,¿Í»§È«³Æ,À¿»õÈË,¼ÈëÈË,¼ÈëÈÕÆÚ from t_crm_client');
|
|
|
SQL.Add('where ¿Í»§ÐÔÖÊ<>''Ä¿±ê'' and ´¬¹«Ë¾=1 and ¿Í»§¼ò³Æ='''+Ship+'''');
|
|
|
SQL.Add('order by ´úÂë');
|
|
|
Open;
|
|
|
if not IsEmpty then
|
|
|
Result:=Trim(FieldByName('EDI´úÂë').asstring)
|
|
|
else
|
|
|
Result:='';
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(aQuery);
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.Changestr(str:widestring):string;
|
|
|
var
|
|
|
i:integer;
|
|
|
strC:widestring;
|
|
|
begin
|
|
|
strC:=str;
|
|
|
strC:=StringReplace(strC,'''''','"',[rfReplaceAll]);
|
|
|
strC:=StringReplace(strC,'''',''',[rfReplaceAll]);
|
|
|
strC:=StringReplace(strC,'&','&',[rfReplaceAll]);
|
|
|
strC:=StringReplace(strC,'>','>',[rfReplaceAll]);
|
|
|
strC:=StringReplace(strC,'<','<',[rfReplaceAll]);
|
|
|
|
|
|
result:=strC;
|
|
|
end;
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.GetLengthword(var s: String; l: Integer;str:String): String;
|
|
|
var
|
|
|
i:Integer;
|
|
|
b:Boolean;
|
|
|
begin
|
|
|
s:='';
|
|
|
if Length(str)<=l then begin
|
|
|
result:=str;
|
|
|
end else begin
|
|
|
b:=true;
|
|
|
s:=Copy(str,l+1,Length(str)-l);
|
|
|
str:=Copy(str,1,l);
|
|
|
result:='';
|
|
|
for i:=Length(str) downto 1 do begin
|
|
|
if (str[i]<>' ') and b then
|
|
|
s:=str[i]+s
|
|
|
else begin
|
|
|
b:=false;
|
|
|
result:=str[i]+Result;
|
|
|
end;
|
|
|
end;
|
|
|
s:=s+' ';
|
|
|
end;
|
|
|
end;
|
|
|
procedure Tfrm_op_seae_edi_cargosmart.GetLengthTString(var sl: TStringList; l: integer);
|
|
|
var
|
|
|
i:integer;
|
|
|
str_head,S:String;
|
|
|
Stemp:TStrings;
|
|
|
begin
|
|
|
Stemp:=TStringList.Create;
|
|
|
try
|
|
|
str_head:='';
|
|
|
S:='';
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
if sl[i]<>'' then
|
|
|
stemp.add(GetLengthword(str_head,l,s+sl[i]));
|
|
|
S:=Str_head;
|
|
|
end;
|
|
|
while S<>'' do begin
|
|
|
stemp.add(GetLengthword(str_head,l,s));
|
|
|
S:=Str_head;
|
|
|
end;
|
|
|
SL.Assign(Stemp);
|
|
|
finally
|
|
|
FreeAndNil(Stemp);
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.GetStrNum(str:String):integer;
|
|
|
var
|
|
|
i:integer;
|
|
|
begin
|
|
|
result:=0;
|
|
|
if str='' then exit;
|
|
|
for i:=1 to length(Str) do begin
|
|
|
if str[i] in ['0','1','2','3','4','5','6','7','8','9'] then
|
|
|
result:=result+1;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.GetCharNum(str:String):integer;
|
|
|
var
|
|
|
i:integer;
|
|
|
begin
|
|
|
result:=0;
|
|
|
if str='' then exit;
|
|
|
for i:=1 to length(Str) do begin
|
|
|
if str[i] in ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] then
|
|
|
result:=result+1;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.IsZhongwen(Str: String): Boolean;
|
|
|
var
|
|
|
i:Integer;
|
|
|
begin
|
|
|
Result:=false;
|
|
|
if Str='' then Exit;
|
|
|
for i:=1 to Length(Str) do begin
|
|
|
if (Str[i]>Chr(127)) or (Str[i]=Chr(9)) then begin
|
|
|
// if (Str[i]>Chr(127)) or (Str[i]=Chr(9)) or (Str[i]='<') or (Str[i]='>') then begin
|
|
|
Result:=True;
|
|
|
Exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.get_txtBooking(strL:Tstringlist;afilename:String):integer;
|
|
|
var
|
|
|
str_all,sl:Tstringlist;
|
|
|
j,Count,i,k:integer;
|
|
|
str_guodu,str_shr,str_con,str_not:widestring;
|
|
|
str_pay,Str_head,sControlNumber:string;
|
|
|
function CutVoyNo(VoyNo:String):String;
|
|
|
begin
|
|
|
if length(VoyNO)<3 then exit;
|
|
|
if Pos('.',VoyNO)>0 then begin
|
|
|
Result:=Copy(VoyNO,3,length(VoyNO)-2);
|
|
|
end else
|
|
|
Result:=VoyNO;
|
|
|
end;
|
|
|
begin
|
|
|
str_all:=Tstringlist.Create;
|
|
|
count:=0;
|
|
|
sControlNumber:=frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring;
|
|
|
sControlNumber:=Copy(sControlNumber,Length(sControlNumber)-6,7);
|
|
|
StrL.Add('<InterchangeControlHeader>');
|
|
|
StrL.Add('<ControlNumber>EDI' + sControlNumber + '</ControlNumber>');
|
|
|
StrL.Add('<SenderId>' + Trim(Edit1.text) + '</SenderId>');
|
|
|
StrL.Add('<ReceiverId>' + Trim(Edit3.text) + '</ReceiverId>');
|
|
|
StrL.Add('<DateTime>' +formatdatetime('yyyymmddhhnnss',now)+ '</DateTime>');
|
|
|
StrL.Add('<ControlVersion>5.9</ControlVersion>');
|
|
|
StrL.Add('<UsageIndicator>T</UsageIndicator>');
|
|
|
sControlNumber:=frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring;
|
|
|
sControlNumber:=Copy(sControlNumber,Length(sControlNumber)-5,6);
|
|
|
StrL.Add('<MessageSessionId>' +sControlNumber+ '</MessageSessionId>');
|
|
|
StrL.Add('</InterchangeControlHeader>');
|
|
|
|
|
|
|
|
|
StrL.Add('<Request>');
|
|
|
|
|
|
StrL.Add('<GeneralInfo>');
|
|
|
StrL.Add('<TransactionInfo>');
|
|
|
sControlNumber:=frm_op_seae.t_op_seae.fieldbyname('¶©²Õµ¥ºÅ').asstring;
|
|
|
StrL.Add('<BatchNumber>' +sControlNumber+ '</BatchNumber>');
|
|
|
StrL.Add('<MessageSender>' + Trim(Edit1.text) + '</MessageSender>');
|
|
|
StrL.Add('<MessageRecipient>' + Trim(Edit3.text) + '</MessageRecipient>');
|
|
|
StrL.Add('<MessageID>BRXML</MessageID>');
|
|
|
StrL.Add('<DateCreated TimeZone="HKT">' +formatdatetime('yyyymmddhhnnss',now)+ '</DateCreated>');
|
|
|
StrL.Add('<FileName>' +afilename+ '</FileName>');
|
|
|
StrL.Add('<Version>1.0</Version>');
|
|
|
StrL.Add('</TransactionInfo>');
|
|
|
|
|
|
if RadioGroup3.ItemIndex=1 then
|
|
|
StrL.Add('<ActionType>UPD</ActionType>')
|
|
|
else
|
|
|
StrL.Add('<ActionType>NEW</ActionType>');
|
|
|
StrL.Add('<SCAC>' +aCarrier.EdiNo+ '</SCAC>');
|
|
|
|
|
|
StrL.Add('<Offices>');
|
|
|
StrL.Add('<BookingOffice></BookingOffice>');
|
|
|
StrL.Add('<BookingOfficeName></BookingOfficeName>');
|
|
|
StrL.Add('<BLIssuingOffice></BLIssuingOffice>');
|
|
|
StrL.Add('<CargoOrigin></CargoOrigin>');
|
|
|
StrL.Add('</Offices>');
|
|
|
|
|
|
StrL.Add('<Requested>');
|
|
|
StrL.Add('<By>' +aCarrier.EdiNo+ '</By>');
|
|
|
StrL.Add('<Date TimeZone="HKT">' +formatdatetime('yyyymmddhhnnss',now)+ '</Date>');
|
|
|
StrL.Add('</Requested>');
|
|
|
|
|
|
StrL.Add('</GeneralInfo>');
|
|
|
|
|
|
|
|
|
StrL.Add('<ShipmentDetails>');
|
|
|
|
|
|
StrL.Add('<UserReferences>');
|
|
|
StrL.Add('<References>');
|
|
|
StrL.Add('<ReferenceType>CR</ReferenceType>');
|
|
|
StrL.Add('<ReferenceNumber>' +frm_op_seae.t_op_seae.fieldbyname('¶©²Õµ¥ºÅ').asstring+ '</ReferenceNumber>');
|
|
|
StrL.Add('</References>');
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔË·ÑÐÒéºÅ').asstring)<>'' then begin //ÔËÊäÐÒéºÅ
|
|
|
StrL.Add('<References>');
|
|
|
StrL.Add('<ReferenceType>CT</ReferenceType>');
|
|
|
StrL.Add('<ReferenceNumber>' +frm_op_seae.t_op_seae.fieldbyname('ÔË·ÑÐÒéºÅ').asstring+ '</ReferenceNumber>');
|
|
|
StrL.Add('</References>');
|
|
|
end;
|
|
|
StrL.Add('</UserReferences>');
|
|
|
|
|
|
StrL.Add('<LegalParties>');
|
|
|
|
|
|
|
|
|
StrL.Add('<Party>');
|
|
|
StrL.Add('<PartyType>SH</PartyType>');
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('·¢»õÈË´úÂë').asstring);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('·¢»õÈË´úÂë').asstring);
|
|
|
end;
|
|
|
StrL.Add('<PartyName>' +str_all[0]+ '</PartyName>');
|
|
|
|
|
|
|
|
|
StrL.Add('<PartyLocation>');
|
|
|
if (str_all.Count>1) then begin
|
|
|
StrL.Add('<Address>');
|
|
|
for j:=1 to str_all.Count-1 do
|
|
|
begin
|
|
|
StrL.Add('<AddressLines>'+str_all[j]+'</AddressLines>');
|
|
|
end;
|
|
|
StrL.Add('</Address>');
|
|
|
end;
|
|
|
|
|
|
|
|
|
StrL.Add('<City>' +Edit19.text+ '</City>');
|
|
|
StrL.Add('</PartyLocation>');
|
|
|
|
|
|
|
|
|
StrL.Add('</Party>');
|
|
|
|
|
|
StrL.Add('<Party>');
|
|
|
StrL.Add('<PartyType>CN</PartyType>');
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('ÊÕ»õÈË´úÂë').asstring);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ÊÕ»õÈË´úÂë').asstring);
|
|
|
end;
|
|
|
StrL.Add('<PartyName>' +str_all[0]+ '</PartyName>');
|
|
|
|
|
|
|
|
|
StrL.Add('<PartyLocation>');
|
|
|
if (str_all.Count>1) then begin
|
|
|
StrL.Add('<Address>');
|
|
|
for j:=1 to str_all.Count-1 do
|
|
|
begin
|
|
|
StrL.Add('<AddressLines>'+str_all[j]+'</AddressLines>');
|
|
|
end;
|
|
|
StrL.Add('</Address>');
|
|
|
end;
|
|
|
|
|
|
|
|
|
StrL.Add('<City>' +frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ').asstring+ '</City>');
|
|
|
StrL.Add('</PartyLocation>');
|
|
|
StrL.Add('</Party>');
|
|
|
|
|
|
StrL.Add('<Party>');
|
|
|
StrL.Add('<PartyType>NP</PartyType>');
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('֪ͨÈË´úÂë').asstring);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('֪ͨÈË´úÂë').asstring);
|
|
|
end;
|
|
|
StrL.Add('<PartyName>' +str_all[0]+ '</PartyName>');
|
|
|
|
|
|
|
|
|
StrL.Add('<PartyLocation>');
|
|
|
if (str_all.Count>1) then begin
|
|
|
StrL.Add('<Address>');
|
|
|
for j:=1 to str_all.Count-1 do
|
|
|
begin
|
|
|
StrL.Add('<AddressLines>'+str_all[j]+'</AddressLines>');
|
|
|
end;
|
|
|
StrL.Add('</Address>');
|
|
|
end;
|
|
|
StrL.Add('<City>' +frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ').asstring+ '</City>');
|
|
|
StrL.Add('</PartyLocation>');
|
|
|
StrL.Add('</Party>');
|
|
|
|
|
|
StrL.Add('<Party>');
|
|
|
StrL.Add('<PartyType>BP</PartyType>');
|
|
|
StrL.Add('<PartyName>' +edit2.text+ '</PartyName>');
|
|
|
StrL.Add('<CarrierCustomerCode>' +edit12.text+ '</CarrierCustomerCode>');
|
|
|
StrL.Add('<PartyLocation>');
|
|
|
{
|
|
|
StrL.Add('<Address>');
|
|
|
StrL.Add('<AddressLines></AddressLines>');
|
|
|
StrL.Add('</Address>');
|
|
|
}
|
|
|
StrL.Add('<City>' +Edit19.text+ '</City>');
|
|
|
StrL.Add('</PartyLocation>');
|
|
|
StrL.Add('<ContactPerson>');
|
|
|
StrL.Add('<FirstName>' +Edit7.text+ '</FirstName>');
|
|
|
StrL.Add('<Email>' +Edit6.text+ '</Email>');
|
|
|
StrL.Add('</ContactPerson>');
|
|
|
StrL.Add('</Party>');
|
|
|
|
|
|
StrL.Add('</LegalParties>');
|
|
|
|
|
|
StrL.Add('<RouteInformation>');
|
|
|
StrL.Add('<IntendedDates>');
|
|
|
StrL.Add('<From TimeZone="LOCAL">' +formatdatetime('yyyymmddhhnnss',frm_op_seae.t_op_seae.fieldbyname('¿ª´¬ÈÕÆÚ').asdatetime)+ '</From>');
|
|
|
if (frm_op_seae.t_op_seae.fieldbyname('Ô¤µÖÈÕÆÚ').asstring<>'') then
|
|
|
StrL.Add('<To TimeZone="LOCAL">' +formatdatetime('yyyymmddhhnnss',frm_op_seae.t_op_seae.fieldbyname('Ô¤µÖÈÕÆÚ').asdatetime)+ '</To>');
|
|
|
StrL.Add('<Range>S</Range>');
|
|
|
StrL.Add('</IntendedDates>');
|
|
|
|
|
|
|
|
|
StrL.Add('<Location>');
|
|
|
StrL.Add('<FunctionCode>POR</FunctionCode>');
|
|
|
StrL.Add('<LocationName>' +frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring+ '</LocationName>');
|
|
|
StrL.Add('<LocationDetails>');
|
|
|
StrL.Add('<City>' +frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring+ '</City>');
|
|
|
StrL.Add('<LocationCode>');
|
|
|
StrL.Add('<UNLocationCode>' +frm_op_seae.t_op_seae.fieldbyname('×°¸Û´úÂë').asstring+ '</UNLocationCode>');
|
|
|
StrL.Add('</LocationCode>');
|
|
|
StrL.Add('</LocationDetails>');
|
|
|
StrL.Add('</Location>');
|
|
|
|
|
|
StrL.Add('<Location>');
|
|
|
StrL.Add('<FunctionCode>FND</FunctionCode>');
|
|
|
StrL.Add('<LocationName>' +frm_op_seae.t_op_seae.fieldbyname('ж»õ¸Û').asstring+ '</LocationName>');
|
|
|
StrL.Add('<LocationDetails>');
|
|
|
StrL.Add('<City>' +frm_op_seae.t_op_seae.fieldbyname('ж»õ¸Û').asstring+ '</City>');
|
|
|
StrL.Add('<LocationCode>');
|
|
|
StrL.Add('<UNLocationCode>' +frm_op_seae.t_op_seae.fieldbyname('ж»õ´úÂë').asstring+ '</UNLocationCode>');
|
|
|
StrL.Add('</LocationCode>');
|
|
|
StrL.Add('</LocationDetails>');
|
|
|
StrL.Add('</Location>');
|
|
|
|
|
|
StrL.Add('<Intermodal>');
|
|
|
|
|
|
StrL.Add('<VesselVoyageInformation>');
|
|
|
StrL.Add('<ServiceName Code=""/>');
|
|
|
StrL.Add('<VoyageNumberDirection>' +frm_op_seae.t_op_seae.fieldbyname('º½´Î').asstring+ '</VoyageNumberDirection>');
|
|
|
StrL.Add('<VesselInformation>');
|
|
|
StrL.Add('<VesselName>' +frm_op_seae.t_op_seae.fieldbyname('´¬Ãû').asstring+ '</VesselName>');
|
|
|
StrL.Add('</VesselInformation>');
|
|
|
StrL.Add('<External>');
|
|
|
StrL.Add('<VesselCode Type="Z"/>');
|
|
|
StrL.Add('</External>');
|
|
|
StrL.Add('</VesselVoyageInformation>');
|
|
|
|
|
|
StrL.Add('<Location>');
|
|
|
StrL.Add('<FunctionCode>POL</FunctionCode>');
|
|
|
StrL.Add('<LocationName>' +frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring+ '</LocationName>');
|
|
|
StrL.Add('<LocationDetails>');
|
|
|
StrL.Add('<City>' +frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring+ '</City>');
|
|
|
StrL.Add('<LocationCode>');
|
|
|
StrL.Add('<UNLocationCode>' +frm_op_seae.t_op_seae.fieldbyname('×°¸Û´úÂë').asstring+ '</UNLocationCode>');
|
|
|
StrL.Add('</LocationCode>');
|
|
|
StrL.Add('</LocationDetails>');
|
|
|
StrL.Add('</Location>');
|
|
|
|
|
|
StrL.Add('<Location>');
|
|
|
StrL.Add('<FunctionCode>POD</FunctionCode>');
|
|
|
StrL.Add('<LocationName>' +frm_op_seae.t_op_seae.fieldbyname('ж»õ¸Û').asstring+ '</LocationName>');
|
|
|
StrL.Add('<LocationDetails>');
|
|
|
StrL.Add('<City>' +frm_op_seae.t_op_seae.fieldbyname('ж»õ¸Û').asstring+ '</City>');
|
|
|
StrL.Add('<LocationCode>');
|
|
|
StrL.Add('<UNLocationCode>' +frm_op_seae.t_op_seae.fieldbyname('ж»õ´úÂë').asstring+ '</UNLocationCode>');
|
|
|
StrL.Add('</LocationCode>');
|
|
|
StrL.Add('</LocationDetails>');
|
|
|
StrL.Add('</Location>');
|
|
|
|
|
|
StrL.Add('</Intermodal>');
|
|
|
|
|
|
StrL.Add('</RouteInformation>');
|
|
|
|
|
|
|
|
|
StrL.Add('<EquipmentInformation>');
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
t_op_ctn.Close;t_op_ctn.SQL.Clear;
|
|
|
t_op_ctn.SQL.Add('SELECT t_op_ctn.±àºÅ,SUM(t_op_ctn.ÊýÁ¿) ÊýÁ¿, t_code_ctn.EDI´úÂë,t_op_ctn.³ß´ç');
|
|
|
t_op_ctn.SQL.Add(',t_op_ctn.ÏäÐÍ,sum(t_op_ctn.ÖØÁ¿) KGS,sum(t_op_ctn.³ßÂë) CBM,sum(t_op_ctn.¼þÊý) PKGS');
|
|
|
t_op_ctn.SQL.Add('FROM t_op_ctn INNER JOIN');
|
|
|
t_op_ctn.SQL.Add('t_code_ctn ON t_op_ctn.´úÂë = t_code_ctn.´úÂë');
|
|
|
t_op_ctn.SQL.Add('WHERE t_op_ctn.񅧏=:񅧏');
|
|
|
t_op_ctn.SQL.Add('group by t_op_ctn.±àºÅ,t_code_ctn.EDI´úÂë,t_op_ctn.³ß´ç,t_op_ctn.ÏäÐÍ');
|
|
|
t_op_ctn.close;
|
|
|
t_op_ctn.Parameters.ParamByName('񅧏').Value:=frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
t_op_ctn.Close;t_op_ctn.SQL.Clear;
|
|
|
t_op_ctn.SQL.Add('SELECT t_op_ctn_fendan.±àºÅ,SUM(t_op_ctn_fendan.ÊýÁ¿) ÊýÁ¿, t_code_ctn.EDI´úÂë,t_op_ctn_fendan.³ß´ç');
|
|
|
t_op_ctn.SQL.Add(',t_op_ctn_fendan.ÏäÐÍ,sum(t_op_ctn_fendan.ÖØÁ¿) KGS,SUM(t_op_ctn_fendan.³ßÂë) CBM,sum(t_op_ctn_fendan.¼þÊý) pkgs');
|
|
|
t_op_ctn.SQL.Add('FROM t_op_ctn_fendan INNER JOIN');
|
|
|
t_op_ctn.SQL.Add('t_code_ctn ON t_op_ctn_fendan.´úÂë = t_code_ctn.´úÂë');
|
|
|
t_op_ctn.SQL.Add('WHERE t_op_ctn_fendan.as_id=:as_id');
|
|
|
t_op_ctn.SQL.Add('group by t_op_ctn_fendan.±àºÅ,t_code_ctn.EDI´úÂë,t_op_ctn_fendan.³ß´ç,t_op_ctn_fendan.ÏäÐÍ');
|
|
|
t_op_ctn.close;
|
|
|
t_op_ctn.Parameters.ParamByName('as_id').Value:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('as_id').asinteger;
|
|
|
end;
|
|
|
t_op_ctn.open;
|
|
|
t_op_ctn.first;
|
|
|
while not t_op_ctn.eof do
|
|
|
begin
|
|
|
StrL.Add('<Containers>');
|
|
|
StrL.Add('<ContainerType>' +GetCtnCode(t_op_ctn.fieldbyname('ÏäÐÍ').asstring,t_op_ctn.fieldbyname('³ß´ç').asstring)+ '</ContainerType>');
|
|
|
StrL.Add('<Quantity>' +t_op_ctn.fieldbyname('ÊýÁ¿').asstring+ '</Quantity>');
|
|
|
{
|
|
|
StrL.Add('<Package Type="'+GetPkgCode(trim(frm_op_seae.t_op_seae.fieldbyname('°ü×°').asstring))+'">' +t_op_ctn.fieldbyname('PKGS').asstring+ '</Package>');
|
|
|
StrL.Add('<Weight Units="KGS" Qualifier="GROSS">' +t_op_ctn.fieldbyname('KGS').asstring+ '</Weight>');
|
|
|
StrL.Add('<Volume Type="CBM">' +t_op_ctn.fieldbyname('CBM').asstring+ '</Volume>');
|
|
|
}
|
|
|
StrL.Add('<OutBound>');
|
|
|
StrL.Add('<isMerchantHaulage>1</isMerchantHaulage>');
|
|
|
StrL.Add('</OutBound>');
|
|
|
StrL.Add('<InBound>');
|
|
|
StrL.Add('<isMerchantHaulage>1</isMerchantHaulage>');
|
|
|
StrL.Add('</InBound>');
|
|
|
StrL.Add('</Containers>');
|
|
|
t_op_ctn.Next;
|
|
|
end;
|
|
|
StrL.Add('</EquipmentInformation>');
|
|
|
|
|
|
StrL.Add('<CargoInformation>');
|
|
|
|
|
|
StrL.Add('<CargoDetails>');
|
|
|
|
|
|
if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='R' then
|
|
|
StrL.Add('<CargoNature>RF</CargoNature>')
|
|
|
else if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='D' then
|
|
|
StrL.Add('<CargoNature>DG</CargoNature>')
|
|
|
else
|
|
|
StrL.Add('<CargoNature>GC</CargoNature>');
|
|
|
|
|
|
sl:=TStringList.Create;
|
|
|
try
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
str_guodu:=Changestr(frm_op_seae.t_op_seae.fieldbyname('»õÎïÃèÊö').asstring);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_guodu:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('»õÎïÃèÊö').asstring);
|
|
|
end;
|
|
|
str_guodu:=StringReplace(str_guodu,#13#10,' ',[rfReplaceAll]);
|
|
|
if (Length(sl.Text)<=60) then
|
|
|
StrL.Add('<CargoDescription>'+str_guodu+'</CargoDescription>')
|
|
|
else
|
|
|
StrL.Add('<CargoDescription>'+copy(str_guodu,1,60)+'</CargoDescription>');
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
StrL.Add('<Packaging>');
|
|
|
StrL.Add('<PackageType>'+GetPkgCode(trim(frm_op_seae.t_op_seae.fieldbyname('°ü×°').asstring))+'</PackageType>');
|
|
|
StrL.Add('<Quantity>'+frm_op_seae.t_op_seae.fieldbyname('¼þÊý').asstring+'</Quantity>');
|
|
|
StrL.Add('</Packaging>');
|
|
|
|
|
|
|
|
|
StrL.Add('<Weight Units="KGS" Qualifier="GROSS">'+frm_op_seae.t_op_seae.fieldbyname('ÖØÁ¿').asstring+'</Weight>');
|
|
|
StrL.Add('<Volume Units="CBM">' +frm_op_seae.t_op_seae.fieldbyname('³ßÂë').asstring+ '</Volume>');
|
|
|
|
|
|
StrL.Add('<TrafficMode>');
|
|
|
if frm_op_seae.t_op_seae.FieldByName('×°ÔË·½Ê½').asstring='ÕûÏä' then
|
|
|
StrL.Add('<OutBound>FCL</OutBound>')
|
|
|
else StrL.Add('<OutBound>LCL</OutBound>');
|
|
|
StrL.Add('</TrafficMode>');
|
|
|
|
|
|
if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='R' then begin
|
|
|
StrL.Add('<ReeferSettings>');
|
|
|
StrL.Add('<Temperature Units="C">'+frm_op_seae.t_op_seae.FieldByName('ÉèÖÃζÈ').asstring+'</Temperature>');
|
|
|
StrL.Add('<Ventilation>'+frm_op_seae.t_op_seae.FieldByName('Àä²Øͨ·çÁ¿').asstring+'</Ventilation>');
|
|
|
if (frm_op_seae.t_op_seae.FieldByName('ʪ¶È').asstring<>'') then
|
|
|
StrL.Add('<DehumidityPercentage>'+frm_op_seae.t_op_seae.FieldByName('ʪ¶È').asstring+'</DehumidityPercentage>');
|
|
|
StrL.Add('<EmergencyContact>');
|
|
|
StrL.Add('<FirstName>'+t_op_edi.FieldByName('ΣÏÕÆ·ÁªÏµÈË').asstring+'</FirstName>');
|
|
|
StrL.Add('<LastName></LastName>');
|
|
|
StrL.Add('<Phone>');
|
|
|
StrL.Add('<Number>'+t_op_edi.FieldByName('ΣÏÕÆ·ÁªÏµ·½Ê½').asstring+'</Number>');
|
|
|
StrL.Add('</Phone>');
|
|
|
StrL.Add('<Type>OutBound</Type>');
|
|
|
StrL.Add('</EmergencyContact>');
|
|
|
|
|
|
StrL.Add('</ReeferSettings>');
|
|
|
end else if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='D' then begin
|
|
|
StrL.Add('<DangerousCargo>');
|
|
|
StrL.Add('<DangerousCargoInfo>');
|
|
|
|
|
|
StrL.Add('<HazardousMaterial>');
|
|
|
StrL.Add('<IMCOClass>'+frm_op_seae.t_op_seae.FieldByName('ΣÏÕÆ··ÖÀà').asstring+'</IMCOClass>');
|
|
|
// StrL.Add('<IMCOPage>'+t_op_edi.FieldByName('ΣÏÕÆ·µÈ¼¶').asstring+'</IMCOPage>');
|
|
|
StrL.Add('<UNNumber>'+frm_op_seae.t_op_seae.FieldByName('ΣÏÕÆ·±àºÅ').asstring+'</UNNumber>');
|
|
|
StrL.Add('</HazardousMaterial>');
|
|
|
|
|
|
StrL.Add('<EmergencyContact>');
|
|
|
StrL.Add('<FirstName>'+t_op_edi.FieldByName('ΣÏÕÆ·ÁªÏµÈË').asstring+'</FirstName>');
|
|
|
StrL.Add('<LastName></LastName>');
|
|
|
StrL.Add('<Phone>');
|
|
|
StrL.Add('<Number>'+t_op_edi.FieldByName('ΣÏÕÆ·ÁªÏµ·½Ê½').asstring+'</Number>');
|
|
|
StrL.Add('</Phone>');
|
|
|
StrL.Add('<Type>OutBound</Type>');
|
|
|
|
|
|
StrL.Add('</EmergencyContact>');
|
|
|
StrL.Add('</DangerousCargoInfo>');
|
|
|
StrL.Add('</DangerousCargo>');
|
|
|
end;
|
|
|
|
|
|
StrL.Add('</CargoDetails>');
|
|
|
|
|
|
StrL.Add('</CargoInformation>');
|
|
|
|
|
|
StrL.Add('</ShipmentDetails>');
|
|
|
|
|
|
StrL.Add('<SummaryDetails>');
|
|
|
StrL.Add('<Remarks>');
|
|
|
StrL.Add('<Type>01</Type>');
|
|
|
StrL.Add('<Content>');
|
|
|
|
|
|
sl:=TStringList.Create;
|
|
|
try
|
|
|
if not bsck.checked then
|
|
|
sl.text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('EDI±¸×¢').asString)
|
|
|
else sl.text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('EDI±¸×¢').asString);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
StrL.Add('<RemarksLines>'+sl.Strings[i]+'</RemarksLines>');
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
StrL.Add('</Content>');
|
|
|
StrL.Add('</Remarks>');
|
|
|
|
|
|
StrL.Add('</SummaryDetails>');
|
|
|
|
|
|
StrL.Add('</Request>');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.get_txtSI(StrL: Tstringlist;afilename:String): integer; //ÌᵥȷÈÏ
|
|
|
var
|
|
|
str_all,sl:Tstringlist;
|
|
|
j,Count,i,k:integer;
|
|
|
str_guodu,str_shr,str_con,str_not:widestring;
|
|
|
str_pay,Str_head,sControlNumber,issuetypecode,afrt,bfrt,blcount:string;
|
|
|
function CutVoyNo(VoyNo:String):String;
|
|
|
begin
|
|
|
if length(VoyNO)<3 then exit;
|
|
|
if Pos('.',VoyNO)>0 then begin
|
|
|
Result:=Copy(VoyNO,3,length(VoyNO)-2);
|
|
|
end else
|
|
|
Result:=VoyNO;
|
|
|
end;
|
|
|
begin
|
|
|
str_all:=Tstringlist.Create;
|
|
|
count:=0;
|
|
|
sControlNumber:=frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring;
|
|
|
sControlNumber:=Copy(sControlNumber,Length(sControlNumber)-6,7);
|
|
|
StrL.Add('<InterchangeControlHeader>');
|
|
|
StrL.Add('<ControlNumber>ESI' + sControlNumber + '</ControlNumber>');
|
|
|
StrL.Add('<SenderId>' + Trim(Edit1.text) + '</SenderId>');
|
|
|
StrL.Add('<ReceiverId>' + Trim(Edit3.text) + '</ReceiverId>');
|
|
|
StrL.Add('<DateTime>' +formatdatetime('yyyymmddhhnnss',now)+ '</DateTime>');
|
|
|
StrL.Add('<ControlVersion>401</ControlVersion>');
|
|
|
StrL.Add('<UsageIndicator>T</UsageIndicator>');
|
|
|
sControlNumber:=frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring;
|
|
|
sControlNumber:=Copy(sControlNumber,Length(sControlNumber)-5,6);
|
|
|
StrL.Add('<MessageSessionId>' +sControlNumber+ '</MessageSessionId>');
|
|
|
StrL.Add('</InterchangeControlHeader>');
|
|
|
|
|
|
|
|
|
StrL.Add('<SIBillOfLading>');
|
|
|
|
|
|
StrL.Add('<GeneralInfo>');
|
|
|
StrL.Add('<TransactionInfo>');
|
|
|
sControlNumber:=frm_op_seae.t_op_seae.fieldbyname('¶©²Õµ¥ºÅ').asstring;
|
|
|
StrL.Add('<BatchNumber>' +sControlNumber+ '</BatchNumber>');
|
|
|
StrL.Add('<MessageSender>' + Trim(Edit1.text) + '</MessageSender>');
|
|
|
StrL.Add('<MessageRecipient>' + Trim(Edit3.text) + '</MessageRecipient>');
|
|
|
StrL.Add('<MessageID>SIXML</MessageID>');
|
|
|
StrL.Add('<DateCreated TimeZone=\"HKT\">' +formatdatetime('yyyymmddhhnnss',now)+ '</DateCreated>');
|
|
|
StrL.Add('<FileName/>');
|
|
|
StrL.Add('<DataSource>EDI</DataSource>');
|
|
|
StrL.Add('<Version>12</Version>');
|
|
|
StrL.Add('</TransactionInfo>');
|
|
|
|
|
|
if RadioGroup3.ItemIndex=1 then
|
|
|
StrL.Add('<ActionType>UPD</ActionType>')
|
|
|
else
|
|
|
StrL.Add('<ActionType>NEW</ActionType>');
|
|
|
StrL.Add('<BLNumber>' +frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+ '</BLNumber>');
|
|
|
StrL.Add('<SIReferenceNumber>' +frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+ '</SIReferenceNumber>');
|
|
|
StrL.Add('<SCAC>' +aCarrier.EdiNo+ '</SCAC>');
|
|
|
StrL.Add('<OwnedBy">' +aCarrier.EdiNo+ '</OwnedBy>');
|
|
|
StrL.Add('<SIVersionNumber>12</SIVersionNumber>');
|
|
|
StrL.Add('</GeneralInfo>');
|
|
|
|
|
|
|
|
|
StrL.Add('<BLDetails>');
|
|
|
|
|
|
StrL.Add('<BookingInfo>');
|
|
|
StrL.Add('<BookingNumber>' +frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+ '</BookingNumber>');
|
|
|
StrL.Add('</BookingInfo>');
|
|
|
|
|
|
StrL.Add('<UserReferences>');
|
|
|
StrL.Add('<References>');
|
|
|
StrL.Add('<ReferenceNumber>' +frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+ '</ReferenceNumber>');
|
|
|
StrL.Add('<ReferenceType>FI</ReferenceType>');
|
|
|
StrL.Add('</References>');
|
|
|
StrL.Add('<References>');
|
|
|
StrL.Add('<ReferenceNumber>' +frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+ '</ReferenceNumber>');
|
|
|
StrL.Add('<ReferenceType>BM</ReferenceType>');
|
|
|
StrL.Add('</References>');
|
|
|
|
|
|
StrL.Add('</UserReferences>');
|
|
|
|
|
|
StrL.Add('<LegalParties>');
|
|
|
StrL.Add('<Party>');
|
|
|
StrL.Add('<PartyType>FW</PartyType>');
|
|
|
|
|
|
StrL.Add('<PartyName>' +edit2.text+ '</PartyName>');
|
|
|
StrL.Add('<CarrierCustomerCode>' +edit12.text+ '</CarrierCustomerCode>');
|
|
|
StrL.Add('<PartyLocation>');
|
|
|
{
|
|
|
StrL.Add('<Address>');
|
|
|
StrL.Add('<AddressLines></AddressLines>');
|
|
|
StrL.Add('</Address>');
|
|
|
}
|
|
|
StrL.Add('<City>' +Edit19.text+ '</City>');
|
|
|
StrL.Add('</PartyLocation>');
|
|
|
StrL.Add('<ContactPerson>');
|
|
|
StrL.Add('<FirstName>' +Edit7.text+ '</FirstName>');
|
|
|
StrL.Add('<Email>' +Edit6.text+ '</Email>');
|
|
|
StrL.Add('</ContactPerson>');
|
|
|
StrL.Add('</Party>');
|
|
|
|
|
|
StrL.Add('<Party>');
|
|
|
StrL.Add('<PartyType>BP</PartyType>');
|
|
|
StrL.Add('<PartyName>' +edit2.text+ '</PartyName>');
|
|
|
StrL.Add('<CarrierCustomerCode>' +edit12.text+ '</CarrierCustomerCode>');
|
|
|
StrL.Add('<PartyLocation>');
|
|
|
{
|
|
|
StrL.Add('<Address>');
|
|
|
StrL.Add('<AddressLines></AddressLines>');
|
|
|
StrL.Add('</Address>');
|
|
|
}
|
|
|
StrL.Add('<City>' +Edit19.text+ '</City>');
|
|
|
StrL.Add('</PartyLocation>');
|
|
|
StrL.Add('<ContactPerson>');
|
|
|
StrL.Add('<FirstName>' +Edit7.text+ '</FirstName>');
|
|
|
StrL.Add('<Email>' +Edit6.text+ '</Email>');
|
|
|
StrL.Add('</ContactPerson>');
|
|
|
StrL.Add('</Party>');
|
|
|
|
|
|
StrL.Add('<Party>');
|
|
|
StrL.Add('<PartyType>SH</PartyType>');
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
str_all.Text:=frm_op_seae.t_op_seae.fieldbyname('·¢»õÈË´úÂë').asstring;
|
|
|
str_shr:=frm_op_seae.t_op_seae.fieldbyname('·¢»õÈË´úÂë').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('·¢»õÈË´úÂë').asstring;
|
|
|
str_shr:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('·¢»õÈË´úÂë').asstring;
|
|
|
end;
|
|
|
if length(str_shr)>425 then str_shr:=Copy(str_shr,1,425);
|
|
|
|
|
|
StrL.Add('<PartyName>' +str_all[0]+ '</PartyName>');
|
|
|
|
|
|
|
|
|
StrL.Add('<PartyLocation>');
|
|
|
StrL.Add('<Address>');
|
|
|
for j:=1 to str_all.Count-1 do
|
|
|
begin
|
|
|
StrL.Add('<AddressLines>'+str_all[j]+'</AddressLines>');
|
|
|
end;
|
|
|
|
|
|
StrL.Add('</Address>');
|
|
|
StrL.Add('<City>' +Edit19.text+ '</City>');
|
|
|
StrL.Add('</PartyLocation>');
|
|
|
StrL.Add('<PartyText>'+str_shr+'</PartyText>');
|
|
|
|
|
|
StrL.Add('</Party>');
|
|
|
|
|
|
StrL.Add('<Party>');
|
|
|
StrL.Add('<PartyType>CN</PartyType>');
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
str_all.Text:=frm_op_seae.t_op_seae.fieldbyname('ÊÕ»õÈË´úÂë').asstring;
|
|
|
str_shr:=frm_op_seae.t_op_seae.fieldbyname('ÊÕ»õÈË´úÂë').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ÊÕ»õÈË´úÂë').asstring;
|
|
|
str_shr:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ÊÕ»õÈË´úÂë').asstring;
|
|
|
end;
|
|
|
if length(str_shr)>425 then str_shr:=Copy(str_shr,1,425);
|
|
|
StrL.Add('<PartyName>' +str_all[0]+ '</PartyName>');
|
|
|
|
|
|
|
|
|
StrL.Add('<PartyLocation>');
|
|
|
StrL.Add('<Address>');
|
|
|
for j:=1 to str_all.Count-1 do
|
|
|
begin
|
|
|
StrL.Add('<AddressLines>'+str_all[j]+'</AddressLines>');
|
|
|
end;
|
|
|
|
|
|
StrL.Add('</Address>');
|
|
|
StrL.Add('<City>' +frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ').asstring+ '</City>');
|
|
|
StrL.Add('</PartyLocation>');
|
|
|
StrL.Add('<PartyText>'+str_shr+'</PartyText>');
|
|
|
StrL.Add('</Party>');
|
|
|
|
|
|
StrL.Add('<Party>');
|
|
|
StrL.Add('<PartyType>NP</PartyType>');
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
str_all.Text:=frm_op_seae.t_op_seae.fieldbyname('֪ͨÈË´úÂë').asstring;
|
|
|
str_shr:=frm_op_seae.t_op_seae.fieldbyname('֪ͨÈË´úÂë').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('֪ͨÈË´úÂë').asstring;
|
|
|
str_shr:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('֪ͨÈË´úÂë').asstring;
|
|
|
end;
|
|
|
if length(str_shr)>425 then str_shr:=Copy(str_shr,1,425);
|
|
|
StrL.Add('<PartyName>' +str_all[0]+ '</PartyName>');
|
|
|
|
|
|
|
|
|
StrL.Add('<PartyLocation>');
|
|
|
StrL.Add('<Address>');
|
|
|
for j:=1 to str_all.Count-1 do
|
|
|
begin
|
|
|
StrL.Add('<AddressLines>'+str_all[j]+'</AddressLines>');
|
|
|
end;
|
|
|
|
|
|
StrL.Add('</Address>');
|
|
|
StrL.Add('<City>' +frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ').asstring+ '</City>');
|
|
|
StrL.Add('</PartyLocation>');
|
|
|
StrL.Add('<PartyText>'+str_shr+'</PartyText>');
|
|
|
StrL.Add('</Party>');
|
|
|
|
|
|
StrL.Add('</LegalParties>');
|
|
|
|
|
|
StrL.Add('<RouteInformation>');
|
|
|
|
|
|
StrL.Add('<VesselVoyageInformation>');
|
|
|
StrL.Add('<ServiceName Code=\"\"/>');
|
|
|
StrL.Add('<VoyageNumberDirection>' +frm_op_seae.t_op_seae.fieldbyname('º½´Î').asstring+ '</VoyageNumberDirection>');
|
|
|
StrL.Add('<VesselInformation>');
|
|
|
StrL.Add('<VesselName>' +frm_op_seae.t_op_seae.fieldbyname('´¬Ãû').asstring+ '</VesselName>');
|
|
|
StrL.Add('</VesselInformation>');
|
|
|
StrL.Add('<External>');
|
|
|
StrL.Add('<VoyageNumber>' +frm_op_seae.t_op_seae.fieldbyname('º½´Î').asstring+ '</VoyageNumber>');
|
|
|
StrL.Add('</External>');
|
|
|
StrL.Add('<VesselVoyageText>' +frm_op_seae.t_op_seae.fieldbyname('º½´Î').asstring+ '</VesselVoyageText>');
|
|
|
StrL.Add('<TrafficMode>');
|
|
|
if frm_op_seae.t_op_seae.FieldByName('×°ÔË·½Ê½').asstring='ÕûÏä' then
|
|
|
StrL.Add('<OutBound>FCL</OutBound>')
|
|
|
else StrL.Add('<OutBound>LCL</OutBound>');
|
|
|
StrL.Add('</TrafficMode>');
|
|
|
StrL.Add('<Haulage>' +frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring+ '</Haulage>');
|
|
|
StrL.Add('</VesselVoyageInformation>');
|
|
|
|
|
|
StrL.Add('<Location>');
|
|
|
StrL.Add('<FunctionCode>POR</FunctionCode>');
|
|
|
StrL.Add('<LocationName>' +frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring+ '</LocationName>');
|
|
|
StrL.Add('<LocationDetails>');
|
|
|
StrL.Add('<City>' +frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring+ '</City>');
|
|
|
StrL.Add('<LocationCode>');
|
|
|
StrL.Add('<UNLocationCode>' +frm_op_seae.t_op_seae.fieldbyname('×°¸Û´úÂë').asstring+ '</UNLocationCode>');
|
|
|
StrL.Add('</LocationCode>');
|
|
|
StrL.Add('</LocationDetails>');
|
|
|
StrL.Add('</Location>');
|
|
|
|
|
|
StrL.Add('<Location>');
|
|
|
StrL.Add('<FunctionCode>POL</FunctionCode>');
|
|
|
StrL.Add('<LocationName>' +frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring+ '</LocationName>');
|
|
|
StrL.Add('<LocationDetails>');
|
|
|
StrL.Add('<City>' +frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring+ '</City>');
|
|
|
StrL.Add('<LocationCode>');
|
|
|
StrL.Add('<UNLocationCode>' +frm_op_seae.t_op_seae.fieldbyname('×°¸Û´úÂë').asstring+ '</UNLocationCode>');
|
|
|
StrL.Add('</LocationCode>');
|
|
|
StrL.Add('</LocationDetails>');
|
|
|
StrL.Add('</Location>');
|
|
|
|
|
|
StrL.Add('<Location>');
|
|
|
StrL.Add('<FunctionCode>POD</FunctionCode>');
|
|
|
StrL.Add('<LocationName>' +frm_op_seae.t_op_seae.fieldbyname('ж»õ¸Û').asstring+ '</LocationName>');
|
|
|
StrL.Add('<LocationDetails>');
|
|
|
StrL.Add('<City>' +frm_op_seae.t_op_seae.fieldbyname('ж»õ¸Û').asstring+ '</City>');
|
|
|
StrL.Add('<LocationCode>');
|
|
|
StrL.Add('<UNLocationCode>' +frm_op_seae.t_op_seae.fieldbyname('ж»õ´úÂë').asstring+ '</UNLocationCode>');
|
|
|
StrL.Add('</LocationCode>');
|
|
|
StrL.Add('</LocationDetails>');
|
|
|
StrL.Add('</Location>');
|
|
|
|
|
|
StrL.Add('<Location>');
|
|
|
StrL.Add('<FunctionCode>FND</FunctionCode>');
|
|
|
StrL.Add('<LocationName>' +frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ').asstring+ '</LocationName>');
|
|
|
StrL.Add('<LocationDetails>');
|
|
|
StrL.Add('<City>' +frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ').asstring+ '</City>');
|
|
|
StrL.Add('<LocationCode>');
|
|
|
StrL.Add('<UNLocationCode>' +frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ´úÂë').asstring+ '</UNLocationCode>');
|
|
|
StrL.Add('</LocationCode>');
|
|
|
StrL.Add('</LocationDetails>');
|
|
|
StrL.Add('</Location>');
|
|
|
|
|
|
|
|
|
StrL.Add('</RouteInformation>');
|
|
|
|
|
|
|
|
|
StrL.Add('<EquipmentInformation>');
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
t_op_ctn.Close;t_op_ctn.SQL.Clear;
|
|
|
t_op_ctn.SQL.Add('SELECT t_op_ctn.±àºÅ,t_op_ctn.ÊýÁ¿, t_code_ctn.EDI´úÂë,t_op_ctn.³ß´ç');
|
|
|
t_op_ctn.SQL.Add(',t_op_ctn.ÏäÐÍ,t_op_ctn.ÖØÁ¿ KGS,t_op_ctn.³ßÂë CBM,t_op_ctn.¼þÊý PKGS,t_op_ctn.ÏäºÅ,t_op_ctn.·âºÅ');
|
|
|
t_op_ctn.SQL.Add('FROM t_op_ctn INNER JOIN');
|
|
|
t_op_ctn.SQL.Add('t_code_ctn ON t_op_ctn.´úÂë = t_code_ctn.´úÂë');
|
|
|
t_op_ctn.SQL.Add('WHERE t_op_ctn.񅧏=:񅧏');
|
|
|
t_op_ctn.close;
|
|
|
t_op_ctn.Parameters.ParamByName('񅧏').Value:=frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
t_op_ctn.Close;t_op_ctn.SQL.Clear;
|
|
|
t_op_ctn.SQL.Add('SELECT t_op_ctn_fendan.±àºÅ,t_op_ctn_fendan.ÊýÁ¿, t_code_ctn.EDI´úÂë,t_op_ctn_fendan.³ß´ç');
|
|
|
t_op_ctn.SQL.Add(',t_op_ctn_fendan.ÏäÐÍ,t_op_ctn_fendan.ÖØÁ¿ KGS,t_op_ctn_fendan.³ßÂë CBM,t_op_ctn_fendan.¼þÊý pkgs,t_op_ctn_fendan.ÏäºÅ,t_op_ctn_fendan.·âºÅ');
|
|
|
t_op_ctn.SQL.Add('FROM t_op_ctn_fendan INNER JOIN');
|
|
|
t_op_ctn.SQL.Add('t_code_ctn ON t_op_ctn_fendan.´úÂë = t_code_ctn.´úÂë');
|
|
|
t_op_ctn.SQL.Add('WHERE t_op_ctn_fendan.as_id=:as_id');
|
|
|
t_op_ctn.close;
|
|
|
t_op_ctn.Parameters.ParamByName('as_id').Value:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('as_id').asinteger;
|
|
|
end;
|
|
|
t_op_ctn.open;
|
|
|
t_op_ctn.first;
|
|
|
while not t_op_ctn.eof do
|
|
|
begin
|
|
|
StrL.Add('<Containers>');
|
|
|
StrL.Add('<AssociatedBookingNumber>' +frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+ '</AssociatedBookingNumber>');
|
|
|
StrL.Add('<ContainerType>' +GetCtnCode(t_op_ctn.fieldbyname('ÏäÐÍ').asstring,t_op_ctn.fieldbyname('³ß´ç').asstring)+ '</ContainerType>');
|
|
|
StrL.Add('<ContainerNumber CheckDigit=\"'+t_op_ctn.fieldbyname('ÊýÁ¿').asstring+'\">' +t_op_ctn.fieldbyname('ÏäºÅ').asstring+ '</ContainerNumber>');
|
|
|
StrL.Add('<SealNumber Type=\"HS\">' +frm_op_seae.t_op_seae.fieldbyname('ÔËÊ䷽ʽ').asstring+ '</SealNumber>');
|
|
|
StrL.Add('<Package Type="'+GetPkgCode(trim(frm_op_seae.t_op_seae.fieldbyname('°ü×°').asstring))+'">'+t_op_ctn.fieldbyname('PKGS').asstring+ '</Package>');
|
|
|
StrL.Add('<Weight Units=\"KGS\" Qualifier=\"GROSS\">' +t_op_ctn.fieldbyname('KGS').asstring+ '</Weight>');
|
|
|
StrL.Add('<Volume Units=\"CBM\">' +t_op_ctn.fieldbyname('CBM').asstring+ '</Volume>');
|
|
|
StrL.Add('<TrafficMode>');
|
|
|
if frm_op_seae.t_op_seae.FieldByName('×°ÔË·½Ê½').asstring='ÕûÏä' then
|
|
|
StrL.Add('<OutBound>FCL</OutBound>')
|
|
|
else StrL.Add('<OutBound>LCL</OutBound>');
|
|
|
StrL.Add('</TrafficMode>');
|
|
|
if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='R' then begin
|
|
|
StrL.Add('<ReeferSettings>');
|
|
|
StrL.Add('<Temperature Units=\"C\">'+frm_op_seae.t_op_seae.FieldByName('ÉèÖÃζÈ').asstring+'</Temperature>');
|
|
|
StrL.Add('<Ventilation>'+frm_op_seae.t_op_seae.FieldByName('Àä²Øͨ·çÁ¿').asstring+'</Ventilation>');
|
|
|
if (frm_op_seae.t_op_seae.FieldByName('ʪ¶È').asstring<>'') then
|
|
|
StrL.Add('<DehumidityPercentage>'+frm_op_seae.t_op_seae.FieldByName('ʪ¶È').asstring+'</DehumidityPercentage>');
|
|
|
|
|
|
StrL.Add('<EmergencyContact>');
|
|
|
StrL.Add('<FirstName>'+t_op_edi.FieldByName('ΣÏÕÆ·ÁªÏµÈË').asstring+'</FirstName>');
|
|
|
StrL.Add('<LastName></LastName>');
|
|
|
StrL.Add('<Phone>');
|
|
|
StrL.Add('<Number>'+t_op_edi.FieldByName('ΣÏÕÆ·ÁªÏµ·½Ê½').asstring+'</Number>');
|
|
|
StrL.Add('</Phone>');
|
|
|
StrL.Add('<Type>OutBound</Type>');
|
|
|
StrL.Add('</EmergencyContact>');
|
|
|
|
|
|
StrL.Add('</ReeferSettings>');
|
|
|
end;
|
|
|
StrL.Add('</Containers>');
|
|
|
t_op_ctn.Next;
|
|
|
end;
|
|
|
StrL.Add('</EquipmentInformation>');
|
|
|
|
|
|
StrL.Add('<CargoInformation>');
|
|
|
|
|
|
StrL.Add('<CargoItems>');
|
|
|
|
|
|
if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='R' then
|
|
|
StrL.Add('<CargoNature>RF</CargoNature>')
|
|
|
else if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='D' then
|
|
|
StrL.Add('<CargoNature>DG</CargoNature>')
|
|
|
else
|
|
|
StrL.Add('<CargoNature>GC</CargoNature>');
|
|
|
|
|
|
StrL.Add('<Package Type=\"'+GetPkgCode(trim(frm_op_seae.t_op_seae.fieldbyname('°ü×°').asstring))+'">'+frm_op_seae.t_op_seae.fieldbyname('¼þÊý').asstring+'</Package>');
|
|
|
StrL.Add('<Weight Units=\"KGS\" Qualifier=\"GROSS\">'+frm_op_seae.t_op_seae.fieldbyname('ÖØÁ¿').asstring+'</Weight>');
|
|
|
StrL.Add('<Volume Units=\"CBM\">'+frm_op_seae.t_op_seae.fieldbyname('³ßÂë').asstring+'</Volume>');
|
|
|
|
|
|
StrL.Add('<CargoDescription>');
|
|
|
|
|
|
sl:=TStringList.Create;
|
|
|
try
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
sl.text:=frm_op_seae.t_op_seae.fieldbyname('»õÎïÃèÊö').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
sl.text:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('»õÎïÃèÊö').asstring;
|
|
|
end;
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
StrL.Add('<DescriptionLine>'+sl.Strings[i]+'</DescriptionLine>');
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
StrL.Add('</CargoDescription>');
|
|
|
|
|
|
StrL.Add('<MarksAndNumbers>');
|
|
|
|
|
|
sl:=TStringList.Create;
|
|
|
try
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
sl.text:=frm_op_seae.t_op_seae.fieldbyname('ßéÍ·').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
sl.text:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ßéÍ·').asstring;
|
|
|
end;
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
StrL.Add('<MarksAndNumbersLine>'+sl.Strings[i]+'</MarksAndNumbersLine>');
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
StrL.Add('</MarksAndNumbers>');
|
|
|
StrL.Add('<HarmonizedTariffSchedule></HarmonizedTariffSchedule>');
|
|
|
|
|
|
|
|
|
if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='D' then begin
|
|
|
StrL.Add('<DangerousCargo>');
|
|
|
StrL.Add('<DangerousCargoInfo>');
|
|
|
|
|
|
StrL.Add('<HazardousMaterial>');
|
|
|
StrL.Add('<IMCOClass>'+t_op_edi.FieldByName('ΣÏÕÆ·µÈ¼¶').asstring+'</IMCOClass>');
|
|
|
// StrL.Add('<IMCOPage>'+t_op_edi.FieldByName('ΣÏÕÆ·µÈ¼¶').asstring+'</IMCOPage>');
|
|
|
StrL.Add('<UNNumber>'+frm_op_seae.t_op_seae.FieldByName('ΣÏÕÆ·±àºÅ').asstring+'</UNNumber>');
|
|
|
StrL.Add('</HazardousMaterial>');
|
|
|
|
|
|
StrL.Add('<EmergencyContact>');
|
|
|
StrL.Add('<FirstName>'+t_op_edi.FieldByName('ΣÏÕÆ·ÁªÏµÈË').asstring+'</FirstName>');
|
|
|
StrL.Add('<LastName></LastName>');
|
|
|
StrL.Add('</EmergencyContact>');
|
|
|
StrL.Add('</DangerousCargoInfo>');
|
|
|
StrL.Add('</DangerousCargo>');
|
|
|
end;
|
|
|
|
|
|
t_op_ctn.first;
|
|
|
while not t_op_ctn.eof do
|
|
|
begin
|
|
|
StrL.Add('<CargoDetails>');
|
|
|
StrL.Add('<AssociatedBookingNumber>' +frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+ '</AssociatedBookingNumber>');
|
|
|
StrL.Add('<ContainerNumber CheckDigit=\"'+t_op_ctn.fieldbyname('ÊýÁ¿').asstring+'\">' +t_op_ctn.fieldbyname('ÏäºÅ').asstring+ '</ContainerNumber>');
|
|
|
StrL.Add('<Package Type=\"IA\>'+t_op_ctn.fieldbyname('PKGS').asstring+ '</Package>');
|
|
|
StrL.Add('<Weight Units=\"KGS\" Qualifier=\"GROSS\">' +t_op_ctn.fieldbyname('KGS').asstring+ '</Weight>');
|
|
|
StrL.Add('<Volume Units=\"CBM\">' +t_op_ctn.fieldbyname('CBM').asstring+ '</Volume>');
|
|
|
StrL.Add('</CargoDetails>');
|
|
|
t_op_ctn.Next;
|
|
|
end;
|
|
|
|
|
|
|
|
|
StrL.Add('</CargoItems>');
|
|
|
|
|
|
StrL.Add('</CargoInformation>');
|
|
|
|
|
|
StrL.Add('</BLDetails>');
|
|
|
|
|
|
StrL.Add('<SummaryDetails>');
|
|
|
|
|
|
|
|
|
blcount:='3';
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='ONE' then
|
|
|
blcount:='1'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='TWO' then
|
|
|
blcount:='2'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='THREE' then
|
|
|
blcount:='3'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='FOUR' then
|
|
|
blcount:='4'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='FIVE' then
|
|
|
blcount:='5'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='SIX' then
|
|
|
blcount:='6'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='SERVEN' then
|
|
|
blcount:='7'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='EIGHT' then
|
|
|
blcount:='8'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='NIGHT' then
|
|
|
blcount:='9'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='TEN' then
|
|
|
blcount:='10'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='ZERO' then
|
|
|
blcount:='0';
|
|
|
|
|
|
|
|
|
IF trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='Õý±¾' then begin //Ìáµ¥ÀàÐÍ
|
|
|
issuetypecode:='OBL';
|
|
|
end else if (trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='º£Ô˵¥')
|
|
|
or (trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='SEAWAY')
|
|
|
or (trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='SWBÎÞÕý±¾')
|
|
|
or (trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='WAYBILL')
|
|
|
or (trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='SWBÕý±¾')
|
|
|
then begin
|
|
|
issuetypecode:='SWB';
|
|
|
end else if trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='Õý¸±±¾' then begin
|
|
|
issuetypecode:='BC';
|
|
|
end ELSE issuetypecode:='ZZ';
|
|
|
|
|
|
|
|
|
if Pos('PREPAID',frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring)>0 then begin
|
|
|
afrt:='FreightedPrepaid';
|
|
|
bfrt:='PREPAID';
|
|
|
end else if Pos('COLLECT',frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring)>0 then begin
|
|
|
afrt:='FreightedCollect';
|
|
|
bfrt:='COLLECT';
|
|
|
end;
|
|
|
StrL.Add('<BLInformation BLType=\"'+issuetypecode+'\" FreightType=\"'+afrt+'\">');
|
|
|
StrL.Add('<BLNumber>' +frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+ '</BLNumber>');
|
|
|
StrL.Add('<OnBoardBLDate Type=\"OnBoardVessel\"></OnBoardBLDate>');
|
|
|
StrL.Add('<OriginalBL>');
|
|
|
StrL.Add('<ModeOfTransmission>EDI</ModeOfTransmission>');
|
|
|
StrL.Add('</OriginalBL>');
|
|
|
StrL.Add('<PaymentStatus>'+bfrt+'</PaymentStatus>');
|
|
|
|
|
|
StrL.Add('<Remarks>');
|
|
|
try
|
|
|
if not bsck.checked then
|
|
|
sl.text:=frm_op_seae.t_op_seae.fieldbyname('EDI±¸×¢').asString
|
|
|
else sl.text:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('EDI±¸×¢').asString;
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
StrL.Add('<RemarksLines>'+sl.Strings[i]+'</RemarksLines>');
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
|
|
|
StrL.Add('</Remarks>');
|
|
|
|
|
|
StrL.Add('<SIDistribution>');
|
|
|
StrL.Add('<SIBillOfLadingDistribution BLType=\"'+issuetypecode+'\" FreightType=\"'+afrt+'\">');
|
|
|
if (bfrt='PREPAID') then
|
|
|
StrL.Add('<PartyRole>SH</PartyRole>')
|
|
|
else if (bfrt='COLLECT') then StrL.Add('<PartyRole>CN</PartyRole>');
|
|
|
StrL.Add('<NumberOfCopies>'+blcount+'</NumberOfCopies>');
|
|
|
StrL.Add('</SIBillOfLadingDistribution>');
|
|
|
StrL.Add('</SIDistribution>');
|
|
|
|
|
|
StrL.Add('</BLInformation>');
|
|
|
|
|
|
|
|
|
StrL.Add('</SummaryDetails>');
|
|
|
|
|
|
StrL.Add('</SIBillOfLading>');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
procedure Tfrm_op_seae_edi_cargosmart.bsSkinButton1Click(Sender: TObject);
|
|
|
var
|
|
|
str:Tstringlist;
|
|
|
i,Count,get_Count,bill_count:integer;
|
|
|
inifile1:Tinifile;
|
|
|
SIO,ORG,MBL,CARR,MBLNO,ETD,CORP,EMP,EMPDAE,afilename:string;
|
|
|
edi:WideString;
|
|
|
begin
|
|
|
if bsck.Checked then
|
|
|
begin
|
|
|
if frm_op_seae_assistant=nil then
|
|
|
begin
|
|
|
ShowMessage('ÇëÔÚ(ίÍкÍÌáµ¥)½çÃæÑ¡Ôñ·Öµ¥·¢ËÍ·Öµ¥Edi');
|
|
|
exit;
|
|
|
end
|
|
|
end;
|
|
|
afilename:=frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+GetDatetime(datetimetostr(now),1);
|
|
|
str:=Tstringlist.Create;
|
|
|
str.Clear;
|
|
|
count:=0;
|
|
|
bill_count:=0;
|
|
|
|
|
|
if (CheckIFT.Checked) then begin
|
|
|
|
|
|
|
|
|
count:=0;
|
|
|
bill_count:=0;
|
|
|
if frm_op_seae.dxdbgrid1.SelectedCount>1 then
|
|
|
begin
|
|
|
for i:=0 to frm_op_seae.dxdbgrid1.SelectedCount-1 do
|
|
|
begin
|
|
|
frm_op_seae.t_op_seae.GotoBookmark(pointer(frm_op_seae.dxdbgrid1.selectedrows[i]));
|
|
|
if not isEditrue then
|
|
|
exit;
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtSI_txt(str)
|
|
|
else
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtBooking_txt(str);
|
|
|
|
|
|
if get_Count=-1 then
|
|
|
exit
|
|
|
else
|
|
|
count:=count+get_Count;
|
|
|
bill_count:=bill_count+1;
|
|
|
|
|
|
end;
|
|
|
str.Add('UNT+'+INTTOSTR(str.count)+'+'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+#39);
|
|
|
str.Add('UNZ+'+inttostr(bill_count)+'+'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+#39);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if not isEditrue then
|
|
|
exit;
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtSI_txt(str)
|
|
|
else
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtBooking_txt(str);
|
|
|
if get_Count=-1 then
|
|
|
exit
|
|
|
else
|
|
|
count:=count+get_Count;
|
|
|
|
|
|
str.Add('UNT+'+INTTOSTR(str.count)+'+'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+#39);
|
|
|
str.Add('UNZ+1+'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+#39);
|
|
|
|
|
|
end;
|
|
|
|
|
|
end else begin
|
|
|
|
|
|
|
|
|
str.Add('<?xml version="1.0" encoding="utf-8"?>');
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
str.Add('<ShippingInstructions>')
|
|
|
else
|
|
|
str.Add('<Booking xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="br.xsd">');
|
|
|
|
|
|
if frm_op_seae.dxdbgrid1.SelectedCount>1 then
|
|
|
begin
|
|
|
for i:=0 to frm_op_seae.dxdbgrid1.SelectedCount-1 do
|
|
|
begin
|
|
|
frm_op_seae.t_op_seae.GotoBookmark(pointer(frm_op_seae.dxdbgrid1.selectedrows[i]));
|
|
|
if not isEditrue then
|
|
|
exit;
|
|
|
if RadioGroup1.ItemIndex=1 then begin
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtSI(str,afilename)
|
|
|
end else begin
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtBooking(str,afilename);
|
|
|
end;
|
|
|
if get_Count=-1 then
|
|
|
exit
|
|
|
else
|
|
|
count:=count+get_Count;
|
|
|
bill_count:=bill_count+1;
|
|
|
|
|
|
end;
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
str.Add('</ShippingInstructions>')
|
|
|
else
|
|
|
Str.Add('</Booking>');
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if not isEditrue then
|
|
|
exit;
|
|
|
if RadioGroup1.ItemIndex=1 then begin
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtSI(str,afilename)
|
|
|
end else begin
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtBooking(str,afilename);
|
|
|
end;
|
|
|
if get_Count=-1 then
|
|
|
exit
|
|
|
else
|
|
|
count:=count+get_Count;
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
str.Add('</ShippingInstructions>')
|
|
|
else
|
|
|
Str.Add('</Booking>');
|
|
|
end;
|
|
|
end;
|
|
|
for i:=0 to Str.Count-1 do begin
|
|
|
if IsZhongwen(Str[i]) then
|
|
|
begin
|
|
|
MessageDlg('´ËƱҵÎñÓÐÖÐÎÄ×Ö·û»òTAB¼ü,²»ÄÜÉÏ´«£¡'+#13#10+Str[i],mtWarning,[mbYes],0);
|
|
|
exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
|
|
|
SaveDialog1.FileName:=afilename;
|
|
|
if SaveDialog1.Execute then
|
|
|
begin
|
|
|
if (CheckIFT.Checked) then
|
|
|
str.SaveToFile(SaveDialog1.FileName+'.edi')
|
|
|
else str.SaveToFile(SaveDialog1.FileName+'.XML');
|
|
|
showmessage('ÎļþÉú³É³É¹¦£¡');
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
showmessage('ÎļþÉú³Éʧ°Ü£¡');
|
|
|
exit;
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
{procedure Tfrm_op_seae_edi_cma.bsSkinButton1Click(Sender: TObject);
|
|
|
var
|
|
|
str:Tstringlist;
|
|
|
i,Count,get_Count,bill_count:integer;
|
|
|
inifile1:Tinifile;
|
|
|
begin
|
|
|
str:=Tstringlist.Create;
|
|
|
str.Clear;
|
|
|
count:=0;
|
|
|
bill_count:=0;
|
|
|
if frm_op_seae.dxdbgrid1.SelectedCount>1 then
|
|
|
begin
|
|
|
for i:=0 to frm_op_seae.dxdbgrid1.SelectedCount-1 do
|
|
|
begin
|
|
|
frm_op_seae.t_op_seae.GotoBookmark(pointer(frm_op_seae.dxdbgrid1.selectedrows[i]));
|
|
|
get_Count:=frm_op_seae_edi_cma.get_txt(str);
|
|
|
if get_Count=-1 then
|
|
|
exit
|
|
|
else
|
|
|
count:=count+get_Count;
|
|
|
bill_count:=bill_count+1;
|
|
|
end;
|
|
|
str.Add('UNT+'+INTTOSTR(count)+'+1'+#39);
|
|
|
str.Add('UNZ+'+inttostr(bill_count)+'+100'+#39);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
get_Count:=frm_op_seae_edi_cma.get_txt(str);
|
|
|
if get_Count=-1 then
|
|
|
exit
|
|
|
else
|
|
|
count:=count+get_Count;
|
|
|
|
|
|
str.Add('UNT+'+INTTOSTR(count)+'+1'+#39);
|
|
|
str.Add('UNZ+1+100'+#39);
|
|
|
end;
|
|
|
|
|
|
SaveDialog1.FileName:=frm_op_seae.t_op_seae.fieldbyname('Ö÷Ö÷Ìáµ¥ºÅ').asstring;
|
|
|
if SaveDialog1.Execute then
|
|
|
begin
|
|
|
str.SaveToFile(SaveDialog1.FileName+'.txt');
|
|
|
showmessage('ÎļþÉú³É³É¹¦£¡');
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
showmessage('ÎļþÉú³Éʧ°Ü£¡');
|
|
|
exit;
|
|
|
end;
|
|
|
|
|
|
inifile1:=Tinifile.Create(ExtractFilePath(application.ExeName)+'main.ini');
|
|
|
inifile1.WriteString('INTRA','SEND_CODE',edit1.text);
|
|
|
inifile1.WriteString('INTRA','SEND_NAME',edit2.text);
|
|
|
inifile1.WriteString('INTRA','RECEIVE_CODE',edit3.text);
|
|
|
inifile1.WriteString('INTRA','RECEIVE_NAME',edit4.text);
|
|
|
inifile1.free;
|
|
|
close;
|
|
|
end;}
|
|
|
|
|
|
procedure Tfrm_op_seae_edi_cargosmart.FormShow(Sender: TObject);
|
|
|
var
|
|
|
inifile1:Tinifile;
|
|
|
begin
|
|
|
inifile1:=Tinifile.Create(ExtractFilePath(application.ExeName)+'main.ini');
|
|
|
edit1.text:=inifile1.ReadString('EDI','SEND_CODE','');
|
|
|
edit2.text:=inifile1.ReadString('EDI','SEND_NAME','');
|
|
|
edit3.text:=inifile1.ReadString('EDI','RECEIVE_CODE','');
|
|
|
edit4.text:=inifile1.ReadString('EDI','RECEIVE_NAME','');
|
|
|
edit5.text:=inifile1.ReadString('EDI','SEND_TEL','');
|
|
|
edit6.text:=inifile1.ReadString('EDI','SEND_MAIL','');
|
|
|
edit7.text:=inifile1.ReadString('EDI','SEND_ATTN','');
|
|
|
edit8.text:=inifile1.ReadString('EDI','FTPADD','');
|
|
|
edit9.text:=inifile1.ReadString('EDI','FTPNAME','');
|
|
|
edit10.text:=inifile1.ReadString('EDI','FTPPASS','');
|
|
|
edit11.text:=inifile1.ReadString('EDI','FTPPATH','/');
|
|
|
edit13.text:=inifile1.ReadString('EDI','FTPPATHSI','');
|
|
|
edit12.text:=inifile1.ReadString('EDI','COMPANYCODE','');
|
|
|
edit19.text:=inifile1.ReadString('EDI','CITY','');
|
|
|
edit20.text:=inifile1.ReadString('EDI','CARGOSMARTSALEID','');
|
|
|
edit14.text:=inifile1.ReadString('EDI','FTPSIGN','');
|
|
|
|
|
|
RadioGroup1.ItemIndex:=inifile1.ReadInteger('EDI','CMASEND_TYPE',0);
|
|
|
|
|
|
RadioGroup2.ItemIndex:=inifile1.ReadInteger('EDI','CMASEND_CA',0);
|
|
|
|
|
|
|
|
|
edit15.text:=inifile1.ReadString('EDI','FTPADDCMA','');
|
|
|
edit16.text:=inifile1.ReadString('EDI','FTPNAMECMA','');
|
|
|
Edit17.text:=inifile1.ReadString('EDI','FTPPASSCMA','');
|
|
|
Edit18.text:=inifile1.ReadString('EDI','FTPPATHCMA','');
|
|
|
CheckIFT.Checked:=inifile1.ReadBool('EDI','CARGOSMARTISIFT',false);
|
|
|
|
|
|
|
|
|
inifile1.free;
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_op_seae_edi_cargosmart.bsSkinButton3Click(Sender: TObject);
|
|
|
begin
|
|
|
if frm_op_seae_edi_cargosmart.Width=650 then
|
|
|
frm_op_seae_edi_cargosmart.Width:=305
|
|
|
else
|
|
|
frm_op_seae_edi_cargosmart.Width:=650;
|
|
|
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_op_seae_edi_cargosmart.bsSkinButton4Click(Sender: TObject);
|
|
|
var
|
|
|
IdFTP1:TIdFTP;
|
|
|
str:widestring;
|
|
|
str_file:widestring;
|
|
|
ftpar,ftpname,ftppass,ftppath,ftppathSI,ScriptPath:String;
|
|
|
StrL:Tstringlist;
|
|
|
i,Count,get_Count,bill_count,i_soi:integer;
|
|
|
|
|
|
SIO,ORG,MBL,CARR,MBLNO,ETD,CORP,EMP,EMPDAE:string;
|
|
|
edi:WideString;
|
|
|
|
|
|
begin
|
|
|
i_soi:=0;
|
|
|
if bsck.Checked then
|
|
|
begin
|
|
|
if frm_op_seae_assistant=nil then
|
|
|
begin
|
|
|
ShowMessage('ÇëÔÚ(ίÍкÍÌáµ¥)½çÃæ·¢ËÍ·Öµ¥Edi');
|
|
|
exit;
|
|
|
end
|
|
|
end;
|
|
|
|
|
|
ScriptPath:=ExtractFilePath(ParamStr(0))+'EDIFILE\';
|
|
|
if not DirectoryExists(ScriptPath) then
|
|
|
CreateDir(ScriptPath);
|
|
|
|
|
|
ftpar:=Trim(Edit8.Text);
|
|
|
if ftpar='' then begin
|
|
|
MessageDlg('ÇëÉèÖÃFTPµØÖ·£¡',mtWarning,[mbOk],0);
|
|
|
exit;
|
|
|
end;
|
|
|
ftpname:=Trim(Edit9.Text);;
|
|
|
if ftpar='' then begin
|
|
|
MessageDlg('ÇëÉèÖÃFTPÓû§Ãû£¡',mtWarning,[mbOk],0);
|
|
|
exit;
|
|
|
end;
|
|
|
ftppass:=Trim(Edit10.Text);;
|
|
|
if ftpar='' then begin
|
|
|
MessageDlg('ÇëÉèÖÃFTPÃÜÂ룡',mtWarning,[mbOk],0);
|
|
|
exit;
|
|
|
end;
|
|
|
ftppath:=Trim(Edit11.Text);
|
|
|
|
|
|
ftppathSI:=Trim(Edit13.Text);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StrL:=Tstringlist.Create;
|
|
|
StrL.Clear;
|
|
|
count:=0;
|
|
|
|
|
|
if (CheckIFT.Checked) then begin
|
|
|
str:=ScriptPath
|
|
|
+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring
|
|
|
+FormatDateTime('yyyy',now)
|
|
|
+FormatDateTime('mm',now)
|
|
|
+FormatDateTime('dd',now)
|
|
|
+FormatDateTime('hh',now)
|
|
|
+FormatDateTime('nn',now)+'.edi';
|
|
|
|
|
|
str_file:=frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring
|
|
|
+FormatDateTime('yyyy',now)
|
|
|
+FormatDateTime('mm',now)
|
|
|
+FormatDateTime('dd',now)
|
|
|
+FormatDateTime('hh',now)
|
|
|
+FormatDateTime('nn',now)+'.edi';
|
|
|
|
|
|
count:=0;
|
|
|
bill_count:=0;
|
|
|
if frm_op_seae.dxdbgrid1.SelectedCount>1 then
|
|
|
begin
|
|
|
for i:=0 to frm_op_seae.dxdbgrid1.SelectedCount-1 do
|
|
|
begin
|
|
|
frm_op_seae.t_op_seae.GotoBookmark(pointer(frm_op_seae.dxdbgrid1.selectedrows[i]));
|
|
|
if not isEditrue then
|
|
|
exit;
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtSI_txt(StrL)
|
|
|
else
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtBooking_txt(StrL);
|
|
|
|
|
|
if get_Count=-1 then
|
|
|
exit
|
|
|
else
|
|
|
count:=count+get_Count;
|
|
|
bill_count:=bill_count+1;
|
|
|
|
|
|
end;
|
|
|
StrL.Add('UNT+'+INTTOSTR(StrL.count)+'+'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+#39);
|
|
|
StrL.Add('UNZ+'+inttostr(bill_count)+'+'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+#39);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if not isEditrue then
|
|
|
exit;
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtSI_txt(StrL)
|
|
|
else
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtBooking_txt(StrL);
|
|
|
if get_Count=-1 then
|
|
|
exit
|
|
|
else
|
|
|
count:=count+get_Count;
|
|
|
|
|
|
StrL.Add('UNT+'+INTTOSTR(StrL.count)+'+'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+#39);
|
|
|
StrL.Add('UNZ+1+'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+#39);
|
|
|
{
|
|
|
str.Add('UNT+'+INTTOSTR(count)+'+1'+#39);
|
|
|
str.Add('UNZ+1+100'+#39);
|
|
|
}
|
|
|
end;
|
|
|
|
|
|
for i:=0 to StrL.Count-1 do begin
|
|
|
if IsZhongwen(StrL[i]) then begin
|
|
|
MessageDlg('´ËƱҵÎñÓÐÖÐÎÄ×Ö·û»òTAB¼ü»ò<>×Ö·û,²»ÄÜÉÏ´«£¡'+#13#10+Str[i],mtWarning,[mbYes],0);
|
|
|
exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
|
|
|
end else begin
|
|
|
|
|
|
str:=ScriptPath
|
|
|
+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring
|
|
|
+FormatDateTime('yyyy',now)
|
|
|
+FormatDateTime('mm',now)
|
|
|
+FormatDateTime('dd',now)
|
|
|
+FormatDateTime('hh',now)
|
|
|
+FormatDateTime('nn',now)+'.XML';
|
|
|
|
|
|
str_file:=frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring
|
|
|
+FormatDateTime('yyyy',now)
|
|
|
+FormatDateTime('mm',now)
|
|
|
+FormatDateTime('dd',now)
|
|
|
+FormatDateTime('hh',now)
|
|
|
+FormatDateTime('nn',now)+'.XML';
|
|
|
|
|
|
StrL.Add('<?xml version="1.0" encoding="utf-8"?>');
|
|
|
StrL.Add('<Booking xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="br.xsd">');
|
|
|
bill_count:=0;
|
|
|
if frm_op_seae.dxdbgrid1.SelectedCount>1 then
|
|
|
begin
|
|
|
for i:=0 to frm_op_seae.dxdbgrid1.SelectedCount-1 do
|
|
|
begin
|
|
|
frm_op_seae.t_op_seae.GotoBookmark(pointer(frm_op_seae.dxdbgrid1.selectedrows[i]));
|
|
|
if not isEditrue then
|
|
|
exit;
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtSI(StrL,str_file)
|
|
|
else
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtBooking(StrL,str_file);
|
|
|
|
|
|
if get_Count=-1 then
|
|
|
exit
|
|
|
else
|
|
|
count:=count+get_Count;
|
|
|
bill_count:=bill_count+1;
|
|
|
|
|
|
end;
|
|
|
StrL.Add('</Booking>');
|
|
|
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if not isEditrue then
|
|
|
exit;
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtSI(StrL,str_file)
|
|
|
else
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtBooking(StrL,str_file);
|
|
|
if get_Count=-1 then
|
|
|
exit
|
|
|
else
|
|
|
count:=count+get_Count;
|
|
|
|
|
|
StrL.Add('</Booking>');
|
|
|
{
|
|
|
str.Add('UNT+'+INTTOSTR(count)+'+1'+#39);
|
|
|
str.Add('UNZ+1+100'+#39);
|
|
|
}
|
|
|
end;
|
|
|
|
|
|
for i:=0 to StrL.Count-1 do begin
|
|
|
if IsZhongwen(StrL[i]) then begin
|
|
|
MessageDlg('´ËƱҵÎñÓÐÖÐÎÄ×Ö·û»òTAB¼ü»ò<>×Ö·û,²»ÄÜÉÏ´«£¡'+#13#10+Str[i],mtWarning,[mbYes],0);
|
|
|
exit;
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
|
|
|
StrL.SaveToFile(str);
|
|
|
edi:=StrL.Text;
|
|
|
|
|
|
try
|
|
|
IdFTP1:=TIdFTP.Create(application);
|
|
|
with idftp1 do
|
|
|
begin
|
|
|
Username:=ftpname;
|
|
|
Password:=ftppass;
|
|
|
Host:=ftpar;
|
|
|
Connect;
|
|
|
end;
|
|
|
|
|
|
case RadioGroup1.ItemIndex of
|
|
|
0:begin
|
|
|
idftp1.ChangeDir(ftppath);
|
|
|
end;
|
|
|
1:begin
|
|
|
if (Trim(ftppathSI)<>'') then
|
|
|
idftp1.ChangeDir(ftppathSI)
|
|
|
else idftp1.ChangeDir(ftppath);
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
// idftp1.ChangeDir(ftppath);
|
|
|
idftp1.TransferType:=ftBinary;
|
|
|
idftp1.Put(str,str_file);
|
|
|
idftp1.Disconnect;
|
|
|
showmessage('ÎļþÉÏ´«³É¹¦£¡');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
if RadioGroup1.ItemIndex=0 then
|
|
|
SIO:='SO'
|
|
|
else SIO:='SI';
|
|
|
if RadioGroup3.ItemIndex=0 then
|
|
|
ORG:='ORG'
|
|
|
else ORG:='AMEND';
|
|
|
|
|
|
IF bsck.Checked then
|
|
|
begin
|
|
|
MBL:='·Öµ¥';
|
|
|
MBLNO:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
MBL:='Ö÷µ¥';
|
|
|
MBLNO:=frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring;
|
|
|
end;
|
|
|
CARR:=frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring;
|
|
|
CORP:=frm_op_seae.t_op_seae.fieldbyname('ίÍе¥Î»').asstring;
|
|
|
EMP:=employee;
|
|
|
EMPDAE:=FormatDateTime('YYYY-MM-DD hh:mm:ss',now);
|
|
|
ETD:=FormatDateTime('YYYY-MM-DD',frm_op_seae.t_op_seae.fieldbyname('¿ª´¬ÈÕÆÚ').value);
|
|
|
Insertt_op_Edi_Log(SIO,ORG,MBL,CARR,MBLNO,ETD,CORP,EMP,EMPDAE,str,edi);
|
|
|
|
|
|
|
|
|
except
|
|
|
on e : exception do
|
|
|
begin
|
|
|
MessageDlg('ÎļþÉÏ´«´íÎó£¡'+e.message,mtError,[mbOk],0);
|
|
|
deletefile(str);
|
|
|
i_soi:=1;
|
|
|
// showmessage('ÎļþÉÏ´«´íÎó£¡');
|
|
|
end;
|
|
|
end;
|
|
|
idftp1.Free;
|
|
|
|
|
|
if i_soi=0 then UpdateSOIStatus(RadioGroup1.ItemIndex,frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring);
|
|
|
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_op_seae_edi_cargosmart.FormClose(Sender: TObject;
|
|
|
var Action: TCloseAction);
|
|
|
VAR
|
|
|
inifile1:TIniFile;
|
|
|
begin
|
|
|
inifile1:=Tinifile.Create(ExtractFilePath(application.ExeName)+'main.ini');
|
|
|
inifile1.WriteString('EDI','SEND_CODE',edit1.text);
|
|
|
inifile1.WriteString('EDI','SEND_NAME',edit2.text);
|
|
|
inifile1.WriteString('EDI','RECEIVE_CODE',edit3.text);
|
|
|
inifile1.WriteString('EDI','RECEIVE_NAME',edit4.text);
|
|
|
inifile1.WriteString('EDI','SEND_TEL',edit5.text);
|
|
|
inifile1.WriteString('EDI','SEND_MAIL',edit6.text);
|
|
|
inifile1.WriteString('EDI','SEND_ATTN',edit7.text);
|
|
|
|
|
|
inifile1.WriteString('EDI','FTPADD',edit8.text);
|
|
|
inifile1.WriteString('EDI','FTPNAME',edit9.text);
|
|
|
inifile1.WriteString('EDI','FTPPASS',Edit10.text);
|
|
|
inifile1.WriteString('EDI','FTPPATH',Edit11.text);
|
|
|
|
|
|
inifile1.WriteString('EDI','FTPADDCMA',edit15.text);
|
|
|
inifile1.WriteString('EDI','FTPNAMECMA',edit16.text);
|
|
|
inifile1.WriteString('EDI','FTPPASSCMA',Edit17.text);
|
|
|
inifile1.WriteString('EDI','FTPPATHCMA',Edit18.text);
|
|
|
inifile1.WriteString('EDI','COMPANYCODE',Edit12.text);
|
|
|
inifile1.WriteString('EDI','CITY',Edit19.text);
|
|
|
inifile1.WriteString('EDI','CARGOSMARTSALEID',Edit20.text);
|
|
|
|
|
|
|
|
|
|
|
|
inifile1.WriteString('EDI','FTPPATHSI',Edit13.text);
|
|
|
|
|
|
inifile1.WriteString('EDI','FTPSIGN',Edit14.text);
|
|
|
|
|
|
|
|
|
inifile1.WriteInteger('EDI','CMASEND_TYPE',RadioGroup1.ItemIndex);
|
|
|
|
|
|
inifile1.WriteInteger('EDI','CMASEND_CA',RadioGroup2.ItemIndex);
|
|
|
inifile1.WriteBool('EDI','CARGOSMARTISIFT',CheckIFT.Checked);
|
|
|
|
|
|
inifile1.free;
|
|
|
action:=cafree;
|
|
|
frm_op_seae_edi_cargosmart:=nil;
|
|
|
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_op_seae_edi_cargosmart.bsSkinButton7Click(Sender: TObject);
|
|
|
var
|
|
|
Pnt:Tpoint;
|
|
|
begin
|
|
|
Pnt:=bsSkinButton7.ClientToScreen(Point(0,bsSkinButton7.Height));
|
|
|
PopupMenu3.Popup(Pnt.x,Pnt.y);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.get_txtBooking_txt(str:Tstringlist):integer;
|
|
|
var
|
|
|
str_all,sl:Tstringlist;
|
|
|
j,Count,i,k:integer;
|
|
|
str_guodu,str_shr,str_con,str_not:widestring;
|
|
|
str_pay,Str_head:string;
|
|
|
function CutVoyNo(VoyNo:String):String;
|
|
|
begin
|
|
|
if length(VoyNO)<3 then exit;
|
|
|
if Pos('.',VoyNO)>0 then begin
|
|
|
Result:=Copy(VoyNO,3,length(VoyNO)-2);
|
|
|
end else
|
|
|
Result:=VoyNO;
|
|
|
end;
|
|
|
begin
|
|
|
str_all:=Tstringlist.Create;
|
|
|
count:=0;
|
|
|
str.Add('UNB+UNOC:2+'+Edit1.TEXT+':ZZZ+'+Edit3.TEXT
|
|
|
+':ZZZ+'+GetDatetime(datetimetostr(now),2)+'+'
|
|
|
+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('UNH+'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+'+IFTMBF:D:99B:UN'+#39);
|
|
|
count:=count+1;
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
|
|
|
if RadioGroup3.ItemIndex=0 then
|
|
|
str.Add('BGM+335+'+frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+'SO+9'+#39) //9Ôʼ 5 ¸üÐÂ
|
|
|
else if RadioGroup3.ItemIndex=2 then
|
|
|
str.Add('BGM+335+'+frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+'SO::000002+1'+#39)
|
|
|
else str.Add('BGM+335+'+frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+'SO+5'+#39); //9Ôʼ 5 ¸üÐÂ
|
|
|
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if RadioGroup3.ItemIndex=0 then
|
|
|
str.Add('BGM+335+'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+'SO+9'+#39) //9Ôʼ 5 ¸üÐÂ
|
|
|
else if RadioGroup3.ItemIndex=2 then
|
|
|
str.Add('BGM+335+'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+'SO::000002+1'+#39)
|
|
|
else str.Add('BGM+335+'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+'SO+5'+#39); //9Ôʼ 5 ¸üÐÂ
|
|
|
end;
|
|
|
count:=count+1;
|
|
|
str.Add('DTM+318:'+GetDatetime(datetimetostr(now),3)+':204'+#39);
|
|
|
count:=count+1;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='' then
|
|
|
begin
|
|
|
showmessage('ÒµÎñ±àºÅΪ£º'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring
|
|
|
+'µÄÒµÎñÔËÊäÌõ¿îûÓÐÊäÈ룡£¡');
|
|
|
result:=-1;
|
|
|
exit;
|
|
|
end;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='DOOR-DOOR' then
|
|
|
begin
|
|
|
str.Add('TSR+27+2'+#39);
|
|
|
end;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='DOOR-CY' then
|
|
|
begin
|
|
|
str.Add('TSR+28+2'+#39);
|
|
|
end;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='CY-DOOR' then
|
|
|
begin
|
|
|
str.Add('TSR+29+2'+#39);
|
|
|
end;
|
|
|
if (trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='CY-CY')
|
|
|
or (trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='CY-RAMP') then
|
|
|
begin
|
|
|
str.Add('TSR+30+2'+#39);
|
|
|
end;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='OTHER' then
|
|
|
begin
|
|
|
str.Add('TSR+30+2'+#39);
|
|
|
end;
|
|
|
|
|
|
count:=count+1;
|
|
|
|
|
|
if Pos('PREPAID',frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring)>0 then
|
|
|
str_pay:=trim(frm_op_seae.t_op_seae.fieldbyname('Ô¤¸¶µØµã').asstring);
|
|
|
if Pos('COLLECT',frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring)>0 then
|
|
|
str_pay:=trim(frm_op_seae.t_op_seae.fieldbyname('µ½¸¶µØµã').asstring);
|
|
|
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
if (Trim(Changestr(frm_op_seae.t_op_seae.fieldbyname('EDI±¸×¢').asString))<>'') then begin
|
|
|
str.Add('FTX+AAA+++'+Changestr(frm_op_seae.t_op_seae.fieldbyname('EDI±¸×¢').asString)+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
|
|
|
if (Trim(Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('EDI±¸×¢').asString))<>'') then begin
|
|
|
str.Add('FTX+AAA+++'+Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('EDI±¸×¢').asString)+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
str.Add('RFF+SI:'+frm_op_seae.t_op_seae.fieldbyname('ίÍбàºÅ').asstring+#39); //
|
|
|
count:=count+1;
|
|
|
str.Add('RFF+CT:'+frm_op_seae.t_op_seae.fieldbyname('ÔË·ÑÐÒéºÅ').asstring+#39); //
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
if Trim(frm_op_seae.t_op_seae.fieldbyname('ÄÚ²¿º½´ÎºÅ').asstring)<>'' then
|
|
|
begin
|
|
|
|
|
|
str.Add('TDT+20+'+CutVoyNo(frm_op_seae.t_op_seae.fieldbyname('ÄÚ²¿º½´ÎºÅ').asstring)
|
|
|
+'+1+++++:::'+frm_op_seae.t_op_seae.fieldbyname('´¬Ãû').asstring+#39);
|
|
|
|
|
|
count:=count+1;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str.Add('TDT+20+'+CutVoyNo(frm_op_seae.t_op_seae.fieldbyname('º½´Î').asstring)
|
|
|
+'+1++'+GetShipEdiNO(frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring)+'+++:::'+frm_op_seae.t_op_seae.fieldbyname('´¬Ãû').asstring+#39);
|
|
|
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
str.Add('LOC+88+'+frm_op_seae.t_op_seae.fieldbyname('×°¸Û´úÂë').asstring
|
|
|
+':139:6:'+trim(frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring)+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('LOC+9+'+frm_op_seae.t_op_seae.fieldbyname('×°¸Û´úÂë').asstring
|
|
|
+':139:6:'+trim(frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring)+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
str.Add('DTM+133:'+GetDatetime(datetimetostr(frm_op_seae.t_op_seae.fieldbyname('¿ª´¬ÈÕÆÚ').asDatetime),0)+':102'+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
str.Add('LOC+11+'+frm_op_seae.t_op_seae.fieldbyname('ж»õ´úÂë').asstring
|
|
|
+':139:6:'+trim(frm_op_seae.t_op_seae.fieldbyname('ж»õ¸Û').asstring)+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ').asstring)<>'' then
|
|
|
begin
|
|
|
str.Add('LOC+7+'+frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ´úÂë').asstring //?
|
|
|
+':139:6:'+trim(frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ').asstring)+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
str.Add('NAD+CA+'+GetShipEdiNO(frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring)+':160:86++'+frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
str_all.Clear;
|
|
|
str_head:='';
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
if t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring<>'' then begin
|
|
|
str_all.Text:=Changestr(t_op_edi.fieldbyname('AMS·¢»õÈË').asstring);
|
|
|
end else begin
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('·¢»õÈË´úÂë').asstring);
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('·¢»õÈË´úÂë').asstring);
|
|
|
end;
|
|
|
GetLengthTString(str_all,35);
|
|
|
str_guodu:='NAD+CZ+++'+str_all[0]+'+';
|
|
|
if str_all.Count>=2 then
|
|
|
str_guodu:=str_guodu+str_all[1];
|
|
|
if (str_all.Count>=3) and (str_all.Count<=5) then
|
|
|
begin
|
|
|
for j:=2 to str_all.Count-1 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
if str_all.Count>5 then
|
|
|
begin
|
|
|
for j:=2 to 3 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
if RadioGroup2.ItemIndex=5 then
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+Copy(str_all[4],1,34)+'-';
|
|
|
Str_shr:='-'+Copy(str_all[4],34,1);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+Copy(str_all[4],1,34)+'*';
|
|
|
Str_shr:='*'+Copy(str_all[4],34,1);
|
|
|
end;
|
|
|
for j:=5 to str_all.Count-1 do begin
|
|
|
Str_shr:=Str_shr+' '+str_all[j]
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
count:=count+1;
|
|
|
|
|
|
if Length(Edit2.text)<=35 then
|
|
|
str.Add('NAD+BK+'+Edit1.TEXT+':160:86++'+Edit2.text+#39)
|
|
|
else str.Add('NAD+BK+'+Edit1.TEXT+':160:86++'+Copy(Edit2.text,1,35)+'+'+Copy(Edit2.text,35,35)+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
str.Add('CTA+IC+:'+edit7.text+'''');
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit5.text+':TE'+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit6.text+':EM'+#39);
|
|
|
count:=count+1;
|
|
|
if Trim(Edit20.text)<>'' then begin
|
|
|
str.Add('NAD+CP+'+Edit20.TEXT+#39)
|
|
|
end;
|
|
|
|
|
|
|
|
|
{
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring='FREIGHT PREPAID' then
|
|
|
begin
|
|
|
str.Add('LOC+57+'+GetPortEdiID(trim(frm_op_seae.t_op_seae.fieldbyname('Ô¤¸¶µØµã').asstring))
|
|
|
+'::6:'+trim(frm_op_seae.t_op_seae.fieldbyname('Ô¤¸¶µØµã').asstring)+#39);
|
|
|
end
|
|
|
else
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring='FREIGHT COLLECT' then begin
|
|
|
str.Add('LOC+57+'+trim(frm_op_seae.t_op_seae.fieldbyname('µ½¸¶µØµã´úÂë').asstring)
|
|
|
+'::6:'+trim(frm_op_seae.t_op_seae.fieldbyname('µ½¸¶µØµã').asstring)+#39);
|
|
|
end
|
|
|
else
|
|
|
str.Add('LOC+57+'+GetPortEdiID(trim(frm_op_seae.t_op_seae.fieldbyname('Ô¤¸¶µØµã').asstring))
|
|
|
+'::6:'+trim(frm_op_seae.t_op_seae.fieldbyname('Ô¤¸¶µØµã').asstring)+#39);
|
|
|
|
|
|
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
str_head:='';
|
|
|
str_all.Clear;
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
if t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring<>'' then
|
|
|
begin
|
|
|
str_all.Text:=Changestr(t_op_edi.fieldbyname('AMSÊÕ»õÈË').asstring);
|
|
|
end else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('ÊÕ»õÈË´úÂë').asstring);
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ÊÕ»õÈË´úÂë').asstring);
|
|
|
end;
|
|
|
GetLengthTString(str_all,35);
|
|
|
str_guodu:='NAD+CN+++'+str_all[0]+'+';
|
|
|
if str_all.Count>=2 then
|
|
|
str_guodu:=str_guodu+str_all[1];
|
|
|
if (str_all.Count>=3) and (str_all.Count<=5) then
|
|
|
begin
|
|
|
for j:=2 to str_all.Count-1 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
if str_all.Count>5 then
|
|
|
begin
|
|
|
for j:=2 to 3 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
if RadioGroup2.ItemIndex=5 then
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+Copy(str_all[4],1,33)+'--';
|
|
|
Str_con:='--'+Copy(str_all[4],33,1);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+Copy(str_all[4],1,33)+'**';
|
|
|
Str_con:='**'+Copy(str_all[4],33,1);
|
|
|
end;
|
|
|
for j:=5 to str_all.Count-1 do begin
|
|
|
Str_con:=Str_con+' '+str_all[j]
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring='ÃÀ¹ú') then begin
|
|
|
str_guodu:=str_guodu+'+++'+t_op_edi.FieldByName('ÊÕ»õÈËÓʱà').asstring+#39;
|
|
|
str.Add(str_guodu);
|
|
|
end else if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring='¼ÓÄôó') then begin
|
|
|
str_guodu:=str_guodu+'+++'+t_op_edi.FieldByName('ÊÕ»õÈËÓʱà').asstring+'+CA'+#39;
|
|
|
str.Add(str_guodu);
|
|
|
end else if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring='°ÍÎ÷') then begin
|
|
|
str_guodu:=str_guodu+'++++'+t_op_edi.FieldByName('ÊÕ»õÈ˹ú¼Ò´úÂë').asstring+#39;
|
|
|
str.Add(str_guodu);
|
|
|
str.Add('RFF+GN:'+t_op_edi.FieldByName('ÊÕ»õÈËË°ºÅ').asstring+#39); //
|
|
|
count:=count+1;
|
|
|
end else begin
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
end;
|
|
|
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='DOOR-DOOR' then
|
|
|
begin
|
|
|
if not bsck.Checked then
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('·¢»õÈË´úÂë').asstring)
|
|
|
else str_all.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('·¢»õÈË´úÂë').asstring);
|
|
|
|
|
|
GetLengthTString(str_all,35);
|
|
|
|
|
|
str_guodu:='NAD+SF+++'+str_all[0]+'+';
|
|
|
if str_all.Count>=2 then
|
|
|
str_guodu:=str_guodu+str_all[1];
|
|
|
if (str_all.Count>=3) and (str_all.Count<=5) then
|
|
|
begin
|
|
|
for j:=2 to str_all.Count-1 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
if str_all.Count>5 then
|
|
|
begin
|
|
|
for j:=2 to 4 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
count:=count+1;
|
|
|
|
|
|
str.Add('CTA+IC+:'+edit7.text+'''');
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit5.text+':TE'+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit6.text+':EM'+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
str_head:='';
|
|
|
str_all.Clear;
|
|
|
|
|
|
|
|
|
if not bsck.Checked then begin
|
|
|
if t_op_edi.fieldbyname('ËùÔÚ¹ú¼Ò').AsString<>'' then
|
|
|
begin
|
|
|
str_all.Text:=Changestr(t_op_edi.fieldbyname('AMSÊÕ»õÈË').asstring); //t_op_edi
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('ÊÕ»õÈË´úÂë').asstring);
|
|
|
end;
|
|
|
if (pos('TO ORDER',UpperCase(str_all.Text))>0) or (pos('SAME AS',UpperCase(str_all.Text))>0) then
|
|
|
if t_op_edi.fieldbyname('ËùÔÚ¹ú¼Ò').AsString<>'' then
|
|
|
begin
|
|
|
str_all.Text:=Changestr(t_op_edi.fieldbyname('֪ͨÈË´úÂë').asstring);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('֪ͨÈË´úÂë').asstring);
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ÊÕ»õÈË´úÂë').asstring);
|
|
|
end;
|
|
|
|
|
|
GetLengthTString(str_all,35);
|
|
|
str_guodu:='NAD+ST+++'+str_all[0]+'+';
|
|
|
if str_all.Count>=2 then
|
|
|
str_guodu:=str_guodu+str_all[1];
|
|
|
if (str_all.Count>=3) and (str_all.Count<=5) then
|
|
|
begin
|
|
|
for j:=2 to str_all.Count-1 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
if str_all.Count>5 then
|
|
|
begin
|
|
|
for j:=2 to 4 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
count:=count+1;
|
|
|
str.Add('CTA+IC+:'+edit7.text+'''');
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit5.text+':TE'+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit6.text+':EM'+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='DOOR-CY' then
|
|
|
begin
|
|
|
{
|
|
|
str.Add('NAD+SF+++SEAWORTHYQD+.'+#39);
|
|
|
count:=count+1;
|
|
|
}
|
|
|
str_all.Text:=Changestr(edit12.text);
|
|
|
GetLengthTString(str_all,35);
|
|
|
str_guodu:='NAD+SF+++'+str_all[0]+'+';
|
|
|
if str_all.Count>=2 then
|
|
|
str_guodu:=str_guodu+str_all[1];
|
|
|
if (str_all.Count>=3) and (str_all.Count<=5) then
|
|
|
begin
|
|
|
for j:=2 to str_all.Count-1 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
if str_all.Count>5 then
|
|
|
begin
|
|
|
for j:=2 to 4 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
count:=count+1;
|
|
|
|
|
|
str.Add('CTA+IC+:'+edit7.text+'''');
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit5.text+':TE'+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit6.text+':EM'+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='CY-DOOR' then
|
|
|
begin
|
|
|
str_head:='';
|
|
|
str_all.Clear;
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('DOORµØÖ·').asstring);
|
|
|
|
|
|
GetLengthTString(str_all,35);
|
|
|
str_guodu:='NAD+ST+++'+str_all[0]+'+';
|
|
|
if str_all.Count>=2 then
|
|
|
str_guodu:=str_guodu+str_all[1];
|
|
|
if (str_all.Count>=3) and (str_all.Count<=5) then
|
|
|
begin
|
|
|
for j:=2 to str_all.Count-1 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
if str_all.Count>5 then
|
|
|
begin
|
|
|
for j:=2 to 4 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
count:=count+1;
|
|
|
str.Add('CTA+IC+:'+edit7.text+'''');
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit5.text+':TE'+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit6.text+':EM'+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
|
|
|
if Length(Edit2.text)<=35 then
|
|
|
str.Add('NAD+FW+'+Edit1.TEXT+':160:86++'+Edit2.text+#39)
|
|
|
else str.Add('NAD+FW+'+Edit1.TEXT+':160:86++'+Copy(Edit2.text,1,35)+'+'+Copy(Edit2.text,35,35)+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
if Pos('PREPAID',frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring)>0 then
|
|
|
str.Add('CPI+4++P''')
|
|
|
else
|
|
|
str.Add('CPI+4++C''');
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
str.Add('GID+1+'+frm_op_seae.t_op_seae.fieldbyname('¼þÊý').asstring+':'+
|
|
|
GetPkgCode(trim(frm_op_seae.t_op_seae.fieldbyname('°ü×°').asstring))+'::6:'+frm_op_seae.t_op_seae.fieldbyname('°ü×°').asstring+#39); //£¿
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str.Add('GID+1+'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('¼þÊý').asstring+':'+
|
|
|
GetPkgCode(trim(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('°ü×°').asstring))+'::6:'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('°ü×°').asstring+#39); //£¿
|
|
|
end;
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
if Trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊ䷽ʽ').asstring)<>'' then
|
|
|
begin
|
|
|
str.Add('PIA+5+'+frm_op_seae.t_op_seae.fieldbyname('ÔËÊ䷽ʽ').asstring+':HS'+#39); //£¿
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
|
|
|
sl:=TStringList.Create;
|
|
|
try
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
sl.text:=frm_op_seae.t_op_seae.fieldbyname('»õÎïÃèÊö').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
sl.text:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('»õÎïÃèÊö').asstring;
|
|
|
end;
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
str.Add('FTX+AAA+++'+Changestr(sl.Strings[i])+''+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
|
|
|
if Trim(str_shr)<>'' then begin
|
|
|
str.Add('FTX+AAA+++'+
|
|
|
Str_shr+#39);
|
|
|
count:=count+2;
|
|
|
end;
|
|
|
if Trim(str_con)<>'' then begin
|
|
|
str.Add('FTX+AAA+++'+
|
|
|
Str_con+#39);
|
|
|
count:=count+2;
|
|
|
end;
|
|
|
if Trim(str_not)<>'' then begin
|
|
|
str.Add('FTX+AAA+++'+
|
|
|
Str_not+#39);
|
|
|
count:=count+2;
|
|
|
end;
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
str.Add('MEA+WT+G+KGM:'+frm_op_seae.t_op_seae.fieldbyname('ÖØÁ¿').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+VOL+AAW+CBM:'+frm_op_seae.t_op_seae.fieldbyname('³ßÂë').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str.Add('MEA+WT+G+KGM:'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ÖØÁ¿').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+VOL+AAW+CBM:'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('³ßÂë').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
|
|
|
sl:=TStringList.Create;
|
|
|
try
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
sl.text:=frm_op_seae.t_op_seae.fieldbyname('ßéÍ·').asString;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
sl.text:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ßéÍ·').asString;
|
|
|
end;
|
|
|
GetLengthTString(sl,35);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
str.Add('PCI++'+Changestr(sl.Strings[i])+''+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
|
|
|
if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='D' then
|
|
|
begin
|
|
|
str.Add('DGS+IMD+'+frm_op_seae.t_op_seae.fieldbyname('ΣÏÕÆ··ÖÀà').asstring
|
|
|
+'+'+frm_op_seae.t_op_seae.fieldbyname('ΣÏÕÆ·±àºÅ').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('CTA+HG+:'+edit7.text+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit5.text+':TE'+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
t_op_ctn.Close;t_op_ctn.SQL.Clear;
|
|
|
t_op_ctn.SQL.Add('SELECT t_op_ctn.±àºÅ,t_op_ctn.ÊýÁ¿, t_code_ctn.EDI´úÂë,t_op_ctn.³ß´ç,t_op_ctn.°ü×°');
|
|
|
t_op_ctn.SQL.Add(',t_op_ctn.ÏäÐÍ,t_op_ctn.ÏäºÅ,t_op_ctn.ÖØÁ¿,t_op_ctn.·âºÅ,t_op_ctn.³ßÂë,t_op_ctn.¼þÊý');
|
|
|
t_op_ctn.SQL.Add('FROM t_op_ctn INNER JOIN');
|
|
|
t_op_ctn.SQL.Add('t_code_ctn ON t_op_ctn.´úÂë = t_code_ctn.´úÂë');
|
|
|
t_op_ctn.SQL.Add('WHERE t_op_ctn.񅧏=:񅧏');
|
|
|
t_op_ctn.close;
|
|
|
t_op_ctn.Parameters.ParamByName('񅧏').Value:=frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
t_op_ctn.Close;t_op_ctn.SQL.Clear;
|
|
|
t_op_ctn.SQL.Add('SELECT t_op_ctn_fendan.±àºÅ,t_op_ctn_fendan.ÊýÁ¿, t_code_ctn.EDI´úÂë,t_op_ctn_fendan.³ß´ç,t_op_ctn_fendan.°ü×°');
|
|
|
t_op_ctn.SQL.Add(',t_op_ctn_fendan.ÏäÐÍ,t_op_ctn_fendan.ÏäºÅ,t_op_ctn_fendan.ÖØÁ¿,t_op_ctn_fendan.·âºÅ,t_op_ctn_fendan.³ßÂë,t_op_ctn_fendan.¼þÊý');
|
|
|
t_op_ctn.SQL.Add('FROM t_op_ctn_fendan INNER JOIN');
|
|
|
t_op_ctn.SQL.Add('t_code_ctn ON t_op_ctn_fendan.´úÂë = t_code_ctn.´úÂë');
|
|
|
t_op_ctn.SQL.Add('WHERE t_op_ctn_fendan.as_id=:as_id');
|
|
|
t_op_ctn.close;
|
|
|
t_op_ctn.Parameters.ParamByName('as_id').Value:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('as_id').asinteger;
|
|
|
end;
|
|
|
t_op_ctn.open;
|
|
|
t_op_ctn.first;
|
|
|
while not t_op_ctn.eof do
|
|
|
begin
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('ÊÇ·ñ×ÔÓÐÏä').asboolean then
|
|
|
str.Add('EQD+CN++'+GetCtnCode(t_op_ctn.fieldbyname('ÏäÐÍ').asstring,t_op_ctn.fieldbyname('³ß´ç').asstring)+'+1'+#39)
|
|
|
else
|
|
|
str.Add('EQD+CN++'+GetCtnCode(t_op_ctn.fieldbyname('ÏäÐÍ').asstring,t_op_ctn.fieldbyname('³ß´ç').asstring)+'+2'+#39); //ÏäÐÍ ¶àÏäÐÍ
|
|
|
count:=count+1;
|
|
|
str.Add('EQN+'+t_op_ctn.fieldbyname('ÊýÁ¿').asstring+#39); //ÊýÁ¿
|
|
|
count:=count+1;
|
|
|
if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='R' then
|
|
|
begin
|
|
|
|
|
|
if Trim(frm_op_seae.t_op_seae.fieldbyname('Àä²Øͨ·çÁ¿').asstring)<>'' then
|
|
|
begin
|
|
|
str.Add('MEA+AAE+AAS+CBM:'+frm_op_seae.t_op_seae.fieldbyname('Àä²Øͨ·çÁ¿').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
if Trim(frm_op_seae.t_op_seae.fieldbyname('ʪ¶È').asstring)<>'' then
|
|
|
begin
|
|
|
str.Add('MEA+AAE+AAO+PER:'+frm_op_seae.t_op_seae.fieldbyname('ʪ¶È').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='R' then
|
|
|
begin
|
|
|
str.Add('TMP+2+'+frm_op_seae.t_op_seae.fieldbyname('ÉèÖÃζÈ').asstring+':CEL'+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
t_op_ctn.next;
|
|
|
end;
|
|
|
|
|
|
count:=count+1;
|
|
|
|
|
|
result:=count;
|
|
|
end;
|
|
|
|
|
|
|
|
|
function Tfrm_op_seae_edi_cargosmart.get_txtSI_txt(str: Tstringlist): integer; //ÌᵥȷÈÏ
|
|
|
var
|
|
|
str_all,sl:Tstringlist;
|
|
|
ctnlist:TStringList;
|
|
|
j,Count,i,k,Lineno:integer;
|
|
|
str_guodu,str_shr,str_con,str_not:widestring;
|
|
|
str_pay,Str_head,str1,str2,CopyBillCount:string;
|
|
|
aAdoQuery:TAdoQuery;
|
|
|
function CutVoyNo(VoyNo:String):String;
|
|
|
begin
|
|
|
if length(VoyNO)<3 then exit;
|
|
|
if Pos('.',VoyNO)>0 then begin
|
|
|
Result:=Copy(VoyNO,3,length(VoyNO)-2);
|
|
|
end else
|
|
|
Result:=VoyNO;
|
|
|
end;
|
|
|
begin
|
|
|
str_all:=Tstringlist.Create;
|
|
|
count:=0;
|
|
|
str.Add('UNB+UNOC:2+'+Edit1.TEXT+':ZZZ+'+Edit3.TEXT
|
|
|
+':ZZZ+'+GetDatetime(datetimetostr(now),2)+'+'
|
|
|
+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('UNH+'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+'+IFTMIN:D:99B:UN'+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
if RadioGroup3.ItemIndex=0 then
|
|
|
str.Add('BGM+340+'+frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+'+9'+#39)
|
|
|
else str.Add('BGM+340+'+frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+'+5'+#39);
|
|
|
count:=count+1;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if RadioGroup3.ItemIndex=0 then
|
|
|
str.Add('BGM+340+'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+'+9'+#39)
|
|
|
else str.Add('BGM+340+'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+'+5'+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='' then
|
|
|
begin
|
|
|
showmessage('ÒµÎñ±àºÅΪ£º'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring
|
|
|
+'µÄÒµÎñÔËÊäÌõ¿îûÓÐÊäÈ룡£¡');
|
|
|
result:=-1;
|
|
|
exit;
|
|
|
end;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='DOOR-DOOR' then
|
|
|
begin
|
|
|
str.Add('TSR+27+2'+#39);
|
|
|
end;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='DOOR-CY' then
|
|
|
begin
|
|
|
str.Add('TSR+28+2'+#39);
|
|
|
end;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='CY-DOOR' then
|
|
|
begin
|
|
|
str.Add('TSR+29+2'+#39);
|
|
|
end;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='CY-CY' then
|
|
|
begin
|
|
|
str.Add('TSR+30+2'+#39);
|
|
|
end;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring)='OTHER' then
|
|
|
begin
|
|
|
str.Add('TSR+30+2'+#39);
|
|
|
end;
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
if Pos('PREPAID',frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring)>0 then
|
|
|
str_pay:=trim(frm_op_seae.t_op_seae.fieldbyname('Ô¤¸¶µØµã').asstring);
|
|
|
if Pos('COLLECT',frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring)>0 then
|
|
|
str_pay:=trim(frm_op_seae.t_op_seae.fieldbyname('µ½¸¶µØµã').asstring);
|
|
|
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
|
|
|
str.Add('FTX+AAS+++'+frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring
|
|
|
+' Payable at '+str_pay+' '+
|
|
|
frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring+
|
|
|
' '+frm_op_seae.t_op_seae.fieldbyname('¼þÊý').asstring+
|
|
|
trim(frm_op_seae.t_op_seae.fieldbyname('°ü×°').asstring)+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
|
|
|
|
|
|
str.Add('FTX+AAS+++'+frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring
|
|
|
+' Payable at '+str_pay+' '+
|
|
|
frm_op_seae.t_op_seae.fieldbyname('ÔËÊäÌõ¿î').asstring+
|
|
|
' '+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('¼þÊý').asstring+
|
|
|
trim(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('°ü×°').asstring)+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sl:=TStringList.Create;
|
|
|
try
|
|
|
if not bsck.checked then
|
|
|
sl.text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('EDI±¸×¢').asString)
|
|
|
else sl.text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('EDI±¸×¢').asString);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
str.Add('FTX+AAS+++'+sl.Strings[i]+''+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
str.Add('CNT+7:'+frm_op_seae.t_op_seae.fieldbyname('ÖØÁ¿').asstring+':KGM''');
|
|
|
count:=count+1;
|
|
|
str.Add('CNT+11:'+frm_op_seae.t_op_seae.fieldbyname('¼þÊý').asstring+'''');
|
|
|
count:=count+1;
|
|
|
str.Add('CNT+15:'+frm_op_seae.t_op_seae.fieldbyname('³ßÂë').asstring+':CBM''');
|
|
|
count:=count+1;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str.Add('CNT+7:'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ÖØÁ¿').asstring+':KGM''');
|
|
|
count:=count+1;
|
|
|
str.Add('CNT+11:'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('¼þÊý').asstring+'''');
|
|
|
count:=count+1;
|
|
|
str.Add('CNT+15:'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('³ßÂë').asstring+':CBM''');
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
str.Add('CNT+16:'+GetcntCount+#39); //
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring='FREIGHT PREPAID' then
|
|
|
begin
|
|
|
str.Add('LOC+57+'+GetPortEdiID(trim(frm_op_seae.t_op_seae.fieldbyname('Ô¤¸¶µØµã').asstring))
|
|
|
+'::6:'+trim(frm_op_seae.t_op_seae.fieldbyname('Ô¤¸¶µØµã').asstring)+#39);
|
|
|
end
|
|
|
else
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring='FREIGHT COLLECT' then begin
|
|
|
str.Add('LOC+57+'+trim(frm_op_seae.t_op_seae.fieldbyname('µ½¸¶µØµã´úÂë').asstring)
|
|
|
+'::6:'+trim(frm_op_seae.t_op_seae.fieldbyname('µ½¸¶µØµã').asstring)+#39);
|
|
|
end
|
|
|
else
|
|
|
str.Add('LOC+57+'+GetPortEdiID(trim(frm_op_seae.t_op_seae.fieldbyname('Ô¤¸¶µØµã').asstring))
|
|
|
+'::6:'+trim(frm_op_seae.t_op_seae.fieldbyname('Ô¤¸¶µØµã').asstring)+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
str.Add('LOC+73+'+GetPortEdiID(trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥µØµã').asstring))
|
|
|
+'::6:'+trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥µØµã').asstring)+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
if not (frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥ÈÕÆÚ').asDatetime<(now-120)) then begin
|
|
|
str.Add('DTM+95:'+GetDatetime(datetimetostr(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥ÈÕÆÚ').asDatetime),0)+':102'+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
|
|
|
if t_op_edi.IsEmpty or (t_op_edi.FieldByName('¶¨²ÕºÅ').AsString='') then
|
|
|
str.Add('RFF+BN:'+frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+#39)
|
|
|
else
|
|
|
str.Add('RFF+BN:'+t_op_edi.FieldByName('¶¨²ÕºÅ').AsString+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
|
|
|
str.Add('RFF+BN:'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
str.Add('RFF+BM:'+frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str.Add('RFF+BM:'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
|
|
|
{
|
|
|
str.Add('RFF+ON:###NAD-CZ-ZZZ-['+frm_op_seae.t_op_seae.fieldbyname('·¢»õÈ˱àÂë').asstring+']'+#39);
|
|
|
count:=count+1;
|
|
|
}
|
|
|
str.Add('RFF+CT:'+frm_op_seae.t_op_seae.fieldbyname('ÔË·ÑÐÒéºÅ').asstring+#39); //
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
str.Add('RFF+SI:'+frm_op_seae.t_op_seae.fieldbyname('ίÍбàºÅ').asstring+#39); //
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
|
|
|
if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring='ÃÀ¹ú') then begin
|
|
|
str.Add('REF+TN:'+t_op_edi.FieldByName('ITN񅧏').asstring+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
end;
|
|
|
|
|
|
if Pos('PREPAID',frm_op_seae.t_op_seae.fieldbyname('¸¶·Ñ·½Ê½').asstring)>0 then
|
|
|
str.Add('CPI+4++P''')
|
|
|
else
|
|
|
str.Add('CPI+4++C''');
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
|
|
|
if SelectCarrier then
|
|
|
begin
|
|
|
if Trim(frm_op_seae.t_op_seae.fieldbyname('ÄÚ²¿º½´ÎºÅ').asstring)<>'' then
|
|
|
begin
|
|
|
|
|
|
str.Add('TDT+20+'+CutVoyNo(frm_op_seae.t_op_seae.fieldbyname('ÄÚ²¿º½´ÎºÅ').asstring)
|
|
|
+'+1+++++:::'+frm_op_seae.t_op_seae.fieldbyname('´¬Ãû').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
|
|
|
str.Add('TDT+20+'+CutVoyNo(frm_op_seae.t_op_seae.fieldbyname('º½´Î').asstring)
|
|
|
+'+1+++++:::'+frm_op_seae.t_op_seae.fieldbyname('´¬Ãû').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
if Trim(frm_op_seae.t_op_seae.fieldbyname('ÄÚ²¿º½´ÎºÅ').asstring)<>'' then
|
|
|
begin
|
|
|
|
|
|
str.Add('TDT+20+'+CutVoyNo(frm_op_seae.t_op_seae.fieldbyname('ÄÚ²¿º½´ÎºÅ').asstring)
|
|
|
+'+1+++++:::'+frm_op_seae.t_op_seae.fieldbyname('´¬Ãû').asstring+#39);
|
|
|
|
|
|
count:=count+1;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
|
|
|
str.Add('TDT+20+'+CutVoyNo(frm_op_seae.t_op_seae.fieldbyname('º½´Î').asstring)
|
|
|
+'+1+++++:::'+frm_op_seae.t_op_seae.fieldbyname('´¬Ãû').asstring+#39);
|
|
|
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
str.Add('LOC+9+'+frm_op_seae.t_op_seae.fieldbyname('×°¸Û´úÂë').asstring
|
|
|
+':139:6:'+trim(frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring)+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
str.Add('LOC+88+'+frm_op_seae.t_op_seae.fieldbyname('×°¸Û´úÂë').asstring
|
|
|
+':139:6:'+trim(frm_op_seae.t_op_seae.fieldbyname('×°»õ¸Û').asstring)+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
str.Add('LOC+11+'+frm_op_seae.t_op_seae.fieldbyname('ж»õ´úÂë').asstring
|
|
|
+':139:6:'+trim(frm_op_seae.t_op_seae.fieldbyname('ж»õ¸Û').asstring)+#39);
|
|
|
|
|
|
|
|
|
count:=count+1;
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ').asstring)<>'' then
|
|
|
begin
|
|
|
str.Add('LOC+7+'+frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ´úÂë').asstring //?
|
|
|
+':139:6:'+trim(frm_op_seae.t_op_seae.fieldbyname('Ä¿µÄµØ').asstring)+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
str.Add('NAD+CA+'+GetShipEdiNO(frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring)+':160:86++'+frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
str_all.Clear;
|
|
|
str_head:='';
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring<>'') and (aCarrier.CarrierName<>'OOCL') then
|
|
|
begin
|
|
|
str_all.Text:=Changestr(t_op_edi.fieldbyname('AMS·¢»õÈË').asstring);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('·¢»õÈË´úÂë').asstring);
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('·¢»õÈË´úÂë').asstring);
|
|
|
end;
|
|
|
GetLengthTString(str_all,35);
|
|
|
str_guodu:='NAD+SH+++'+str_all[0]+'+';
|
|
|
if str_all.Count>=2 then
|
|
|
str_guodu:=str_guodu+str_all[1];
|
|
|
if (str_all.Count>=3) and (str_all.Count<=5) then
|
|
|
begin
|
|
|
for j:=2 to str_all.Count-1 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
if str_all.Count>5 then
|
|
|
begin
|
|
|
for j:=2 to 3 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
if RadioGroup2.ItemIndex=5 then
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+Copy(str_all[4],1,34)+'-';
|
|
|
Str_shr:='-'+Copy(str_all[4],34,1);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+Copy(str_all[4],1,34)+'*';
|
|
|
Str_shr:='*'+Copy(str_all[4],34,1);
|
|
|
end;
|
|
|
for j:=5 to str_all.Count-1 do begin
|
|
|
Str_shr:=Str_shr+' '+str_all[j]
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
str_head:='';
|
|
|
str_all.Clear;
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring<>'') and (aCarrier.CarrierName<>'OOCL') then
|
|
|
begin
|
|
|
str_all.Text:=Changestr(t_op_edi.fieldbyname('AMSÊÕ»õÈË').asstring);
|
|
|
end else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('ÊÕ»õÈË´úÂë').asstring);
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ÊÕ»õÈË´úÂë').asstring);
|
|
|
end;
|
|
|
GetLengthTString(str_all,35);
|
|
|
str_guodu:='NAD+CN+++'+str_all[0]+'+';
|
|
|
if str_all.Count>=2 then
|
|
|
str_guodu:=str_guodu+str_all[1];
|
|
|
if (str_all.Count>=3) and (str_all.Count<=5) then
|
|
|
begin
|
|
|
for j:=2 to str_all.Count-1 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
if str_all.Count>5 then
|
|
|
begin
|
|
|
for j:=2 to 3 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
if RadioGroup2.ItemIndex=5 then
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+Copy(str_all[4],1,33)+'--';
|
|
|
Str_con:='--'+Copy(str_all[4],33,1);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+Copy(str_all[4],1,33)+'**';
|
|
|
Str_con:='**'+Copy(str_all[4],33,1);
|
|
|
end;
|
|
|
for j:=5 to str_all.Count-1 do begin
|
|
|
Str_con:=Str_con+' '+str_all[j]
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring='ÃÀ¹ú') then begin
|
|
|
str_guodu:=str_guodu+'+++'+t_op_edi.FieldByName('ÊÕ»õÈËÓʱà').asstring+#39;
|
|
|
str.Add(str_guodu);
|
|
|
end else if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring='¼ÓÄôó') then begin
|
|
|
str_guodu:=str_guodu+'+++'+t_op_edi.FieldByName('ÊÕ»õÈËÓʱà').asstring+'+CA'+#39;
|
|
|
str.Add(str_guodu);
|
|
|
end else if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring='°ÍÎ÷') then begin
|
|
|
str_guodu:=str_guodu+'++++'+t_op_edi.FieldByName('ÊÕ»õÈ˹ú¼Ò´úÂë').asstring+#39;
|
|
|
str.Add(str_guodu);
|
|
|
str.Add('RFF+GN:'+t_op_edi.FieldByName('ÊÕ»õÈËË°ºÅ').asstring+#39); //
|
|
|
count:=count+1;
|
|
|
end else begin
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
end;
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
//´úÀí
|
|
|
|
|
|
str_head:='';
|
|
|
str_all.Clear;
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('´úÀíÄÚÈÝ').asstring);
|
|
|
IF str_all.Count>0 then
|
|
|
begin
|
|
|
GetLengthTString(str_all,35);
|
|
|
str_guodu:='NAD+FW+++'+str_all[0]+'+';
|
|
|
if str_all.Count>=2 then
|
|
|
str_guodu:=str_guodu+str_all[1];
|
|
|
if (str_all.Count>=3) and (str_all.Count<=5) then
|
|
|
begin
|
|
|
for j:=2 to str_all.Count-1 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
str_head:='';
|
|
|
str_all.Clear;
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring<>'') and (aCarrier.CarrierName<>'OOCL') then
|
|
|
begin
|
|
|
str_all.Text:=Changestr(t_op_edi.fieldbyname('AMS֪ͨÈË').asstring);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('֪ͨÈË´úÂë').asstring);
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_all.Text:=Changestr(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('֪ͨÈË´úÂë').asstring);
|
|
|
end;
|
|
|
GetLengthTString(str_all,35);
|
|
|
str_guodu:='NAD+N1+++'+str_all[0]+'+';
|
|
|
if str_all.Count>=2 then
|
|
|
str_guodu:=str_guodu+str_all[1];
|
|
|
if (str_all.Count>=3) and (str_all.Count<=5) then
|
|
|
begin
|
|
|
for j:=2 to str_all.Count-1 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
if str_all.Count>5 then
|
|
|
begin
|
|
|
for j:=2 to 3 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
if RadioGroup2.ItemIndex=5 then
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+Copy(str_all[4],1,32)+'---';
|
|
|
Str_not:='---'+Copy(str_all[4],32,1);
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+Copy(str_all[4],1,32)+'***';
|
|
|
Str_not:='***'+Copy(str_all[4],32,1);
|
|
|
end;
|
|
|
for j:=5 to str_all.Count-1 do begin
|
|
|
Str_not:=Str_not+' '+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring='ÃÀ¹ú') then begin
|
|
|
str_guodu:=str_guodu+'+++'+t_op_edi.FieldByName('֪ͨÈËÓʱà').asstring+#39;
|
|
|
str.Add(str_guodu);
|
|
|
end else if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring='¼ÓÄôó') then begin
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
end else if (t_op_edi.FieldByName('ËùÔÚ¹ú¼Ò').asstring='°ÍÎ÷') then begin
|
|
|
if t_op_edi.FieldByName('֪ͨÈ˹ú¼Ò´úÂë').asstring<>'' then
|
|
|
str_guodu:=str_guodu+'++++'+t_op_edi.FieldByName('֪ͨÈ˹ú¼Ò´úÂë').asstring+#39
|
|
|
else
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
if t_op_edi.FieldByName('֪ͨÈËË°ºÅ').asstring<>'' then begin
|
|
|
str.Add('RFF+GN:'+t_op_edi.FieldByName('֪ͨÈËË°ºÅ').asstring+#39); //
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
end else begin
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
end;
|
|
|
count:=count+1;
|
|
|
|
|
|
if trim(frm_op_seae.t_op_seae.fieldbyname('µÚ¶þ֪ͨÈË').asstring)<>'' then
|
|
|
begin
|
|
|
str_head:='';
|
|
|
str_all.Clear;
|
|
|
str_all.Text:=Changestr(frm_op_seae.t_op_seae.fieldbyname('µÚ¶þ֪ͨÈË').asstring);
|
|
|
GetLengthTString(str_all,35);
|
|
|
str_guodu:='NAD+N2+++'+str_all[0]+'+';
|
|
|
if str_all.Count>=2 then
|
|
|
str_guodu:=str_guodu+str_all[1];
|
|
|
if (str_all.Count>=3) and (str_all.Count<=5) then
|
|
|
begin
|
|
|
for j:=2 to str_all.Count-1 do
|
|
|
begin
|
|
|
str_guodu:=str_guodu+':'+str_all[j]
|
|
|
end;
|
|
|
end;
|
|
|
str_guodu:=str_guodu+#39;
|
|
|
str.Add(str_guodu);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
|
|
|
{ if RadioGroup2.ItemIndex=0 then
|
|
|
str.Add('NAD+CA+MAEU:160:86++MAERSK'+#39)
|
|
|
else if RadioGroup2.ItemIndex=1 then
|
|
|
str.Add('NAD+CA+MCCQ:160:86++MCC TRANSPORT'+#39)
|
|
|
else if RadioGroup2.ItemIndex=2 then
|
|
|
str.Add('NAD+CA+ANNU:160:86++ANL CONTAINER LINE'+#39);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
if SelectCarrier then
|
|
|
begin
|
|
|
str.Add('NAD+CA+'+aCarrier.EdiNo+':160:86++'+aCarrier.CarrierName+#39);
|
|
|
count:=count+1;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str.Add('NAD+CA+'+GetShipEdiNO(frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring)+':160:86++'+frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
}
|
|
|
|
|
|
// str.Add('NAD+CA+'+GetShipEdiNO(frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring)+':160:86++'+frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring+#39);
|
|
|
|
|
|
// count:=count+1;
|
|
|
|
|
|
if Length(Edit2.text)<=35 then
|
|
|
str.Add('NAD+SI+'+Edit1.TEXT+':160:86++'+Edit2.text+#39)
|
|
|
else str.Add('NAD+SI+'+Edit1.TEXT+':160:86++'+Copy(Edit2.text,1,35)+'+'+Copy(Edit2.text,35,35)+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
|
|
|
str.Add('CTA+IC+:'+edit7.text+'''');
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit5.text+':TE'+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit6.text+':EM'+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='ONE' then
|
|
|
Str1:='1'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='TWO' then
|
|
|
Str1:='2'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='THREE' then
|
|
|
Str1:='3'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='FOUR' then
|
|
|
Str1:='4'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='FIVE' then
|
|
|
Str1:='5'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='SIX' then
|
|
|
Str1:='6'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='SERVEN' then
|
|
|
Str1:='7'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='EIGHT' then
|
|
|
Str1:='8'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='NIGHT' then
|
|
|
Str1:='9'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('Ìáµ¥·ÝÊý').asstring='TEN' then
|
|
|
Str1:='10';
|
|
|
|
|
|
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('¸±±¾Ìáµ¥·ÝÊý').asstring='ONE' then
|
|
|
CopyBillCount:='1'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('¸±±¾Ìáµ¥·ÝÊý').asstring='TWO' then
|
|
|
CopyBillCount:='2'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('¸±±¾Ìáµ¥·ÝÊý').asstring='THREE' then
|
|
|
CopyBillCount:='3'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('¸±±¾Ìáµ¥·ÝÊý').asstring='FOUR' then
|
|
|
CopyBillCount:='4'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('¸±±¾Ìáµ¥·ÝÊý').asstring='FIVE' then
|
|
|
CopyBillCount:='5'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('¸±±¾Ìáµ¥·ÝÊý').asstring='SIX' then
|
|
|
CopyBillCount:='6'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('¸±±¾Ìáµ¥·ÝÊý').asstring='SERVEN' then
|
|
|
CopyBillCount:='7'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('¸±±¾Ìáµ¥·ÝÊý').asstring='EIGHT' then
|
|
|
CopyBillCount:='8'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('¸±±¾Ìáµ¥·ÝÊý').asstring='NIGHT' then
|
|
|
CopyBillCount:='9'
|
|
|
else if frm_op_seae.t_op_seae.fieldbyname('¸±±¾Ìáµ¥·ÝÊý').asstring='TEN' then
|
|
|
CopyBillCount:='10';
|
|
|
|
|
|
|
|
|
|
|
|
IF trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='Õý±¾' then begin //Ìáµ¥ÀàÐÍ
|
|
|
if aCarrier.CarrierName='OOCL' then
|
|
|
Str2:='705'
|
|
|
else
|
|
|
Str2:='706';
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('ÔË·Ñ').AsBoolean then
|
|
|
str.Add('DOC+'+Str2+'+:27++'+Str1+#39)
|
|
|
else str.Add('DOC+'+Str2+'+++'+Str1+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
if trim(CopyBillCount)<>'' then
|
|
|
begin
|
|
|
|
|
|
Str2:='707';
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('ÔË·Ñ').AsBoolean then
|
|
|
str.Add('DOC+'+Str2+'+:27++'+CopyBillCount+#39)
|
|
|
else str.Add('DOC+'+Str2+'+++'+CopyBillCount+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
end else if (trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='º£Ô˵¥')
|
|
|
or (trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='Seaway')
|
|
|
or (trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='SWBÕý±¾')
|
|
|
or (trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='SWBÎÞÕý±¾') then begin //SWBÕý±¾ //SWBÎÞÕý±¾
|
|
|
Str2:='710';
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('ÔË·Ñ').AsBoolean then
|
|
|
str.Add('DOC+'+Str2+'+:27++'+Str1+#39)
|
|
|
else str.Add('DOC+'+Str2+'+++'+Str1+#39);
|
|
|
|
|
|
count:=count+1;
|
|
|
end else if (trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='BILL COPY') or
|
|
|
(trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='µç·Å')
|
|
|
then begin
|
|
|
|
|
|
if aCarrier.CarrierName='OOCL' then
|
|
|
Str2:='705'
|
|
|
else Str2:='706';
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('ÔË·Ñ').AsBoolean then
|
|
|
str.Add('DOC+'+Str2+'+:27++'+Str1+#39)
|
|
|
else str.Add('DOC+'+Str2+'+++'+Str1+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
if Trim(CopyBillCount)<>'' then
|
|
|
begin
|
|
|
Str2:='707';
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('ÔË·Ñ').AsBoolean then
|
|
|
str.Add('DOC+'+Str2+'+:27++'+CopyBillCount+#39)
|
|
|
else str.Add('DOC+'+Str2+'+++'+CopyBillCount+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
end else if trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='HOUSE BILL' then begin
|
|
|
Str2:='714';
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('ÔË·Ñ').AsBoolean then
|
|
|
str.Add('DOC+'+Str2+'+:27++'+Str1+#39)
|
|
|
else str.Add('DOC+'+Str2+'+++'+Str1+#39);
|
|
|
|
|
|
count:=count+1;
|
|
|
end else if trim(frm_op_seae.t_op_seae.fieldbyname('Ç©µ¥·½Ê½').asstring)='Õý¸±±¾' then begin
|
|
|
if aCarrier.CarrierName='OOCL' then
|
|
|
Str2:='705'
|
|
|
else Str2:='706';
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('ÔË·Ñ').AsBoolean then
|
|
|
str.Add('DOC+'+Str2+'+:27++'+Str1+#39)
|
|
|
else str.Add('DOC+'+Str2+'+++'+Str1+#39);
|
|
|
|
|
|
count:=count+1;
|
|
|
|
|
|
if Trim(CopyBillCount)<>'' then
|
|
|
begin
|
|
|
Str2:='707';
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('ÔË·Ñ').AsBoolean then
|
|
|
str.Add('DOC+'+Str2+'+:27++'+CopyBillCount+#39)
|
|
|
else str.Add('DOC+'+Str2+'+++'+CopyBillCount+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
///
|
|
|
ctnlist:=TStringList.Create;
|
|
|
ctnlist.Clear;
|
|
|
with t_op_edictn do
|
|
|
begin
|
|
|
Close;SQL.Clear;
|
|
|
SQL.Add('select ctn_id from t_op_ctn');
|
|
|
SQL.Add('where 񅧏=:bsno');
|
|
|
Parameters.ParamByName('bsno').Value:=frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring;
|
|
|
open;First;
|
|
|
while not eof do
|
|
|
begin
|
|
|
ctnlist.Add(FieldByName('ctn_id').AsString);
|
|
|
Next;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
t_op_edictn.Close;t_op_edictn.SQL.Clear;
|
|
|
t_op_edictn.SQL.Add('select * from t_op_ctn_detail');
|
|
|
t_op_edictn.SQL.Add('where ctn_id in ('+ctnlist.CommaText+')');
|
|
|
t_op_edictn.Open;
|
|
|
if t_op_edictn.RecordCount<=0 then
|
|
|
begin
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
str.Add('GID+1+'+frm_op_seae.t_op_seae.fieldbyname('¼þÊý').asstring+':'+
|
|
|
GetPkgCode(trim(frm_op_seae.t_op_seae.fieldbyname('°ü×°').asstring))+'::6:'+frm_op_seae.t_op_seae.fieldbyname('°ü×°').asstring+#39); //£¿
|
|
|
count:=count+1;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str.Add('GID+1+'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('¼þÊý').asstring+':'+
|
|
|
GetPkgCode(trim(frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('°ü×°').asstring))+'::6:'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('°ü×°').asstring+#39); //£¿
|
|
|
count:=count+1;
|
|
|
|
|
|
end;
|
|
|
|
|
|
if Trim(frm_op_seae.t_op_seae.fieldbyname('ÔËÊ䷽ʽ').asstring)<>'' then begin // ÉÌÆ·±àÂë
|
|
|
str.Add('PIA+5+'+frm_op_seae.t_op_seae.fieldbyname('ÔËÊ䷽ʽ').asstring+':HS'+#39); //£¿
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
|
|
|
if RadioGroup1.ItemIndex=0 then
|
|
|
begin
|
|
|
|
|
|
sl:=TStringList.Create;
|
|
|
try
|
|
|
if not bsck.checked then
|
|
|
sl.text:=frm_op_seae.t_op_seae.fieldbyname('»õÎïÃèÊö').asstring
|
|
|
else sl.text:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('»õÎïÃèÊö').asstring;
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
str.Add('FTX+AAA+++'+Changestr(sl.Strings[i])+''+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
sl:=TStringList.Create;
|
|
|
try
|
|
|
if not bsck.checked then
|
|
|
sl.text:=frm_op_seae.t_op_seae.fieldbyname('»õÎïÃèÊö').asstring
|
|
|
else sl.text:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('»õÎïÃèÊö').asstring;
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
str.Add('FTX+AAA+++'+Changestr(sl.Strings[i])+''+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
|
|
|
if Trim(str_shr)<>'' then
|
|
|
begin
|
|
|
str.Add('FTX+AAA+++'+
|
|
|
Str_shr+#39);
|
|
|
count:=count+2;
|
|
|
end;
|
|
|
if Trim(str_con)<>'' then
|
|
|
begin
|
|
|
str.Add('FTX+AAA+++'+
|
|
|
Str_con+#39);
|
|
|
count:=count+2;
|
|
|
end;
|
|
|
if Trim(str_not)<>'' then
|
|
|
begin
|
|
|
str.Add('FTX+AAA+++'+
|
|
|
Str_not+#39);
|
|
|
count:=count+2;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
if not bsck.checked then
|
|
|
begin
|
|
|
str.Add('MEA+WT+G+KGM:'+frm_op_seae.t_op_seae.fieldbyname('ÖØÁ¿').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+VOL+AAW+CBM:'+frm_op_seae.t_op_seae.fieldbyname('³ßÂë').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
str.Add('MEA+WT+G+KGM:'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ÖØÁ¿').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+VOL+AAW+CBM:'+frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('³ßÂë').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if Trim(t_op_edi.fieldbyname('»õÎïNCM±àºÅ').asstring)<>'' then
|
|
|
begin
|
|
|
str.Add('RFF+ABT:'+t_op_edi.fieldbyname('»õÎïNCM±àºÅ').asstring+#39); //£¿
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
sl:=TStringList.Create;
|
|
|
try
|
|
|
if not bsck.checked then
|
|
|
sl.text:=frm_op_seae.t_op_seae.fieldbyname('ßéÍ·').asString
|
|
|
else sl.text:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ßéÍ·').asString;
|
|
|
GetLengthTString(sl,35);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
str.Add('PCI++'+Changestr(sl.Strings[i])+''+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
t_op_ctn.Close;t_op_ctn.SQL.Clear;
|
|
|
t_op_ctn.SQL.Add('SELECT t_op_ctn.±àºÅ,t_op_ctn.ÊýÁ¿, t_code_ctn.EDI´úÂë,t_op_ctn.³ß´ç,t_op_ctn.°ü×°');
|
|
|
t_op_ctn.SQL.Add(',t_op_ctn.ÏäÐÍ,t_op_ctn.ÏäºÅ,t_op_ctn.ÖØÁ¿,t_op_ctn.·âºÅ,t_op_ctn.³ßÂë,t_op_ctn.¼þÊý');
|
|
|
t_op_ctn.SQL.Add('FROM t_op_ctn INNER JOIN');
|
|
|
t_op_ctn.SQL.Add('t_code_ctn ON t_op_ctn.´úÂë = t_code_ctn.´úÂë');
|
|
|
t_op_ctn.SQL.Add('WHERE t_op_ctn.񅧏=:񅧏');
|
|
|
t_op_ctn.close;
|
|
|
t_op_ctn.Parameters.ParamByName('񅧏').Value:=frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
t_op_ctn.Close;t_op_ctn.SQL.Clear;
|
|
|
t_op_ctn.SQL.Add('SELECT t_op_ctn_fendan.±àºÅ,t_op_ctn_fendan.ÊýÁ¿, t_code_ctn.EDI´úÂë,t_op_ctn_fendan.³ß´ç,t_op_ctn_fendan.°ü×°');
|
|
|
t_op_ctn.SQL.Add(',t_op_ctn_fendan.ÏäÐÍ,t_op_ctn_fendan.ÏäºÅ,t_op_ctn_fendan.ÖØÁ¿,t_op_ctn_fendan.·âºÅ,t_op_ctn_fendan.³ßÂë,t_op_ctn_fendan.¼þÊý');
|
|
|
t_op_ctn.SQL.Add('FROM t_op_ctn_fendan INNER JOIN');
|
|
|
t_op_ctn.SQL.Add('t_code_ctn ON t_op_ctn_fendan.´úÂë = t_code_ctn.´úÂë');
|
|
|
t_op_ctn.SQL.Add('WHERE t_op_ctn_fendan.as_id=:as_id');
|
|
|
t_op_ctn.close;
|
|
|
t_op_ctn.Parameters.ParamByName('as_id').Value:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('as_id').asinteger;
|
|
|
end;
|
|
|
t_op_ctn.open;
|
|
|
t_op_ctn.first;
|
|
|
while not t_op_ctn.eof do
|
|
|
begin
|
|
|
str.Add('SGP+'+t_op_ctn.fieldbyname('ÏäºÅ').asstring+'+'+t_op_ctn.fieldbyname('¼þÊý').asstring+#39); //ÊýÁ¿
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+WT+G+KGM:'+t_op_ctn.fieldbyname('ÖØÁ¿').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+VOL+AAW+CBM:'+t_op_ctn.fieldbyname('³ßÂë').asstring+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
t_op_ctn.next;
|
|
|
end;
|
|
|
end
|
|
|
else //·ÖÏäÃ÷ϸ
|
|
|
begin
|
|
|
t_op_edictn.Close;t_op_edictn.SQL.Clear;
|
|
|
t_op_edictn.SQL.Add('select hts,»õÎïÃèÊö,°ü×°,sum(¼þÊý)¼þÊý,sum(ÖØÁ¿) ÖØÁ¿,sum(³ßÂë) ³ßÂë');
|
|
|
t_op_edictn.SQL.Add('from t_op_ctn_detail');
|
|
|
t_op_edictn.SQL.Add('where ctn_id in ('+ctnlist.CommaText+')');
|
|
|
t_op_edictn.SQL.Add('Group by hts,»õÎïÃèÊö,°ü×°');
|
|
|
t_op_edictn.SQL.Add('Order by min(id)');
|
|
|
t_op_edictn.Open;
|
|
|
Lineno:=1;
|
|
|
while not t_op_edictn.eof do
|
|
|
begin
|
|
|
str.Add('GID+'+Inttostr(Lineno)+'+'+t_op_edictn.fieldbyname('¼þÊý').asstring+':'+
|
|
|
GetPkgCode(trim(t_op_edictn.fieldbyname('°ü×°').asstring))+'::6:'+t_op_edictn.fieldbyname('°ü×°').asstring+#39); //£¿
|
|
|
count:=count+1;
|
|
|
|
|
|
str.Add('PIA+5+'+t_op_edictn.fieldbyname('hts').asstring+':HS'+#39); //£¿
|
|
|
count:=count+1;
|
|
|
|
|
|
sl:=TStringList.Create;
|
|
|
try
|
|
|
sl.text:=t_op_edictn.fieldbyname('»õÎïÃèÊö').asstring;
|
|
|
for i:=0 to sl.Count-1 do
|
|
|
begin
|
|
|
str.Add('FTX+AAA+++'+Changestr(sl.Strings[i])+''+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
|
|
|
str.Add('MEA+WT+G+KGM:'+t_op_edictn.fieldbyname('ÖØÁ¿').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+VOL+AAW+CBM:'+t_op_edictn.fieldbyname('³ßÂë').asstring+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
if Trim(t_op_edi.fieldbyname('»õÎïNCM±àºÅ').asstring)<>'' then
|
|
|
begin
|
|
|
str.Add('RFF+ABT:'+t_op_edi.fieldbyname('»õÎïNCM±àºÅ').asstring+#39); //£¿
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
|
|
|
if Lineno=1 then
|
|
|
begin
|
|
|
sl:=TStringList.Create;
|
|
|
try
|
|
|
if not bsck.Checked then
|
|
|
sl.text:=frm_op_seae.t_op_seae.fieldbyname('ßéÍ·').asString
|
|
|
else sl.text:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('ßéÍ·').asString;
|
|
|
|
|
|
GetLengthTString(sl,35);
|
|
|
for i:=0 to sl.Count-1 do begin
|
|
|
str.Add('PCI++'+Changestr(sl.Strings[i])+''+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(sl);
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
|
|
|
if (aCarrier.CarrierName='OOCL') THEN begin
|
|
|
aAdoQuery:=CreateAdoQuery;
|
|
|
try
|
|
|
aAdoQuery.Close;aAdoQuery.SQL.Clear;
|
|
|
aAdoQuery.SQL.Add('select t_op_ctn.ÏäºÅ,t_op_ctn_detail.¼þÊý,t_op_ctn_detail.ÖØÁ¿,t_op_ctn_detail.³ßÂë');
|
|
|
aAdoQuery.SQL.Add('from t_op_ctn_detail');
|
|
|
aAdoQuery.SQL.Add('left Join t_op_ctn on t_op_ctn.ctn_id=t_op_ctn_detail.ctn_id');
|
|
|
aAdoQuery.SQL.Add('where t_op_ctn.±àºÅ=:±àºÅ and t_op_ctn_detail.»õÎïÃèÊö=:goods and t_op_ctn_detail.°ü×°=:pkg and t_op_ctn_detail.hts=:hts');
|
|
|
aAdoQuery.Parameters.ParamByName('goods').Value:=t_op_edictn.fieldbyname('»õÎïÃèÊö').asstring;
|
|
|
aAdoQuery.Parameters.ParamByName('pkg').Value:=t_op_edictn.fieldbyname('°ü×°').asstring;
|
|
|
aAdoQuery.Parameters.ParamByName('hts').Value:=t_op_edictn.fieldbyname('hts').asstring;
|
|
|
aAdoQuery.Parameters.ParamByName('񅧏').Value:=frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring;
|
|
|
aAdoQuery.Open;
|
|
|
while not aAdoQuery.eof do
|
|
|
begin
|
|
|
str.Add('SGP+'+aAdoQuery.fieldbyname('ÏäºÅ').asstring+'+'+aAdoQuery.fieldbyname('¼þÊý').asstring+#39); //ÊýÁ¿
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+WT+G+KGM:'+aAdoQuery.fieldbyname('ÖØÁ¿').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+VOL+AAW+CBM:'+aAdoQuery.fieldbyname('³ßÂë').asstring+#39);
|
|
|
count:=count+1;
|
|
|
aAdoQuery.Next;
|
|
|
end;
|
|
|
finally
|
|
|
aAdoQuery.Free;
|
|
|
end;
|
|
|
|
|
|
end else begin
|
|
|
aAdoQuery:=CreateAdoQuery;
|
|
|
try
|
|
|
aAdoQuery.Close;aAdoQuery.SQL.Clear;
|
|
|
aAdoQuery.SQL.Add('select t_op_ctn.ÏäºÅ,sum(t_op_ctn_detail.¼þÊý)¼þÊý,sum(t_op_ctn_detail.ÖØÁ¿) ÖØÁ¿,sum(t_op_ctn_detail.³ßÂë) ³ßÂë');
|
|
|
aAdoQuery.SQL.Add('from t_op_ctn_detail');
|
|
|
aAdoQuery.SQL.Add('left Join t_op_ctn on t_op_ctn.ctn_id=t_op_ctn_detail.ctn_id');
|
|
|
aAdoQuery.SQL.Add('where t_op_ctn.±àºÅ=:±àºÅ and t_op_ctn_detail.»õÎïÃèÊö=:goods and t_op_ctn_detail.°ü×°=:pkg and t_op_ctn_detail.hts=:hts');
|
|
|
aAdoQuery.SQL.Add('Group by t_op_ctn.ÏäºÅ');
|
|
|
aAdoQuery.Parameters.ParamByName('goods').Value:=t_op_edictn.fieldbyname('»õÎïÃèÊö').asstring;
|
|
|
aAdoQuery.Parameters.ParamByName('pkg').Value:=t_op_edictn.fieldbyname('°ü×°').asstring;
|
|
|
aAdoQuery.Parameters.ParamByName('hts').Value:=t_op_edictn.fieldbyname('hts').asstring;
|
|
|
aAdoQuery.Parameters.ParamByName('񅧏').Value:=frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring;
|
|
|
aAdoQuery.Open;
|
|
|
while not aAdoQuery.eof do
|
|
|
begin
|
|
|
str.Add('SGP+'+aAdoQuery.fieldbyname('ÏäºÅ').asstring+'+'+aAdoQuery.fieldbyname('¼þÊý').asstring+#39); //ÊýÁ¿
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+WT+G+KGM:'+aAdoQuery.fieldbyname('ÖØÁ¿').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+VOL+AAW+CBM:'+aAdoQuery.fieldbyname('³ßÂë').asstring+#39);
|
|
|
count:=count+1;
|
|
|
aAdoQuery.Next;
|
|
|
end;
|
|
|
finally
|
|
|
aAdoQuery.Free;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
Lineno:=Lineno+1;
|
|
|
t_op_edictn.Next;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
////
|
|
|
|
|
|
|
|
|
|
|
|
if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='D' then
|
|
|
begin
|
|
|
str.Add('DGS+IMD+'+frm_op_seae.t_op_seae.fieldbyname('ΣÏÕÆ··ÖÀà').asstring
|
|
|
+'+'+frm_op_seae.t_op_seae.fieldbyname('ΣÏÕÆ·±àºÅ').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('CTA+HG+:'+edit7.text+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('COM+'+Edit5.text+':TE'+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
if not bsck.Checked then
|
|
|
begin
|
|
|
t_op_ctn.Close;t_op_ctn.SQL.Clear;
|
|
|
t_op_ctn.SQL.Add('SELECT t_op_ctn.±àºÅ,t_op_ctn.ÊýÁ¿, t_code_ctn.EDI´úÂë,t_op_ctn.³ß´ç,t_op_ctn.°ü×°');
|
|
|
t_op_ctn.SQL.Add(',t_op_ctn.ÏäÐÍ,t_op_ctn.ÏäºÅ,t_op_ctn.ÖØÁ¿,t_op_ctn.·âºÅ,t_op_ctn.³ßÂë,t_op_ctn.¼þÊý');
|
|
|
t_op_ctn.SQL.Add('FROM t_op_ctn INNER JOIN');
|
|
|
t_op_ctn.SQL.Add('t_code_ctn ON t_op_ctn.´úÂë = t_code_ctn.´úÂë');
|
|
|
t_op_ctn.SQL.Add('WHERE t_op_ctn.񅧏=:񅧏');
|
|
|
t_op_ctn.close;
|
|
|
t_op_ctn.Parameters.ParamByName('񅧏').Value:=frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
t_op_ctn.Close;t_op_ctn.SQL.Clear;
|
|
|
t_op_ctn.SQL.Add('SELECT t_op_ctn_fendan.±àºÅ,t_op_ctn_fendan.ÊýÁ¿, t_code_ctn.EDI´úÂë,t_op_ctn_fendan.³ß´ç,t_op_ctn_fendan.°ü×°');
|
|
|
t_op_ctn.SQL.Add(',t_op_ctn_fendan.ÏäÐÍ,t_op_ctn_fendan.ÏäºÅ,t_op_ctn_fendan.ÖØÁ¿,t_op_ctn_fendan.·âºÅ,t_op_ctn_fendan.³ßÂë,t_op_ctn_fendan.¼þÊý');
|
|
|
t_op_ctn.SQL.Add('FROM t_op_ctn_fendan INNER JOIN');
|
|
|
t_op_ctn.SQL.Add('t_code_ctn ON t_op_ctn_fendan.´úÂë = t_code_ctn.´úÂë');
|
|
|
t_op_ctn.SQL.Add('WHERE t_op_ctn_fendan.as_id=:as_id');
|
|
|
t_op_ctn.close;
|
|
|
t_op_ctn.Parameters.ParamByName('as_id').Value:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('as_id').asinteger;
|
|
|
end;
|
|
|
t_op_ctn.open;
|
|
|
t_op_ctn.first;
|
|
|
while not t_op_ctn.eof do
|
|
|
begin
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('ÊÇ·ñ×ÔÓÐÏä').asboolean then
|
|
|
str.Add('EQD+CN+'+t_op_ctn.fieldbyname('ÏäºÅ').asstring+'+'+GetCtnCode(t_op_ctn.fieldbyname('ÏäÐÍ').asstring,t_op_ctn.fieldbyname('³ß´ç').asstring)+'+1'+#39) //ÊýÁ¿
|
|
|
else
|
|
|
str.Add('EQD+CN+'+t_op_ctn.fieldbyname('ÏäºÅ').asstring+'+'+GetCtnCode(t_op_ctn.fieldbyname('ÏäÐÍ').asstring,t_op_ctn.fieldbyname('³ß´ç').asstring)+'+2'+#39); //ÊýÁ¿
|
|
|
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+WT+G+KGM:'+t_op_ctn.fieldbyname('ÖØÁ¿').asstring+#39);
|
|
|
count:=count+1;
|
|
|
str.Add('MEA+VOL+AAW+CBM:'+t_op_ctn.fieldbyname('³ßÂë').asstring+#39);
|
|
|
count:=count+1;
|
|
|
|
|
|
if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='R' then
|
|
|
begin
|
|
|
if Trim(frm_op_seae.t_op_seae.fieldbyname('Àä²Øͨ·çÁ¿').asstring)<>'' then
|
|
|
begin
|
|
|
str.Add('MEA+AAE+AAS+CBM:'+frm_op_seae.t_op_seae.fieldbyname('Àä²Øͨ·çÁ¿').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
end;
|
|
|
{
|
|
|
if frm_op_seae.t_op_seae.fieldbyname('×ܼÛ').asfloat<>0 then begin
|
|
|
str.Add('MEA+AAE+T+KGM:'+frm_op_seae.t_op_seae.fieldbyname('×ܼÛ').asstring+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
}
|
|
|
str.Add('SEL+'+t_op_ctn.fieldbyname('·âºÅ').asstring+'+CA'+#39);
|
|
|
count:=count+1;
|
|
|
if frm_op_seae.t_op_seae.FieldByName('»õÎï±êʶ').asstring='R' then
|
|
|
begin
|
|
|
str.Add('TMP+2+'+frm_op_seae.t_op_seae.fieldbyname('ÉèÖÃζÈ').asstring+':CEL'+#39);
|
|
|
count:=count+1;
|
|
|
end;
|
|
|
|
|
|
t_op_ctn.next;
|
|
|
end;
|
|
|
|
|
|
|
|
|
count:=count+1;
|
|
|
|
|
|
result:=count;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure Tfrm_op_seae_edi_cargosmart.bsSkinButton5Click(Sender: TObject);
|
|
|
var
|
|
|
IdFTP1:TIdFTP;
|
|
|
str:widestring;
|
|
|
str_file:widestring;
|
|
|
ftpar,ftpname,ftppass,ftppath,ftppathSI,ScriptPath:String;
|
|
|
StrL:Tstringlist;
|
|
|
i,Count,get_Count,bill_count,i_soi,z:integer;
|
|
|
|
|
|
SIO,ORG,MBL,CARR,MBLNO,ETD,CORP,EMP,EMPDAE:string;
|
|
|
edi:WideString;
|
|
|
|
|
|
begin
|
|
|
i_soi:=0;
|
|
|
if bsck.Checked then
|
|
|
begin
|
|
|
if frm_op_seae_assistant=nil then
|
|
|
begin
|
|
|
ShowMessage('ÇëÔÚ(ίÍкÍÌáµ¥)½çÃæ·¢ËÍ·Öµ¥Edi');
|
|
|
exit;
|
|
|
end
|
|
|
end;
|
|
|
|
|
|
ScriptPath:=ExtractFilePath(ParamStr(0))+'EDIFILE\';
|
|
|
if not DirectoryExists(ScriptPath) then
|
|
|
CreateDir(ScriptPath);
|
|
|
|
|
|
ftpar:=Trim(Edit8.Text);
|
|
|
if ftpar='' then begin
|
|
|
MessageDlg('ÇëÉèÖÃFTPµØÖ·£¡',mtWarning,[mbOk],0);
|
|
|
exit;
|
|
|
end;
|
|
|
ftpname:=Trim(Edit9.Text);;
|
|
|
if ftpar='' then begin
|
|
|
MessageDlg('ÇëÉèÖÃFTPÓû§Ãû£¡',mtWarning,[mbOk],0);
|
|
|
exit;
|
|
|
end;
|
|
|
ftppass:=Trim(Edit10.Text);;
|
|
|
if ftpar='' then begin
|
|
|
MessageDlg('ÇëÉèÖÃFTPÃÜÂ룡',mtWarning,[mbOk],0);
|
|
|
exit;
|
|
|
end;
|
|
|
ftppath:=Trim(Edit11.Text);
|
|
|
|
|
|
ftppathSI:=Trim(Edit13.Text);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StrL:=Tstringlist.Create;
|
|
|
StrL.Clear;
|
|
|
count:=0;
|
|
|
|
|
|
if (CheckIFT.Checked) then begin
|
|
|
|
|
|
|
|
|
if frm_op_seae.dxdbgrid1.SelectedCount>1 then
|
|
|
begin
|
|
|
for i:=0 to frm_op_seae.dxdbgrid1.SelectedCount-1 do
|
|
|
begin
|
|
|
frm_op_seae.t_op_seae.GotoBookmark(pointer(frm_op_seae.dxdbgrid1.selectedrows[i]));
|
|
|
str:=ScriptPath
|
|
|
+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring
|
|
|
+FormatDateTime('yyyy',now)
|
|
|
+FormatDateTime('mm',now)
|
|
|
+FormatDateTime('dd',now)
|
|
|
+FormatDateTime('hh',now)
|
|
|
+FormatDateTime('nn',now)+'.edi';
|
|
|
|
|
|
str_file:=frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring
|
|
|
+FormatDateTime('yyyy',now)
|
|
|
+FormatDateTime('mm',now)
|
|
|
+FormatDateTime('dd',now)
|
|
|
+FormatDateTime('hh',now)
|
|
|
+FormatDateTime('nn',now)+'.edi';
|
|
|
count:=0;
|
|
|
bill_count:=0;
|
|
|
|
|
|
if not isEditrue then
|
|
|
exit;
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtSI_txt(StrL)
|
|
|
else
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtBooking_txt(StrL);
|
|
|
if get_Count=-1 then
|
|
|
exit
|
|
|
else
|
|
|
count:=count+get_Count;
|
|
|
|
|
|
StrL.Add('UNT+'+INTTOSTR(StrL.count)+'+'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+#39);
|
|
|
StrL.Add('UNZ+1+'+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring+#39);
|
|
|
|
|
|
for z:=0 to StrL.Count-1 do begin
|
|
|
if IsZhongwen(StrL[z]) then begin
|
|
|
MessageDlg('´ËƱҵÎñÓÐÖÐÎÄ×Ö·û»òTAB¼ü»ò<>×Ö·û,²»ÄÜÉÏ´«£¡'+#13#10+Str[z],mtWarning,[mbYes],0);
|
|
|
exit;
|
|
|
end;
|
|
|
end;
|
|
|
StrL.SaveToFile(str);
|
|
|
edi:=StrL.Text;
|
|
|
|
|
|
try
|
|
|
IdFTP1:=TIdFTP.Create(application);
|
|
|
with idftp1 do
|
|
|
begin
|
|
|
Username:=ftpname;
|
|
|
Password:=ftppass;
|
|
|
Host:=ftpar;
|
|
|
Connect;
|
|
|
end;
|
|
|
|
|
|
case RadioGroup1.ItemIndex of
|
|
|
0:begin
|
|
|
idftp1.ChangeDir(ftppath);
|
|
|
end;
|
|
|
1:begin
|
|
|
if (Trim(ftppathSI)<>'') then
|
|
|
idftp1.ChangeDir(ftppathSI)
|
|
|
else idftp1.ChangeDir(ftppath);
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
idftp1.TransferType:=ftBinary;
|
|
|
idftp1.Put(str,str_file);
|
|
|
idftp1.Disconnect;
|
|
|
// showmessage('ÎļþÉÏ´«³É¹¦£¡');
|
|
|
|
|
|
if RadioGroup1.ItemIndex=0 then
|
|
|
SIO:='SO'
|
|
|
else SIO:='SI';
|
|
|
if RadioGroup3.ItemIndex=0 then
|
|
|
ORG:='ORG'
|
|
|
else ORG:='AMEND';
|
|
|
|
|
|
IF bsck.Checked then
|
|
|
begin
|
|
|
MBL:='·Öµ¥';
|
|
|
MBLNO:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
MBL:='Ö÷µ¥';
|
|
|
MBLNO:=frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring;
|
|
|
end;
|
|
|
CARR:=frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring;
|
|
|
CORP:=frm_op_seae.t_op_seae.fieldbyname('ίÍе¥Î»').asstring;
|
|
|
EMP:=employee;
|
|
|
EMPDAE:=FormatDateTime('YYYY-MM-DD hh:mm:ss',now);
|
|
|
ETD:=FormatDateTime('YYYY-MM-DD',frm_op_seae.t_op_seae.fieldbyname('¿ª´¬ÈÕÆÚ').value);
|
|
|
Insertt_op_Edi_Log(SIO,ORG,MBL,CARR,MBLNO,ETD,CORP,EMP,EMPDAE,str,edi);
|
|
|
|
|
|
|
|
|
except
|
|
|
on e : exception do
|
|
|
begin
|
|
|
MessageDlg('ÎļþÉÏ´«´íÎó£¡'+e.message,mtError,[mbOk],0);
|
|
|
deletefile(str);
|
|
|
i_soi:=1;
|
|
|
end;
|
|
|
end;
|
|
|
idftp1.Free;
|
|
|
|
|
|
if i_soi=0 then UpdateSOIStatus(RadioGroup1.ItemIndex,frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring);
|
|
|
end;
|
|
|
end else begin
|
|
|
|
|
|
|
|
|
for i:=0 to frm_op_seae.dxdbgrid1.SelectedCount-1 do
|
|
|
begin
|
|
|
frm_op_seae.t_op_seae.GotoBookmark(pointer(frm_op_seae.dxdbgrid1.selectedrows[i]));
|
|
|
|
|
|
|
|
|
str:=ScriptPath
|
|
|
+frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring
|
|
|
+FormatDateTime('yyyy',now)
|
|
|
+FormatDateTime('mm',now)
|
|
|
+FormatDateTime('dd',now)
|
|
|
+FormatDateTime('hh',now)
|
|
|
+FormatDateTime('nn',now)+'.XML';
|
|
|
|
|
|
str_file:=frm_op_seae.t_op_seae.fieldbyname('ÒµÎñ±àºÅ').asstring
|
|
|
+FormatDateTime('yyyy',now)
|
|
|
+FormatDateTime('mm',now)
|
|
|
+FormatDateTime('dd',now)
|
|
|
+FormatDateTime('hh',now)
|
|
|
+FormatDateTime('nn',now)+'.XML';
|
|
|
|
|
|
StrL.Add('<?xml version="1.0" encoding="utf-8"?>');
|
|
|
StrL.Add('<Booking xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="br.xsd">');
|
|
|
bill_count:=0;
|
|
|
|
|
|
if not isEditrue then
|
|
|
exit;
|
|
|
if RadioGroup1.ItemIndex=1 then
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtSI(StrL,str_file)
|
|
|
else
|
|
|
get_Count:=frm_op_seae_edi_cargosmart.get_txtBooking(StrL,str_file);
|
|
|
if get_Count=-1 then
|
|
|
exit
|
|
|
else
|
|
|
count:=count+get_Count;
|
|
|
|
|
|
StrL.Add('</Booking>');
|
|
|
|
|
|
|
|
|
for z:=0 to StrL.Count-1 do begin
|
|
|
if IsZhongwen(StrL[z]) then begin
|
|
|
MessageDlg('´ËƱҵÎñÓÐÖÐÎÄ×Ö·û»òTAB¼ü»ò<>×Ö·û,²»ÄÜÉÏ´«£¡'+#13#10+Str[z],mtWarning,[mbYes],0);
|
|
|
exit;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
StrL.SaveToFile(str);
|
|
|
edi:=StrL.Text;
|
|
|
|
|
|
try
|
|
|
IdFTP1:=TIdFTP.Create(application);
|
|
|
with idftp1 do
|
|
|
begin
|
|
|
Username:=ftpname;
|
|
|
Password:=ftppass;
|
|
|
Host:=ftpar;
|
|
|
Connect;
|
|
|
end;
|
|
|
|
|
|
case RadioGroup1.ItemIndex of
|
|
|
0:begin
|
|
|
idftp1.ChangeDir(ftppath);
|
|
|
end;
|
|
|
1:begin
|
|
|
if (Trim(ftppathSI)<>'') then
|
|
|
idftp1.ChangeDir(ftppathSI)
|
|
|
else idftp1.ChangeDir(ftppath);
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
idftp1.TransferType:=ftBinary;
|
|
|
idftp1.Put(str,str_file);
|
|
|
idftp1.Disconnect;
|
|
|
|
|
|
|
|
|
if RadioGroup1.ItemIndex=0 then
|
|
|
SIO:='SO'
|
|
|
else SIO:='SI';
|
|
|
if RadioGroup3.ItemIndex=0 then
|
|
|
ORG:='ORG'
|
|
|
else ORG:='AMEND';
|
|
|
|
|
|
IF bsck.Checked then
|
|
|
begin
|
|
|
MBL:='·Öµ¥';
|
|
|
MBLNO:=frm_op_seae_assistant.t_op_seae_assistant.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring;
|
|
|
end
|
|
|
else
|
|
|
begin
|
|
|
MBL:='Ö÷µ¥';
|
|
|
MBLNO:=frm_op_seae.t_op_seae.fieldbyname('Ö÷Ìáµ¥ºÅ').asstring;
|
|
|
end;
|
|
|
CARR:=frm_op_seae.t_op_seae.fieldbyname('´¬¹«Ë¾').asstring;
|
|
|
CORP:=frm_op_seae.t_op_seae.fieldbyname('ίÍе¥Î»').asstring;
|
|
|
EMP:=employee;
|
|
|
EMPDAE:=FormatDateTime('YYYY-MM-DD hh:mm:ss',now);
|
|
|
ETD:=FormatDateTime('YYYY-MM-DD',frm_op_seae.t_op_seae.fieldbyname('¿ª´¬ÈÕÆÚ').value);
|
|
|
Insertt_op_Edi_Log(SIO,ORG,MBL,CARR,MBLNO,ETD,CORP,EMP,EMPDAE,str,edi);
|
|
|
|
|
|
|
|
|
except
|
|
|
on e : exception do
|
|
|
begin
|
|
|
MessageDlg('ÎļþÉÏ´«´íÎó£¡'+e.message,mtError,[mbOk],0);
|
|
|
deletefile(str);
|
|
|
i_soi:=1;
|
|
|
end;
|
|
|
end;
|
|
|
idftp1.Free;
|
|
|
|
|
|
if i_soi=0 then UpdateSOIStatus(RadioGroup1.ItemIndex,frm_op_seae.t_op_seae.fieldbyname('񅧏').asstring);
|
|
|
|
|
|
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
showmessage('ÎļþÉÏ´«³É¹¦£¡');
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
end.
|