unit U_CYGGkcsumlist; 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, cxCheckBox, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, cxTextEdit, cxCalendar, math; type TfrmCYGGkcsumlist = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBExport: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1P_CodeName: TcxGridDBColumn; v1P_SPEC: TcxGridDBColumn; v1P_MF: TcxGridDBColumn; v1P_KZ: TcxGridDBColumn; v1RollNum: TcxGridDBColumn; v1Qty: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Label2: TLabel; Label4: TLabel; P_Code: TEdit; P_spec: TEdit; CRType: TComboBox; Label5: TLabel; ADOQueryCmd: TADOQuery; ADOQueryTmp: TADOQuery; DataSource1: TDataSource; CDS_Main: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; TOk: TToolButton; v1Ssel: TcxGridDBColumn; CheckBox1: TCheckBox; ckName: TComboBox; Label6: TLabel; v1Column1: TcxGridDBColumn; v1P_Code: TcxGridDBColumn; P_CodeName: TEdit; Label7: TLabel; Label8: TLabel; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; Label9: TLabel; Edit1: TEdit; Label10: TLabel; VCfactoryName: TcxGridDBColumn; v1defnote5: TcxGridDBColumn; CheckBox2: TCheckBox; v1kuwei: TcxGridDBColumn; ToolButton1: TToolButton; P_Color: TEdit; Label11: TLabel; v1Column7: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column11: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Label12: TLabel; FROMOrderno: TEdit; ToolButton2: TToolButton; lbl1: TLabel; kuwei: TEdit; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; CheckBox3: TCheckBox; Label3: TLabel; P_HX: TEdit; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Panel6: TPanel; Label31: TLabel; LBCPAP: TLabel; BTLP: TButton; BTNP: TButton; TCBNOR: TComboBox; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure P_CodeChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TOkClick(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure CheckBox2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); procedure ToolButton2Click(Sender: TObject); procedure v1kuweiPropertiesEditValueChanged(Sender: TObject); procedure Tv1Column8PropertiesEditValueChanged(Sender: TObject); procedure BTNPClick(Sender: TObject); procedure BTLPClick(Sender: TObject); procedure TCBNORChange(Sender: TObject); procedure P_CodeKeyPress(Sender: TObject; var Key: Char); private procedure InitGrid(); procedure SetComboBox(); { Private declarations } public fType: integer; fCKName: string; canshu2: string; CurrentPage, RecordsNumber: Integer; { Public declarations } end; var frmCYGGkcsumlist: TfrmCYGGkcsumlist; implementation uses U_DataLink, U_Fun10, U_ZDYHelp, U_BpRk; {$R *.dfm} procedure TfrmCYGGkcsumlist.SetComboBox(); begin ckName.Items.Clear; with adoQueryTmp do begin close; sql.Clear; sql.Add('select * from KH_ZDY where Type=''YPCK'' '); if trim(fCKName) <> '' then sql.Add('and zdyName=' + quotedstr(trim(fCKName))); open; while not eof do begin ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); next; end; end; if ckName.Items.Count > 0 then ckName.ItemIndex := 0; CRType.Items.Clear; CRType.Items.Add(''); with adoQueryTmp do begin close; sql.Clear; sql.Add('select * from KH_ZDY where Type=''YPRKTYPE'''); if trim(fCKName) <> '' then sql.Add('and note=' + quotedstr(trim(fCKName))); open; while not eof do begin CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); next; end; end; if CRType.Items.Count > 0 then CRType.ItemIndex := 0; with adoqueryCmd do begin close; sql.Clear; sql.Add('select * from KH_Zdy where Type=''YPKCJYFLAG'''); open; if not IsEmpty then Edit1.Text := trim(fieldbyname('zdyName').AsString); end; end; procedure TfrmCYGGkcsumlist.InitGrid(); var fwhere, Pwhere: string; begin Pwhere := SGetFilters(Panel1, 1, 2); begin if trim(Pwhere) <> '' then fwhere := fwhere + ' and ' + trim(Pwhere); end; try with adoqueryTmp do begin close; sql.Clear; sql.Add('exec P_View_CYGGKc_cs '); sql.Add('@pageIndex=' + inttostr(CurrentPage)); sql.Add(',@pageSize=' + inttostr(RecordsNumber)); sql.Add(' ,@yjNum=''' + trim(Edit1.text) + ''' '); if CheckBox1.Checked then sql.Add(',@iskc=''1'' ') else sql.Add(',@iskc=''0'' '); if CheckBox2.Checked then sql.Add(',@isyj=''1'' ') else sql.Add(',@isyj=''0'' '); sql.Add(',@criteria= ' + quotedstr(fwhere)); open; end; SCreateCDS20(adoqueryTmp, CDS_Main); SInitCDSData20(adoqueryTmp, CDS_Main); LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber)); finally end; end; procedure TfrmCYGGkcsumlist.FormClose(Sender: TObject; var Action: TCloseAction); begin if fType = 10 then Action := cahide else Action := cafree; end; procedure TfrmCYGGkcsumlist.FormDestroy(Sender: TObject); begin frmcyggkcsumlist := nil; end; procedure TfrmCYGGkcsumlist.P_CodeChange(Sender: TObject); begin if ADOQueryTmp.Active = False then Exit; SDofilter(ADOQueryTmp, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryTmp, CDS_Main); SInitCDSData20(ADOQueryTmp, CDS_Main); end; procedure TfrmCYGGkcsumlist.FormShow(Sender: TObject); begin CurrentPage := 1; RecordsNumber := 500; readCxGrid(self.Caption, Tv1, '样品仓库5'); if fType = 10 then begin TOk.Visible := true; v1Ssel.Visible := true; end; // if canshu2 = '业务员' then // begin // v1factoryName.Visible := false; // v1factoryName.Hidden := true; // end // else // begin // v1factoryName.Visible := true; // v1factoryName.Hidden := false; // end; SetComboBox(); end; procedure TfrmCYGGkcsumlist.FormCreate(Sender: TObject); begin BegDate.Date := DServerDate - 7; EndDate.Date := DServerDate; cxGrid1.Align := alclient; end; procedure TfrmCYGGkcsumlist.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption, Tv1, '样品仓库5'); close; end; procedure TfrmCYGGkcsumlist.TBRafreshClick(Sender: TObject); begin CurrentPage := 1; initGrid(); end; procedure TfrmCYGGkcsumlist.TBPrintClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmCYGGkcsumlist.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmCYGGkcsumlist.TOkClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; ModalResult := 1; end; procedure TfrmCYGGkcsumlist.CheckBox1Click(Sender: TObject); begin if checkbox3.Checked = True then begin P_Code.Tag := 1; end else begin P_Code.Tag := 2; end; initgrid(); if ADOQueryTmp.Active = False then Exit; SDofilter(ADOQueryTmp, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryTmp, CDS_Main); SInitCDSData20(ADOQueryTmp, CDS_Main); // ToolButton2.Click(); end; procedure TfrmCYGGkcsumlist.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin // if AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('kcQty').Index] < strtofloatdef(trim(edit1.Text), 0) then // ACanvas.Brush.Color := $008080FF; end; procedure TfrmCYGGkcsumlist.CheckBox2Click(Sender: TObject); begin initgrid(); end; procedure TfrmCYGGkcsumlist.ToolButton1Click(Sender: TObject); begin frmZDYHelp := TfrmZDYHelp.Create(self); with frmZDYHelp do begin flag := 'YPKCJYFLAG'; caption := '样品库存预警设置'; V1Name.Caption := '预警数量'; showmodal; free; end; with adoqueryCmd do begin close; sql.Clear; sql.Add('select * from KH_Zdy where Type=''YPKCJYFLAG'''); open; if not IsEmpty then Edit1.Text := trim(fieldbyname('zdyName').AsString); end; TBRafresh.Click; end; procedure TfrmCYGGkcsumlist.FormActivate(Sender: TObject); begin InitGrid(); end; procedure TfrmCYGGkcsumlist.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); //Platform specific. May not work on Linux. ACanvas.Font.Color := clBlack; ACanvas.Brush.Style := bsClear; ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop); ADone := True; end; end; procedure TfrmCYGGkcsumlist.ToolButton2Click(Sender: TObject); var STR: string; begin if CDS_Main.IsEmpty = true then begin Exit; end; // if InputQuery('修改库位', '修改库位:', trim(CDS_Main.fieldbyname('kuwei').asstring)) then // begin // with ADOQueryTmp do // begin // close; // sql.Clear; // sql.Add('update '); // open; // end; // end // else // begin // Exit; // end; end; procedure TfrmCYGGkcsumlist.v1kuweiPropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CYGG_InOut set kuwei=' + quotedstr(Trim(mvalue))); sql.Add('where isnull(FROMOrderno,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('FROMOrderno').AsString))); sql.Add('and isnull(frommainid,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('frommainid').AsString))); sql.Add('and isnull(fromsubid,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('fromsubid').AsString))); sql.Add('and isnull(ywy,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('ywy').AsString))); sql.Add('and isnull(Price,0)=' + Trim(CDS_Main.fieldbyname('Price').AsString)); sql.Add('and isnull(factoryname,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('factoryname').AsString))); sql.Add('and isnull(P_Code,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_Code').AsString))); sql.Add('and isnull(P_codename,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_codename').AsString))); sql.Add('and isnull(P_spec,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_spec').AsString))); sql.Add('and isnull(P_cf,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_cf').AsString))); sql.Add('and isnull(P_Color,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_Color').AsString))); sql.Add('and isnull(P_HX,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_HX').AsString))); sql.Add('and isnull(QtyUnit,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('QtyUnit').AsString))); sql.Add('and isnull(shazhi,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('shazhi').AsString))); sql.Add('and isnull(kuwei,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('kuwei').AsString))); sql.Add('and isnull(P_SKZ,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_SKZ').AsString))); sql.Add('and isnull(YPCFD,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('YPCFD').AsString))); sql.Add('and isnull(JuanHao,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('JuanHao').AsString))); sql.Add('and isnull(ISCGPZ,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('ISCGPZ').AsString))); sql.Add('and isnull(YPType,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('YPType').AsString))); ExecSQL; end; with CDS_Main do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; Tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmCYGGkcsumlist.Tv1Column8PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CYGG_InOut set KCNOTE=' + quotedstr(Trim(mvalue))); sql.Add('where isnull(FROMOrderno,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('FROMOrderno').AsString))); sql.Add('and isnull(frommainid,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('frommainid').AsString))); sql.Add('and isnull(fromsubid,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('fromsubid').AsString))); sql.Add('and isnull(ywy,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('ywy').AsString))); sql.Add('and isnull(Price,0)=' + Trim(CDS_Main.fieldbyname('Price').AsString)); sql.Add('and isnull(factoryname,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('factoryname').AsString))); sql.Add('and isnull(P_Code,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_Code').AsString))); sql.Add('and isnull(P_codename,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_codename').AsString))); sql.Add('and isnull(P_spec,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_spec').AsString))); sql.Add('and isnull(P_cf,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_cf').AsString))); sql.Add('and isnull(P_Color,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_Color').AsString))); sql.Add('and isnull(P_HX,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_HX').AsString))); sql.Add('and isnull(QtyUnit,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('QtyUnit').AsString))); sql.Add('and isnull(shazhi,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('shazhi').AsString))); sql.Add('and isnull(kuwei,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('kuwei').AsString))); sql.Add('and isnull(P_SKZ,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('P_SKZ').AsString))); sql.Add('and isnull(YPCFD,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('YPCFD').AsString))); sql.Add('and isnull(JuanHao,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('JuanHao').AsString))); sql.Add('and isnull(ISCGPZ,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('ISCGPZ').AsString))); sql.Add('and isnull(YPType,'''')=' + quotedstr(Trim(CDS_Main.fieldbyname('YPType').AsString))); ExecSQL; end; with CDS_Main do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; Tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmCYGGkcsumlist.BTNPClick(Sender: TObject); begin if CurrentPage < CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber then CurrentPage := CurrentPage + 1; InitGrid(); end; procedure TfrmCYGGkcsumlist.BTLPClick(Sender: TObject); begin if CurrentPage > 1 then CurrentPage := CurrentPage - 1; InitGrid(); end; procedure TfrmCYGGkcsumlist.TCBNORChange(Sender: TObject); begin RecordsNumber := StrToInt(TCBNOR.Text); CurrentPage := 1; InitGrid(); end; procedure TfrmCYGGkcsumlist.P_CodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; end.