unit u_opor_ctn; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, bsSkinCtrls, BusinessSkinForm, Grids, Wwdbigrd, Wwdbgrid, StdCtrls, wwdblook, DB, ADODB, Mask, wwdbedit, Wwdotdot, Wwdbcomb; type Tfrm_opor_ctn = class(TForm) bsBusinessSkinForm1: TbsBusinessSkinForm; wwDBGrid1: TwwDBGrid; wwDBLookupCombo1: TwwDBLookupCombo; wwDBLookupCombo2: TwwDBLookupCombo; t_op_ctn: TADOQuery; t_op_ctn1: TDataSource; Memo1: TMemo; Memo2: TMemo; Memo3: TMemo; Memo4: TMemo; bsSkinPanel1: TbsSkinPanel; bsSkinButton1: TbsSkinButton; bsSkinButton2: TbsSkinButton; bsSkinButton4: TbsSkinButton; bsSkinButton3: TbsSkinButton; bsSkinButton6: TbsSkinButton; bsSkinButton5: TbsSkinButton; bsSkinButton9: TbsSkinButton; t_ch_client: TADOQuery; t_ch_client1: TDataSource; procedure t_op_ctnAfterInsert(DataSet: TDataSet); procedure t_op_ctnBeforePost(DataSet: TDataSet); procedure bsSkinButton1Click(Sender: TObject); procedure bsSkinButton2Click(Sender: TObject); procedure bsSkinButton4Click(Sender: TObject); procedure bsSkinButton3Click(Sender: TObject); procedure bsSkinButton5Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure wwDBLookupCombo1Change(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure t_op_ctnAfterPost(DataSet: TDataSet); procedure bsSkinButton9Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var frm_opor_ctn: Tfrm_opor_ctn; frm_opor_ctn_type:boolean; opor_ctn_limited:string; implementation uses u_data_share, my_sys_function, u_main; {$R *.dfm} procedure Tfrm_opor_ctn.t_op_ctnAfterInsert(DataSet: TDataSet); begin t_op_ctn['OR_ID']:=t_op_ctn.DataSource.DataSet['OR_ID']; t_op_ctn['数量']:=1; end; procedure Tfrm_opor_ctn.t_op_ctnBeforePost(DataSet: TDataSet); var aQuery:TADOQuery; begin aQuery:=CreateAdoQuery; with aQuery do begin Close; SQL.Clear; SQL.Add('select * from t_code_ctn where 代码='+QuotedStr(t_op_ctn.fieldbyname('代码').asstring)) ; Open; end; if aQuery.FieldByName('表现形式').AsString<>t_op_ctn.fieldbyname('表现形式').asstring then begin ShowMessage('表现形式不符!不能保存 请检查'); FreeAndNil(aQuery); Abort; end; FreeAndNil(aQuery); if frm_data_share.t_code_ctn.Locate('代码',t_op_ctn.fieldbyname('代码').asstring,[]) then begin t_op_ctn['表现形式']:=frm_data_share.t_code_ctn['表现形式']; t_op_ctn['箱型']:=frm_data_share.t_code_ctn['箱型']; t_op_ctn['尺寸']:=frm_data_share.t_code_ctn['尺寸']; if frm_data_share.t_code_ctn.FieldByName('尺寸').asstring='20'then t_op_ctn['TEU']:=1*t_op_ctn.FieldByName('数量').asinteger; if (frm_data_share.t_code_ctn.FieldByName('尺寸').asstring='40')OR (frm_data_share.t_code_ctn.FieldByName('尺寸').asstring='45')then t_op_ctn['TEU']:=2*t_op_ctn.FieldByName('数量').asinteger; end else begin t_op_ctn['代码']:=''; t_op_ctn['表现形式']:=''; t_op_ctn['箱型']:=''; t_op_ctn['尺寸']:=''; end; table_before_post(t_op_ctn,'代码'); table_before_post(t_op_ctn,'数量'); end; procedure Tfrm_opor_ctn.bsSkinButton1Click(Sender: TObject); begin t_op_ctn.insert; end; procedure Tfrm_opor_ctn.bsSkinButton2Click(Sender: TObject); begin table_post(t_op_ctn); end; procedure Tfrm_opor_ctn.bsSkinButton4Click(Sender: TObject); begin table_delete(t_op_ctn); end; procedure Tfrm_opor_ctn.bsSkinButton3Click(Sender: TObject); begin table_cancel(t_op_ctn); end; procedure Tfrm_opor_ctn.bsSkinButton5Click(Sender: TObject); begin close; end; procedure Tfrm_opor_ctn.FormShow(Sender: TObject); begin t_op_ctn.open; frm_data_share.t_code_ctn.requery; frm_data_share.t_code_package.requery; end; procedure Tfrm_opor_ctn.wwDBLookupCombo1Change(Sender: TObject); begin if (t_op_ctn.State=dsedit)or(t_op_ctn.State=dsinsert) then begin if frm_data_share.t_code_ctn.Locate('代码',wwDBLookupCombo1.text,[]) then begin t_op_ctn['表现形式']:=frm_data_share.t_code_ctn['表现形式']; t_op_ctn['箱型']:=frm_data_share.t_code_ctn['箱型']; t_op_ctn['尺寸']:=frm_data_share.t_code_ctn['尺寸']; end else begin t_op_ctn['表现形式']:=''; t_op_ctn['箱型']:=''; t_op_ctn['尺寸']:=''; end; end; end; procedure Tfrm_opor_ctn.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose:=frm_close_query(t_op_ctn); end; procedure Tfrm_opor_ctn.t_op_ctnAfterPost(DataSet: TDataSet); begin update_ctn(t_op_ctn); if ((Pos('RF',t_op_ctn.fieldbyname('表现形式').AsString)>0) OR (Pos('RH',t_op_ctn.fieldbyname('表现形式').AsString)>0)) then begin if op_ctn_limited='0001'then begin t_op_ctn.DataSource.DataSet.edit; t_op_ctn.DataSource.DataSet['货物标识']:='R'; t_op_ctn.DataSource.DataSet.post; END; end; end; procedure Tfrm_opor_ctn.bsSkinButton9Click(Sender: TObject); var i:integer; str:string; begin if t_op_ctn.IsEmpty then exit; if wwDBGrid1.SelectedList.Count>=1 then begin for i:=0 to wwDBGrid1.SelectedList.Count-1 do begin t_op_ctn.GotoBookmark(pointer(wwDBGrid1.SelectedList[i])); if i=0 then str:='('+t_op_ctn.fieldbyname('ctn_id').asstring else str:=str+','+t_op_ctn.fieldbyname('ctn_id').asstring; end; end else begin str:='('+t_op_ctn.fieldbyname('ctn_id').asstring; end; str:=str+')'; t_ch_client.close; t_ch_client.sql.clear; t_ch_client.sql.add('select * from t_opor_ctn ' +'where ctn_id in '+str +' order by ctn_id'); t_ch_client.open; sys_print('海运出口装箱单',2,t_op_ctn.DataSource,nil,nil,nil,nil,t_ch_client1,t_op_ctn1,nil,nil,nil,nil); end; end.