unit u_op_seai_apply_add; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, BusinessSkinForm, StdCtrls, wwdbdatetimepicker, bsSkinCtrls, Menus,ComObj; type Tfrm_op_seai_apply_add = class(TForm) Label1: TLabel; bsSkinButton1: TbsSkinButton; bsSkinButton2: TbsSkinButton; wwDBDateTimePicker1: TwwDBDateTimePicker; bsSkinButton3: TbsSkinButton; bsBusinessSkinForm1: TbsBusinessSkinForm; data1: TDataSource; bsSkinButton4: TbsSkinButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; OpenDialog1: TOpenDialog; procedure bsSkinButton2Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure bsSkinButton1Click(Sender: TObject); procedure bsSkinButton3Click(Sender: TObject); procedure bsSkinButton4Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure N3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var frm_op_seai_apply_add: Tfrm_op_seai_apply_add; seai_apply_add_total:boolean=false; implementation uses u_op_seai_apply, my_sys_function, u_main, u_data_share, u_op_apply; {$R *.dfm} procedure Tfrm_op_seai_apply_add.bsSkinButton2Click(Sender: TObject); begin close; end; procedure Tfrm_op_seai_apply_add.FormShow(Sender: TObject); begin wwDBDateTimePicker1.MinDate:=Logininfo.endday+1; wwDBDateTimePicker1.Date:=date; end; procedure Tfrm_op_seai_apply_add.bsSkinButton1Click(Sender: TObject); begin if not seai_apply_add_total then begin with frm_op_seai_apply do begin t_op_seai.insert; if bsSkinButton11.Caption='编辑修改' then begin Notebook1.PageIndex:=1; bsSkinButton11.Caption:='返回列表'; end; t_op_seai['会计期间']:=date; t_op_seai['周次']:=WeekofYear(date); t_op_seai['费用状态']:='录入状态'; t_op_seai['业务状态']:='接受委托'; t_op_seai['财务']:=0; t_op_seai['财务凭证']:=''; t_op_seai['是否付汇']:=0; t_op_seai['录入人']:=employee; t_op_seai['录入日期']:=date; t_op_seai['分部名称']:=subComp; t_op_seai['操作员']:=employee; // t_op_seai['报关操作']:=employee; // t_op_seai['报检操作']:=employee; // t_op_seai['揽货人']:=employee; t_op_seai['客服员']:=employee; t_op_seai['卸货港']:=get_parameters_value(17,'QINGDAO,CHINA'); t_op_seai['业务来源']:='自揽货'; // t_op_seai['销售部门']:=department; t_op_seai['操作部门']:=department; t_op_seai['装运方式']:='报关'; t_op_seai['业务类型']:='普通货'; end; end else begin with frm_op_apply do begin t_op_seai.insert; t_op_seai['会计期间']:=date; t_op_seai['周次']:=WeekofYear(date); t_op_seai['费用状态']:='录入状态'; t_op_seai['业务状态']:='接受委托'; t_op_seai['财务']:=0; t_op_seai['是否付汇']:=0; t_op_seai['财务凭证']:=''; t_op_seai['录入人']:=employee; t_op_seai['录入日期']:=date; t_op_seai['分部名称']:=subComp; t_op_seai['操作员']:=employee; // t_op_seai['报关操作']:=employee; // t_op_seai['报检操作']:=employee; // t_op_seai['揽货人']:=employee; t_op_seai['客服员']:=employee; t_op_seai['卸货港']:=get_parameters_value(17,'QINGDAO,CHINA'); t_op_seai['业务来源']:='自揽货'; // t_op_seai['销售部门']:=department; t_op_seai['操作部门']:=department; t_op_seai['装运方式']:='报关'; t_op_seai['业务类型']:='普通货'; end; end; close; end; procedure Tfrm_op_seai_apply_add.bsSkinButton3Click(Sender: TObject); var afield : variant; i: Integer; begin if data1.DataSet.IsEmpty then begin showmessage('没有复制母体,不能复制新建!'); exit; end; afield := vararraycreate([0,data1.DataSet.fieldcount-1],varvariant); for i := 0 to (data1.DataSet.fieldcount-1) do begin afield[i] :=data1.DataSet.fields[i].value ; end; data1.DataSet.append; for i := 0 to (data1.DataSet.fieldcount-1) do begin data1.DataSet.fields[i].value := afield[i] ; end; data1.DataSet['业务编号']:=''; data1.DataSet['编号']:=''; if not (Trim(frm_data_share.t_sys_noset.fieldbyname('出号规则').Asstring)='手动编辑') then data1.DataSet['委托编号']:=''; data1.DataSet['箱型1']:=0; data1.DataSet['箱型2']:=0; data1.DataSet['箱型3']:=0; data1.DataSet['箱型4']:=0; data1.DataSet['箱型5']:=0; data1.DataSet['箱型6']:=0; data1.DataSet['箱型7']:=0; data1.DataSet['箱型8']:=0; data1.DataSet['箱型9']:=0; data1.DataSet['箱型10']:=0; data1.DataSet['其他箱型']:=0; data1.DataSet['箱TEU']:=0; data1.DataSet['集装箱']:=''; //data1.DataSet['箱数大写']:=''; data1.DataSet['计费标准']:=''; data1.DataSet['业务状态']:='接受委托'; data1.DataSet['费用状态']:='录入状态'; data1.DataSet['业务类型']:='普通货'; data1.DataSet['录入人']:=employee; data1.DataSet['录入日期']:=date; data1.DataSet['分部名称']:=subComp; data1.DataSet['操作员']:=employee; // data1.DataSet['报关操作']:=employee; // data1.DataSet['报检操作']:=employee; data1.DataSet['会计期间']:=wwDBDateTimePicker1.date; data1.DataSet['财务']:=0; data1.DataSet['是否付汇']:=0; data1.DataSet['财务凭证']:=''; data1.DataSet['备案号']:=''; data1.DataSet['批准文号']:=''; data1.DataSet['成交方式']:=''; data1.DataSet['接单日期']:=null; data1.DataSet['报检日期']:=null; data1.DataSet['报检单号']:=''; data1.DataSet['验货时间']:=null; data1.DataSet['实验时间']:=null; data1.DataSet['熏蒸时间']:=null; data1.DataSet['出证时间']:=null; data1.DataSet['周次']:=WeekofYear(wwDBDateTimePicker1.date); data1.DataSet['卸货港']:=get_parameters_value(17,'QINGDAO,CHINA'); data1.DataSet['装运方式']:='报关'; if not seai_apply_add_total then begin frm_op_seai_apply.notebook1.pageindex:=1; frm_op_seai_apply.bsSkinButton11.Caption:='返回列表'; end; close; end; procedure Tfrm_op_seai_apply_add.bsSkinButton4Click(Sender: TObject); var Pnt:Tpoint; begin Pnt:=bsSkinButton4.ClientToScreen(Point(0,bsSkinButton4.Height)); PopupMenu1.Popup(Pnt.x,Pnt.y); end; procedure Tfrm_op_seai_apply_add.N1Click(Sender: TObject); var Ext,adate,bsno,corp,vslvoy:String; ExcelTemplet:Variant; i,j:integer; M,D,Y:Word; imp:boolean; begin if OpenDialog1.Execute then begin Ext:=lowercase(ExtractFileExt(OpenDialog1.FileName)); if Ext='.xls' then begin ExcelTemplet:= CreateOleObject('Excel.Application'); try ExcelTemplet.Workbooks.Open(OpenDialog1.FileName); I:=3; imp:=true; while VartoStr(ExcelTemplet.ActiveSheet.Cells[I,2].Value)<>'' do begin corp:=VartoStr(ExcelTemplet.ActiveSheet.Cells[I,10].Value); if not frm_data_share.t_crm_client_all.Locate('客户简称',corp,[]) then begin MessageDlg('客户名称:'+corp+' 系统中不存在,请先在系统中添加此客户!',mtWarning,[mbYes],0); imp:=false; end; i:=i+1; end; if imp then begin I:=3; while VartoStr(ExcelTemplet.ActiveSheet.Cells[I,2].Value)<>'' do begin aDate:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,2].Value); M:=StrToInt(COPY(adate,1,pos('.',adate)-1)); D:=StrToInt(COPY(adate,pos('.',adate)+1,length(adate)-pos('.',adate))); Y:=strtoint(formatdatetime('YYYY',date)); corp:=VartoStr(ExcelTemplet.ActiveSheet.Cells[I,10].Value); if not seai_apply_add_total then begin with frm_op_seai_apply do begin t_op_seai.insert; t_op_seai['会计期间']:=date; t_op_seai['周次']:=WeekofYear(date); t_op_seai['财务']:=0; t_op_seai['财务凭证']:=''; t_op_seai['录入人']:=employee; t_op_seai['录入日期']:=date; t_op_seai['分部名称']:=subComp; t_op_seai['操作员']:=employee; t_op_seai['报关操作']:=employee; t_op_seai['报检操作']:=employee; t_op_seai['揽货人']:=employee; t_op_seai['客服员']:=employee; t_op_seai['卸货港']:=get_parameters_value(17,'QINGDAO,CHINA'); t_op_seai['业务来源']:='自揽货'; t_op_seai['销售部门']:=department; t_op_seai['操作部门']:=department; t_op_seai['装运方式']:='报关'; t_op_seai['业务类型']:='普通货'; t_op_seai['是否付汇']:=0; t_op_seai['进口日期']:=EncodeDate(Y,M,D); t_op_seai['报关日期']:=EncodeDate(Y,M,D); t_op_seai['经营单位']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,3].Value); vslvoy:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,4].Value); if pos('/',VSLVOY)>0 then begin t_op_seai['船名']:=COPY(VSLVOY,1,pos('/',VSLVOY)-1); t_op_seai['航次']:=COPY(VSLVOY,pos('/',VSLVOY)+1,length(VSLVOY)-pos('/',VSLVOY)); end else t_op_seai['船名']:=VSLVOY; t_op_seai['主提单号']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,5].Value); aDate:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,7].Value); M:=StrToInt(COPY(adate,1,pos('.',adate)-1)); D:=StrToInt(COPY(adate,pos('.',adate)+1,length(adate)-pos('.',adate))); Y:=strtoint(formatdatetime('YYYY',date)); t_op_seai['通关日期']:=EncodeDate(Y,M,D); t_op_seai['成交方式']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,8].Value); t_op_seai['报关单号']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,9].Value); t_op_seai['委托单位']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,10].Value); t_op_seai['备注']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,11].Value); t_op_seai.post; end; end else begin with frm_op_apply do begin t_op_seai.insert; t_op_seai['会计期间']:=date; t_op_seai['周次']:=WeekofYear(date); t_op_seai['财务']:=0; t_op_seai['财务凭证']:=''; t_op_seai['录入人']:=employee; t_op_seai['录入日期']:=date; t_op_seai['分部名称']:=subComp; t_op_seai['操作员']:=employee; t_op_seai['报关操作']:=employee; t_op_seai['报检操作']:=employee; t_op_seai['揽货人']:=employee; t_op_seai['客服员']:=employee; t_op_seai['卸货港']:=get_parameters_value(17,'QINGDAO,CHINA'); t_op_seai['业务来源']:='自揽货'; t_op_seai['是否付汇']:=0; t_op_seai['销售部门']:=department; t_op_seai['操作部门']:=department; t_op_seai['装运方式']:='报关'; t_op_seai['业务类型']:='普通货'; t_op_seai['进口日期']:=EncodeDate(Y,M,D); t_op_seai['报关日期']:=EncodeDate(Y,M,D); t_op_seai['经营单位']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,3].Value); vslvoy:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,4].Value); if pos('/',VSLVOY)>0 then begin t_op_seai['船名']:=COPY(VSLVOY,1,pos('/',VSLVOY)-1); t_op_seai['航次']:=COPY(VSLVOY,pos('/',VSLVOY)+1,length(VSLVOY)-pos('/',VSLVOY)); end else t_op_seai['船名']:=VSLVOY; t_op_seai['主提单号']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,5].Value); aDate:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,7].Value); M:=StrToInt(COPY(adate,1,pos('.',adate)-1)); D:=StrToInt(COPY(adate,pos('.',adate)+1,length(adate)-pos('.',adate))); Y:=strtoint(formatdatetime('YYYY',date)); t_op_seai['通关日期']:=EncodeDate(Y,M,D); t_op_seai['成交方式']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,8].Value); t_op_seai['报关单号']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,9].Value); t_op_seai['委托单位']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,10].Value); t_op_seai['备注']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,11].Value); t_op_seai.post; end; end; i:=i+1; end; end; finally ExcelTemplet.DisplayAlerts := false;//是否提示存盘 ExcelTemplet.Quit;//如果出错则退出 end; end; end; MessageDlg('导入完成!', mtConfirmation, [mbYes],0); end; procedure Tfrm_op_seai_apply_add.N3Click(Sender: TObject); var Ext,adate,bsno,corp:String; ExcelTemplet:Variant; i,j:integer; M,D,Y:Word; imp:boolean; begin if OpenDialog1.Execute then begin Ext:=lowercase(ExtractFileExt(OpenDialog1.FileName)); if Ext='.xls' then begin ExcelTemplet:= CreateOleObject('Excel.Application'); try ExcelTemplet.Workbooks.Open(OpenDialog1.FileName); I:=3; imp:=true; while VartoStr(ExcelTemplet.ActiveSheet.Cells[I,2].Value)<>'' do begin corp:=VartoStr(ExcelTemplet.ActiveSheet.Cells[I,13].Value); if not frm_data_share.t_crm_client_all.Locate('客户简称',corp,[]) then begin MessageDlg('客户名称:'+corp+' 系统中不存在,请先在系统中添加此客户!',mtWarning,[mbYes],0); imp:=false; end; i:=i+1; end; if imp then begin I:=3; while VartoStr(ExcelTemplet.ActiveSheet.Cells[I,2].Value)<>'' do begin aDate:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,2].Value); M:=StrToInt(COPY(adate,1,pos('.',adate)-1)); D:=StrToInt(COPY(adate,pos('.',adate)+1,length(adate)-pos('.',adate))); Y:=strtoint(formatdatetime('YYYY',date)); corp:=VartoStr(ExcelTemplet.ActiveSheet.Cells[I,10].Value); if not seai_apply_add_total then begin with frm_op_seai_apply do begin t_op_seai.insert; t_op_seai['会计期间']:=date; t_op_seai['周次']:=WeekofYear(date); t_op_seai['财务']:=0; t_op_seai['财务凭证']:=''; t_op_seai['录入人']:=employee; t_op_seai['录入日期']:=date; t_op_seai['分部名称']:=subComp; t_op_seai['操作员']:=employee; t_op_seai['报关操作']:=employee; t_op_seai['报检操作']:=employee; t_op_seai['揽货人']:=employee; t_op_seai['客服员']:=employee; t_op_seai['卸货港']:=get_parameters_value(17,'QINGDAO,CHINA'); t_op_seai['业务来源']:='自揽货'; t_op_seai['销售部门']:=department; t_op_seai['操作部门']:=department; t_op_seai['装运方式']:='报关'; t_op_seai['业务类型']:='普通货'; t_op_seai['是否付汇']:=0; t_op_seai['进口日期']:=EncodeDate(Y,M,D); t_op_seai['通关日期']:=EncodeDate(Y,M,D); t_op_seai['报关日期']:=EncodeDate(Y,M,D); t_op_seai['经营单位']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,3].Value); t_op_seai['启运国']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,4].Value); t_op_seai['报检单号']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,5].Value); t_op_seai['船名']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,6].Value); t_op_seai['主提单号']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,7].Value); t_op_seai['商品名称']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,8].Value); t_op_seai['商品编码']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,9].Value); t_op_seai['数量单位']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,10].Value); t_op_seai['总价']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,11].Value); t_op_seai['委托单位']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,13].Value); t_op_seai.post; end; end else begin with frm_op_apply do begin t_op_seai.insert; t_op_seai['会计期间']:=date; t_op_seai['周次']:=WeekofYear(date); t_op_seai['财务']:=0; t_op_seai['财务凭证']:=''; t_op_seai['录入人']:=employee; t_op_seai['录入日期']:=date; t_op_seai['分部名称']:=subComp; t_op_seai['操作员']:=employee; t_op_seai['报关操作']:=employee; t_op_seai['报检操作']:=employee; t_op_seai['揽货人']:=employee; t_op_seai['客服员']:=employee; t_op_seai['卸货港']:=get_parameters_value(17,'QINGDAO,CHINA'); t_op_seai['业务来源']:='自揽货'; t_op_seai['销售部门']:=department; t_op_seai['操作部门']:=department; t_op_seai['装运方式']:='报关'; t_op_seai['业务类型']:='普通货'; t_op_seai['是否付汇']:=0; t_op_seai['进口日期']:=EncodeDate(Y,M,D); t_op_seai['通关日期']:=EncodeDate(Y,M,D); t_op_seai['报关日期']:=EncodeDate(Y,M,D); t_op_seai['经营单位']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,3].Value); t_op_seai['启运国']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,4].Value); t_op_seai['报检单号']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,5].Value); t_op_seai['船名']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,6].Value); t_op_seai['主提单号']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,7].Value); t_op_seai['商品名称']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,8].Value); t_op_seai['商品编码']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,9].Value); t_op_seai['数量单位']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,10].Value); t_op_seai['总价']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,11].Value); t_op_seai['委托单位']:=VarTostr(ExcelTemplet.ActiveSheet.Cells[i,13].Value); t_op_seai.post; end; end; i:=i+1; end; end; finally ExcelTemplet.DisplayAlerts := false;//是否提示存盘 ExcelTemplet.Quit;//如果出错则退出 end; end; end; MessageDlg('导入完成!', mtConfirmation, [mbYes],0); end; end.