unit U_YMTJGWCList;

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, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset,
  RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit,
  cxContainer, cxImage, cxDBEdit, cxLookAndFeels, cxLookAndFeelPainters,
  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, cxNavigator, cxCurrencyEdit,
  cxMaskEdit;

type
  TfrmYMTJGWCList = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBExport: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    cxGridPopupMenu1: TcxGridPopupMenu;
    Label1: TLabel;
    Label2: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    CDS_Main: TClientDataSet;
    RM1: TRMGridReport;
    RMDBMain: TRMDBDataSet;
    RMXLSExport1: TRMXLSExport;
    RMDBHZ: TRMDBDataSet;
    CDS_HZ: TClientDataSet;
    CDS_PRT: TClientDataSet;
    TBDel: TToolButton;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    MXPrtName: TEdit;
    FactoryName: TEdit;
    FSId: TEdit;
    cxGrid2: TcxGrid;
    Tv1: TcxGridDBTableView;
    TV1FromMXID: TcxGridDBColumn;
    TV1CRTime: TcxGridDBColumn;
    TV1CRType: TcxGridDBColumn;
    TV1FSId: TcxGridDBColumn;
    TV1SPColor: TcxGridDBColumn;
    TV1SPHX: TcxGridDBColumn;
    TV1FactoryName: TcxGridDBColumn;
    TV1SPName: TcxGridDBColumn;
    TV1MQty: TcxGridDBColumn;
    cxGrid2Level1: TcxGridLevel;
    Label13: TLabel;
    MXPrtColor: TEdit;
    Label15: TLabel;
    MXPrtHX: TEdit;
    ADOQueryImage: TADOQuery;
    TV1SCConNo: TcxGridDBColumn;
    Tv1SSel: TcxGridDBColumn;
    TbEditKW: TToolButton;
    Panel4: TPanel;
    Label25: TLabel;
    btnChk: TButton;
    btn1: TButton;
    KuWei: TcxButtonEdit;
    Tv1KuWei: TcxGridDBColumn;
    Tv1KgQty: 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 N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure TBAddClick(Sender: TObject);
    procedure SPSpecChange(Sender: TObject);
    procedure FactoryNameChange(Sender: TObject);
    procedure TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
    procedure ToolButton2Click(Sender: TObject);
    procedure TbEditKWClick(Sender: TObject);
    procedure KuWeiPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure btnChkClick(Sender: TObject);
    procedure btn1Click(Sender: TObject);
  private
    canshu1, canshu2: string;
    procedure InitGrid();
    procedure InitImage(fsubID: string);

    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmYMTJGWCList: TfrmYMTJGWCList;

implementation

uses
  U_DataLink, U_RTFun, U_YMTRKInPut, U_ZdyAttachGYS, U_LabelPrintFun,
  U_ZDYHelp, U_KuWeiList;

{$R *.dfm}

procedure TfrmYMTJGWCList.InitImage(fsubID: string);
begin
  ADOQueryImage.close;
 // IF fwbid='' then exit;
  with ADOQueryImage do
  begin
    close;
    sql.Clear;
    sql.Add('select * from TP_File A');
    sql.Add('inner join JYOrder_Sub B on B.HXFile=A.WBID');
    sql.Add('where B.SubID=' + quotedstr(trim(fsubID)));
    open;
  end;
end;

procedure TfrmYMTJGWCList.FormDestroy(Sender: TObject);
begin
  frmYMTJGWCList := nil;
end;

procedure TfrmYMTJGWCList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TfrmYMTJGWCList.FormCreate(Sender: TObject);
begin
  //cxGrid1.Align:=alClient;
  canshu1 := Trim(DParameters1);
  canshu2 := Trim(DParameters2);
  EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
  BegDate.DateTime := EndDate.DateTime;
end;

