unit U_JYGLlistCW; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Common, RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset, cxTextEdit, cxPC, cxCheckBox, Menus, U_SLT, jpeg, cxContainer, cxMaskEdit, MovePanel, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, cxCalendar, cxSplitter, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter; type TfrmJYGLlistCW = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; v1CRType: TcxGridDBColumn; v1CRTime: TcxGridDBColumn; v1CRNO: TcxGridDBColumn; v1Filler: TcxGridDBColumn; Label2: TLabel; CRType: TComboBox; Label5: TLabel; ADOQueryCmd: TADOQuery; ADOQueryTmp: TADOQuery; DataSource1: TDataSource; CDS_Main: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; ADOPrint: TADOQuery; RMXLSExport1: TRMXLSExport; v1inoutNO: TcxGridDBColumn; inoutNo: TEdit; Label7: TLabel; RMDB_Main: TRMDBDataSet; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxStyle2: TcxStyle; cxStyle_gridRow: TcxStyle; cxStyle_gridFoot: TcxStyle; cxStyle_gridHead: TcxStyle; cxStyle_gridGroupBox: TcxStyle; cxStyle_yellow: TcxStyle; cxStyle_Red: TcxStyle; cxStyle_fontBlack: TcxStyle; cxStyle_fontclFuchsia: TcxStyle; cxStyle_fontclPurple: TcxStyle; cxStyle_fontclGreen: TcxStyle; cxStyle_fontclBlue: TcxStyle; cxStyle_fontclTeal: TcxStyle; cxStyle_fontclOlive: TcxStyle; Label8: TLabel; ToFactoryName: TEdit; ADOQueryMain: TADOQuery; RM1: TRMGridReport; v1Column5: TcxGridDBColumn; CODENAME: TEdit; Color: TEdit; Label10: TLabel; Label11: TLabel; CODE: TEdit; Label14: TLabel; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; adoqueryPicture: TADOQuery; tbChk: TToolButton; tbChkNo: TToolButton; cxTabControl1: TcxTabControl; btn1: TToolButton; cv1Column6: TcxGridDBColumn; v1Column6: TcxGridDBColumn; ToolButton1: TToolButton; ComboBox1: TComboBox; MovePanel1: TMovePanel; JSY: TcxButtonEdit; Label3: TLabel; Button1: TButton; Button2: TButton; v1Column8: TcxGridDBColumn; ToolButton4: TToolButton; cxStyleRepository2: TcxStyleRepository; cxStyle3: TcxStyle; cxStyle4: TcxStyle; cxStyle5: TcxStyle; Label4: TLabel; CPLeiBie: TComboBox; Label6: TLabel; salesman: TEdit; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; cxSplitter1: TcxSplitter; Panel2: TPanel; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn10: TcxGridDBColumn; cxGridDBColumn11: TcxGridDBColumn; cxGridDBColumn12: TcxGridDBColumn; cxGridDBColumn13: TcxGridDBColumn; cxGridDBColumn14: TcxGridDBColumn; cxGridDBColumn15: TcxGridDBColumn; cxGridDBColumn16: TcxGridDBColumn; cxGridDBColumn17: TcxGridDBColumn; cxGridDBColumn18: TcxGridDBColumn; cxGridDBColumn19: TcxGridDBColumn; cxGridDBColumn20: TcxGridDBColumn; cxGridDBColumn21: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; TV2Column1: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; CDS_SUB: TClientDataSet; DataSource2: TDataSource; TV2Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; ADOQuery1: TADOQuery; Tv1Column8: TcxGridDBColumn; TV2Column4: TcxGridDBColumn; TV2Column5: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; TV2Column6: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBAddClick(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure v1Column6CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure tbChkClick(Sender: TObject); procedure tbChkNoClick(Sender: TObject); procedure btn1Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure JSYPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure v1CRTypePropertiesChange(Sender: TObject); private procedure InitGrid(); procedure InitSUB(); function YSData(ADO: TADOQuery): Boolean; function YSData_Other(ADO: TADOQuery; fYFName: string; fmoney: double): Boolean; procedure SetStatus(); { Private declarations } public canshu1, canshu2, fCKName: string; { Public declarations } end; var Mach: array of TfrmSlt; implementation uses U_DataLink, U_Fun10, U_ZDYHelp, U_JYGLCK, u_fun; {$R *.dfm} procedure TfrmJYGLlistCW.SetStatus(); begin tbADD.Visible := False; tbEdit.Visible := False; tbChk.Visible := False; tbChkNo.Visible := False; TBDel.Visible := False; // cv1Column6.Visible := False; // cv1Column6.Hidden := True; if Trim(CanShu1) = '仓库' then begin // label8.Visible := False; btn1.Visible := False; // ToFactoryName.Visible := False; end; case cxTabControl1.TabIndex of 0: begin if Trim(CanShu1) = '仓库' then begin tbChk.Visible := True; tbEdit.Visible := true; // TBDel.Visible := true; end; end; 1: begin if Trim(CanShu1) = '仓库' then begin tbChkNo.Visible := True; end; end; end; end; function TfrmJYGLlistCW.YSData(ADO: TADOQuery): Boolean; var CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou, cust: string; begin Result := False; with ADOQueryTmp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(ADO.fieldbyname('custName').asstring) + ''' and YFDefFlag1=0 '); Open; end; if not ADOQueryTmp.IsEmpty then begin CRID := ADOQueryTmp.fieldbyname('CRID').AsString; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID := ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value := StrToInt(CRID); FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring); FieldByName('ZdyStr1').Value := '应收收'; Post; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from YF_Money_CR '); sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + ''''); sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + ''''); sql.Add(' and YFName=''产品销售'' '); execsql; end; with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR '); sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + ''''); sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + ''''); sql.Add(' and YFName=''产品销售'' '); Open; end; if ADOQueryTmp.IsEmpty then begin if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 4, 1) = False then begin Application.MessageBox('取应收最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value := Trim(YFID); FieldByName('YFTypeId').Value := Trim(ADO.fieldbyname('CRNO').AsString); FieldByName('CRID').Value := StrToInt(CRID); FieldByName('Filler').Value := Trim(DName); FieldByName('CRType').Value := '应收款登记'; FieldByName('CRFlag').Value := '应收收'; FieldByName('QtyFlag').Value := 1; FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring); FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', ADO.fieldbyname('CRTime').AsDateTime)); FieldByName('YFType').Value := '自动生成'; FieldByName('ps').Value := ADO.fieldbyname('RollNum').AsFloat; FieldByName('Qty').Value := ADO.fieldbyname('Qty').AsFloat; FieldByName('Price').Value := ADO.fieldbyname('Price').AsFloat; FieldByName('Money').Value := ADO.fieldbyname('Money').AsFloat; FieldByName('BBMoney').Value := ADO.fieldbyname('Money').AsFloat; FieldByName('HuiLv').Value := 1; FieldByName('BZType').Value := '人民币'; FieldByName('QtyUnit').Value := Trim(ADO.fieldbyname('QtyUnit').AsString); FieldByName('ComTaiTou').Value := Trim(cust); FieldByName('YFName').Value := '产品销售'; FieldByName('MainId').Value := Trim(ADO.fieldbyname('CRNO').AsString); FieldByName('subID').Value := Trim(ADO.fieldbyname('CRID').AsString); FieldByName('status').Value := '0'; Post; end; end else begin YFID := Trim(ADOQueryTmp.fieldbyname('YFID').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(' where CRID=' + CRID); ExecSQL; end; Result := True; end; function TfrmJYGLlistCW.YSData_Other(ADO: TADOQuery; fYFName: string; fmoney: double): Boolean; var CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou, cust: string; begin Result := False; with ADOQueryTmp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(ADO.fieldbyname('custName').asstring) + ''' and YFDefFlag1=0 '); Open; end; if not ADOQueryTmp.IsEmpty then begin CRID := ADOQueryTmp.fieldbyname('CRID').AsString; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID := ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value := StrToInt(CRID); FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring); FieldByName('ZdyStr1').Value := '应收收'; Post; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from YF_Money_CR '); sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + ''''); sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + ''''); sql.Add(' and YFName=''' + trim(fYFName) + ''' '); execsql; end; with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR '); sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + ''''); sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + ''''); sql.Add(' and YFName=''' + trim(fYFName) + ''' '); Open; end; if ADOQueryTmp.IsEmpty then begin if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 4, 1) = False then begin Application.MessageBox('取应收最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value := Trim(YFID); FieldByName('YFTypeId').Value := Trim(ADO.fieldbyname('CRNO').AsString); FieldByName('CRID').Value := StrToInt(CRID); FieldByName('Filler').Value := Trim(DName); FieldByName('CRType').Value := '应收款登记'; FieldByName('CRFlag').Value := '应收收'; FieldByName('QtyFlag').Value := 1; FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring); FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', ADO.fieldbyname('CRTIme').AsDateTime)); FieldByName('YFType').Value := '自动生成'; FieldByName('Qty').Value := 1; FieldByName('Price').Value := fmoney; FieldByName('Money').Value := fmoney; FieldByName('BBMoney').Value := fmoney; FieldByName('HuiLv').Value := 1; FieldByName('BZType').Value := '人民币'; FieldByName('QtyUnit').Value := '个'; FieldByName('ComTaiTou').Value := Trim(cust); FieldByName('YFName').Value := fYFName; FieldByName('MainId').Value := Trim(ADO.fieldbyname('CRNO').AsString); FieldByName('subID').Value := Trim(ADO.fieldbyname('CRID').AsString); FieldByName('status').Value := '0'; Post; end; end else begin YFID := Trim(ADOQueryTmp.fieldbyname('YFID').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(' where CRID=' + CRID); ExecSQL; end; Result := True; end; procedure TfrmJYGLlistCW.InitGrid(); begin try with ADOQueryMain do begin close; sql.Clear; sql.Add(' select (CASE WHEN A.PRINTCOUNT>0 THEN 1 ELSE 0 END )PRINTCOUNT,ZBZNOTE,inoutno,ToFactoryName,CPLeiBie,CRTime,CRType,SHDiZhi,chker,SHDianHua,SHer,Filler,CPLeiBie,salesman '); sql.Add(',CWYRZ=cast((case when isnull((select count(YFPZNO) from YF_Money_CR_Sub X where X.YFPZNO=A.INOUTNO ),0)>0 then 1 else 0 end) as bit)'); // sql.Add(',znote=(select top 1 note from CK_Sample_CR b where a.inoutno=b.inoutno and note is not null)'); SQL.Add(',YDY=CAST((CASE WHEN PRINTCOUNT>0 THEN 1 ELSE 0 END ) AS BIT)'); SQL.Add(',CODE=cast((select P_CODE+'';'' from CK_Sample_CR B where B.INOUTNO=A.INOUTNO for xml path('''')) as varchar(200))'); SQL.Add(',CODENAME=cast((select P_CodeName+'';'' from CK_Sample_CR B where B.INOUTNO=A.INOUTNO for xml path('''')) as varchar(200))'); SQL.Add(',Color=cast((select P_Color+'';'' from CK_Sample_CR B where B.INOUTNO=A.INOUTNO for xml path('''')) as varchar(200))'); SQL.Add(' from CK_Sample_CR A '); sql.Add(' where CRFlag=''出库'' and A.valid=''Y'' '); sql.Add(' and VisType=''寄样'' and CKName=' + quotedstr(trim(fCKName))); case cxTabControl1.TabIndex of 0: begin sql.Add(' and isnull(A.Chkstatus,''-1'')=''0'''); sql.Add(' and CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' '); sql.Add(' and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' '); sql.Add('and a.jsperson is not null'); end; 1: begin sql.Add(' and isnull(A.Chkstatus,''-1'')=''1'''); sql.Add(' and CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' '); sql.Add(' and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' '); end; 2: begin // sql.Add(' and isnull(A.Chkstatus,''-1'')=''1'''); sql.Add(' and CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' '); sql.Add(' and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' '); end; end; sql.Add('group by (CASE WHEN A.PRINTCOUNT>0 THEN 1 ELSE 0 END ),inoutno,chker,ToFactoryName,ZBZNOTE,CRTime,CPLeiBie,SHer,SHDiZhi,SHDianHua,CRType,Filler,CPLeiBie,salesman'); sql.Add(' order by inoutNo desc '); // showmessage(sql.Text); open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally end; end; procedure TfrmJYGLlistCW.InitSUB(); begin try with ADOQuery1 do begin close; sql.Clear; sql.Add(' select * '); sql.Add(',YSM=cast((case when isnull((select sum(ISNULL(FHPS,0)) from FHSQ_SUB X where X.FROMYPID=A.CRNO ),0)>0 then 1 else 0 end) as bit)'); // SQL.Add(',YDY=CAST((CASE WHEN PRINTCOUNT>0 THEN 1 ELSE 0 END ) AS BIT)'); SQL.Add(' from CK_Sample_CR A '); sql.Add(' where CRFlag=''出库'' and A.valid=''Y'' '); sql.Add(' and VisType=''寄样'' and CKName=' + quotedstr(trim(fCKName))); SQL.Add('AND INOUTNO=' + QUOTEDSTR(Trim(CDS_Main.fieldbyname('INOUTNO').AsString))); case cxTabControl1.TabIndex of 0: begin sql.Add(' and isnull(A.Chkstatus,''-1'')=''0'''); sql.Add(' and CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' '); sql.Add(' and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' '); sql.Add('and a.jsperson is not null'); end; 1: begin sql.Add(' and isnull(A.Chkstatus,''-1'')=''1'''); sql.Add(' and CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' '); sql.Add(' and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' '); end; 2: begin // sql.Add(' and isnull(A.Chkstatus,''-1'')=''1'''); sql.Add(' and CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' '); sql.Add(' and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' '); end; end; sql.Add(' order by inoutNo desc '); // showmessage(sql.Text); open; end; SCreateCDS20(ADOQuery1, CDS_SUB); SInitCDSData20(ADOQuery1, CDS_SUB); finally end; end; procedure TfrmJYGLlistCW.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := cafree; end; procedure TfrmJYGLlistCW.TBAddClick(Sender: TObject); begin frmJYGLCK := TfrmJYGLCK.create(self); with frmJYGLCK do begin fkeyNo := ''; fType := 0; fCKName := trim(self.fCKName); canshu1 := Self.canshu1; jyfs := '库存'; if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo', trim(fkeyNo), []); end; free; end; end; procedure TfrmJYGLlistCW.OrderNoChange(Sender: TObject); begin if ADOQuerymain.Active = False then Exit; SDofilter(ADOQuerymain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQuerymain, CDS_Main); SInitCDSData20(ADOQuerymain, CDS_Main); end; procedure TfrmJYGLlistCW.FormShow(Sender: TObject); begin readCxGrid(trim(self.Caption), Tv1, '样品仓库'); readCxGrid(trim(self.Caption), Tv2, '样品仓库2'); // SetStatus(); InitGrid(); end; procedure TfrmJYGLlistCW.FormCreate(Sender: TObject); begin EndDate.Date := SGetServerDate10(ADOQueryTmp); BegDate.Date := EndDate.Date - 30; cxGrid1.Align := alclient; end; procedure TfrmJYGLlistCW.TBCloseClick(Sender: TObject); begin writeCxGrid(trim(self.Caption), Tv1, '样品仓库'); writeCxGrid(trim(self.Caption), Tv2, '样品仓库2'); close; end; procedure TfrmJYGLlistCW.TBEditClick(Sender: TObject); begin if cds_main.IsEmpty then exit; if (cds_main.fieldbyname('Filler').AsString <> trim(DName)) and (trim(canshu1) <> '仓库') then begin application.MessageBox('操作员不正确,不能修改!', '提示信息', MB_ICONERROR); exit; end; with ADOQueryTmp do begin close; sql.Clear; sql.Add('select * from CK_Sample_CR where Chkstatus=''1'' '); SQL.Add('and inoutno=' + quotedstr(trim(cds_main.fieldbyname('inoutno').AsString))); SQL.Add('AND VALID=''Y'''); Open; end; if ADOQueryTmp.IsEmpty = False then begin application.MessageBox('请先撤销已审核的数据!', '提示信息', MB_ICONERROR); exit; end; frmJYGLCK := TfrmJYGLCK.create(self); with frmJYGLCK do begin FCK := '1'; // fkeyNo := self.cds_main.fieldbyname('crno').AsString; fxiugai := self.cds_main.fieldbyname('inoutno').AsString; fType := 1; InoutNo.Enabled := false; fCKName := trim(self.fCKName); if showmodal = 1 then begin TBRafresh.Click; // self.CDS_Main.Locate('CRNO', trim(fkeyNo), []); end; free; end; end; procedure TfrmJYGLlistCW.TBDelClick(Sender: TObject); var YFID, CRID, note: string; begin if CDS_Main.IsEmpty then Exit; // if Trim(CDS_Main.fieldbyname('Filler').AsString) <> Trim(DName) then // begin // Application.MessageBox('不能操作他人数据!', '提示', 0); // Exit; // end; with ADOQueryTmp do begin close; sql.Clear; sql.Add('select * from CK_Sample_CR where Chkstatus=''1'' '); SQL.Add('and inoutno=' + quotedstr(trim(cds_main.fieldbyname('inoutno').AsString))); SQL.Add('AND VALID=''Y'''); Open; end; if ADOQueryTmp.IsEmpty = False then begin application.MessageBox('请先撤销已审核的数据!', '提示信息', MB_ICONERROR); exit; end; with ADOQueryTmp do begin close; sql.Clear; sql.Add('select * from fhsq_main where '); SQL.Add(' FROMCRNO=' + quotedstr(trim(cds_main.fieldbyname('crno').AsString))); Open; end; if ADOQueryTmp.IsEmpty = False then begin application.MessageBox('请先删除调样单数据!', '提示信息', MB_ICONERROR); exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try if Trim(CDS_Main.FieldByName('CRNO').AsString) <> '' then begin ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CK_Sample_CR set Valid=''N'' where CRNO=' + quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString))); sql.Add('delete yp_inout where fromCRNO=' + quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('样品领用删除'))); sql.Add(',' + quotedstr(trim('单号:' + trim(CDS_Main.FieldByName('crno').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('exec P_Up_SampleKc ' + quotedstr(trim(CDS_Main.fieldbyname('MJID').AsString))); Open; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; end; except Application.MessageBox('数据删除失败!', '提示信息', 0); end; end; procedure TfrmJYGLlistCW.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmJYGLlistCW.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmJYGLlistCW.v1Column6CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); var colIdx0, colIdx1: integer; begin colIdx0 := tv1.GetColumnByFieldName('CRNO').Index; if (ARow1.Values[colIdx0] = ARow2.Values[colIdx0]) then AAreEqual := True else AAreEqual := False; end; procedure TfrmJYGLlistCW.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmJYGLlistCW.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmJYGLlistCW.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmJYGLlistCW.tbChkClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if CDS_Main.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin DisableControls; First; while not eof do begin if Fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_Sample_CR SET Chkstatus=''1'',Chktime=getdate(),Chker= ' + quotedstr(trim(DName))); sql.Add('where inoutno=' + quotedstr(trim(CDS_Main.fieldbyname('inoutno').AsString))); sql.Add('AND jsperson is NOT NULL'); execsql; end; // with ADOQueryCmd do // begin // close; // sql.Clear; // sql.Add('select * from CK_Sample_CR '); // sql.Add('where crno=' + quotedstr(trim(CDS_Main.fieldbyname('crno').AsString))); // Open; // end; // if ADOQueryCmd.fieldbyname('mjid').AsString <> '' then // begin // with ADOQueryCmd do // begin // Close; // SQL.Clear; // SQL.Add('exec P_Up_SampleKc ' + quotedstr(trim(CDS_Main.fieldbyname('MJID').AsString))); // Open; // end; // end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('审核成功!', '提示信息'); TBRafresh.Click; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('审核失败!', '提示信息', 0); end; end; procedure TfrmJYGLlistCW.tbChkNoClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if CDS_Main.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin DisableControls; First; while not eof do begin if Fieldbyname('ssel').AsBoolean then begin with ADOQueryTmp do begin close; sql.Clear; sql.Add('select * from yf_money_cr_sub'); sql.Add('where yfpzno=' + quotedstr(trim(CDS_Main.fieldbyname('INOUTNO').AsString))); Open; end; if ADOQueryTmp.IsEmpty = False then begin CDS_Main.EnableControls; Application.MessageBox('已生成应收账款不能撤销!', '提示', 0); ADOQueryCmd.Connection.RollbackTrans; Exit; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_Sample_CR SET Chkstatus=''0'',Chktime=null , Chker=null '); sql.Add('where inoutno=' + quotedstr(trim(CDS_Main.fieldbyname('inoutno').AsString))); execsql; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('撤销审核成功!', '提示信息'); TBRafresh.Click; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('撤销审核失败!', '提示信息', 0); end; end; procedure TfrmJYGLlistCW.btn1Click(Sender: TObject); begin frmJYGLCK := TfrmJYGLCK.create(self); with frmJYGLCK do begin fkeyNo := ''; fType := 0; fCKName := trim(self.fCKName); canshu1 := Self.canshu1; jyfs := '日常'; if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo', trim(fkeyNo), []); end; free; end; end; procedure TfrmJYGLlistCW.ToolButton1Click(Sender: TObject); var fPrintFile: string; EngMoney: string; Porderno, LBName, SYRName: string; i, j: Integer; OrderKg: Double; FDate: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if CDS_Main.IsEmpty then Exit; ExportFtErpFile(Trim(ComboBox1.Text) + '.rmf', ADOQueryTmp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ComboBox1.Text) + '.rmf'; // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('delete TBSubID where DName=''' + Trim(DCode) + ''''); // ExecSQL; // end; // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('SELECT * FROM TBSubID where 1=2 '); // open; // end; // CDS_Main.DisableControls; // try // ADOQueryCmd.Connection.BeginTrans; // with CDS_Main do // begin // First; // while not Eof do // begin // if Fieldbyname('Ssel').AsBoolean then // begin // // ADOQueryCmd.append; // ADOQueryCmd.fieldbyname('SubId').Value := Trim(CDS_Main.fieldbyname('crno').AsString); // ADOQueryCmd.fieldbyname('Dname').Value := Trim(DCode); // ADOQueryCmd.post; // end; // Next; // end; // end; // ADOQueryCmd.Connection.CommitTrans; // except // ADOQueryCmd.Connection.RollbackTrans; // end; // CDS_Main.EnableControls; if ComboBox1.Text = '样品码单1' then begin with ADOPrint do begin Close; sql.Clear; // sql.Add(' select A.* '); // SQL.Add(' from CK_Sample_CR A '); // sql.Add(' where CRFlag=''出库'' and A.valid=''Y'' '); // sql.Add(' and VisType=''寄样'' '); // sql.Add('and EXISTS(select SubId from TBSubID X where X.SubId=A.crno and X.DName=' + quotedstr(Trim(DCode))); // sql.Add(')'); SQL.Add('EXEC P_Print_YPMD' + QUOTEDSTR(Trim(CDS_Main.fieldbyname('INOUTNO').AsString))); // ShowMessage(sql.Text); Open; end; end else begin with ADOPrint do begin Close; sql.Clear; SQL.Add('EXEC P_Print_YPMD2' + QUOTEDSTR(Trim(CDS_Main.fieldbyname('INOUTNO').AsString))); Open; end; end; with ADOQueryTmp do begin Close; sql.Clear; SQL.Add('UPDATE CK_Sample_CR SET PRINTCOUNT=PRINTCOUNT+1 WHERE INOUTNO= ' + QUOTEDSTR(Trim(CDS_Main.fieldbyname('INOUTNO').AsString))); EXECSQL; end; if FileExists(fPrintFile) then begin RMVariables['CustomerNoName'] := CDS_Main.fieldbyname('ToFactoryName').AsString; RMVariables['ShouHuoer'] := CDS_Main.fieldbyname('SHer').AsString; RMVariables['KHDH'] := CDS_Main.fieldbyname('SHDianHua').AsString; RMVariables['FHDZ'] := CDS_Main.fieldbyname('SHDiZhi').AsString; RMVariables['filler'] := CDS_Main.fieldbyname('filler').AsString; RMVariables['NOTE'] := CDS_Main.fieldbyname('ZBZNOTE').AsString; RMVariables['crtime'] := CDS_Main.fieldbyname('CRTime').AsDateTime; RMVariables['YWY'] := CDS_Main.fieldbyname('SALESMAN').AsString; RMVariables['CustomerNoName'] := CDS_Main.fieldbyname('ToFactoryName').AsString; RMVariables['SQDLX'] := CDS_Main.fieldbyname('CPLeiBie').AsString; //RMVariables['enddate']:=enddate.DateTime; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim((trim(CDS_Main.fieldbyname('inoutno').AsString))); fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); except application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; RM1.LoadFromFile(fPrintFile); RMVariables['QRBARCODE'] := fImagePath; RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmJYGLlistCW.JSYPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'JSPERSON'; flagname := '接收人'; if ShowModal = 1 then begin JSY.TEXT := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmJYGLlistCW.Button2Click(Sender: TObject); begin MovePanel1.visible := False; end; procedure TfrmJYGLlistCW.Button1Click(Sender: TObject); begin if JSY.Text = '' then begin application.MessageBox('请先选择接收人!', '提示信息'); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin DisableControls; First; while not eof do begin if Fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_Sample_CR SET jsperson=' + quotedstr(Trim(JSY.Text))); sql.Add(',jstime=getdate()'); sql.Add('where CRNO=' + quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); execsql; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('接收成功!', '提示信息'); MovePanel1.visible := False; ToolButton4.Click(); TBRafresh.Click; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('接收失败!', '提示信息', 0); end; end; procedure TfrmJYGLlistCW.ToolButton4Click(Sender: TObject); var fPrintFile: string; EngMoney: string; Porderno, LBName, SYRName: string; i, j: Integer; OrderKg: Double; FDate: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if CDS_sub.IsEmpty then Exit; if CDS_sub.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择子表数据', '提示', 0); Exit; end; ExportFtErpFile('样品入库标签.rmf', ADOQueryTmp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\样品入库标签.rmf'; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete TBSubID where DName=''' + Trim(DCode) + ''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('SELECT * FROM TBSubID where 1=2 '); open; end; CDS_sub.DisableControls; try ADOQueryCmd.Connection.BeginTrans; with CDS_sub do begin First; while not Eof do begin if CDS_sub.Fieldbyname('Ssel').AsBoolean then begin ADOQueryCmd.append; ADOQueryCmd.fieldbyname('SubId').Value := Trim(CDS_sub.fieldbyname('crno').AsString); ADOQueryCmd.fieldbyname('Dname').Value := Trim(DCode); ADOQueryCmd.post; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; end; CDS_sub.EnableControls; try ADOQueryCmd.Connection.BeginTrans; with CDS_SUB do begin First; while not Eof do begin if Fieldbyname('Ssel').AsBoolean then begin with ADOPrint do begin Close; sql.Clear; sql.Add(' select A.* '); SQL.Add(' from CK_Sample_CR A '); sql.Add(' where CRFlag=''出库'' and A.valid=''Y'' '); sql.Add(' and VisType=''寄样'' '); SQL.Add('and crno=' + quotedstr(Trim(CDS_SUB.fieldbyname('crno').AsString))); // sql.Add('and EXISTS(select SubId from TBSubID X where X.SubId=A.crno and X.DName=' + quotedstr(Trim(DCode))); // sql.Add(')'); // ShowMessage(sql.Text); Open; end; if FileExists(fPrintFile) then begin // RMVariables['EngMoney']:=EngMoney; //RMVariables['enddate']:=enddate.DateTime; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim((trim(CDS_SUB.fieldbyname('crno').AsString))); fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); except application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; RM1.LoadFromFile(fPrintFile); RMVariables['QRBARCODE'] := fImagePath; RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; end; end; procedure TfrmJYGLlistCW.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin INITSUB(); end; procedure TfrmJYGLlistCW.v1CRTypePropertiesChange(Sender: TObject); var mvalues, FFieldName: string; begin inherited; mvalues := TCXTextEdit(Sender).Text; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_Main do begin edit; fieldbyname(FFieldName).Value := mvalues; post; end; tv1.Controller.EditingController.ShowEdit(); // if trim(mvalues) <> '' then // begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_Sample_CR '); SQL.Add(' Set ' + FFieldName + '=' + QuotedStr(mvalues)); sql.Add(' where INOUTNO=''' + Trim(CDS_Main.fieldbyname('INOUTNO').AsString) + ''''); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); end; end.