unit U_HCList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, MovePanel, cxCheckBox, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, BtnEdit, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; type TfrmHCList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; Label3: TLabel; Label4: TLabel; C_CodeName: TEdit; C_Color: TEdit; Label1: TLabel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; Tv1: TcxGridDBTableView; cxGrid2Level1: TcxGridLevel; cxGrid2: TcxGrid; Label5: TLabel; conNO: TEdit; Label6: TLabel; MJID: TEdit; Label8: TLabel; KZ: TEdit; Label9: TLabel; MF: TEdit; Label7: TLabel; CPType: TComboBox; MovePanel2: TMovePanel; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column10: TcxGridDBColumn; Label10: TLabel; AOrddefstr1: TEdit; Label11: TLabel; AOrddefstr4: TEdit; v1Column11: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column16: TcxGridDBColumn; 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; v1Column17: TcxGridDBColumn; Tprint: TToolButton; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; ADOQueryPrint: TADOQuery; CheckBox1: TCheckBox; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; HCType: TEdit; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; edit_conNo: TBtnEditA; edit_AOrdQty5: TEdit; edit_AOrdQty6: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; ToolButton1: TToolButton; Panel_TS: TPanel; Tv1Column1: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure C_CodeNameChange(Sender: TObject); procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); procedure TprintClick(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure edit_conNoBtnClick(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); private procedure InitGrid(); { Private declarations } public { Public declarations } end; var frmHCList: TfrmHCList; implementation uses U_DataLink,U_Fun,U_ClothContractList_sel; {$R *.dfm} procedure TfrmHCList.FormDestroy(Sender: TObject); begin frmHCList:=nil; end; procedure TfrmHCList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmHCList.FormCreate(Sender: TObject); begin cxGrid2.Align:=alClient; BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp); EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp) end; procedure TfrmHCList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; Filtered:=False; sql.Add('select AA.*,Num_Rate=case when (AOrdQty1=0 OR JY_Qty=0) then 0 else (JY_Qty-AOrdQty1)/AOrdQty1*100.00 end '); sql.Add('from( '); sql.Add('select A.*,hC_ps=A.AordQty2,JY_ps=(select count(MainID) from WFB_MJJY X where X.APID=A.APID),'); sql.Add('JY_Qty=(select sum(MJLen) from WFB_MJJY X where X.APID=A.APID), '); sql.Add('RK_RollNum=(select sum(RollNum) from CK_BanCP_CR X where X.APID=A.APID and X.CRType=''�������''),'); sql.Add('RK_Qty=(select sum(Qty) from CK_BanCP_CR X where X.APID=A.APID and X.CRType=''�������''), '); sql.Add('TPconNO=(select conNO from Contract_Main X where X.MainId=A.mainID),'); sql.Add('hCType=(select conType from Contract_Main X where X.MainId=A.mainID)'); sql.Add('from JYOrder_sub_anPai A '); SQL.Add('WHERE ADefDate1>='''+formatdateTime('yyyy-MM-dd',BegDate.DateTime)+''' '); SQL.Add('AND ADefDate1<'''+formatdateTime('yyyy-MM-dd',enddate.DateTime+1)+''' '); sql.Add(' ) AA '); Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; TBFind.Click; end; end; procedure TfrmHCList.TBRafreshClick(Sender: TObject); begin //BegDate.SetFocus; MovePanel2.Visible:=True; MovePanel2.Refresh; InitGrid(); MovePanel2.Visible:=False; end; procedure TfrmHCList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); end; end; procedure TfrmHCList.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption,Tv1,'��Ʒ�ֿ�'); Close; end; procedure TfrmHCList.FormShow(Sender: TObject); begin ReadCxGrid(self.Caption,Tv1,'��Ʒ�ֿ�'); //InitGrid(); end; procedure TfrmHCList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel(self.Caption,cxGrid2); end; procedure TfrmHCList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); end; end; procedure TfrmHCList.C_CodeNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmHCList.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin { IF AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('Num_Rate').Index]>10.0 then begin ACanvas.Brush.Color:=clSkyBlue; end else IF AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('Num_Rate').Index]<-3.0 then begin ACanvas.Brush.Color:=clred; end; } end; procedure TfrmHCList.Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); var FValue: string; FBounds: TRect; begin FBounds := AViewInfo.Bounds; if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then begin ACanvas.FillRect(FBounds); ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1); FValue :=IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index+1); InflateRect(FBounds, -1, -1) ; ACanvas.Font.Color := clBlack; ACanvas.Brush.Style := bsClear; ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop); ADone := True; end; end; procedure TfrmHCList.TprintClick(Sender: TObject); var fPrintFile:string; Txt,fImagePath:string; Moudle: THandle; Makebar:TMakebar; Mixtext:TMixtext; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('ssel',true,[])=false then begin Application.MessageBox('û��ѡ������!','��ʾ',0); Exit; end; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\����ָʾ����ǩ.rmf' ; if not FileExists(fPrintFile) then begin Application.MessageBox(PChar('û����'+ExtractFilePath(Application.ExeName)+'Report\����ָʾ����ǩ.rmf'),'��ʾ',0); Exit; end; with CDS_Main do begin DisableControls; First; while not eof do begin IF Fieldbyname('ssel').AsBoolean then begin with ADOQueryPrint do begin close; sql.Clear; sql.Add('select A.* '); sql.Add(',CPKW=(select Top 1 zdyCode from KH_Zdy_Attachment X where X.DEFstr1=A.C_CodeName and X.DEFstr2=A.C_Color)'); sql.Add(',CPNUM=(select count(CRID) from CK_BanCP_KC X where X.C_CodeName=A.C_CodeName and X.C_Color=A.C_Color)'); sql.Add('from JYOrder_Sub_AnPai A '); sql.Add('where Apid='+quotedstr(trim(CDS_Main.fieldbyname('apid').AsString))); open; if isempty then begin CDS_Main.EnableControls; application.MessageBox('�˻زֵ�δ���棬���ܱ���','��ʾ��Ϣ',0); exit; end; end; try Moudle:=LoadLibrary('MakeQRBarcode.dll'); @Makebar:=GetProcAddress(Moudle,'Make'); @Mixtext:=GetProcAddress(Moudle,'MixText'); Txt:=Trim(ADOQueryPrint.fieldbyname('APID').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); CDS_Main.EnableControls; exit; end; RMVariables['QRBARCODE']:=fImagePath; RM1.LoadFromFile(fPrintFile); // RM1.ShowReport; RM1.PrintReport; { if CheckBox1.Checked then RM1.ShowReport else begin // RM1.DefaultCopies:=strtointdef(trim(edit2.Text),1); RM1.PrintReport; end; } end; next; end; EnableControls; First; end; end; procedure TfrmHCList.CheckBox1Click(Sender: TObject); begin IF CDS_Main.IsEmpty then exit; with CDS_Main do begin DisableControls; first; while not eof do begin edit; fieldbyname('ssel').Value:=checkbox1.Checked; post; next; end; First; EnableControls; end; end; procedure TfrmHCList.ToolButton1Click(Sender: TObject); begin edit_conNo.Text:=''; edit_AOrdQty5.Text:=''; edit_AOrdQty6.Text:=''; Panel_TS.Left:=(self.Width -Panel_TS.Width) div 2; Panel_TS.Visible:=true; end; procedure TfrmHCList.edit_conNoBtnClick(Sender: TObject); begin IF CDS_Main.IsEmpty then exit; frmClothContractList_sel:=TfrmClothContractList_sel.create(self); with frmClothContractList_sel do begin ffactoryName:=self.CDS_Main.fieldbyname('AOrddefstr4').AsString; C_CodeName.Text:=self.CDS_Main.fieldbyname('C_CodeName').AsString; if showmodal=1 then begin edit_conNo.Text:=Order_Main.fieldbyname('conNo').AsString; end; free; end; end; procedure TfrmHCList.Button3Click(Sender: TObject); begin IF CDS_Main.IsEmpty then exit; try with CDS_Main do begin CDS_Main.First; CDS_Main.EnableControls; while not eof do begin IF fieldbyName('Ssel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update JYOrder_sub_anPai SET conNo='''+trim(edit_conNo.Text)+''' '); sql.Add('where APID='''+trim(CDS_Main.fieldbyName('APID').AsString)+''' '); execsql; end; end; next; end; CDS_Main.EnableControls; end; Panel_TS.Visible:=false; TBRafresh.Click; except CDS_Main.EnableControls; application.MessageBox('���ݱ���ʧ�ܣ�','��ʾ��Ϣ',MB_ICONERROR); end; end; procedure TfrmHCList.Button2Click(Sender: TObject); begin Panel_TS.Visible:=false; end; end.