procedure TfrmYMTJGWCList.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      sql.Clear;
      sql.Add(' select A.*,B.FSId, B.SCConNo');
      sql.Add(' from YMT_CK_CR A');
      sql.Add(' JOIN YMT_FHSQ_Sub B ON B.SSID = A.FromSSID');
      sql.add(' where A.CRTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + '''');
      sql.Add(' and A.CRTime<=''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + '''');
      sql.Add(' and isnull(A.CKName,'''')=''面料''');
      SQL.Add(' and A.CRType=''加工完成''  ');
      Open;
      //ShowMessage(SQL.Text);
    end;
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmYMTJGWCList.TBRafreshClick(Sender: TObject);
begin
  BegDate.SetFocus;
  InitGrid();
end;

procedure TfrmYMTJGWCList.ConNoMChange(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
  end;
end;

procedure TfrmYMTJGWCList.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('加工完成回仓数据列表', Tv1, '加工完成面料仓库');

  Close;
end;

procedure TfrmYMTJGWCList.FormShow(Sender: TObject);
begin
  if Trim(canshu2) = '查看' then
  begin
    TBDel.Visible := False;
  end
  else
  begin
    TBDel.Visible := True;
  end;
  ReadCxGrid('加工完成回仓数据列表', Tv1, '加工完成面料仓库');
  InitGrid();
end;

procedure TfrmYMTJGWCList.TBExportClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    exit;
  TcxGridToExcel('加工完成回仓数据列表', cxGrid2);
end;

procedure TfrmYMTJGWCList.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 TfrmYMTJGWCList.N1Click(Sender: TObject);
begin
  SelOKNo(CDS_Main, True);
end;

procedure TfrmYMTJGWCList.N2Click(Sender: TObject);
begin
  SelOKNo(CDS_Main, False);
end;

procedure TfrmYMTJGWCList.TBDelClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then
    Exit;
  if Trim(CDS_Main.fieldbyname('SPID').AsString) <> '' then
  begin
    if Trim(CDS_Main.fieldbyname('CRType').AsString) = '平移入库' then
    begin
      Application.MessageBox('平移入库的数据为自动生成，不能删除!', '提示', 0);
      Exit;
    end;
    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from YMT_CK_CR where FZSPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
      sql.Add(' and CRQtyFlag=-1');
      Open;
    end;
    if ADOQueryTemp.IsEmpty = False then
    begin
      Application.MessageBox('已有出库记录，不能删除!', '提示', 0);
      Exit;
    end;
    if Application.MessageBox('确定要删除数据吗？', '提示', 32 + 4) <> IDYES then
      Exit;
    try
      ADOQueryCmd.Connection.BeginTrans;

      with ADOQueryCmd do
      begin
        Close;
        sql.Clear;
        sql.Add(' delete YMT_CK_CR where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
        ExecSQL;
      end;
      ADOQueryCmd.Connection.CommitTrans;
      CDS_Main.Delete;
    except
      ADOQueryCmd.Connection.RollbackTrans;
      Application.MessageBox('删除异常!', '提示', 0);
    end;
  end
  else
  begin
    CDS_Main.Delete;
  end;
end;

procedure TfrmYMTJGWCList.TBAddClick(Sender: TObject);
begin
  try
    frmYMTRKInPut := TfrmYMTRKInPut.Create(Application);
    with frmYMTRKInPut do
    begin
      PState := 0;
      FBCId := '';
      if ShowModal = 1 then
      begin
        Self.InitGrid();
      end;
    end;
  finally
    frmYMTRKInPut.Free;
  end;
end;

procedure TfrmYMTJGWCList.SPSpecChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmYMTJGWCList.FactoryNameChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmYMTJGWCList.TvMXCustomDrawIndicatorCell(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 TfrmYMTJGWCList.ToolButton2Click(Sender: TObject);
var
  MPrintJson, JsonResult, MFiltration: string;
begin
  if CDS_Main.IsEmpty then
    Exit;
  MFiltration := Trim(CDS_Main.fieldbyname('SPID').AsString);
  MPrintJson := '{ "LBName": "标签打印","QrCodeField": "MXID","DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "EXEC P_YMT_CK_MX_Prt1 ''' + MFiltration + ''' " }] }';
  FunPrint(Application, PChar(MPrintJson));

end;

procedure TfrmYMTJGWCList.TbEditKWClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then
    exit;
  Panel4.Visible := True;
end;

procedure TfrmYMTJGWCList.KuWeiPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
   try
    frmKuWeiList := TfrmKuWeiList.Create(Application);
    with frmKuWeiList do
    begin
      if ShowModal = 1 then
      begin
        with Self.CDS_Main do
        begin
          Edit;
          KuWei.Text := Trim(frmKuWeiList.Order_Main.fieldbyname('KWName').AsString);
        end;
      end;
    end;
  finally
    frmKuWeiList.Free;
  end;
end;

procedure TfrmYMTJGWCList.btnChkClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then
    exit;
  if CDS_Main.Locate('SSel', True, []) = False then
  begin
    application.MessageBox('请选择数据！', '提示信息');
    exit;
  end;

  try
    while CDS_Main.Locate('SSel', True, []) do
    begin
      with ADOQueryCmd do
      begin
        close;
        sql.Clear;
        sql.Add('update YMT_CK_CR SET KuWei=' + quotedstr(trim(KuWei.Text)));
        sql.Add('where SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString)));
        execsql;
      end;
      with CDS_Main do
      begin
        Edit;
        FieldByName('SSel').Value := False;
        FieldByName('KuWei').Value := trim(KuWei.Text);
        Post;
      end;
    end;

    Panel4.Visible := False;
    application.MessageBox('批量修改成功！', '提示信息');
  except
    application.MessageBox('批量修改失败！', '提示信息', 0);
  end;
end;

procedure TfrmYMTJGWCList.btn1Click(Sender: TObject);
begin
  Panel4.Visible := False;
end;

end.

