unit U_Bpkcsumlistsel; 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; type TfrmBpkcsumlistSEL = 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; CYID: TEdit; fromsubid: TEdit; 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 Tv1DblClick(Sender: TObject); private procedure InitGrid(); procedure SetComboBox(); { Private declarations } public fType: integer; fCKName: string; canshu2: string; CANSHU8: string; CANSHU1: string; { Public declarations } end; var frmBpkcsumlistSEL: TfrmBpkcsumlistSEL; implementation uses U_DataLink, U_Fun10, U_ZDYHelp, U_BpRk; {$R *.dfm} procedure TfrmBpkcsumlistSEL.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 TfrmBpkcsumlistSEL.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'' '); // ShowMessage(SQL.Text); open; end; SCreateCDS20(adoqueryTmp, CDS_Main); SInitCDSData20(adoqueryTmp, CDS_Main); finally end; end; procedure TfrmBpkcsumlistSEL.FormClose(Sender: TObject; var Action: TCloseAction); begin if fType = 10 then Action := cahide else Action := cafree; end; procedure TfrmBpkcsumlistSEL.FormDestroy(Sender: TObject); begin frmBpkcsumlistSEL := nil; end; procedure TfrmBpkcsumlistSEL.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 TfrmBpkcsumlistSEL.FormShow(Sender: TObject); begin readCxGrid(self.Caption, Tv1, '样品仓库选择5'); 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 TfrmBpkcsumlistSEL.FormCreate(Sender: TObject); begin BegDate.Date := DServerDate - 7; EndDate.Date := DServerDate; cxGrid1.Align := alclient; end; procedure TfrmBpkcsumlistSEL.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption, Tv1, '样品仓库选择5'); close; end; procedure TfrmBpkcsumlistSEL.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmBpkcsumlistSEL.TBPrintClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmBpkcsumlistSEL.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmBpkcsumlistSEL.TOkClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; ModalResult := 1; end; procedure TfrmBpkcsumlistSEL.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 TfrmBpkcsumlistSEL.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 TfrmBpkcsumlistSEL.CheckBox2Click(Sender: TObject); begin initgrid(); end; procedure TfrmBpkcsumlistSEL.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 TfrmBpkcsumlistSEL.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 TfrmBpkcsumlistSEL.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 TfrmBpkcsumlistSEL.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 TfrmBpkcsumlistSEL.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 TfrmBpkcsumlistSEL.Tv1DblClick(Sender: TObject); begin if fType <> 10 then Exit; if CDS_Main.IsEmpty then Exit; ModalResult := 1; end; end.