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;

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;
    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);
  private
    procedure InitGrid();
    procedure SetComboBox();
    { Private declarations }
  public
    fType: integer;
    fCKName: string;
    canshu2: string;

    { 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();
begin
  try
    with adoqueryTmp do
    begin
      close;
      sql.Clear;
      sql.Add('exec P_View_CYGGKc ');
      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 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
  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
  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;

end.

