unit U_SXKCCK; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, MovePanel, cxCheckBox, Menus, ComCtrls, BtnEdit, ShellAPI, cxTextEdit, RM_Common, RM_Class, RM_GridReport, RM_System, RM_Dataset, RM_e_Xls, cxCalendar, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu,U_BaseList; type TfrmSXKCCK = class(TFrmBaseList) ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; DS_MainSel: TDataSource; cxGridPopupMenu4: TcxGridPopupMenu; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; CDS_YanSe: TClientDataSet; RMXLSExport1: TRMXLSExport; RMDBMX: TRMDBDataSet; RM1: TRMGridReport; DS_YanSe: TDataSource; Panel1: TPanel; Panel3: TPanel; Label5: TLabel; CKOrdNo: TEdit; cxGrid5: TcxGrid; TV5: TcxGridDBTableView; v1Column12: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column16: TcxGridDBColumn; cxGrid5Level1: TcxGridLevel; Button2: TButton; Button1: TButton; Panel2: TPanel; Button3: TButton; Button4: TButton; cxGrid1: TcxGrid; TV1: TcxGridDBTableView; cxGridLevel2: TcxGridLevel; Panel4: TPanel; V1Column15: TcxGridDBColumn; V1Column17: TcxGridDBColumn; V1Column19: TcxGridDBColumn; V1Column20: TcxGridDBColumn; V1Column21: TcxGridDBColumn; V1Column22: TcxGridDBColumn; V1Column23: TcxGridDBColumn; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; cxGrid3: TcxGrid; TV3: TcxGridDBTableView; cxGridDBColumn8: TcxGridDBColumn; cxGridDBColumn11: TcxGridDBColumn; cxGridDBColumn12: TcxGridDBColumn; cxGridDBColumn13: TcxGridDBColumn; cxGridDBColumn14: TcxGridDBColumn; cxGridLevel3: TcxGridLevel; Panel6: TPanel; Panel5: TPanel; Panel7: TPanel; Button5: TButton; Panel8: TPanel; LabHZ: TLabel; CDS_MainSel: TClientDataSet; CDS_GangHao: TClientDataSet; CDS_TuoTuan: TClientDataSet; DS_GangHao: TDataSource; DS_TuoTuan: TDataSource; V1Column10: TcxGridDBColumn; V2Column2: TcxGridDBColumn; V3Column1: TcxGridDBColumn; V3Column2: TcxGridDBColumn; V2Column4: TcxGridDBColumn; V2Column7: TcxGridDBColumn; V1Column11: TcxGridDBColumn; V2Column8: TcxGridDBColumn; V3Column3: TcxGridDBColumn; CDS_YanSeSel: TClientDataSet; CDS_GangHaoSel: TClientDataSet; CDS_TuoTuanSel: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; cxGridPopupMenu2: TcxGridPopupMenu; cxGridPopupMenu3: TcxGridPopupMenu; cxGrid4: TcxGrid; Tv7: TcxGridDBTableView; cv2Column10: TcxGridDBColumn; cxGridDBColumn9: TcxGridDBColumn; cv2Column4: TcxGridDBColumn; cv2Column12: TcxGridDBColumn; cxGridDBColumn10: TcxGridDBColumn; cv2Column6: TcxGridDBColumn; cxGridDBColumn15: TcxGridDBColumn; cxGridDBColumn16: TcxGridDBColumn; cxGridLevel4: TcxGridLevel; btnCX: TButton; cxGrid6: TcxGrid; Tv6: TcxGridDBTableView; cxGridDBColumn19: TcxGridDBColumn; v1CustomerNoName: TcxGridDBColumn; cxGridDBColumn20: TcxGridDBColumn; v1OrdDate: TcxGridDBColumn; v1Column26: TcxGridDBColumn; cxGridDBColumn21: TcxGridDBColumn; cxGridDBColumn24: TcxGridDBColumn; cxGridDBColumn25: TcxGridDBColumn; cxGridDBColumn26: TcxGridDBColumn; v1Column27: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; DataSource6: TDataSource; ClientDataSet6: TClientDataSet; ClientDataSet7: TClientDataSet; DataSource7: TDataSource; cxStyleRepository2: TcxStyleRepository; cxStyle2: TcxStyle; CRTime: TDateTimePicker; edtCKCS: TEdit; Tv7Column1: TcxGridDBColumn; TV5Column1: TcxGridDBColumn; PopupMenu1: TPopupMenu; N1: TMenuItem; PopupMenu2: TPopupMenu; MenuItem1: TMenuItem; N2: TMenuItem; pmCDS_YanSe: TPopupMenu; MenuItem2: TMenuItem; MenuItem3: TMenuItem; pmGangHao: TPopupMenu; MenuItem4: TMenuItem; MenuItem5: TMenuItem; pmTuoTuan: TPopupMenu; MenuItem6: TMenuItem; MenuItem7: TMenuItem; Tv7Column2: TcxGridDBColumn; Tv7Column3: TcxGridDBColumn; TV5Column2: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure FormShow(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure btnCXClick(Sender: TObject); procedure Button5Click(Sender: TObject); procedure V1Column10PropertiesEditValueChanged(Sender: TObject); procedure V2Column2PropertiesEditValueChanged(Sender: TObject); procedure V3Column1PropertiesEditValueChanged(Sender: TObject); procedure v1Column12PropertiesEditValueChanged(Sender: TObject); procedure N1Click(Sender: TObject); procedure MenuItem1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure MenuItem4Click(Sender: TObject); procedure MenuItem5Click(Sender: TObject); procedure MenuItem2Click(Sender: TObject); procedure MenuItem3Click(Sender: TObject); procedure MenuItem6Click(Sender: TObject); procedure MenuItem7Click(Sender: TObject); private { Private declarations } fsjYS, fsjGH, fsjTP: string; XZPS: Integer; XZMS, XZKg, XZYS: Double; procedure InitKC(); procedure initMXKC(); procedure initHZData(); procedure initLab(); procedure FHSQ(); public { Public declarations } end; var frmSXKCCK: TfrmSXKCCK; implementation uses U_DataLink, U_RTFun, MMSystem, U_FHSQListSel, U_CKProductBCPKCListSel; {$R *.dfm} procedure TfrmSXKCCK.InitKC(); var fwhere, Pwhere: string; begin Pwhere := SGetFilters(Panel1, 1, 2); if trim(Pwhere) <> '' then fwhere := fwhere + ' where ' + trim(Pwhere); with ADOQueryTemp do begin Filtered := False; Close; sql.Clear; sql.Add(' Select AA.* '); sql.Add(' ,B.OrderNo,B.MPRTCode,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ '); sql.Add(' ,C.PRTColor,C.PRTEColor,C.PRTHX,C.PrtKuanNo,C.PRTColorNo '); sql.Add(' from(select A.MainId,A.Subid,QtyY=sum(Cast(A.Qty*1.0936 as decimal(18,1))),QtyM=sum(Qty),QtyKg=Sum(KgQty),PS=Count(*) '); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC D on A.MJID=D.MJID '); sql.Add(' where A.CRFlag=''入库'' and A.CPType=''正品'' and D.KCValid=''Y'' '); sql.Add(' and exists(select SubId from FHSQ_Sub X where X.SubId=A.SubId and X.FSId=' + QUOTEDSTR(CKOrdNo.Text) + ') '); sql.Add(' Group by A.MainId,A.Subid) AA '); sql.Add(' inner join JYOrder_Main B on AA.MainId=B.MainId '); sql.Add(' inner join JYOrder_Sub C on AA.SubId=C.SubId '); Open; end; SCreateCDS(ADOQueryTemp, CDS_YanSe); SInitCDSData(ADOQueryTemp, CDS_YanSe); // SelOKNo(CDS_YanSe, True); with ADOQueryTemp do begin Filtered := False; Close; sql.Clear; sql.Add(' Select AA.* '); sql.Add(' ,B.OrderNo,B.MPRTCode,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ '); sql.Add(' ,C.PRTColor,C.PRTEColor,C.PRTHX,C.PrtKuanNo,C.PRTColorNo '); sql.Add(' from(select A.MainId,A.Subid,A.APID,A.GangHao,QtyY=sum(Cast(A.Qty*1.0936 as decimal(18,1))),QtyM=sum(Qty),QtyKg=Sum(KgQty),PS=Count(*) '); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC D on A.MJID=D.MJID '); sql.Add(' where A.CRFlag=''入库'' and A.CPType=''正品'' and D.KCValid=''Y'' '); sql.Add(' and exists(select SubId from FHSQ_Sub X where X.SubId=A.SubId and X.FSId=' + QUOTEDSTR(CKOrdNo.Text) + ') '); sql.Add(' Group by A.MainId,A.Subid,A.APID,A.GangHao) AA '); sql.Add(' inner join JYOrder_Main B on AA.MainId=B.MainId '); sql.Add(' inner join JYOrder_Sub C on AA.SubId=C.SubId '); Open; end; SCreateCDS(ADOQueryTemp, CDS_GangHao); SInitCDSData(ADOQueryTemp, CDS_GangHao); // SelOKNo(CDS_GangHao, True); with ADOQueryTemp do begin Filtered := False; Close; sql.Clear; sql.Add(' Select AA.* '); sql.Add(' ,B.OrderNo,B.MPRTCode,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ '); sql.Add(' from(select A.MainId,A.RKOrdID,A.KuangHao,QtyY=sum(Cast(A.Qty*1.0936 as decimal(18,1))),QtyM=sum(Qty),QtyKg=Sum(KgQty),PS=Count(*) '); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC D on A.MJID=D.MJID '); sql.Add(' where A.CRFlag=''入库'' and A.CPType=''正品'' and D.KCValid=''Y'' '); sql.Add(' and exists(select SubId from FHSQ_Sub X where X.SubId=A.SubId and X.FSId=' + QUOTEDSTR(CKOrdNo.Text) + ') '); sql.Add(' Group by A.MainId,A.RKOrdID,A.KuangHao) AA '); sql.Add(' inner join JYOrder_Main B on AA.MainId=B.MainId '); Open; end; SCreateCDS(ADOQueryTemp, CDS_TuoTuan); SInitCDSData(ADOQueryTemp, CDS_TuoTuan); // SelOKNo(CDS_TuoTuan, True); with ADOQueryTemp do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.*,QtyY=Cast(A.Qty*1.0936 as decimal(18,1)) '); sql.Add(' ,B.OrderNo,B.MPRTCode,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ '); sql.Add(' ,C.PRTColor,C.PRTEColor,C.PRTHX,C.PrtKuanNo '); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC D on A.MJID=D.MJID '); sql.Add(' inner join JYOrder_Main B on A.MainId=B.MainId '); sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId '); sql.Add(' where A.CRFlag=''入库'' and A.CPType=''正品'' and D.KCValid=''Y'' '); sql.Add(' and exists(select SubId from FHSQ_Sub X where X.SubId=A.SubId and X.FSId=' + QUOTEDSTR(CKOrdNo.Text) + ') '); Open; end; SCreateCDS(ADOQueryTemp, CDS_MainSel); SInitCDSData(ADOQueryTemp, CDS_MainSel); // SelOKNo(CDS_MainSel, True); end; procedure TfrmSXKCCK.initMXKC(); var fsj: string; begin fsj := ''; with CDS_YanSeSel do begin First; while not eof do begin if Trim(fsj) = '' then begin fsj := fsj + '''' + Trim(fieldbyname('SubId').AsString) + ''''; end else fsj := fsj + ',' + '''' + Trim(fieldbyname('SubId').AsString) + ''''; Next; end; end; fsjYS := fsj; fsj := ''; with CDS_GangHaoSel do begin First; while not eof do begin if Trim(fsj) = '' then begin fsj := fsj + '''' + Trim(fieldbyname('APId').AsString) + ''''; end else fsj := fsj + ',' + '''' + Trim(fieldbyname('APId').AsString) + ''''; Next; end; end; fsjGH := fsj; fsj := ''; with CDS_TuoTuanSel do begin First; while not eof do begin if Trim(fsj) = '' then begin fsj := fsj + '''' + Trim(fieldbyname('RKOrdID').AsString) + ''''; end else fsj := fsj + ',' + '''' + Trim(fieldbyname('RKOrdID').AsString) + ''''; Next; end; end; fsjTP := fsj; with ADOQueryTemp do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.*,QtyY=Cast(A.Qty*1.0936 as decimal(18,1)) '); sql.Add(' ,B.OrderNo,B.MPRTCode,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ '); sql.Add(' ,C.PRTColor,C.PRTEColor,C.PRTHX,C.PrtKuanNo '); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC D on A.MJID=D.MJID '); sql.Add(' inner join JYOrder_Main B on A.MainId=B.MainId '); sql.Add(' inner join JYOrder_Sub C on b.mainid=c.mainid and A.SubId=C.SubId '); //A.SubId=C.SubId sql.Add(' where A.CRFlag=''入库'' and A.CPType=''正品'' and D.KCValid=''Y'' '); sql.Add(' and exists(select SubId from FHSQ_Sub X where X.SubId=A.SubId and X.FSId=' + QUOTEDSTR(CKOrdNo.Text) + ') '); if Trim(fsjYS) <> '' then begin sql.Add(' and A.Subid in(' + Trim(fsjYS) + ')'); end; if Trim(fsjGH) <> '' then begin sql.Add(' and A.APid in(' + Trim(fsjGH) + ')'); end; if Trim(fsjTP) <> '' then begin sql.Add(' and A.RKOrdID in(' + Trim(fsjTP) + ')'); end; Open; end; SCreateCDS(ADOQueryTemp, CDS_MainSel); SInitCDSData(ADOQueryTemp, CDS_MainSel); SelOKNo(CDS_MainSel, True); initHZData(); initLab(); end; procedure TfrmSXKCCK.initHZData(); begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add(' select PS=count(*),QtyY=sum(MJYLen),QtyKg=sum(KgQty),QtyM=sum(Qty) '); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC D on A.MJID=D.MJID '); sql.Add(' where A.CRFlag=''入库'' and A.CPType=''正品'' and D.KCValid=''Y'' '); sql.Add(' and exists(select SubId from FHSQ_Sub X where X.SubId=A.SubId and X.FSId=' + QUOTEDSTR(CKOrdNo.Text) + ') '); if Trim(fsjYS) <> '' then begin sql.Add(' and A.Subid in(' + Trim(fsjYS) + ')'); end; if Trim(fsjGH) <> '' then begin sql.Add(' and A.APid in(' + Trim(fsjGH) + ')'); end; if Trim(fsjTP) <> '' then begin sql.Add(' and A.RKOrdID in(' + Trim(fsjTP) + ')'); end; Open; end; if Trim(ADOQueryTemp.fieldbyname('PS').AsString) <> '' then begin XZPS := ADOQueryTemp.fieldbyname('PS').Value; end else begin XZPS := 0; end; if Trim(ADOQueryTemp.fieldbyname('QtyM').AsString) <> '' then begin XZMS := ADOQueryTemp.fieldbyname('QtyM').Value; end else begin XZMS := 0; end; if Trim(ADOQueryTemp.fieldbyname('QtyKg').AsString) <> '' then begin XZKg := ADOQueryTemp.fieldbyname('QtyKg').Value; end else begin XZKg := 0; end; if Trim(ADOQueryTemp.fieldbyname('QtyY').AsString) <> '' then begin XZYS := ADOQueryTemp.fieldbyname('QtyY').Value; end else begin XZYS := 0; end; end; procedure TfrmSXKCCK.initLab(); begin LabHZ.Caption := '选中:' + inttostr(XZPS) + '匹,' + ' ' + FloatToStr(XZMS) + '米,' + ' ' + FloatToStr(XZYS) + '码,' + ' ' + FloatToStr(XZKg) + '公斤'; end; procedure TfrmSXKCCK.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmSXKCCK.FormDestroy(Sender: TObject); begin inherited; frmSXKCCK := nil; end; procedure TfrmSXKCCK.FormShow(Sender: TObject); begin inherited; CRTime.DateTime := SGetServerDate(ADOQueryTemp); ReadCxGrid('扫描出库1', Tv1, '成品仓库'); ReadCxGrid('扫描出库2', Tv2, '成品仓库'); ReadCxGrid('扫描出库3', Tv3, '成品仓库'); ReadCxGrid('扫描出库5', Tv5, '成品仓库'); end; procedure TfrmSXKCCK.Button2Click(Sender: TObject); begin Close; WriteCxGrid('扫描出库1', Tv1, '成品仓库'); WriteCxGrid('扫描出库2', Tv2, '成品仓库'); WriteCxGrid('扫描出库3', Tv3, '成品仓库'); WriteCxGrid('扫描出库5', Tv5, '成品仓库'); end; procedure TfrmSXKCCK.Button1Click(Sender: TObject); var MKey: Char; begin try frmFHSQListSel := TfrmFHSQListSel.Create(self); with frmFHSQListSel do begin if ShowModal = 1 then begin self.CKOrdNo.Text := Trim(Order_Main.fieldbyname('FSID').AsString); end; end; finally frmFHSQListSel.Free; end; fsjYS := ''; fsjGH := ''; fsjTP := ''; with ADOQueryTemp do begin Close; sql.Clear; Sql.Add(' select SQCKCS=isnull(MAX(A.SQCKCS),0)+1 from CK_BanCP_CR A'); sql.Add(' where CKOrdNo=''' + Trim(CKOrdNo.Text) + ''''); Open; end; if ADOQueryTemp.IsEmpty then edtCKCS.Text := '1' else edtCKCS.Text := ADOQueryTemp.FIELDBYNAME('SQCKCS').AsString; btnCX.Click; end; procedure TfrmSXKCCK.btnCXClick(Sender: TObject); begin if Trim(CKOrdNo.Text) = '' then Exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select SubId from FHSQ_Sub where FSId=' + QUOTEDSTR(CKOrdNo.Text)); Open; end; SCreateCDS(ADOQueryTemp, CDS_YanSeSel); // SInitCDSData(ADOQueryTemp, CDS_YanSeSel); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select APId from CK_BanCP_CR A inner join CK_BanCP_KC D on A.MJID=D.MJID '); sql.Add(' where A.CRFlag=''入库'' and A.CPType=''正品'' and D.KCValid=''Y'' '); sql.Add(' and exists(select SubId from FHSQ_Sub X where X.SubId=A.SubId and X.FSId=' + QUOTEDSTR(CKOrdNo.Text) + ') '); sql.Add(' Group by APID '); Open; end; SCreateCDS(ADOQueryTemp, CDS_GangHaoSel); // SInitCDSData(ADOQueryTemp, CDS_GangHaoSel); with ADOQueryTemp do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.RKOrdID '); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC D on A.MJID=D.MJID '); sql.Add(' where A.CRFlag=''入库'' and D.KCValid=''Y'' '); sql.Add(' and exists(select SubId from FHSQ_Sub X where X.SubId=A.SubId and X.FSId=' + QUOTEDSTR(CKOrdNo.Text) + ') '); sql.Add(' Group by A.RKOrdID '); Open; end; SCreateCDS(ADOQueryTemp, CDS_TuoTuanSel); // SInitCDSData(ADOQueryTemp, CDS_TuoTuanSel); FHSQ(); InitKC(); initHZData(); initLab(); end; procedure TfrmSXKCCK.FHSQ(); begin with ADOQueryTemp do begin Close; sql.Clear; Sql.Add(' select A.*,isnull(status,''未完成'')status2 '); Sql.Add(' ,HZSCConNo=CAST((select distinct(SCConNo) + '' '' from FHSQ_Sub X where A.FSID=X.FSID for xml path('''') ) AS VARCHAR(100))'); sql.Add(' from FHSQ_Main A'); sql.Add(' where FSID=''' + Trim(CKOrdNo.Text) + ''' and SQType=''订单'' '); Open; end; SCreateCDS(ADOQueryTemp, ClientDataSet6); SInitCDSData(ADOQueryTemp, ClientDataSet6); with ADOQueryTemp do begin Close; sql.Clear; Sql.Add(' select A.* '); sql.Add(' from FHSQ_Sub A'); sql.Add(' where FSID=''' + Trim(CKOrdNo.Text) + ''''); Open; end; SCreateCDS(ADOQueryTemp, ClientDataSet7); SInitCDSData(ADOQueryTemp, ClientDataSet7); end; procedure TfrmSXKCCK.Button5Click(Sender: TObject); var SqlMJID, SqlKHKH: string; begin if edtCKCS.Text = '' then begin Application.MessageBox('出库次数不能为空!', '提示', 0); Exit; end; with ClientDataSet7 do begin First; while not Eof do begin if Trim(ClientDataSet7.FieldByName('SQKHKuanHao').AsString) <> '' then begin if CDS_MainSel.Locate('SSel;SubId;SQKHKuanHao', VarArrayOf([True, Trim(ClientDataSet7.FieldByName('SubId').AsString), null]), []) then begin Application.MessageBox('请指定客户款号!', '提示', 0); Exit; end; if CDS_MainSel.Locate('SSel;SubId;SQKHKuanHao', VarArrayOf([True, Trim(ClientDataSet7.FieldByName('SubId').AsString), '']), []) then begin Application.MessageBox('请指定客户款号!', '提示', 0); Exit; end; end; Next; end; end; CDS_MainSel.DisableControls; with CDS_MainSel do begin First; SqlMJID := ''; SqlKHKH := ''; while not Eof do begin if CDS_MainSel.FieldByName('SSel').AsBoolean then begin if Trim(SqlMJID) = '' then SqlMJID := QuotedStr(Trim(CDS_MainSel.fieldbyname('MJID').AsString)) else SqlMJID := SqlMJID + ',' + QuotedStr(Trim(CDS_MainSel.fieldbyname('MJID').AsString)); if Trim(CDS_MainSel.FieldByName('SQKHKuanHao').AsString) <> '' then begin SqlKHKH := SqlKHKH + ' UPDATE CK_BanCP_CR SET SQKHKuanHao=' + quotedstr(Trim(CDS_MainSel.FieldByName('SQKHKuanHao').AsString)) + ' where MJID=' + quotedstr(Trim(CDS_MainSel.FieldByName('MJID').AsString)) + ' '; end; end; Next; end; SqlMJID := 'MJID IN (' + SqlMJID + ')' end; CDS_MainSel.EnableControls; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(SqlKHKH); sql.Add('UPDATE CK_BanCP_CR Set '); sql.add(' Filltime= GETDATE(),CRTime=' + Quotedstr(Trim(FormatDateTime('yyyy-MM-dd', CRTime.Date))) + ',CRType=''扫描出库'',CRFlag=''出库'' '); sql.add(',CKOrdNo=' + quotedstr(Trim(CKOrdNo.Text))); sql.add(',SQCKCS=' + quotedstr(Trim(edtCKCS.Text))); sql.add(',filler=' + quotedstr(DName)); sql.Add(' where ' + SqlMJID); sql.Add('and CK_BanCP_CR.CRFlag=''待出库'' '); // ShowMessage(SQL.Text); ExecSQL; end; //更新kcvalid状态 with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPDATE CK_BanCP_KC Set '); sql.add(' KCValid=''N'' '); sql.Add(' where ' + SqlMJID); ExecSQL; end; //更新出入库状态 with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPDATE WFB_MJJY Set MJStr2=''已出库'' '); sql.Add(' where ' + SqlMJID); SQL.Add(' and WFB_MJJY.MJStr2=''已入库'' '); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('exec P_Do_FHSQ ''' + Trim(CKOrdNo.Text) + ''''); ExecSQL; end; FHSQ(); end; procedure TfrmSXKCCK.V1Column10PropertiesEditValueChanged(Sender: TObject); var mvalue: Boolean; fsj: string; begin mvalue := TcxCheckBox(Sender).EditingValue; with CDS_YanSe do begin Edit; FieldByName('SSel').Value := mvalue; end; if mvalue = True then begin with CDS_YanSeSel do begin Append; FieldByName('SubId').Value := Trim(CDS_YanSe.fieldbyname('SubId').AsString); Post; end; end else begin CDS_YanSeSel.Locate('SubId', Trim(CDS_YanSe.fieldbyname('SubId').AsString), []); CDS_YanSeSel.Delete; end; fsj := ''; with CDS_YanSeSel do begin First; while not eof do begin if Trim(fsj) = '' then begin fsj := fsj + '''' + Trim(fieldbyname('SubId').AsString) + ''''; end else fsj := fsj + ',' + '''' + Trim(fieldbyname('SubId').AsString) + ''''; Next; end; end; with ADOQueryTemp do begin Filtered := False; Close; sql.Clear; sql.Add(' Select AA.* '); sql.Add(' ,B.OrderNo,B.MPRTCode,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ '); sql.Add(' ,C.PRTColor,C.PRTEColor,C.PRTHX,C.PrtKuanNo,C.PRTColorNo '); sql.Add(' from(select A.MainId,A.Subid,A.GangHao,A.APID,QtyY=sum(Cast(A.Qty*1.0936 as decimal(18,1))),QtyM=sum(Qty),QtyKg=Sum(KgQty),PS=Count(*) '); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC D on A.MJID=D.MJID '); sql.Add(' where A.CRFlag=''入库'' and D.KCValid=''Y'' and A.CPType=''正品'' '); sql.Add(' and exists(select SubId from FHSQ_Sub X where X.SubId=A.SubId and X.FSId=' + QUOTEDSTR(CKOrdNo.Text) + ') '); if Trim(fsj) <> '' then begin sql.Add(' and A.Subid in(' + Trim(fsj) + ')'); end else begin sql.Add(' and 1=2'); end; sql.Add(' Group by A.MainId,A.Subid,A.GangHao,A.APID) AA '); sql.Add(' inner join JYOrder_Main B on AA.MainId=B.MainId '); sql.Add(' inner join JYOrder_Sub C on b.MainId=C.MainId and AA.SubId=C.SubId '); // AA.SubId=C.SubId // ShowMessage(SQL.Text); Open; end; SCreateCDS(ADOQueryTemp, CDS_GangHao); SInitCDSData(ADOQueryTemp, CDS_GangHao); // SelOKNo(CDS_GangHao, True); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select APId=Cast(Null as varchar(20))'); Open; end; SCreateCDS(ADOQueryTemp, CDS_GangHaoSel); SInitCDSData(ADOQueryTemp, CDS_GangHaoSel); if CDS_GangHaoSel.IsEmpty = False then begin CDS_GangHaoSel.Delete; end; CDS_GangHao.DisableControls; with CDS_GangHao do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin with CDS_GangHaoSel do begin Append; CDS_GangHaoSel.FieldByName('APID').Value := CDS_GangHao.FieldByName('APID').Value; Post; end; end; Next; end; end; CDS_GangHao.EnableControls; initMXKC(); end; procedure TfrmSXKCCK.V2Column2PropertiesEditValueChanged(Sender: TObject); var mvalue: Boolean; begin mvalue := TcxCheckBox(Sender).EditingValue; with CDS_GangHao do begin Edit; FieldByName('SSel').Value := mvalue; end; if mvalue = True then begin with CDS_GangHaoSel do begin Append; FieldByName('APId').Value := Trim(CDS_GangHao.fieldbyname('APId').AsString); Post; end; end else begin CDS_GangHaoSel.Locate('APId', Trim(CDS_GangHao.fieldbyname('APId').AsString), []); CDS_GangHaoSel.Delete; end; initMXKC(); end; procedure TfrmSXKCCK.V3Column1PropertiesEditValueChanged(Sender: TObject); var mvalue: Boolean; begin mvalue := TcxCheckBox(Sender).EditingValue; with CDS_TuoTuan do begin Edit; FieldByName('SSel').Value := mvalue; end; if mvalue = True then begin with CDS_TuoTuanSel do begin Append; FieldByName('RKOrdID').Value := Trim(CDS_TuoTuan.fieldbyname('RKOrdID').AsString); Post; end; end else begin CDS_TuoTuanSel.Locate('RKOrdID', Trim(CDS_TuoTuan.fieldbyname('RKOrdID').AsString), []); CDS_TuoTuanSel.Delete; end; initMXKC(); end; procedure TfrmSXKCCK.v1Column12PropertiesEditValueChanged(Sender: TObject); var mvalue: Boolean; begin mvalue := TcxCheckBox(Sender).EditingValue; with CDS_MainSel do begin Edit; FieldByName('SSel').Value := mvalue; Post; end; if mvalue = False then begin XZPS := XZPS - 1; XZMS := XZMS - CDS_MainSel.fieldbyname('Qty').Value; XZYS := XZYS - CDS_MainSel.fieldbyname('MJYLen').Value; XZKg := XZKg - CDS_MainSel.fieldbyname('KGQty').Value; end else begin XZPS := XZPS + 1; XZMS := XZMS + CDS_MainSel.fieldbyname('Qty').Value; XZYS := XZYS + CDS_MainSel.fieldbyname('MJYLen').Value; XZKg := XZKg + CDS_MainSel.fieldbyname('KGQty').Value; end; initLab(); end; procedure TfrmSXKCCK.N1Click(Sender: TObject); var MSubId, MSQKHKuanHao: string; begin MSubId := Trim(ClientDataSet7.FieldByName('SubId').AsString); MSQKHKuanHao := Trim(ClientDataSet7.FieldByName('SQKHKuanHao').AsString); CDS_MainSel.DisableControls; while CDS_MainSel.Locate('SSel;SubId;SQKHKuanHao', VarArrayOf([True, MSubId, null]), []) do begin with CDS_MainSel do begin Edit; FieldByName('SQKHKuanHao').Value := MSQKHKuanHao; post; end; end; CDS_MainSel.EnableControls; end; procedure TfrmSXKCCK.MenuItem1Click(Sender: TObject); begin SelOKNo(CDS_MainSel, True); // initLab(); end; procedure TfrmSXKCCK.N2Click(Sender: TObject); begin SelOKNo(CDS_MainSel, false); XZPS := 0; XZMS := 0; XZYS := 0; XZKg := 0; initLab(); end; procedure TfrmSXKCCK.MenuItem4Click(Sender: TObject); begin with CDS_GangHao do begin CDS_GangHao.DisableControls; First; while not Eof do begin if not CDS_GangHao.FieldByName('SSel').AsBoolean then begin with CDS_GangHao do begin Edit; FieldByName('SSel').Value := True; Post end; with CDS_GangHaoSel do begin Append; FieldByName('APId').Value := Trim(CDS_GangHao.fieldbyname('APId').AsString); Post; end; end; Next; end; CDS_GangHao.EnableControls; end; initMXKC(); end; procedure TfrmSXKCCK.MenuItem5Click(Sender: TObject); begin with CDS_GangHao do begin CDS_GangHao.DisableControls; First; while not Eof do begin if CDS_GangHao.FieldByName('SSel').AsBoolean then begin with CDS_GangHao do begin Edit; FieldByName('SSel').Value := False; Post end; end; Next; end; CDS_GangHao.EnableControls; end; CDS_GangHaoSel.EmptyDataSet; initMXKC(); end; procedure TfrmSXKCCK.MenuItem2Click(Sender: TObject); var fsj: string; begin with CDS_YanSe do begin CDS_YanSe.DisableControls; First; while not Eof do begin if not CDS_YanSe.FieldByName('SSel').AsBoolean then begin with CDS_YanSe do begin Edit; FieldByName('SSel').Value := True; Post end; with CDS_YanSeSel do begin Append; FieldByName('SubId').Value := Trim(CDS_YanSe.fieldbyname('SubId').AsString); Post; end; end; Next; end; CDS_YanSe.EnableControls; end; fsj := ''; with CDS_YanSeSel do begin First; while not eof do begin if Trim(fsj) = '' then begin fsj := fsj + '''' + Trim(fieldbyname('SubId').AsString) + ''''; end else fsj := fsj + ',' + '''' + Trim(fieldbyname('SubId').AsString) + ''''; Next; end; end; with ADOQueryTemp do begin Filtered := False; Close; sql.Clear; sql.Add(' Select AA.* '); sql.Add(' ,B.OrderNo,B.MPRTCode,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ '); sql.Add(' ,C.PRTColor,C.PRTEColor,C.PRTHX,C.PrtKuanNo,C.PRTColorNo '); sql.Add(' from(select A.MainId,A.Subid,A.GangHao,A.APID,QtyY=sum(Cast(A.Qty*1.0936 as decimal(18,1))),QtyM=sum(Qty),QtyKg=Sum(KgQty),PS=Count(*) '); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC D on A.MJID=D.MJID '); sql.Add(' where A.CRFlag=''入库'' and D.KCValid=''Y'' and A.CPType=''正品'' '); sql.Add(' and exists(select SubId from FHSQ_Sub X where X.SubId=A.SubId and X.FSId=' + QUOTEDSTR(CKOrdNo.Text) + ') '); if Trim(fsj) <> '' then begin sql.Add(' and A.Subid in(' + Trim(fsj) + ')'); end else begin sql.Add(' and 1=2'); end; sql.Add(' Group by A.MainId,A.Subid,A.GangHao,A.APID) AA '); sql.Add(' inner join JYOrder_Main B on AA.MainId=B.MainId '); sql.Add(' inner join JYOrder_Sub C on b.mainid=C.mainid and AA.SubId=C.SubId '); // AA.SubId=C.SubId // ShowMessage(SQL.Text); Open; end; SCreateCDS(ADOQueryTemp, CDS_GangHao); SInitCDSData(ADOQueryTemp, CDS_GangHao); // SelOKNo(CDS_GangHao, True); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select APId=Cast(Null as varchar(20))'); Open; end; SCreateCDS(ADOQueryTemp, CDS_GangHaoSel); SInitCDSData(ADOQueryTemp, CDS_GangHaoSel); if CDS_GangHaoSel.IsEmpty = False then begin CDS_GangHaoSel.Delete; end; CDS_GangHao.DisableControls; with CDS_GangHao do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin with CDS_GangHaoSel do begin Append; CDS_GangHaoSel.FieldByName('APID').Value := CDS_GangHao.FieldByName('APID').Value; Post; end; end; Next; end; end; CDS_GangHao.EnableControls; initMXKC(); end; procedure TfrmSXKCCK.MenuItem3Click(Sender: TObject); var fsj: string; begin with CDS_YanSe do begin CDS_YanSe.DisableControls; First; while not Eof do begin if CDS_YanSe.FieldByName('SSel').AsBoolean then begin with CDS_YanSe do begin Edit; FieldByName('SSel').Value := False; Post end; end; Next; end; CDS_YanSe.EnableControls; end; CDS_YanSeSel.EmptyDataSet; fsj := ''; with ADOQueryTemp do begin Filtered := False; Close; sql.Clear; sql.Add(' Select AA.* '); sql.Add(' ,B.OrderNo,B.MPRTCode,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ '); sql.Add(' ,C.PRTColor,C.PRTEColor,C.PRTHX,C.PrtKuanNo,C.PRTColorNo '); sql.Add(' from(select A.MainId,A.Subid,A.GangHao,A.APID,QtyY=sum(Cast(A.Qty*1.0936 as decimal(18,1))),QtyM=sum(Qty),QtyKg=Sum(KgQty),PS=Count(*) '); sql.Add(' from CK_BanCP_CR A inner join CK_BanCP_KC D on A.MJID=D.MJID '); sql.Add(' where A.CRFlag=''入库'' and D.KCValid=''Y'' and A.CPType=''正品'' '); sql.Add(' and exists(select SubId from FHSQ_Sub X where X.SubId=A.SubId and X.FSId=' + QUOTEDSTR(CKOrdNo.Text) + ') '); if Trim(fsj) <> '' then begin sql.Add(' and A.Subid in(' + Trim(fsj) + ')'); end else begin sql.Add(' and 1=2'); end; sql.Add(' Group by A.MainId,A.Subid,A.GangHao,A.APID) AA '); sql.Add(' inner join JYOrder_Main B on AA.MainId=B.MainId '); sql.Add(' inner join JYOrder_Sub C on AA.SubId=C.SubId '); // ShowMessage(SQL.Text); Open; end; SCreateCDS(ADOQueryTemp, CDS_GangHao); SInitCDSData(ADOQueryTemp, CDS_GangHao); // SelOKNo(CDS_GangHao, True); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select APId=Cast(Null as varchar(20))'); Open; end; SCreateCDS(ADOQueryTemp, CDS_GangHaoSel); SInitCDSData(ADOQueryTemp, CDS_GangHaoSel); if CDS_GangHaoSel.IsEmpty = False then begin CDS_GangHaoSel.Delete; end; CDS_GangHao.DisableControls; with CDS_GangHao do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin with CDS_GangHaoSel do begin Append; CDS_GangHaoSel.FieldByName('APID').Value := CDS_GangHao.FieldByName('APID').Value; Post; end; end; Next; end; end; CDS_GangHao.EnableControls; initMXKC(); end; procedure TfrmSXKCCK.MenuItem6Click(Sender: TObject); begin with CDS_TuoTuan do begin CDS_TuoTuan.DisableControls; First; while not Eof do begin if not CDS_TuoTuan.FieldByName('SSel').AsBoolean then begin with CDS_TuoTuan do begin Edit; FieldByName('SSel').Value := True; Post end; with CDS_TuoTuanSel do begin Append; FieldByName('RKOrdID').Value := Trim(CDS_TuoTuan.fieldbyname('RKOrdID').AsString); Post; end; end; Next; end; CDS_TuoTuan.EnableControls; end; initMXKC(); end; procedure TfrmSXKCCK.MenuItem7Click(Sender: TObject); begin with CDS_TuoTuan do begin CDS_TuoTuan.DisableControls; First; while not Eof do begin if CDS_TuoTuan.FieldByName('SSel').AsBoolean then begin with CDS_TuoTuan do begin Edit; FieldByName('SSel').Value := False; Post end; end; Next; end; CDS_TuoTuan.EnableControls; end; CDS_GangHaoSel.EmptyDataSet; initMXKC(); end; end.