unit ACRDCD;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, rootg, DB, ADODB, frxClass, frxDBSet, ImgList, ComCtrls,
Buttons, Wwdbigrd, Grids, Wwdbgrid, StdCtrls, Mask, wwdbedit, ExtCtrls,
ToolWin, wwdbdatetimepicker, Wwdotdot, Wwdbcomb, DBCtrls, frxExportXLS,
Menus, cxControls, cxContainer, cxEdit, cxProgressBar;
type
TfrmACRDCD = class(Tfrmrootg)
Label1: TLabel;
Label2: TLabel;
wwDBEdit2: TwwDBEdit;
Label4: TLabel;
wwDBEdit3: TwwDBEdit;
SpeedButton1: TSpeedButton;
Label8: TLabel;
wwDBEdit5: TwwDBEdit;
wwDBEdit6: TwwDBEdit;
Label9: TLabel;
Label3: TLabel;
wwDBDateTimePicker3: TwwDBDateTimePicker;
DBText1: TDBText;
Label5: TLabel;
wwDBEdit4: TwwDBEdit;
QryMasterRDC01: TWideStringField;
QryMasterRDC02: TWideStringField;
QryMasterRDC03: TDateTimeField;
QryMasterRDC04: TWideStringField;
QryMasterRDC05: TWideStringField;
QryMasterRDC06: TFloatField;
QryMasterRDC07: TWideStringField;
QryMasterRDC08: TWideStringField;
QryMasterRDC09: TWideStringField;
QryMasterRDC10: TFloatField;
QryMasterRDC11: TFloatField;
QryDetailRDD01: TWideStringField;
QryDetailRDD02: TWideStringField;
QryDetailRDD03: TWideStringField;
QryDetailRDD04: TWideStringField;
QryDetailRDD05: TWideStringField;
QryDetailRDD06: TWideStringField;
QryDetailRDD07: TWideStringField;
QryDetailRDD08: TWideStringField;
QryDetailRDD09: TWideStringField;
QryDetailRDD10: TWideStringField;
QryDetailRDD11: TFloatField;
QryDetailRDD12: TFloatField;
QryDetailRDD13: TWideStringField;
QryDetailRDD14: TFloatField;
QryDetailRDD15: TFloatField;
Label6: TLabel;
wwDBEdit7: TwwDBEdit;
Label7: TLabel;
wwDBEdit8: TwwDBEdit;
Label10: TLabel;
wwDBEdit9: TwwDBEdit;
SpeedButton2: TSpeedButton;
Label11: TLabel;
wwDBEdit10: TwwDBEdit;
QryMasterWCXJE: TFloatField;
cmdGet: TSpeedButton;
QryACRDB: TADOQuery;
QryGet: TADOQuery;
QryDetailRDD18: TDateTimeField;
QryDetailRDD19: TWideStringField;
QryDetailRDD20: TWideStringField;
QryDetailRDD21: TWideStringField;
QryDetailWSJE: TFloatField;
wwDBCBRDD03: TwwDBComboBox;
wwDBCDRDD04: TwwDBComboDlg;
PopupMenu1: TPopupMenu;
A41: TMenuItem;
N1: TMenuItem;
QryDetailRDD22: TWideStringField;
QryDetailRDD23: TWideStringField;
QryDetailRDD24: TFloatField;
QryDetailRDD25: TWideStringField;
QryDetailRDD26: TWideStringField;
cxProgressBar1: TcxProgressBar;
QryDetailRDD27: TFloatField;
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure addClick(Sender: TObject);
procedure btnRefresh; override;
procedure QryDetailAfterInsert(DataSet: TDataSet);
procedure QryDetailAfterDelete(DataSet: TDataSet);
procedure QryDetailCalcFields(DataSet: TDataSet);
procedure saveClick(Sender: TObject);
procedure QryDetailRDD03GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure SpeedButton2Click(Sender: TObject);
procedure wwDBEdit7Exit(Sender: TObject);
procedure conformClick(Sender: TObject);
procedure wwDBGrid2CalcCellColors(Sender: TObject; Field: TField;
State: TGridDrawState; Highlight: Boolean; AFont: TFont;
ABrush: TBrush);
procedure QryMasterCalcFields(DataSet: TDataSet);
procedure cmdGetClick(Sender: TObject);
procedure printClick(Sender: TObject);
procedure A41Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure wwDBCDRDD04CustomDlg(Sender: TObject);
procedure wwDBCDRDD04KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmACRDCD: TfrmACRDCD;
implementation
uses dbhelp, cGlobal, ACRDABGET, ACRAABHELP, ACRBABHELP, ACRECDHELP,
ACRJABHELP, ACRACDHELP, ACRAEFHELP;
{$R *.dfm}
procedure TfrmACRDCD.FormDestroy(Sender: TObject);
begin
inherited;
frmACRDCD:=nil;
end;
procedure TfrmACRDCD.FormCreate(Sender: TObject);
begin
FrmName := 'ACRDCD';
FrmHDB := 'ACRDC';
FrmGDB := 'ACRDD';
FrmHID := 'RDC01';
FrmGID1 := 'RDD01';
FrmGID2 := 'RDD02';
inherited;
end;
procedure TfrmACRDCD.addClick(Sender: TObject);
begin
inherited;
QryMaster.FieldByName('RDC02').AsString :=dllUserName;
QryMaster.FieldByName('RDC03').AsDateTime :=Date();
end;
procedure TfrmACRDCD.btnRefresh;
begin
inherited;
wwDBEdit3.ReadOnly :=True;
SpeedButton1.Enabled :=False;
wwDBEdit5.ReadOnly :=True;
wwDBEdit6.ReadOnly :=True;
wwDBEdit8.ReadOnly :=True;
wwDBEdit9.ReadOnly :=True;
wwDBEdit10.ReadOnly :=True;
wwDBCBRDD03.ReadOnly :=True;
end;
procedure TfrmACRDCD.QryDetailAfterInsert(DataSet: TDataSet);
begin
if Trim(QryMaster.FieldByName(FrmHID).AsString)<>'' then
begin
QryDetail.Edit;
QryDetail.FieldByName(FrmGID1).AsString:=QryMaster.FieldByName(FrmHID).AsString;
QryDetail.FieldByName(FrmGID2).AsString:=FormatFloat('0000',QryDetail.RecordCount+1);
end;
end;
procedure TfrmACRDCD.QryDetailAfterDelete(DataSet: TDataSet);
Var
i: string;
begin
i:=QryDetail.Bookmark;
try
QryDetail.DisableControls;
while not QryDetail.Eof do begin
QryDetail.Edit;
QryDetail.FieldByName(FrmGID2).AsString:= FormatFloat('0000',QryDetail.RecNo);
QryDetail.Next;
end;
finally
QryDetail.EnableControls;
end;
QryDetail.Bookmark:=i;
end;
procedure TfrmACRDCD.QryDetailCalcFields(DataSet: TDataSet);
begin
inherited;
QryDetail.FieldByName('WSJE').AsFloat := QryDetail.FieldByName('RDD27').AsFloat-QryDetail.FieldByName('RDD14').AsFloat - QryDetail.FieldByName('RDD15').AsFloat;
end;
procedure TfrmACRDCD.saveClick(Sender: TObject);
Var
vCXJE:Double;
vbk:String;
begin
//对账单号、序号不能为空
wwDBEdit1.SetFocus;
//更新金额
if not QryDetail.IsEmpty Then
begin
if QryDetail.State in [dsEdit,dsInsert] then
begin
QryDetail.Post;
end;
if QryDetail.RecordCount>0 then
begin
QryDetail.DisableControls;
QryDetail.First;
vCXJE :=0.0;
While not QryDetail.Eof do
begin
vCXJE:=vCXJE+QryDetail.fieldbyname('RDD14').AsFloat;
QryDetail.Next;
end;
QryDetail.EnableControls;
end
else
begin
vCXJE:=0;
end;
QryMaster.FieldByName('RDC10').AsFloat :=StrToFloat(FormatFloat('0.00',vCXJE)); //总金额
QryDetail.Edit;
end
else
begin
vCXJE :=0.0;
QryMaster.FieldByName('RDC10').AsFloat :=StrToFloat(FormatFloat('0.00',vCXJE)); //总金额
QryDetail.Edit;
end;
if QryMaster.FieldByName('RDC10').AsFloat+QryMaster.FieldByName('RDC11').AsFloat>QryMaster.FieldByName('RDC06').AsFloat Then
begin
Application.MessageBox('本次冲销金额+已冲销金额不能大于预收金额!','提示信息',MB_IconInformation+MB_OK);
abort;
end;
inherited;
end;
procedure TfrmACRDCD.QryDetailRDD03GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if Trim(QryDetail.FieldByName('RDD03').AsString)='1' Then
begin
text :='1:销货单';
end
else
if Trim(QryDetail.FieldByName('RDD03').AsString)='2' Then
begin
text :='2:销退单';
end
else
if Trim(QryDetail.FieldByName('RDD03').AsString)='3' Then
begin
text :='3:其它';
end
else
if Trim(QryDetail.FieldByName('RDD03').AsString)='5' Then
begin
text :='5:其它销货';
end
else
if Trim(QryDetail.FieldByName('RDD03').AsString)='6' Then
begin
text :='6:销货折让';
end;
end;
procedure TfrmACRDCD.SpeedButton2Click(Sender: TObject);
Var
QryTmpA:TADOQuery;
begin
if not Assigned(frmDBHELP) then
frmDBHELP := TfrmDBHELP.Create(Application);
with frmDBHELP do
begin
DBHELP:=QryMaster;
strDBName:='ACRDA';
strCol:=' RDA01 AS 预收款单号,CONVERT(NVARCHAR(20),RDA13) AS 凭证号码,RDA04 AS 客户编号,RDA05 AS 客户全称,RDA06 AS 收款日期,ISNULL(RDA08,0.0)-ISNULL(RDA12,0.0) AS 未冲销金额 ';
strWhere:=' ACRDA.CONFORM_CODE=''Y'' AND RDA11=''2'' AND (ISNULL(RDA08,0.0)-ISNULL(RDA12,0.0))>0 ';
strOrder:='预收款单号';
strParaFieldName:='预收款单号';
strHelpFieldName:='RDC09';
ShowModal;
Free;
end;
try
QryTmpA:=TADOQuery.Create(nil);
QryTmpA.Connection:=DllAdoCn;
QryTmpA.EnableBCD :=False;
QryTmpA.Close;
QryTmpA.SQL.Clear;
QryTmpA.SQL.Add(' SELECT RDA04,RDA05,RDA08,RDA09,RDA12 '+
' FROM ACRDA '+
' WHERE ACRDA.CONFORM_CODE=''Y'' AND RDA11=''2'' AND RDA01='+VarToSql(Trim(QryMaster.FieldByName('RDC09').AsString)));
QryTmpA.Open;
QryMaster.FieldByName('RDC04').AsString := Trim(QryTmpA.FieldByName('RDA04').AsString); //客户编号
QryMaster.FieldByName('RDC05').AsString := Trim(QryTmpA.FieldByName('RDA05').AsString); //客户全称
QryMaster.FieldByName('RDC06').AsFloat := QryTmpA.fieldbyname('RDA08').AsFloat; //预收金额
QryMaster.FieldByName('RDC07').AsString := Trim(QryTmpA.FieldByName('RDA09').AsString); //币种
QryMaster.FieldByName('RDC11').AsFloat := QryTmpA.fieldbyname('RDA12').AsFloat; //已冲销金额
finally
QryTmpA.Close;
QryTmpA.Free;
end;
end;
procedure TfrmACRDCD.wwDBEdit7Exit(Sender: TObject);
Var
QryTmpA:TADOQuery;
begin
if QryMaster.State in [dsEdit,dsInsert] Then
begin
try
QryTmpA:=TADOQuery.Create(nil);
QryTmpA.Connection:=DllAdoCn;
QryTmpA.EnableBCD :=False;
QryTmpA.Close;
QryTmpA.SQL.Clear;
QryTmpA.SQL.Add(' SELECT RDA04,RDA05,RDA08,RDA09,RDA12 '+
' FROM ACRDA '+
' WHERE ACRDA.CONFORM_CODE=''Y'' AND RDA11=''2'' AND (ISNULL(RDA08,0.0)-ISNULL(RDA12,0.0))>0 AND RDA01='+VarToSql(Trim(QryMaster.FieldByName('RDC09').AsString)));
QryTmpA.Open;
QryMaster.FieldByName('RDC04').AsString := Trim(QryTmpA.FieldByName('RDA04').AsString); //客户编号
QryMaster.FieldByName('RDC05').AsString := Trim(QryTmpA.FieldByName('RDA05').AsString); //客户全称
QryMaster.FieldByName('RDC06').AsFloat := QryTmpA.fieldbyname('RDA08').AsFloat; //预收金额
QryMaster.FieldByName('RDC07').AsString := Trim(QryTmpA.FieldByName('RDA09').AsString); //币种
QryMaster.FieldByName('RDC11').AsFloat := QryTmpA.fieldbyname('RDA12').AsFloat; //已冲销金额
finally
QryTmpA.Close;
QryTmpA.Free;
end;
end;
end;
procedure TfrmACRDCD.conformClick(Sender: TObject);
Var
vRDD18:Variant;
begin
inherited;
if Trim(QryMaster.FieldByName('CONFORM_CODE').AsString) ='Y' Then
begin
if QryDetail.RecordCount >0 Then
begin
try
if not dlladocn.InTransaction then
dlladocn.BeginTrans;
//1、更新预收单头
ExecuteSQL('UPDATE ACRDA SET RDA12=ISNULL(RDA12,0.0)+'+VarToSql(QryMaster.FieldByName('RDC10').AsFloat)+' WHERE RDA01='+VarToSql(Trim(QryMaster.FieldByName('RDC09').AsString)));
QryDetail.First;
cxProgressBar1.Visible :=True;
cxProgressBar1.Position :=0;
cxProgressBar1.Properties.Min :=0;
cxProgressBar1.Properties.Max :=QryDetail.RecordCount;
cxProgressBar1.Properties.Text :='正在处理数据中。。。';
while not QryDetail.Eof do
begin
if (QryDetail.FieldByName('RDD22').AsString<>'') AND (QryDetail.FieldByName('RDD22').AsString<>'') Then
begin
if QryDetail.FieldByName('RDD18').IsNull Then
begin
vRDD18 := NULL;
end
else
begin
vRDD18 := QryDetail.FieldByName('RDD18').AsVariant;
end;
//2、更新对账单单身 已收款、实际收款日期、收款方式 ISNULL(RDD14,0.0)
ExecuteSQL('UPDATE ACRED SET RED19=ISNULL(RED19,0.0)+'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+',RED24='+VarToSql(vRDD18)+',RED22='+VarToSql(QryDetail.FieldByName('RDD19').AsString)+' WHERE ACRED.RED01='+VarToSql(QryDetail.FieldByName('RDD22').AsString)+' AND ACRED.RED02='+VarToSql(QryDetail.FieldByName('RDD23').AsString));
//3、更新对帐单表头已收款金额、已开票金额
ExecuteSQL(' UPDATE ACREC SET ACREC.REC13=AA.YSK '+
' FROM ACREC,(SELECT REC01,SUM(ISNULL(RED19,0.0)) AS YSK '+
' FROM ACREC '+
' INNER JOIN ACRED ON ACREC.REC01=ACRED.RED01 '+
' WHERE ACRED.RED01='+VarToSql(QryDetail.FieldByName('RDD22').AsString)+
' GROUP BY REC01) AS AA WHERE ACREC.REC01=AA.REC01 ');
//4、更新对帐单表头锁定码
ExecuteSQL(' UPDATE ACREC SET REC15=(CASE WHEN (ISNULL(REC10,0.0)-ISNULL(REC13,0.0)=0) AND (ISNULL(REC10,0.0)-ISNULL(REC14,0.0)=0.0) THEN ''Y'' ELSE ''N'' END ) WHERE ACREC.REC01='+VarToSql(QryDetail.FieldByName('RDD22').AsString));
end;
if (QryDetail.FieldByName('RDD22').AsString<>'') AND (QryDetail.FieldByName('RDD23').AsString<>'') Then
begin
//5、更新销货单已收款金额,已转应收款
if QryDetail.FieldByName('RDD03').AsString ='1' Then
begin
ExecuteSQL(' UPDATE ACRAB SET RAB33=ISNULL(RAB33,0.0)+'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+
',RAB37=ISNULL(RAB37,0.0)-'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+
' WHERE SUBSTRING(ACRAB.RAB03,1,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD04').AsString))+' AND SUBSTRING(ACRAB.RAB03,6,11)='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND SUBSTRING(ACRAB.RAB03,18,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='2' Then
begin
//6、更新销退单已收款金额,已转应收款
ExecuteSQL(' UPDATE ACRBB SET RBB34=ISNULL(RBB34,0.0)+'+VarToSql((-1)*QryDetail.FieldByName('RDD14').AsFloat)+
',RBB38=ISNULL(RBB38,0.0)-'+VarToSql((-1)*QryDetail.FieldByName('RDD14').AsFloat)+
' WHERE SUBSTRING(ACRBB.RBB03,1,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD04').AsString))+' AND SUBSTRING(ACRBB.RBB03,6,11)='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND SUBSTRING(ACRBB.RBB03,18,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='3' Then
begin
//7、更新其它费用已收款金额,已转应收款
ExecuteSQL(' UPDATE ACRJB SET RJB07=ISNULL(RJB07,0.0)+'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+
',RJB09=ISNULL(RJB09,0.0)-'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+
' WHERE ACRJB.RJB01='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND ACRJB.RJB02='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='5' Then
begin
//8、更新其它销货单,已转应收款
ExecuteSQL(' UPDATE ACRAD SET RAD33=ISNULL(RAD33,0.0)+'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+
',RAD38=ISNULL(RAD38,0.0)-'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+
' WHERE ACRAD.RAD01='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND ACRAD.RAD02='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='6' Then
begin
//9、更新销货折让,已转应收款
ExecuteSQL(' UPDATE ACRAF SET RAF33=ISNULL(RAF33,0.0)+'+VarToSql((-1)*QryDetail.FieldByName('RDD14').AsFloat)+
',RAF37=ISNULL(RAF37,0.0)-'+VarToSql((-1)*QryDetail.FieldByName('RDD14').AsFloat)+
' WHERE ACRAF.RAF01='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND ACRAF.RAF02='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
end
else
begin
//5、更新销货单已收款金额
if QryDetail.FieldByName('RDD03').AsString ='1' Then
begin
ExecuteSQL(' UPDATE ACRAB SET RAB33=ISNULL(RAB33,0.0)+'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+' WHERE SUBSTRING(ACRAB.RAB03,1,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD04').AsString))+' AND SUBSTRING(ACRAB.RAB03,6,11)='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND SUBSTRING(ACRAB.RAB03,18,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='2' Then
begin
//6、更新销退单已收款金额
ExecuteSQL(' UPDATE ACRBB SET RBB34=ISNULL(RBB34,0.0)+'+VarToSql((-1)*QryDetail.FieldByName('RDD14').AsFloat)+' WHERE SUBSTRING(ACRBB.RBB03,1,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD04').AsString))+' AND SUBSTRING(ACRBB.RBB03,6,11)='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND SUBSTRING(ACRBB.RBB03,18,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='3' Then
begin
//7、更新其它费用已收款金额,已转应收款
ExecuteSQL(' UPDATE ACRJB SET RJB07=ISNULL(RJB07,0.0)+'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+' WHERE ACRJB.RJB01='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND ACRJB.RJB02='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='5' Then
begin
//8、更新其它销货单,已转应收款
ExecuteSQL(' UPDATE ACRAD SET RAD33=ISNULL(RAD33,0.0)+'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+' WHERE ACRAD.RAD01='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND ACRAD.RAD02='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='6' Then
begin
//9、更新销货折让,已转应收款
ExecuteSQL(' UPDATE ACRAF SET RAF33=ISNULL(RAF33,0.0)+'+VarToSql((-1)*QryDetail.FieldByName('RDD14').AsFloat)+' WHERE ACRAF.RAF01='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND ACRAF.RAF02='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
end;
cxProgressBar1.Position :=cxProgressBar1.Position+1;
cxProgressBar1.Repaint;
QryDetail.Next;
end;
cxProgressBar1.Visible :=False;
dlladocn.CommitTrans;
except
on E:Exception do
begin
dlladocn.RollbackTrans;
Application.Messagebox(pchar('操作失败.'+#13#10+E.Message),'提示信息',MB_OK+MB_ICONERROR);
end;
end;
end;
end
else
begin
if QryDetail.RecordCount >0 Then
begin
try
if not dlladocn.InTransaction then
dlladocn.BeginTrans;
//1、更新预收单头
ExecuteSQL('UPDATE ACRDA SET RDA12=ISNULL(RDA12,0.0)-'+VarToSql(QryMaster.FieldByName('RDC10').AsFloat)+' WHERE RDA01='+VarToSql(Trim(QryMaster.FieldByName('RDC09').AsString)));
QryDetail.First;
cxProgressBar1.Visible :=True;
cxProgressBar1.Position :=0;
cxProgressBar1.Properties.Min :=0;
cxProgressBar1.Properties.Max :=QryDetail.RecordCount;
cxProgressBar1.Properties.Text :='正在处理数据中。。。';
while not QryDetail.Eof do
begin
if (QryDetail.FieldByName('RDD22').AsString<>'') AND (QryDetail.FieldByName('RDD22').AsString<>'') Then
begin
if QryDetail.FieldByName('RDD18').IsNull Then
begin
vRDD18 := NULL;
end
else
begin
vRDD18 := QryDetail.FieldByName('RDD18').AsVariant;
end;
//2、更新对账单单身 已收款、实际收款日期、收款方式 ISNULL(RDD14,0.0)
ExecuteSQL('UPDATE ACRED SET RED19=ISNULL(RED19,0.0)-'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+',RED24=NULL,RED22='''' WHERE ACRED.RED01='+VarToSql(QryDetail.FieldByName('RDD22').AsString)+' AND ACRED.RED02='+VarToSql(QryDetail.FieldByName('RDD23').AsString));
//3、更新对帐单表头已收款金额、已开票金额
ExecuteSQL(' UPDATE ACREC SET ACREC.REC13=AA.YSK '+
' FROM ACREC,(SELECT REC01,SUM(ISNULL(RED19,0.0)) AS YSK, SUM(ISNULL(RED20,0.0)) AS YKP '+
' FROM ACREC '+
' INNER JOIN ACRED ON ACREC.REC01=ACRED.RED01 '+
' WHERE ACRED.RED01='+VarToSql(QryDetail.FieldByName('RDD22').AsString)+
' GROUP BY REC01) AS AA WHERE ACREC.REC01=AA.REC01 ');
//4、更新对帐单表头锁定码
ExecuteSQL(' UPDATE ACREC SET REC15=(CASE WHEN (ISNULL(REC10,0.0)-ISNULL(REC13,0.0)=0) AND (ISNULL(REC10,0.0)-ISNULL(REC14,0.0)=0.0) THEN ''Y'' ELSE ''N'' END ) WHERE ACREC.REC01='+VarToSql(QryDetail.FieldByName('RDD22').AsString));
end;
if (QryDetail.FieldByName('RDD22').AsString<>'') AND (QryDetail.FieldByName('RDD22').AsString<>'') Then
begin
//5、更新销货单已收款金额、已转应收款
if QryDetail.FieldByName('RDD03').AsString ='1' Then
begin
ExecuteSQL(' UPDATE ACRAB SET RAB33=ISNULL(RAB33,0.0)-'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+
',RAB37=ISNULL(RAB37,0.0)+'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+
' WHERE SUBSTRING(ACRAB.RAB03,1,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD04').AsString))+' AND SUBSTRING(ACRAB.RAB03,6,11)='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND SUBSTRING(ACRAB.RAB03,18,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='2' Then
begin
//6、更新销退单已收款金额、已转应收款
ExecuteSQL(' UPDATE ACRBB SET RBB34=ISNULL(RBB34,0.0)-'+VarToSql((-1)*QryDetail.FieldByName('RDD14').AsFloat)+
',RBB38=ISNULL(RBB38,0.0)+'+VarToSql((-1)*QryDetail.FieldByName('RDD14').AsFloat)+
' WHERE SUBSTRING(ACRBB.RBB03,1,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD04').AsString))+' AND SUBSTRING(ACRBB.RBB03,6,11)='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND SUBSTRING(ACRBB.RBB03,18,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='3' Then
begin
//7、更新其它费用已收款金额、已转应收款
ExecuteSQL(' UPDATE ACRJB SET RJB07=ISNULL(RJB07,0.0)-'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+
',RJB09=ISNULL(RJB09,0.0)+'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+
' WHERE ACRJB.RJB01='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND ACRJB.RJB02='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='5' Then
begin
//8、更新其它销货单,已转应收款
ExecuteSQL(' UPDATE ACRAD SET RAD33=ISNULL(RAD33,0.0)-'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+
',RAD37=ISNULL(RAD37,0.0)+'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+
' WHERE ACRAD.RAD01='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND ACRAD.RAD02='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='6' Then
begin
//9、更新销货折让,已转应收款
ExecuteSQL(' UPDATE ACRAF SET RAF33=ISNULL(RAF33,0.0)-'+VarToSql((-1)*QryDetail.FieldByName('RDD14').AsFloat)+
',RAF37=ISNULL(RAF37,0.0)+'+VarToSql((-1)*QryDetail.FieldByName('RDD14').AsFloat)+
' WHERE ACRAF.RAF01='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND ACRAF.RAF02='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
end
else
begin
//5、更新销货单已收款金额
if QryDetail.FieldByName('RDD03').AsString ='1' Then
begin
ExecuteSQL(' UPDATE ACRAB SET RAB33=ISNULL(RAB33,0.0)-'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+' WHERE SUBSTRING(ACRAB.RAB03,1,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD04').AsString))+' AND SUBSTRING(ACRAB.RAB03,6,11)='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND SUBSTRING(ACRAB.RAB03,18,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='2' Then
begin
//6、更新销退单已收款金额
ExecuteSQL(' UPDATE ACRBB SET RBB34=ISNULL(RBB34,0.0)-'+VarToSql((-1)*QryDetail.FieldByName('RDD14').AsFloat)+' WHERE SUBSTRING(ACRBB.RBB03,1,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD04').AsString))+' AND SUBSTRING(ACRBB.RBB03,6,11)='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND SUBSTRING(ACRBB.RBB03,18,4)='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='3' Then
begin
//7、更新其它费用已收款金额,已转应收款
ExecuteSQL(' UPDATE ACRJB SET RJB07=ISNULL(RJB07,0.0)-'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+' WHERE ACRJB.RJB01='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND ACRJB.RJB02='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='5' Then
begin
//8、更新其它销货单,已转应收款
ExecuteSQL(' UPDATE ACRAD SET RAD33=ISNULL(RAD33,0.0)-'+VarToSql(QryDetail.FieldByName('RDD14').AsFloat)+' WHERE ACRAD.RAD01='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND ACRAD.RAD02='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
if QryDetail.FieldByName('RDD03').AsString ='6' Then
begin
//9、更新销货折让,已转应收款
ExecuteSQL(' UPDATE ACRAF SET RAF33=ISNULL(RAF33,0.0)-'+VarToSql((-1)*QryDetail.FieldByName('RDD14').AsFloat)+' WHERE ACRAF.RAF01='+VarToSql(Trim(QryDetail.FieldByName('RDD05').AsString))+' AND ACRAF.RAF02='+VarToSql(Trim(QryDetail.FieldByName('RDD06').AsString)));
end;
end;
cxProgressBar1.Position :=cxProgressBar1.Position+1;
cxProgressBar1.Repaint;
QryDetail.Next;
end;
cxProgressBar1.Visible :=False;
dlladocn.CommitTrans;
except
on E:Exception do
begin
dlladocn.RollbackTrans;
Application.Messagebox(pchar('操作失败.'+#13#10+E.Message),'提示信息',MB_OK+MB_ICONERROR);
end;
end;
end;
end;
end;
procedure TfrmACRDCD.wwDBGrid2CalcCellColors(Sender: TObject;
Field: TField; State: TGridDrawState; Highlight: Boolean; AFont: TFont;
ABrush: TBrush);
begin
inherited;
if ((Field.FieldName = 'RDD04') or (Field.FieldName = 'RDD14')) then
begin
ABrush.Color:= $00B9FFFF;
AFont.Color :=clblack;
end;
end;
procedure TfrmACRDCD.QryMasterCalcFields(DataSet: TDataSet);
begin
inherited;
QryMaster.FieldByName('WCXJE').AsFloat := QryMaster.FieldByName('RDC06').AsFloat-QryMaster.FieldByName('RDC11').AsFloat-QryMaster.FieldByName('RDC10').AsFloat;
end;
procedure TfrmACRDCD.cmdGetClick(Sender: TObject);
Var
QryTmpB,QryTmpA:TADOQuery;
vJE:Double;
vSKRQ:Variant; //收款日期
vSKFS:String; //收款方式
begin
inherited;
wwDBEdit1.SetFocus;
if Trim(wwDBEdit3.Text)='' Then
begin
Application.MessageBox('客户编号不能为空!','提示信息',MB_IconInformation+MB_OK);
abort;
end;
if QryMaster.FieldByName('WCXJE').AsFloat <=0 Then
begin
Application.MessageBox('未冲销金额必须大于零!','提示信息',MB_IconInformation+MB_OK);
abort;
end;
if Trim(wwDBEdit7.Text)='' Then
begin
Application.MessageBox('预收款单号不能为空!','提示信息',MB_IconInformation+MB_OK);
abort;
end;
if QryDetail.RecordCount>0 then
begin
if application.Messagebox('表身有资料,提取数据将删除表身资料,继续吗?','提示信息',Mb_YesNo+Mb_IconQuestion)=IDNO then
Abort
else
begin
QryDetail.First;
while not QryDetail.Eof do
QryDetail.Delete;
end;
end;
vJE:=QryMaster.FieldByName('WCXJE').AsFloat;
try
QryTmpA:=TADOQuery.Create(nil);
QryTmpA.Connection:=DllAdoCn;
QryTmpA.EnableBCD :=False;
QryTmpA.Close;
QryTmpA.SQL.Clear;
QryTmpA.SQL.Add(' SELECT RDA04,RDA05,RDA06,RDA08,RDA09,RDA12,RDA14 '+
' FROM ACRDA '+
' WHERE ACRDA.CONFORM_CODE=''Y'' AND RDA11=''2'' AND RDA01='+VarToSql(Trim(QryMaster.FieldByName('RDC09').AsString)));
QryTmpA.Open;
vSKRQ := QryTmpA.FieldByName('RDA06').AsVariant; //收款日期
vSKFS := Trim(QryTmpA.FieldByName('RDA14').AsString); //收款方式
finally
QryTmpA.Close;
QryTmpA.Free;
end;
QryMaster.FieldByName('RDC10').AsFloat :=0.0;
//取未收款的信息
try
QryTmpB:=TADOQuery.Create(nil);
QryTmpB.Connection:=DllAdoCn;
QryTmpB.EnableBCD :=False;
QryTmpB.Close;
QryTmpB.SQL.Clear;
QryTmpB.SQL.Add(' SELECT RED03 AS RDD03, '+
' CASE WHEN (RED03=''1'' OR RED03=''2'') THEN SUBSTRING(RED07,1,4) WHEN (RED03=''3'' OR RED03=''5'' OR RED03=''6'' ) THEN '''' END RDD04, '+
' CASE WHEN (RED03=''1'' OR RED03=''2'') THEN SUBSTRING(RED07,6,11) WHEN (RED03=''3'' OR RED03=''5'' OR RED03=''6'' ) THEN SUBSTRING(RED07,1,11) END RDD05, '+
' CASE WHEN (RED03=''1'' OR RED03=''2'') THEN SUBSTRING(RED07,18,4) WHEN (RED03=''3'' OR RED03=''5'' OR RED03=''6'' ) THEN SUBSTRING(RED07,13,4) END RDD06, '+
' RED08 AS RDD07,RED09 AS RDD08,RED10 AS RDD09,RED11 AS RDD10,RED13 AS RDD11,RED12 AS RDD12,'''' AS RDD13, '+
' ISNULL(RED13,0.0)*ISNULL(RED12,0.0)-ISNULL(RED19,0.0) AS RDD14,RED19 AS RDD15,RED06 AS RDD20, '+
' RED05 AS RDD21,RED01 AS RDD22,RED02 AS RDD23,RED26 AS RDD24,RED29 AS RDD25,RED30 AS RDD26,RED28 AS RDD27 '+
' FROM ACRED '+
' INNER JOIN ACREC ON ACREC.REC01=ACRED.RED01 '+
' WHERE ACREC.CONFORM_CODE=''Y'' AND ISNULL(RED28,0.0)-ISNULL(RED19,0.0)<>0 AND REC04='+VarToSql(Trim(wwDBEdit3.Text))+
' UNION ALL '+
' SELECT ''1'' AS RDD03, '+
' SUBSTRING(RAB03,1,4) AS RDD04, '+
' SUBSTRING(RAB03,6,11) AS RDD05, '+
' SUBSTRING(RAB03,18,4) AS RDD06,RAB04 AS RDD07,RAB05 AS RDD08,RAB06 AS RDD09, '+
' RAB09 AS RDD10,RAB08 AS RDD11,RAB10 AS RDD12,RAB12 AS RDD13, '+
' ISNULL(RAB30,0.0)-ISNULL(RAB33,0.0)-ISNULL(RAB37,0.0) AS RDD14, '+
' RAB33 AS RDD15,RAB14 AS RDD20,RAB15 AS RDD21,'''' AS RDD22,'''' AS RDD23, '+
' 0.0 AS RDD24,RAB32 AS RDD25,RAB13 AS RDD26,ISNULL(RAB30,0.0) AS RDD27 '+
' FROM ACRAA '+
' INNER JOIN ACRAB ON ACRAA.RAA01=ACRAB.RAB01 '+
' WHERE ACRAA.CONFORM_CODE=''Y'' AND ISNULL(RAB30,0.0)-ISNULL(RAB33,0.0)-ISNULL(RAB37,0.0)>0.0 AND ACRAA.RAA06='+VarToSql(Trim(wwDBEdit3.Text))+
' UNION ALL '+
' SELECT ''2'' AS RDD03, '+
' SUBSTRING(RBB03,1,4) AS RDD04, '+
' SUBSTRING(RBB03,6,11) AS RDD05, '+
' SUBSTRING(RBB03,18,4) AS RDD06,RBB04 AS RDD07,RBB05 AS RDD08,RBB06 AS RDD09, '+
' RBB08 AS RDD10,(-1)*RBB07 AS RDD11,RBB09 AS RDD12,RBB13 AS RDD13, '+
' (-1)*(ISNULL(RBB31,0.0)-ISNULL(RBB34,0.0)-ISNULL(RBB38,0.0)) AS RDD14, '+
' RBB34 AS RDD15,RBB15 AS RDD20,RBB16 AS RDD21,'''' AS RDD22,'''' AS RDD23, '+
' 0.0 AS RDD24,RBB33 AS RDD25,RBB14 AS RDD26,(-1)*ISNULL(RBB31,0.0) AS RDD27 '+
' FROM ACRBA '+
' INNER JOIN ACRBB ON ACRBA.RBA01=ACRBB.RBB01 '+
' WHERE ACRBA.CONFORM_CODE=''Y'' AND ISNULL(RBB31,0.0)-ISNULL(RBB34,0.0)-ISNULL(RBB38,0.0)>0.0 AND ACRBA.RBA06='+VarToSql(Trim(wwDBEdit3.Text))+
' UNION ALL '+
' SELECT ''3'' AS RDD03, '+
' '''' AS RDD04, '+
' RJB01 AS RDD05, '+
' RJB02 AS RDD06,'''' AS RDD07,RJB03 AS RDD08,RJB16 AS RDD09,RJB14 AS RDD10,RJB13 AS RDD11,RJB15 AS RDD12,RJB05 AS RDD13, '+
' ISNULL(RJB04,0.0)-ISNULL(RJB07,0.0)-ISNULL(RJB09,0.0) AS RDD14, '+
' RJB07 AS RDD15,RJB12 AS RDD20,RJB10 AS RDD21,'''' AS RDD22,'''' AS RDD23, '+
' 0.0 AS RDD24,'''' AS RDD25,RJB11 AS RDD26,ISNULL(RJB04,0.0) AS RDD27 '+
' FROM ACRJA '+
' INNER JOIN ACRJB ON ACRJA.RJA01=ACRJB.RJB01 '+
' WHERE ACRJA.CONFORM_CODE =''Y'' AND ISNULL(RJB04,0.0)-ISNULL(RJB07,0.0)-ISNULL(RJB09,0.0)>0 AND ACRJA.RJA06='+VarToSql(Trim(wwDBEdit3.Text))+
' UNION ALL '+
' SELECT ''5'' AS RDD03,'''' AS RDD04,RAD01 AS RDD05,RAD02 AS RDD06,RAD04 AS RDD07, '+
' RAD05 AS RDD08,RAD06 AS RDD09,RAD09 AS RDD10,RAD08 AS RDD11,RAD10 AS RDD12,RAD12 AS RDD13, '+
' ISNULL(RAD30,0.0)-ISNULL(RAD33,0.0)-ISNULL(RAD37,0.0) AS RDD14, '+
' RAD33 AS RDD15,RAD14 AS RDD20,RAD15 AS RDD21,'''' AS RDD22,'''' AS RDD23,0.0 AS RDD24,RAD32 AS RDD25,RAD13 AS RDD26,ISNULL(RAD30,0.0) AS RDD27 '+
' FROM ACRAC '+
' INNER JOIN ACRAD ON ACRAD.RAD01=ACRAC.RAC01 '+
' WHERE ACRAC.CONFORM_CODE=''Y'' AND ISNULL(RAD30,0.0)-ISNULL(RAD33,0.0)-ISNULL(RAD37,0.0)>0 AND ACRAC.RAC06='+VarToSql(Trim(wwDBEdit3.Text))+
' UNION ALL '+
' SELECT ''6'' AS RDD03,'''' AS RDD04,RAF01 AS RDD05,RAF02 AS RDD06,RAF04 AS RDD07, '+
' RAF05 AS RDD08,RAF06 AS RDD09,RAF09 AS RDD10,(-1)*ISNULL(RAF08,0.0) AS RDD11,RAF10 AS RDD12,RAF12 AS RDD13, '+
' (-1)*(ISNULL(RAF30,0.0)-ISNULL(RAF33,0.0)-ISNULL(RAF37,0.0)) AS RDD14, '+
' RAF33 AS RDD15,RAF14 AS RDD20,RAF15 AS RDD21,'''' AS RDD22,'''' AS RDD23,0.0 AS RDD24,RAF32 AS RDD25,RAF13 AS RDD26,(-1)*ISNULL(RAF30,0.0) AS RDD27 '+
' FROM ACRAE '+
' INNER JOIN ACRAF ON ACRAF.RAF01=ACRAE.RAE01 '+
' WHERE ACRAE.CONFORM_CODE=''Y'' AND ISNULL(RAF30,0.0)-ISNULL(RAF33,0.0)-ISNULL(RAF37,0.0)>0 AND ACRAE.RAE06='+VarToSql(Trim(wwDBEdit3.Text)));
QryTmpB.Open;
if QryTmpB.RecordCount>0 then
begin
QryTmpB.First;
While not QryTmpB.Eof do
begin
if vJE-QryTmpB.FieldByName('RDD14').AsFloat-QryTmpB.FieldByName('RDD24').AsFloat>0 Then
begin
QryDetail.Append;
QryDetail.FieldByName('RDD03').AsString :=QryTmpB.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmpB.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmpB.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmpB.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmpB.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmpB.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmpB.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmpB.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmpB.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmpB.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmpB.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmpB.FieldByName('RDD14').AsFloat+QryTmpB.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmpB.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmpB.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmpB.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmpB.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmpB.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmpB.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmpB.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmpB.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmpB.FieldByName('RDD27').AsFloat;
vJE :=vJE-QryTmpB.FieldByName('RDD14').AsFloat-QryTmpB.FieldByName('RDD24').AsFloat;
QryTmpB.Next;
end
else
begin
QryDetail.Append;
QryDetail.FieldByName('RDD03').AsString :=QryTmpB.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmpB.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmpB.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmpB.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmpB.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmpB.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmpB.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmpB.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmpB.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmpB.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmpB.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=vJE;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmpB.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmpB.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmpB.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmpB.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmpB.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmpB.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmpB.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmpB.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmpB.FieldByName('RDD27').AsFloat;
Break;
end;
end;
end;
finally
QryTmpB.Close;
QryTmpB.Free;
end;
end;
procedure TfrmACRDCD.printClick(Sender: TObject);
begin
//inherited;
end;
procedure TfrmACRDCD.A41Click(Sender: TObject);
begin
inherited;
if (DSMaster.DataSet.IsEmpty) or (DSDetail.DataSet.IsEmpty) then
begin
Application.MessageBox('记录为空,打印无效.','提示信息',MB_IconInformation+MB_OK);
Abort;
end;
try
QryMaster.DisableControls;
frxReport1.Report.LoadFromFile(GetLogDir('Rpt')+'ACRDCDA.FR3');
frxReport1.ShowReport(True);
QryMaster.EnableControls;
except
on E:Exception do
begin
messagedlg('报表文件不存在,单据打印失败 ! '+#10#13+E.Message,mtError,[MBOK],0);
Abort;
end;
end;
end;
procedure TfrmACRDCD.N1Click(Sender: TObject);
begin
inherited;
if (DSMaster.DataSet.IsEmpty) or (DSDetail.DataSet.IsEmpty) then
begin
Application.MessageBox('记录为空,打印无效.','提示信息',MB_IconInformation+MB_OK);
Abort;
end;
try
QryMaster.DisableControls;
frxReport1.Report.LoadFromFile(GetLogDir('Rpt')+'ACRDCDB.FR3');
frxReport1.ShowReport(True);
QryMaster.EnableControls;
except
on E:Exception do
begin
messagedlg('报表文件不存在,单据打印失败 ! '+#10#13+E.Message,mtError,[MBOK],0);
Abort;
end;
end;
end;
procedure TfrmACRDCD.wwDBCDRDD04CustomDlg(Sender: TObject);
Var
sResult:String;
sl:TStringList;
i:integer;
QryTmpB,QryTmpA:TADOQuery;
vSKRQ:Variant; //收款日期
vSKFS:String; //收款方式
begin
inherited;
if Trim(wwDBEdit3.Text)='' Then
begin
Application.MessageBox('客户编号不能为空!','提示信息',MB_IconInformation+MB_OK);
abort;
end;
if not Assigned(frmACRECDHELP) then
begin
frmACRECDHELP := TfrmACRECDHELP.Create(Application);
frmACRECDHELP.sWhere :=' REC04='+VarToSql(Trim(wwDBEdit3.Text))+' AND ISNULL(RED28,0.0)-ISNULL(RED19,0.0)<>0 ';
frmACRECDHELP.ShowModal;
sResult:=frmACRECDHELP.rtnHelpFieldName;
frmACRECDHELP.Free;
end;
try
QryTmpA:=TADOQuery.Create(nil);
QryTmpA.Connection:=DllAdoCn;
QryTmpA.EnableBCD :=False;
QryTmpA.Close;
QryTmpA.SQL.Clear;
QryTmpA.SQL.Add(' SELECT RDA04,RDA05,RDA06,RDA08,RDA09,RDA12,RDA14 '+
' FROM ACRDA '+
' WHERE ACRDA.CONFORM_CODE=''Y'' AND RDA11=''2'' AND RDA01='+VarToSql(Trim(QryMaster.FieldByName('RDC09').AsString)));
QryTmpA.Open;
vSKRQ := QryTmpA.FieldByName('RDA06').AsVariant; //收款日期
vSKFS := Trim(QryTmpA.FieldByName('RDA14').AsString); //收款方式
finally
QryTmpA.Close;
QryTmpA.Free;
end;
if sResult<>'' Then
begin
sl:=TStringList.Create;
sl.Delimiter :=';';
sl.DelimitedText := Trim(sResult);
if sl.Count=1 then
begin
try
QryTmpB:=TADOQuery.Create(nil);
QryTmpB.Connection:=dlladocn;
QryTmpB.EnableBCD :=False;
QryTmpB.Close;
QryTmpB.SQL.Clear;
QryTmpB.SQL.Add(' SELECT RED03 AS RDD03, '+
' CASE WHEN (RED03=''1'' OR RED03=''2'') THEN SUBSTRING(RED07,1,4) WHEN (RED03=''3'' OR RED03=''5'' OR RED03=''6'' ) THEN '''' END RDD04, '+
' CASE WHEN (RED03=''1'' OR RED03=''2'') THEN SUBSTRING(RED07,6,11) WHEN (RED03=''3'' OR RED03=''5'' OR RED03=''6'' ) THEN SUBSTRING(RED07,1,11) END RDD05, '+
' CASE WHEN (RED03=''1'' OR RED03=''2'') THEN SUBSTRING(RED07,18,4) WHEN (RED03=''3'' OR RED03=''5'' OR RED03=''6'' ) THEN SUBSTRING(RED07,13,4) END RDD06, '+
' RED08 AS RDD07,RED09 AS RDD08,RED10 AS RDD09,RED11 AS RDD10,RED13 AS RDD11,RED12 AS RDD12,'''' AS RDD13, '+
' ISNULL(RED13,0.0)*ISNULL(RED12,0.0)+ISNULL(RED26,0.0)-ISNULL(RED19,0.0) AS RDD14,RED19 AS RDD15,RED06 AS RDD20,'+
' RED05 AS RDD21,RED01 AS RDD22,RED02 AS RDD23,0.0 AS RDD24,RED29 AS RDD25,RED30 AS RDD26,RED28 AS RDD27 '+
' FROM ACRED '+
' INNER JOIN ACREC ON ACREC.REC01=ACRED.RED01 '+
' WHERE ACREC.CONFORM_CODE=''Y'' AND ISNULL(RED28,0.0)-ISNULL(RED19,0.0)<>0 AND RED01+''-''+RED02='+VarToSql(Trim(sl.Strings[0])));
QryTmpB.Open;
if QryTmpB.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmpB.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmpB.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmpB.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmpB.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmpB.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmpB.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmpB.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmpB.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmpB.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmpB.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmpB.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmpB.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmpB.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmpB.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmpB.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmpB.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmpB.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmpB.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmpB.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmpB.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmpB.FieldByName('RDD27').AsFloat;
end;
finally
QryTmpB.Close;
QryTmpB.Free;
end;
end
else
begin
for i:=1 to sl.Count-1 do
begin
if i=1 then
begin
try
QryTmpB:=TADOQuery.Create(nil);
QryTmpB.Connection:=dlladocn;
QryTmpB.EnableBCD :=False;
QryTmpB.Close;
QryTmpB.SQL.Clear;
QryTmpB.SQL.Add(' SELECT RED03 AS RDD03, '+
' CASE WHEN (RED03=''1'' OR RED03=''2'') THEN SUBSTRING(RED07,1,4) WHEN (RED03=''3'' OR RED03=''5'' OR RED03=''6'' ) THEN '''' END RDD04, '+
' CASE WHEN (RED03=''1'' OR RED03=''2'') THEN SUBSTRING(RED07,6,11) WHEN (RED03=''3'' OR RED03=''5'' OR RED03=''6'' ) THEN SUBSTRING(RED07,1,11) END RDD05, '+
' CASE WHEN (RED03=''1'' OR RED03=''2'') THEN SUBSTRING(RED07,18,4) WHEN (RED03=''3'' OR RED03=''5'' OR RED03=''6'' ) THEN SUBSTRING(RED07,13,4) END RDD06, '+
' RED08 AS RDD07,RED09 AS RDD08,RED10 AS RDD09,RED11 AS RDD10,RED13 AS RDD11,RED12 AS RDD12,'''' AS RDD13, '+
' ISNULL(RED13,0.0)*ISNULL(RED12,0.0)+ISNULL(RED26,0.0)-ISNULL(RED19,0.0) AS RDD14,RED19 AS RDD15,RED06 AS RDD20, '+
' RED05 AS RDD21,RED01 AS RDD22,RED02 AS RDD23,0.0 AS RDD24,RED29 AS RDD25,RED30 AS RDD26,RED28 AS RDD27 '+
' FROM ACRED '+
' INNER JOIN ACREC ON ACREC.REC01=ACRED.RED01 '+
' WHERE ACREC.CONFORM_CODE=''Y'' AND ISNULL(RED28,0.0)-ISNULL(RED19,0.0)<>0 AND RED01+''-''+RED02='+VarToSql(Trim(sl.Strings[0])));
QryTmpB.Open;
if QryTmpB.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmpB.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmpB.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmpB.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmpB.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmpB.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmpB.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmpB.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmpB.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmpB.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmpB.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmpB.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmpB.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmpB.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmpB.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmpB.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmpB.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmpB.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmpB.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmpB.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmpB.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmpB.FieldByName('RDD27').AsFloat;
end;
finally
QryTmpB.Close;
QryTmpB.Free;
end;
end
else
begin
QryDetail.Append;
try
QryTmpB:=TADOQuery.Create(nil);
QryTmpB.Connection:=dlladocn;
QryTmpB.EnableBCD :=False;
QryTmpB.Close;
QryTmpB.SQL.Clear;
QryTmpB.SQL.Add(' SELECT RED03 AS RDD03, '+
' CASE WHEN (RED03=''1'' OR RED03=''2'') THEN SUBSTRING(RED07,1,4) WHEN (RED03=''3'' OR RED03=''5'' OR RED03=''6'' ) THEN '''' END RDD04, '+
' CASE WHEN (RED03=''1'' OR RED03=''2'') THEN SUBSTRING(RED07,6,11) WHEN (RED03=''3'' OR RED03=''5'' OR RED03=''6'' ) THEN SUBSTRING(RED07,1,11) END RDD05, '+
' CASE WHEN (RED03=''1'' OR RED03=''2'') THEN SUBSTRING(RED07,18,4) WHEN (RED03=''3'' OR RED03=''5'' OR RED03=''6'' ) THEN SUBSTRING(RED07,13,4) END RDD06, '+
' RED08 AS RDD07,RED09 AS RDD08,RED10 AS RDD09,RED11 AS RDD10,RED13 AS RDD11,RED12 AS RDD12,'''' AS RDD13, '+
' ISNULL(RED13,0.0)*ISNULL(RED12,0.0)+ISNULL(RED26,0.0)-ISNULL(RED19,0.0) AS RDD14,RED19 AS RDD15,RED06 AS RDD20, '+
' RED05 AS RDD21,RED01 AS RDD22,RED02 AS RDD23,0.0 AS RDD24,RED29 AS RDD25,RED30 AS RDD26,RED28 AS RDD27 '+
' FROM ACRED '+
' INNER JOIN ACREC ON ACREC.REC01=ACRED.RED01 '+
' WHERE ACREC.CONFORM_CODE=''Y'' AND ISNULL(RED28,0.0)-ISNULL(RED19,0.0)<>0 AND RED01+''-''+RED02='+VarToSql(Trim(sl.Strings[i-1])));
QryTmpB.Open;
if QryTmpB.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmpB.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmpB.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmpB.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmpB.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmpB.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmpB.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmpB.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmpB.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmpB.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmpB.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmpB.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmpB.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmpB.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmpB.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmpB.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmpB.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmpB.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmpB.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmpB.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmpB.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmpB.FieldByName('RDD27').AsFloat;
end;
finally
QryTmpB.Close;
QryTmpB.Free;
end;
end;
end;
end;
end;
end;
procedure TfrmACRDCD.wwDBCDRDD04KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
Var
vSKRQ:Variant; //收款日期
vSKFS:String; //收款方式
QryTmp,QryTmpA:TADOQuery;
sResult:String;
sl:TStringList;
i:integer;
begin
inherited;
if QryDetail.State in [dsEdit,dsInsert] Then
begin
if Trim(wwDBEdit3.Text)='' Then
begin
Application.MessageBox('客户编号不能为空!','提示信息',MB_IconInformation+MB_OK);
abort;
end;
try
QryTmpA:=TADOQuery.Create(nil);
QryTmpA.Connection:=DllAdoCn;
QryTmpA.EnableBCD :=False;
QryTmpA.Close;
QryTmpA.SQL.Clear;
QryTmpA.SQL.Add(' SELECT RDA04,RDA05,RDA06,RDA08,RDA09,RDA12,RDA14 '+
' FROM ACRDA '+
' WHERE ACRDA.CONFORM_CODE=''Y'' AND RDA11=''2'' AND RDA01='+VarToSql(Trim(QryMaster.FieldByName('RDC09').AsString)));
QryTmpA.Open;
vSKRQ := QryTmpA.FieldByName('RDA06').AsVariant; //收款日期
vSKFS := Trim(QryTmpA.FieldByName('RDA14').AsString); //收款方式
finally
QryTmpA.Close;
QryTmpA.Free;
end;
if Key = VK_F3 then //销货
begin
if not Assigned(frmACRAABHELP) then
begin
frmACRAABHELP := TfrmACRAABHELP.Create(Application);
frmACRAABHELP.sWhere :=' RAA06='+VarToSql(Trim(wwDBEdit3.Text))+' AND ACRAA.CONFORM_CODE=''Y'' AND ISNULL(ACRGA.RGA25,'''')<>''Y'' AND ISNULL(RAB30,0.0)-ISNULL(RAB33,0.0)-ISNULL(RAB37,0.0)>0 ';
frmACRAABHELP.ShowModal;
sResult:=frmACRAABHELP.rtnHelpFieldName;
frmACRAABHELP.Free;
end;
if sResult<>'' Then
begin
sl:=TStringList.Create;
sl.Delimiter :=';';
sl.DelimitedText := Trim(sResult);
if sl.Count=1 then
begin
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''1'' AS RDD03, '+
' SUBSTRING(RAB03,1,4) AS RDD04, '+
' SUBSTRING(RAB03,6,11) AS RDD05, '+
' SUBSTRING(RAB03,18,4) AS RDD06,RAB04 AS RDD07,RAB05 AS RDD08,RAB06 AS RDD09, '+
' RAB09 AS RDD10,RAB08 AS RDD11,RAB10 AS RDD12,RAB12 AS RDD13, '+
' ISNULL(RAB30,0.0)-ISNULL(RAB33,0.0)-ISNULL(RAB37,0.0) AS RDD14, '+
' RAB33 AS RDD15,RAB14 AS RDD20,RAB15 AS RDD21,'''' AS RDD22,'''' AS RDD23, '+
' 0.0 AS RDD24,RAB32 AS RDD25,RAB13 AS RDD26,RAB30 AS RDD27 '+
' FROM ACRAA '+
' INNER JOIN ACRAB ON ACRAA.RAA01=ACRAB.RAB01 '+
' WHERE ACRAA.CONFORM_CODE=''Y'' AND ISNULL(RAB30,0.0)-ISNULL(RAB33,0.0)-ISNULL(RAB37,0.0)>0.0 AND ACRAB.RAB01+''-''+ACRAB.RAB02='+VarToSql(Trim(sl.Strings[0])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end
else
begin
for i:=1 to sl.Count-1 do
begin
if i=1 then
begin
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''1'' AS RDD03, '+
' SUBSTRING(RAB03,1,4) AS RDD04, '+
' SUBSTRING(RAB03,6,11) AS RDD05, '+
' SUBSTRING(RAB03,18,4) AS RDD06,RAB04 AS RDD07,RAB05 AS RDD08,RAB06 AS RDD09, '+
' RAB09 AS RDD10,RAB08 AS RDD11,RAB10 AS RDD12,RAB12 AS RDD13, '+
' ISNULL(RAB30,0.0)-ISNULL(RAB33,0.0)-ISNULL(RAB37,0.0) AS RDD14, '+
' RAB33 AS RDD15,RAB14 AS RDD20,RAB15 AS RDD21,'''' AS RDD22,'''' AS RDD23, '+
' 0.0 AS RDD24,RAB32 AS RDD25,RAB13 AS RDD26,RAB30 AS RDD27 '+
' FROM ACRAA '+
' INNER JOIN ACRAB ON ACRAA.RAA01=ACRAB.RAB01 '+
' WHERE ACRAA.CONFORM_CODE=''Y'' AND ISNULL(RAB30,0.0)-ISNULL(RAB33,0.0)-ISNULL(RAB37,0.0)>0.0 AND ACRAB.RAB01+''-''+ACRAB.RAB02='+VarToSql(Trim(sl.Strings[0])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end
else
begin
QryDetail.Append;
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''1'' AS RDD03, '+
' SUBSTRING(RAB03,1,4) AS RDD04, '+
' SUBSTRING(RAB03,6,11) AS RDD05, '+
' SUBSTRING(RAB03,18,4) AS RDD06,RAB04 AS RDD07,RAB05 AS RDD08,RAB06 AS RDD09, '+
' RAB09 AS RDD10,RAB08 AS RDD11,RAB10 AS RDD12,RAB12 AS RDD13, '+
' ISNULL(RAB30,0.0)-ISNULL(RAB33,0.0)-ISNULL(RAB37,0.0) AS RDD14, '+
' RAB33 AS RDD15,RAB14 AS RDD20,RAB15 AS RDD21,'''' AS RDD22,'''' AS RDD23, '+
' 0.0 AS RDD24,RAB32 AS RDD25,RAB13 AS RDD26,RAB30 AS RDD27 '+
' FROM ACRAA '+
' INNER JOIN ACRAB ON ACRAA.RAA01=ACRAB.RAB01 '+
' WHERE ACRAA.CONFORM_CODE=''Y'' AND ISNULL(RAB30,0.0)-ISNULL(RAB33,0.0)-ISNULL(RAB37,0.0)>0.0 AND ACRAB.RAB01+''-''+ACRAB.RAB02='+VarToSql(Trim(sl.Strings[i-1])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end;
end;
end;
end;
end;
if Key = VK_F5 then //销退
begin
if not Assigned(frmACRBABHELP) then
begin
frmACRBABHELP := TfrmACRBABHELP.Create(Application);
frmACRBABHELP.sWhere :=' RBA06='+VarToSql(Trim(wwDBEdit3.Text))+' AND ACRBA.CONFORM_CODE=''Y'' AND ISNULL(ACRGA.RGA25,'''')<>''Y'' AND ISNULL(RBB31,0.0)-ISNULL(RBB34,0.0)-ISNULL(RBB38,0.0)>0 ';
frmACRBABHELP.ShowModal;
sResult:=frmACRBABHELP.rtnHelpFieldName;
frmACRBABHELP.Free;
end;
if sResult<>'' Then
begin
sl:=TStringList.Create;
sl.Delimiter :=';';
sl.DelimitedText := Trim(sResult);
if sl.Count=1 then
begin
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''2'' AS RDD03, '+
' SUBSTRING(RBB03,1,4) AS RDD04, '+
' SUBSTRING(RBB03,6,11) AS RDD05, '+
' SUBSTRING(RBB03,18,4) AS RDD06,RBB04 AS RDD07,RBB05 AS RDD08,RBB06 AS RDD09, '+
' RBB08 AS RDD10,(-1)*RBB07 AS RDD11,RBB09 AS RDD12,RBB13 AS RDD13, '+
' (-1)*(ISNULL(RBB31,0.0)-ISNULL(RBB34,0.0)-ISNULL(RBB38,0.0)) AS RDD14, '+
' RBB34 AS RDD15,RBB15 AS RDD20,RBB16 AS RDD21,'''' AS RDD22,'''' AS RDD23, '+
' 0.0 AS RDD24,RBB33 AS RDD25,RBB14 AS RDD26,(-1)*ISNULL(RBB31,0.0) AS RDD27 '+
' FROM ACRBA '+
' INNER JOIN ACRBB ON ACRBA.RBA01=ACRBB.RBB01 '+
' WHERE ACRBA.CONFORM_CODE=''Y'' AND ISNULL(RBB31,0.0)-ISNULL(RBB34,0.0)-ISNULL(RBB38,0.0)>0.0 AND ACRBB.RBB01+''-''+ACRBB.RBB02='+VarToSql(Trim(sl.Strings[0])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end
else
begin
for i:=1 to sl.Count-1 do
begin
if i=1 then
begin
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''2'' AS RDD03, '+
' SUBSTRING(RBB03,1,4) AS RDD04, '+
' SUBSTRING(RBB03,6,11) AS RDD05, '+
' SUBSTRING(RBB03,18,4) AS RDD06,RBB04 AS RDD07,RBB05 AS RDD08,RBB06 AS RDD09, '+
' RBB08 AS RDD10,(-1)*RBB07 AS RDD11,RBB09 AS RDD12,RBB13 AS RDD13, '+
' (-1)*(ISNULL(RBB31,0.0)-ISNULL(RBB34,0.0)-ISNULL(RBB38,0.0)) AS RDD14, '+
' RBB34 AS RDD15,RBB15 AS RDD20,RBB16 AS RDD21,'''' AS RDD22,'''' AS RDD23, '+
' 0.0 AS RDD24,RBB33 AS RDD25,RBB14 AS RDD26,(-1)*ISNULL(RBB31,0.0) AS RDD27 '+
' FROM ACRBA '+
' INNER JOIN ACRBB ON ACRBA.RBA01=ACRBB.RBB01 '+
' WHERE ACRBA.CONFORM_CODE=''Y'' AND ISNULL(RBB31,0.0)-ISNULL(RBB34,0.0)-ISNULL(RBB38,0.0)>0.0 AND ACRBB.RBB01+''-''+ACRBB.RBB02='+VarToSql(Trim(sl.Strings[0])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end
else
begin
QryDetail.Append;
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''2'' AS RDD03, '+
' SUBSTRING(RBB03,1,4) AS RDD04, '+
' SUBSTRING(RBB03,6,11) AS RDD05, '+
' SUBSTRING(RBB03,18,4) AS RDD06,RBB04 AS RDD07,RBB05 AS RDD08,RBB06 AS RDD09, '+
' RBB08 AS RDD10,(-1)*RBB07 AS RDD11,RBB09 AS RDD12,RBB13 AS RDD13, '+
' (-1)*(ISNULL(RBB31,0.0)-ISNULL(RBB34,0.0)-ISNULL(RBB38,0.0)) AS RDD14, '+
' RBB34 AS RDD15,RBB15 AS RDD20,RBB16 AS RDD21,'''' AS RDD22,'''' AS RDD23, '+
' 0.0 AS RDD24,RBB33 AS RDD25,RBB14 AS RDD26,(-1)*ISNULL(RBB31,0.0) AS RDD27 '+
' FROM ACRBA '+
' INNER JOIN ACRBB ON ACRBA.RBA01=ACRBB.RBB01 '+
' WHERE ACRBA.CONFORM_CODE=''Y'' AND ISNULL(RBB31,0.0)-ISNULL(RBB34,0.0)-ISNULL(RBB38,0.0)>0.0 AND ACRBB.RBB01+''-''+ACRBB.RBB02='+VarToSql(Trim(sl.Strings[i-1])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end;
end;
end;
end;
end;
if Key = VK_F6 then //其它
begin
if not Assigned(frmACRJABHELP) then
begin
frmACRJABHELP := TfrmACRJABHELP.Create(Application);
frmACRJABHELP.sWhere :=' RJA06='+VarToSql(Trim(wwDBEdit3.Text))+' AND ISNULL(ACRGA.RGA25,'''')<>''Y'' AND ACRJA.CONFORM_CODE=''Y'' AND ISNULL(RJB04,0.0)-ISNULL(RJB07,0.0)-ISNULL(RJB09,0.0)>0 ';
frmACRJABHELP.ShowModal;
sResult:=frmACRJABHELP.rtnHelpFieldName;
frmACRJABHELP.Free;
end;
if sResult<>'' Then
begin
sl:=TStringList.Create;
sl.Delimiter :=';';
sl.DelimitedText := Trim(sResult);
if sl.Count=1 then
begin
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''3'' AS RDD03,'+
' '''' AS RDD04, '+
' RJB01 AS RDD05, '+
' RJB02 AS RDD06,'''' AS RDD07,RJB03 AS RDD08,RJB16 AS RDD09,RJB14 AS RDD10,RJB13 AS RDD11,RJB15 AS RDD12,RJB05 AS RDD13, '+
' ISNULL(RJB04,0.0)-ISNULL(RJB07,0.0)-ISNULL(RJB09,0.0) AS RDD14, '+
' RJB07 AS RDD15,RJB12 AS RDD20,RJB10 AS RDD21,'''' AS RDD22,'''' AS RDD23, '+
' 0.0 AS RDD24,'''' AS RDD25,RJB11 AS RDD26,RJB04 AS RDD27 '+
' FROM ACRJA '+
' INNER JOIN ACRJB ON ACRJA.RJA01=ACRJB.RJB01 '+
' WHERE ACRJA.CONFORM_CODE =''Y'' AND ACRJB.RJB01+''-''+ACRJB.RJB02='+VarToSql(Trim(sl.Strings[0])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end
else
begin
for i:=1 to sl.Count-1 do
begin
if i=1 then
begin
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''3'' AS RDD03,'+
' '''' AS RDD04, '+
' RJB01 AS RDD05, '+
' RJB02 AS RDD06,'''' AS RDD07,RJB03 AS RDD08,RJB16 AS RDD09,RJB14 AS RDD10,RJB13 AS RDD11,RJB15 AS RDD12,RJB05 AS RDD13, '+
' ISNULL(RJB04,0.0)-ISNULL(RJB07,0.0)-ISNULL(RJB09,0.0) AS RDD14, '+
' RJB07 AS RDD15,RJB12 AS RDD20,RJB10 AS RDD21,'''' AS RDD22,'''' AS RDD23, '+
' 0.0 AS RDD24,'''' AS RDD25,RJB11 AS RDD26,RJB04 AS RDD27 '+
' FROM ACRJA '+
' INNER JOIN ACRJB ON ACRJA.RJA01=ACRJB.RJB01 '+
' WHERE ACRJA.CONFORM_CODE =''Y'' AND ACRJB.RJB01+''-''+ACRJB.RJB02='+VarToSql(Trim(sl.Strings[0])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end
else
begin
QryDetail.Append;
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''3'' AS RDD03,'+
' '''' AS RDD04, '+
' RJB01 AS RDD05, '+
' RJB02 AS RDD06,'''' AS RDD07,RJB03 AS RDD08,RJB16 AS RDD09,RJB14 AS RDD10,RJB13 AS RDD11,RJB15 AS RDD12,RJB05 AS RDD13, '+
' ISNULL(RJB04,0.0)-ISNULL(RJB07,0.0)-ISNULL(RJB09,0.0) AS RDD14, '+
' RJB07 AS RDD15,RJB12 AS RDD20,RJB10 AS RDD21,'''' AS RDD22,'''' AS RDD23, '+
' 0.0 AS RDD24,'''' AS RDD25,RJB11 AS RDD26,RJB04 AS RDD27 '+
' FROM ACRJA '+
' INNER JOIN ACRJB ON ACRJA.RJA01=ACRJB.RJB01 '+
' WHERE ACRJA.CONFORM_CODE =''Y'' AND ACRJB.RJB01+''-''+ACRJB.RJB02='+VarToSql(Trim(sl.Strings[i-1])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end;
end;
end;
end;
end;
if Key = VK_F7 then //其它销货
begin
if not Assigned(frmACRACDHELP) then
begin
frmACRACDHELP := TfrmACRACDHELP.Create(Application);
frmACRACDHELP.sWhere :=' RAC06='+VarToSql(Trim(wwDBEdit3.Text))+' AND ISNULL(ACRGA.RGA25,'''')<>''Y'' AND ACRAC.CONFORM_CODE=''Y'' AND ISNULL(RAD30,0.0)-ISNULL(RAD33,0.0)-ISNULL(RAD37,0.0)>0 ';
frmACRACDHELP.ShowModal;
sResult:=frmACRACDHELP.rtnHelpFieldName;
frmACRACDHELP.Free;
end;
if sResult<>'' Then
begin
sl:=TStringList.Create;
sl.Delimiter :=';';
sl.DelimitedText := Trim(sResult);
if sl.Count=1 then
begin
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''5'' AS RDD03,'''' AS RDD04,RAD01 AS RDD05,RAD02 AS RDD06,RAD04 AS RDD07, '+
' RAD05 AS RDD08,RAD06 AS RDD09,RAD09 AS RDD10,RAD08 AS RDD11,RAD10 AS RDD12,RAD12 AS RDD13, '+
' ISNULL(RAD30,0.0)-ISNULL(RAD33,0.0)-ISNULL(RAD37,0.0) AS RDD14, '+
' RAD33 AS RDD15,RAD14 AS RDD20,RAD15 AS RDD21,'''' AS RDD22,'''' AS RDD23,0.0 AS RDD24,RAD32 AS RDD25,RAD13 AS RDD26,RAD30 AS RDD27 '+
' FROM ACRAC '+
' INNER JOIN ACRAD ON ACRAD.RAD01=ACRAC.RAC01 '+
' WHERE ACRAC.CONFORM_CODE=''Y'' AND ACRAD.RAD01+''-''+ACRAD.RAD02='+VarToSql(Trim(sl.Strings[0])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end
else
begin
for i:=1 to sl.Count-1 do
begin
if i=1 then
begin
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''5'' AS RDD03,'''' AS RDD04,RAD01 AS RDD05,RAD02 AS RDD06,RAD04 AS RDD07, '+
' RAD05 AS RDD08,RAD06 AS RDD09,RAD09 AS RDD10,RAD08 AS RDD11,RAD10 AS RDD12,RAD12 AS RDD13, '+
' ISNULL(RAD30,0.0)-ISNULL(RAD33,0.0)-ISNULL(RAD37,0.0) AS RDD14, '+
' RAD33 AS RDD15,RAD14 AS RDD20,RAD15 AS RDD21,'''' AS RDD22,'''' AS RDD23,0.0 AS RDD24,RAD32 AS RDD25,RAD13 AS RDD26,RAD30 AS RDD27 '+
' FROM ACRAC '+
' INNER JOIN ACRAD ON ACRAD.RAD01=ACRAC.RAC01 '+
' WHERE ACRAC.CONFORM_CODE=''Y'' AND ACRAD.RAD01+''-''+ACRAD.RAD02='+VarToSql(Trim(sl.Strings[0])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end
else
begin
QryDetail.Append;
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''5'' AS RDD03,'''' AS RDD04,RAD01 AS RDD05,RAD02 AS RDD06,RAD04 AS RDD07, '+
' RAD05 AS RDD08,RAD06 AS RDD09,RAD09 AS RDD10,RAD08 AS RDD11,RAD10 AS RDD12,RAD12 AS RDD13, '+
' ISNULL(RAD30,0.0)-ISNULL(RAD33,0.0)-ISNULL(RAD37,0.0) AS RDD14, '+
' RAD33 AS RDD15,RAD14 AS RDD20,RAD15 AS RDD21,'''' AS RDD22,'''' AS RDD23,0.0 AS RDD24,RAD32 AS RDD25,RAD13 AS RDD26,RAD30 AS RDD27 '+
' FROM ACRAC '+
' INNER JOIN ACRAD ON ACRAD.RAD01=ACRAC.RAC01 '+
' WHERE ACRAC.CONFORM_CODE=''Y'' AND ACRAD.RAD01+''-''+ACRAD.RAD02='+VarToSql(Trim(sl.Strings[i-1])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end;
end;
end;
end;
end;
if Key = VK_F8 then //其它折让
begin
if not Assigned(frmACRAEFHELP) then
begin
frmACRAEFHELP := TfrmACRAEFHELP.Create(Application);
frmACRAEFHELP.sWhere :=' RAE06='+VarToSql(Trim(wwDBEdit3.Text))+' AND ISNULL(ACRGA.RGA25,'''')<>''Y'' AND ACRAE.CONFORM_CODE=''Y'' AND ISNULL(RAF30,0.0)-ISNULL(RAF33,0.0)-ISNULL(RAF37,0.0)>0 ';
frmACRAEFHELP.ShowModal;
sResult:=frmACRAEFHELP.rtnHelpFieldName;
frmACRAEFHELP.Free;
end;
if sResult<>'' Then
begin
sl:=TStringList.Create;
sl.Delimiter :=';';
sl.DelimitedText := Trim(sResult);
if sl.Count=1 then
begin
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''6'' AS RDD03,'''' AS RDD04,RAF01 AS RDD05,RAF02 AS RDD06,RAF04 AS RDD07,'+
' RAF05 AS RDD08,RAF06 AS RDD09,RAF09 AS RDD10,(-1)*ISNULL(RAF08,0.0) AS RDD11,RAF10 AS RDD12,RAF12 AS RDD13, '+
' (-1)*(ISNULL(RAF30,0.0)-ISNULL(RAF33,0.0)-ISNULL(RAF37,0.0)) AS RDD14, '+
' RAF33 AS RDD15,RAF14 AS RDD20,RAF15 AS RDD21,'''' AS RDD22,'''' AS RDD23,0.0 AS RDD24,RAF32 AS RDD25,RAF13 AS RDD26,'+
' (-1)*ISNULL(RAF30,0.0) AS RDD27'+
' FROM ACRAE '+
' INNER JOIN ACRAF ON ACRAF.RAF01=ACRAE.RAE01 '+
' WHERE ACRAE.CONFORM_CODE=''Y'' AND ACRAF.RAF01+''-''+ACRAF.RAF02='+VarToSql(Trim(sl.Strings[0])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end
else
begin
for i:=1 to sl.Count-1 do
begin
if i=1 then
begin
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''6'' AS RDD03,'''' AS RDD04,RAF01 AS RDD05,RAF02 AS RDD06,RAF04 AS RDD07,'+
' RAF05 AS RDD08,RAF06 AS RDD09,RAF09 AS RDD10,(-1)*ISNULL(RAF08,0.0) AS RDD11,RAF10 AS RDD12,RAF12 AS RDD13, '+
' (-1)*(ISNULL(RAF30,0.0)-ISNULL(RAF33,0.0)-ISNULL(RAF37,0.0)) AS RDD14, '+
' RAF33 AS RDD15,RAF14 AS RDD20,RAF15 AS RDD21,'''' AS RDD22,'''' AS RDD23,0.0 AS RDD24,RAF32 AS RDD25,RAF13 AS RDD26,(-1)*ISNULL(RAF30,0.0) AS RDD27 '+
' FROM ACRAE '+
' INNER JOIN ACRAF ON ACRAF.RAF01=ACRAE.RAE01 '+
' WHERE ACRAE.CONFORM_CODE=''Y'' AND ACRAF.RAF01+''-''+ACRAF.RAF02='+VarToSql(Trim(sl.Strings[0])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end
else
begin
QryDetail.Append;
try
QryTmp:=TADOQuery.Create(nil);
QryTmp.Connection:=dlladocn;
QryTmp.EnableBCD :=False;
QryTmp.Close;
QryTmp.SQL.Clear;
QryTmp.SQL.Add(' SELECT ''6'' AS RDD03,'''' AS RDD04,RAF01 AS RDD05,RAF02 AS RDD06,RAF04 AS RDD07,'+
' RAF05 AS RDD08,RAF06 AS RDD09,RAF09 AS RDD10,(-1)*ISNULL(RAF08,0.0) AS RDD11,RAF10 AS RDD12,RAF12 AS RDD13, '+
' (-1)*(ISNULL(RAF30,0.0)-ISNULL(RAF33,0.0)-ISNULL(RAF37,0.0)) AS RDD14, '+
' RAF33 AS RDD15,RAF14 AS RDD20,RAF15 AS RDD21,'''' AS RDD22,'''' AS RDD23,0.0 AS RDD24,RAF32 AS RDD25,RAF13 AS RDD26,(-1)*ISNULL(RAF30,0.0) AS RDD27 '+
' FROM ACRAE '+
' INNER JOIN ACRAF ON ACRAF.RAF01=ACRAE.RAE01 '+
' WHERE ACRAE.CONFORM_CODE=''Y'' AND ACRAF.RAF01+''-''+ACRAF.RAF02='+VarToSql(Trim(sl.Strings[i-1])));
QryTmp.Open;
if QryTmp.RecordCount >0 Then
begin
QryDetail.Edit;
QryDetail.FieldByName('RDD03').AsString :=QryTmp.FieldByName('RDD03').AsString;
QryDetail.FieldByName('RDD04').AsString :=QryTmp.FieldByName('RDD04').AsString;
QryDetail.FieldByName('RDD05').AsString :=QryTmp.FieldByName('RDD05').AsString;
QryDetail.FieldByName('RDD06').AsString :=QryTmp.FieldByName('RDD06').AsString;
QryDetail.FieldByName('RDD07').AsString :=QryTmp.FieldByName('RDD07').AsString;
QryDetail.FieldByName('RDD08').AsString :=QryTmp.FieldByName('RDD08').AsString;
QryDetail.FieldByName('RDD09').AsString :=QryTmp.FieldByName('RDD09').AsString;
QryDetail.FieldByName('RDD10').AsString :=QryTmp.FieldByName('RDD10').AsString;
QryDetail.FieldByName('RDD11').AsFloat :=QryTmp.FieldByName('RDD11').AsFloat;
QryDetail.FieldByName('RDD12').AsFloat :=QryTmp.FieldByName('RDD12').AsFloat;
QryDetail.FieldByName('RDD13').AsString :=QryTmp.FieldByName('RDD13').AsString;
QryDetail.FieldByName('RDD14').AsFloat :=QryTmp.FieldByName('RDD14').AsFloat;
QryDetail.FieldByName('RDD15').AsFloat :=QryTmp.FieldByName('RDD15').AsFloat;
QryDetail.FieldByName('RDD18').AsVariant :=vSKRQ;
QryDetail.FieldByName('RDD19').AsString :=vSKFS;
QryDetail.FieldByName('RDD20').AsString :=QryTmp.FieldByName('RDD20').AsString;
QryDetail.FieldByName('RDD21').AsString :=QryTmp.FieldByName('RDD21').AsString;
QryDetail.FieldByName('RDD22').AsString :=QryTmp.FieldByName('RDD22').AsString;
QryDetail.FieldByName('RDD23').AsString :=QryTmp.FieldByName('RDD23').AsString;
QryDetail.FieldByName('RDD24').AsFloat :=QryTmp.FieldByName('RDD24').AsFloat;
QryDetail.FieldByName('RDD25').AsString :=QryTmp.FieldByName('RDD25').AsString;
QryDetail.FieldByName('RDD26').AsString :=QryTmp.FieldByName('RDD26').AsString;
QryDetail.FieldByName('RDD27').AsFloat :=QryTmp.FieldByName('RDD27').AsFloat;
end;
finally
QryTmp.Close;
QryTmp.Free;
end;
end;
end;
end;
end;
end;
end;
end;
initialization
RegisterClass(TfrmACRDCD);
finalization
UnRegisterClass(TfrmACRDCD);
end.