unit U_Bpkcsumlist; 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, Menus; type TfrmBpkcsumlist = 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; lbl1: TLabel; kuwei: TEdit; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; CheckBox3: TCheckBox; CYID: TEdit; Tv1Column8: TcxGridDBColumn; Label3: TLabel; Edit2: TEdit; Button1: TButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; CheckBox4: TCheckBox; Tv1Column9: TcxGridDBColumn; 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 v1kuweiPropertiesEditValueChanged(Sender: TObject); procedure Tv1DblClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure CheckBox4Click(Sender: TObject); private procedure InitGrid(); procedure SetComboBox(); { Private declarations } public fType: integer; fCKName: string; canshu2: string; CANSHU8: string; CANSHU1: string; { Public declarations } end; var frmBpkcsumlist: TfrmBpkcsumlist; implementation uses U_DataLink, U_Fun10, U_ZDYHelp, U_BpRk; {$R *.dfm} procedure TfrmBpkcsumlist.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 TfrmBpkcsumlist.InitGrid(); begin try with adoqueryTmp do begin close; sql.Clear; sql.Add('exec P_View_YpKc '); 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'' '); if CheckBox4.Checked = True then begin sql.Add(',@criteria='' and kuwei='''''''' '''); end; // ShowMessage(SQL.Text); open; end; SCreateCDS20(adoqueryTmp, CDS_Main); SInitCDSData20(adoqueryTmp, CDS_Main); finally end; end; procedure TfrmBpkcsumlist.FormClose(Sender: TObject; var Action: TCloseAction); begin if fType = 10 then Action := cahide else Action := cafree; end; procedure TfrmBpkcsumlist.FormDestroy(Sender: TObject); begin frmBpkcsumlist := nil; end; procedure TfrmBpkcsumlist.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 TfrmBpkcsumlist.FormShow(Sender: TObject); begin readCxGrid(self.Caption, Tv1, '样品仓库7'); if fType = 10 then begin TOk.Visible := true; v1Ssel.Visible := true; end; if CANSHU1 = '查询' then begin // Tv1.OptionsData.Editing := False; ToolButton1.Visible := False; end else begin Tv1.OptionsData.Editing := True; ToolButton1.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 TfrmBpkcsumlist.FormCreate(Sender: TObject); begin BegDate.Date := DServerDate - 7; EndDate.Date := DServerDate; cxGrid1.Align := alclient; end; procedure TfrmBpkcsumlist.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption, Tv1, '样品仓库7'); close; end; procedure TfrmBpkcsumlist.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmBpkcsumlist.TBPrintClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmBpkcsumlist.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmBpkcsumlist.TOkClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; ModalResult := 1; end; procedure TfrmBpkcsumlist.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 TfrmBpkcsumlist.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 TfrmBpkcsumlist.CheckBox2Click(Sender: TObject); begin initgrid(); end; procedure TfrmBpkcsumlist.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 TfrmBpkcsumlist.FormActivate(Sender: TObject); begin InitGrid(); if CANSHU8 = '1' then begin SDofilter(ADOQueryTmp, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryTmp, CDS_Main); SInitCDSData20(ADOQueryTmp, CDS_Main); end; end; procedure TfrmBpkcsumlist.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 TfrmBpkcsumlist.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 YP_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 TfrmBpkcsumlist.Tv1DblClick(Sender: TObject); begin if fType <> 10 then Exit; if CDS_Main.IsEmpty then Exit; ModalResult := 1; end; procedure TfrmBpkcsumlist.Button1Click(Sender: TObject); var mvalue: string; begin if Trim(Edit2.Text) = '' then begin application.MessageBox('库位不能为空!', '提示信息', 0); Exit; end; mvalue := Trim(Edit2.Text); while CDS_Main.Locate('SSel', True, []) do begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update YP_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))); // ShowMessage(SQL.Text); ExecSQL; end; // Tv1.Controller.EditingController.ShowEdit(); CDS_Main.Delete; end; InitGrid(); if ADOQueryTmp.Active = False then Exit; SDofilter(ADOQueryTmp, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryTmp, CDS_Main); SInitCDSData20(ADOQueryTmp, CDS_Main); end; procedure TfrmBpkcsumlist.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmBpkcsumlist.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmBpkcsumlist.CheckBox4Click(Sender: TObject); begin initgrid(); if ADOQueryTmp.Active = False then Exit; SDofilter(ADOQueryTmp, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryTmp, CDS_Main); SInitCDSData20(ADOQueryTmp, CDS_Main); end; end.