You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

517 lines
18 KiB
Plaintext

11 months ago
unit u_ch_invoice_expitems;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
BusinessSkinForm, bsSkinCtrls, ExtCtrls, dxExEdtr, dxCntner, dxTL,Dialogs,
dxDBCtrl, dxDBGrid, dxDBTLCl, dxGrClms, DB, ADODB, Grids, Wwdbigrd,
Wwdbgrid, StdCtrls;
type
Tfrm_ch_invoice_expitems = class(TForm)
Panel1: TPanel;
bsSkinButton1: TbsSkinButton;
bsSkinButton2: TbsSkinButton;
bsSkinButton4: TbsSkinButton;
bsSkinButton3: TbsSkinButton;
bsSkinButton5: TbsSkinButton;
bsBusinessSkinForm1: TbsBusinessSkinForm;
dsrt_ch_invoice_expitem: TDataSource;
t_ch_invoice_expitem: TADOQuery;
bsSkinGroupBox1: TbsSkinGroupBox;
wwDBGrid2: TwwDBGrid;
bsSkinButton8: TbsSkinButton;
t_ch_invoice_expitem_sum: TADOQuery;
Label1: TbsSkinLabel;
bsSkinButton6: TbsSkinButton;
bsSkinButton7: TbsSkinButton;
bsSkinLabel1: TbsSkinLabel;
bsSkinButton9: TbsSkinButton;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure bsSkinButton5Click(Sender: TObject);
procedure bsSkinButton3Click(Sender: TObject);
procedure bsSkinButton2Click(Sender: TObject);
procedure bsSkinButton4Click(Sender: TObject);
procedure bsSkinButton1Click(Sender: TObject);
procedure bsSkinButton6Click(Sender: TObject);
procedure bsSkinButton7Click(Sender: TObject);
procedure bsSkinButton8Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure t_ch_invoice_expitemBeforeEdit(DataSet: TDataSet);
procedure t_ch_invoice_expitemAfterInsert(DataSet: TDataSet);
procedure t_ch_invoice_expitemAfterDelete(DataSet: TDataSet);
procedure t_ch_invoice_expitemAfterEdit(DataSet: TDataSet);
procedure t_ch_invoice_expitemAfterPost(DataSet: TDataSet);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bsSkinButton9Click(Sender: TObject);
private
function GetIsClose():Boolean;
procedure ComputeAmount;
procedure invtitlecharge(Sender:TField);
{ Private declarations }
public
{ Public declarations }
end;
var
frm_ch_invoice_expitems: Tfrm_ch_invoice_expitems;
invduino,invduicust,invcurr:string;
implementation
uses u_data_share, my_sys_function, u_main;
{$R *.dfm}
procedure Tfrm_ch_invoice_expitems.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
CanClose:=frm_close_query(t_ch_invoice_expitem);
if (invduicust<>'') then
CanClose:=GetIsClose();
end;
procedure Tfrm_ch_invoice_expitems.bsSkinButton5Click(Sender: TObject);
begin
close;
end;
procedure Tfrm_ch_invoice_expitems.bsSkinButton3Click(Sender: TObject);
begin
table_cancel(t_ch_invoice_expitem);
end;
procedure Tfrm_ch_invoice_expitems.bsSkinButton2Click(Sender: TObject);
begin
table_post(t_ch_invoice_expitem);
end;
procedure Tfrm_ch_invoice_expitems.bsSkinButton4Click(Sender: TObject);
var
i:integer;
str_list:Tstringlist;
begin
if wwDBGrid2.SelectedList.Count>1 then
begin
try
str_list:=Tstringlist.create;
for i:=0 to wwDBGrid2.SelectedList.Count-1 do
begin
t_ch_invoice_expitem.GotoBookmark(pointer(wwDBGrid2.SelectedList[i]));
str_list.Add(t_ch_invoice_expitem.fieldbyname('ITEMID').asstring);
end;
for i:=0 to str_list.Count-1 do
begin
if t_ch_invoice_expitem.locate('ITEMID',str_list[i],[]) then
t_ch_invoice_expitem.Delete;
end;
finally
str_list.free;
end;
end
else
begin
table_delete(t_ch_invoice_expitem);
end;
end;
procedure Tfrm_ch_invoice_expitems.bsSkinButton1Click(Sender: TObject);
begin
t_ch_invoice_expitem.Insert;
end;
procedure Tfrm_ch_invoice_expitems.bsSkinButton6Click(Sender: TObject);
var
aQuery:TADOQuery;
mblstr:string;
begin
aQuery:=CreateAdoQuery;
try
with aQuery do begin
close;SQL.Text:='SELECT distinct dbo.v_op_bscard_all.<2E><><EFBFBD><EFBFBD><E1B5A5> '
+' FROM dbo.t_ch_dui_bill INNER JOIN '
+' dbo.v_op_bscard_all ON dbo.t_ch_dui_bill.<2E><><EFBFBD><EFBFBD> = dbo.v_op_bscard_all.<2E><><EFBFBD><EFBFBD> '
+' WHERE dbo.t_ch_dui_bill.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>='''+invduino+'''';
open;
if not IsEmpty then begin
First;
while not eof do begin
mblstr:=mblstr+' '+aQuery.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString;
next;
end;
end;
end;
t_ch_invoice_expitem.Edit;
t_ch_invoice_expitem.FieldByName('<27><>ע').AsString:=mblstr;
t_ch_invoice_expitem.Post;
finally
FreeAndNil(aQuery);
end;
end;
procedure Tfrm_ch_invoice_expitems.bsSkinButton7Click(Sender: TObject);
var
invtitle:string;
begin
// if sender.DataSet.State in [dsedit,dsinsert] then begin
invtitle:=t_ch_invoice_expitem.FieldByName('<27><>Ʊ̧ͷ').AsString;
while not t_ch_invoice_expitem.Eof do begin
t_ch_invoice_expitem.Edit;
t_ch_invoice_expitem.FieldByName('<27><>Ʊ̧ͷ').AsString:=invtitle;
t_ch_invoice_expitem.Post;
t_ch_invoice_expitem.Next;
end;
// end;
end;
procedure Tfrm_ch_invoice_expitems.bsSkinButton8Click(Sender: TObject);
var
aQuery:TADOQuery;
custfullname:string;
begin
{
if t_ch_invoice_expitem.RecordCount<>0 then begin
if MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ȷʵҪ<CAB5><D2AA><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',mtWarning,[mbyes,mbno],0)<>mryes then
Exit;
end;
}
custfullname:=invduicust;
if frm_data_share.t_crm_client_all.Locate('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>',invduicust,[]) then
custfullname:=frm_data_share.t_crm_client_all.fieldbyname('<27>ͻ<EFBFBD>ȫ<EFBFBD><C8AB>').AsString;
aQuery:=CreateAdoQuery;
try
with aQuery do begin
close;SQL.Text:='SELECT dbo.t_ch_dui_bill.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>, dbo.v_op_bscard_all.<2E><><EFBFBD><EFBFBD><E1B5A5>, dbo.v_op_bscard_all.<2E><><EFBFBD><EFBFBD> '
+',allduifee.RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>,allduifee.USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD> FROM dbo.t_ch_dui_bill INNER JOIN '
+' dbo.v_op_bscard_all ON dbo.t_ch_dui_bill.<2E><><EFBFBD><EFBFBD> = dbo.v_op_bscard_all.<2E><><EFBFBD><EFBFBD> INNER JOIN '
+' (select <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>,SUM(case when <20>ұ<EFBFBD>=''RMB'' THEN <20><><EFBFBD><EFBFBD>-<2D><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD> else 0 end) RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD> '
+' ,SUM(case when <20>ұ<EFBFBD>=''USD'' THEN <20><><EFBFBD><EFBFBD>-<2D><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD> else 0 end) USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD> '
+' from v_dui_fee where <20><><EFBFBD><EFBFBD>=''<27><>'' GROUP BY <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>) allduifee '
+' ON dbo.t_ch_dui_bill.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD> = allduifee.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD> '
+' AND dbo.t_ch_dui_bill.<2E><><EFBFBD><EFBFBD> = allduifee.<2E><><EFBFBD><EFBFBD> WHERE dbo.t_ch_dui_bill.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>='''+invduino+'''';
open;
if not IsEmpty then begin
First;
while not eof do begin
if aQuery.FieldByName('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat<>0 then begin
if (t_ch_invoice_expitem.Locate('<27><><EFBFBD><EFBFBD><E1B5A5>;<3B><><EFBFBD>ʱұ<CAB1>',VarArrayOf([aQuery.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString,'RMB']),[])) then begin
t_ch_invoice_expitem.Edit;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat:=t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat+aQuery.FieldByName('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>').AsFloat:=t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>').AsFloat+aQuery.FieldByName('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat;
t_ch_invoice_expitem.Post;
end else begin
t_ch_invoice_expitem.Insert;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').AsString:=aQuery.FieldByName('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').AsString;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD>').AsString:=aQuery.FieldByName('<27><><EFBFBD><EFBFBD>').AsString;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString:=aQuery.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString;
t_ch_invoice_expitem.FieldByName('<27><>Ʊ̧ͷ').AsString:=custfullname;
t_ch_invoice_expitem.FieldByName('<27>ұ<EFBFBD>').AsString:='RMB';
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat:=aQuery.FieldByName('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʱұ<CAB1>').AsString:='RMB';
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>').AsFloat:=aQuery.FieldByName('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӷ<EFBFBD>';
t_ch_invoice_expitem.FieldByName('<27><>ע').AsString:=aQuery.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString;
t_ch_invoice_expitem.Post;
end;
end;
{
if aQuery.FieldByName('USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat<>0 then begin
t_ch_invoice_expitem.Insert;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').AsString:=aQuery.FieldByName('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').AsString;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD>').AsString:=aQuery.FieldByName('<27><><EFBFBD><EFBFBD>').AsString;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString:=aQuery.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString;
t_ch_invoice_expitem.FieldByName('<27><>Ʊ̧ͷ').AsString:=custfullname;
t_ch_invoice_expitem.FieldByName('<27>ұ<EFBFBD>').AsString:='USD';
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat:=aQuery.FieldByName('USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD>';
t_ch_invoice_expitem.FieldByName('<27><>ע').AsString:=aQuery.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString;
t_ch_invoice_expitem.Post;
end;
}
next;
end;
end;
end;
finally
FreeAndNil(aQuery);
end;
end;
procedure Tfrm_ch_invoice_expitems.FormShow(Sender: TObject);
var
aQuery:TADOQuery;
begin
t_ch_invoice_expitem.close;
t_ch_invoice_expitem.SQL.Clear;
t_ch_invoice_expitem.SQL.Add('select * from t_ch_invoice_expitem where <20><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>='''+invduino+''' ');
if invcurr<>'' then
t_ch_invoice_expitem.SQL.Add(' and <20>ұ<EFBFBD>='''+invcurr+''' ');
t_ch_invoice_expitem.SQL.Add(' order by ITEMID ');
// t_ch_invoice_expitem.Parameters.ParamByName('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').Value:=invduino;
t_ch_invoice_expitem.Open;
ComputeAmount;
if invduicust='' then begin
bsSkinButton8.Enabled:=false;
bsSkinButton1.Enabled:=false;
bsSkinButton2.Enabled:=false;
bsSkinButton3.Enabled:=false;
bsSkinButton4.Enabled:=false;
end;
// loadwwgrid(wwDBGrid2,'<27><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ');
end;
procedure Tfrm_ch_invoice_expitems.ComputeAmount;
var
aQuery:TADOQuery;
rmbamt,usdamt,cermb,ceusd:Double;
bok:Tbookmark;
begin
rmbamt:=0;
usdamt:=0;
Label1.Caption:='';
aQuery:=CreateAdoQuery;
with aQuery do
begin
Close;
SQL.Clear;
SQL.Add('select a.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>, b.USDAmount,a.RMBAmount from (select t.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>,sum(t.RMB) AS RMBAmount from '
+' (select <20><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>, case when <20><><EFBFBD>ʱұ<CAB1>=''RMB'' THEN <20><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD> else 0 end as RMB FROM t_ch_invoice_expitem '
+' where <20><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>='''+invduino+''') t '
+' group by t.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>) a inner join (select s.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>,sum(s.USD) AS USDAmount from (select <20><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>,'
+' case when <20><><EFBFBD>ʱұ<CAB1>=''USD'' THEN <20><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD> else 0 end as USD FROM t_ch_invoice_expitem where <20><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>='''
+invduino+''') s group by s.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>) b on a.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>=b.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD> ') ;
Open;
Label1.Caption:='<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>:'+fieldbyname('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').Asstring+' RMB<4D>ϼ<EFBFBD>:'+fieldbyname('RMBAmount').Asstring+'Ԫ'
+' USD<53>ϼ<EFBFBD>:'+ fieldbyname('USDAmount').Asstring+'<27><>Ԫ';
Close;
SQL.Clear;
SQL.Add('select SUM(CASE WHEN <20><><EFBFBD>ʱұ<CAB1>=''RMB'' THEN <20><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD> ELSE 0 END) RMB,SUM(CASE WHEN <20><><EFBFBD>ʱұ<CAB1>=''USD'' THEN <20><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD> ELSE 0 END) USD from '
+' t_ch_invoice_expitem '
+' where <20><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>='''+invduino+''' ') ;
Open;
rmbamt:=fieldbyname('RMB').AsFloat;
usdamt:=fieldbyname('USD').AsFloat;
end;
aQuery.Free;
t_ch_invoice_expitem_sum.Close;
t_ch_invoice_expitem_sum.Parameters.ParamByName('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').Value:=invduino;
t_ch_invoice_expitem_sum.Open;
cermb:=t_ch_invoice_expitem_sum.FieldByName('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat-rmbamt;
ceusd:=t_ch_invoice_expitem_sum.FieldByName('USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat-usdamt;
bsSkinLabel1.Caption:='<27><>Ʊ<EFBFBD>ϼ<EFBFBD> RMB<4D>ϼ<EFBFBD>:'+floattostr(rmbamt)+'Ԫ'
+' USD<53>ϼ<EFBFBD>:'+ floattostr(usdamt)+'<27><>Ԫ <20><><EFBFBD>RMB<4D>ϼ<EFBFBD>:'+floattostr(cermb)+'Ԫ'
+' USD<53>ϼ<EFBFBD>:'+ floattostr(ceusd)+'<27><>Ԫ';
end;
procedure Tfrm_ch_invoice_expitems.t_ch_invoice_expitemBeforeEdit(
DataSet: TDataSet);
begin
if (invduicust='') then Abort;
end;
function Tfrm_ch_invoice_expitems.GetIsClose: Boolean;
var
rmbamt,usdamt,cermb,ceusd:Double;
bok:Tbookmark;
begin
rmbamt:=0;
usdamt:=0;
result:=True;
bok:=t_ch_invoice_expitem.GetBookmark;
try
t_ch_invoice_expitem.DisableControls;
t_ch_invoice_expitem.First;
while not t_ch_invoice_expitem.Eof do begin
if t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʱұ<CAB1>').AsString='RMB' THEN begin
rmbamt:=rmbamt+t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>').AsFloat;
end;
if t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʱұ<CAB1>').AsString='USD' THEN begin
usdamt:=usdamt+t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>').AsFloat;
end;
t_ch_invoice_expitem.Next;
end;
finally
t_ch_invoice_expitem.EnableControls;
t_ch_invoice_expitem.GotoBookmark(bok);
end;
t_ch_invoice_expitem_sum.Close;
t_ch_invoice_expitem_sum.Parameters.ParamByName('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').Value:=invduino;
t_ch_invoice_expitem_sum.Open;
{
cermb:=t_ch_invoice_expitem_sum.FieldByName('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat-rmbamt;
ceusd:=t_ch_invoice_expitem_sum.FieldByName('USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat-usdamt;
bsSkinLabel1.Caption:='<27><>Ʊ<EFBFBD>ϼ<EFBFBD> RMB<4D>ϼ<EFBFBD>:'+floattostr(rmbamt)+'Ԫ'
+' USD<53>ϼ<EFBFBD>:'+ floattostr(usdamt)+'<27><>Ԫ <20><><EFBFBD>RMB<4D>ϼ<EFBFBD>:'+floattostr(cermb)+'Ԫ'
+' USD<53>ϼ<EFBFBD>:'+ floattostr(ceusd)+'<27><>Ԫ';
}
if ((rmbamt-0.1)>t_ch_invoice_expitem_sum.FieldByName('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat) then begin
ShowMessage('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>Ϊ:'+floattostr(rmbamt)+',RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>'+t_ch_invoice_expitem_sum.FieldByName('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsString);
result:=false;
end;
if ((usdamt-0.1)>t_ch_invoice_expitem_sum.FieldByName('USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat) then begin
ShowMessage('USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>Ϊ:'+floattostr(usdamt)+',USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>'+t_ch_invoice_expitem_sum.FieldByName('USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsString);
result:=false;
end;
end;
procedure Tfrm_ch_invoice_expitems.t_ch_invoice_expitemAfterInsert(
DataSet: TDataSet);
begin
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').AsString:=invduino;
ComputeAmount;
end;
procedure Tfrm_ch_invoice_expitems.t_ch_invoice_expitemAfterDelete(
DataSet: TDataSet);
begin
ComputeAmount;
end;
procedure Tfrm_ch_invoice_expitems.t_ch_invoice_expitemAfterEdit(
DataSet: TDataSet);
begin
ComputeAmount;
end;
procedure Tfrm_ch_invoice_expitems.t_ch_invoice_expitemAfterPost(
DataSet: TDataSet);
begin
ComputeAmount;
end;
procedure Tfrm_ch_invoice_expitems.invtitlecharge(Sender: TField);
begin
end;
procedure Tfrm_ch_invoice_expitems.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
savewwgrid(wwDBGrid2,'<27><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ');
end;
procedure Tfrm_ch_invoice_expitems.bsSkinButton9Click(Sender: TObject);
var
aQuery:TADOQuery;
custfullname:string;
begin
{
if t_ch_invoice_expitem.RecordCount<>0 then begin
if MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ȷʵҪ<CAB5><D2AA><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',mtWarning,[mbyes,mbno],0)<>mryes then
Exit;
end;
}
custfullname:=invduicust;
if frm_data_share.t_crm_client_all.Locate('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>',invduicust,[]) then
custfullname:=frm_data_share.t_crm_client_all.fieldbyname('<27>ͻ<EFBFBD>ȫ<EFBFBD><C8AB>').AsString;
aQuery:=CreateAdoQuery;
try
with aQuery do begin
close;SQL.Text:='SELECT dbo.t_ch_dui_bill.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>, dbo.v_op_bscard_all.<2E><><EFBFBD><EFBFBD><E1B5A5>, dbo.v_op_bscard_all.<2E><><EFBFBD><EFBFBD> '
+',allduifee.RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>,allduifee.USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD> FROM dbo.t_ch_dui_bill INNER JOIN '
+' dbo.v_op_bscard_all ON dbo.t_ch_dui_bill.<2E><><EFBFBD><EFBFBD> = dbo.v_op_bscard_all.<2E><><EFBFBD><EFBFBD> INNER JOIN '
+' (select <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>,SUM(case when <20>ұ<EFBFBD>=''RMB'' THEN <20><><EFBFBD><EFBFBD>-<2D><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD> else 0 end) RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD> '
+' ,SUM(case when <20>ұ<EFBFBD>=''USD'' THEN <20><><EFBFBD><EFBFBD>-<2D><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD> else 0 end) USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD> '
+' from v_dui_fee where <20><><EFBFBD><EFBFBD>=''<27><>'' GROUP BY <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>) allduifee '
+' ON dbo.t_ch_dui_bill.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD> = allduifee.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD> '
+' AND dbo.t_ch_dui_bill.<2E><><EFBFBD><EFBFBD> = allduifee.<2E><><EFBFBD><EFBFBD> WHERE dbo.t_ch_dui_bill.<2E><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>='''+invduino+'''';
open;
if not IsEmpty then begin
First;
while not eof do begin
{
if aQuery.FieldByName('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat<>0 then begin
t_ch_invoice_expitem.Insert;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').AsString:=aQuery.FieldByName('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').AsString;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD>').AsString:=aQuery.FieldByName('<27><><EFBFBD><EFBFBD>').AsString;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString:=aQuery.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString;
t_ch_invoice_expitem.FieldByName('<27><>Ʊ̧ͷ').AsString:=custfullname;
t_ch_invoice_expitem.FieldByName('<27>ұ<EFBFBD>').AsString:='RMB';
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat:=aQuery.FieldByName('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʱұ<CAB1>').AsString:='RMB';
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>').AsFloat:=aQuery.FieldByName('RMB<4D><42>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӷ<EFBFBD>';
t_ch_invoice_expitem.FieldByName('<27><>ע').AsString:=aQuery.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString;
t_ch_invoice_expitem.Post;
end;
}
if aQuery.FieldByName('USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat<>0 then begin
if (t_ch_invoice_expitem.Locate('<27><><EFBFBD><EFBFBD><E1B5A5>;<3B><><EFBFBD>ʱұ<CAB1>',VarArrayOf([aQuery.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString,'USD']),[])) then begin
t_ch_invoice_expitem.Edit;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat:=t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat+aQuery.FieldByName('USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>').AsFloat:=t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>').AsFloat+aQuery.FieldByName('USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat;
t_ch_invoice_expitem.Post;
end else begin
t_ch_invoice_expitem.Insert;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').AsString:=aQuery.FieldByName('<27><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>').AsString;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD>').AsString:=aQuery.FieldByName('<27><><EFBFBD><EFBFBD>').AsString;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString:=aQuery.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString;
t_ch_invoice_expitem.FieldByName('<27><>Ʊ̧ͷ').AsString:=custfullname;
t_ch_invoice_expitem.FieldByName('<27>ұ<EFBFBD>').AsString:='USD';
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat:=aQuery.FieldByName('USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʱұ<CAB1>').AsString:='USD';
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>').AsFloat:=aQuery.FieldByName('USD<53><44>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>').AsFloat;
t_ch_invoice_expitem.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD>';
t_ch_invoice_expitem.FieldByName('<27><>ע').AsString:=aQuery.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString;
t_ch_invoice_expitem.Post;
END;
end;
next;
end;
end;
end;
finally
FreeAndNil(aQuery);
end;
end;
end.