⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uunfinance.pas

📁 适合行业为眼镜业
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit UUnfinance;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, fm_Base, Grids, StdCtrls, ExtCtrls, Buttons;

type
  TfmfinanceUnpos = class(TfmBase)
    Panel1: TPanel;
    Panel2: TPanel;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    Label1: TLabel;
    Panel3: TPanel;
    Edit1: TLabeledEdit;
    GroupBox1: TGroupBox;
    SpeedButton9: TSpeedButton;
    Edit4: TLabeledEdit;
    Edit6: TLabeledEdit;
    Edit8: TLabeledEdit;
    Edit9: TLabeledEdit;
    Edit10: TLabeledEdit;
    Edit5: TLabeledEdit;
    Edit2: TLabeledEdit;
    Panel6: TPanel;
    Panel8: TPanel;
    Panel9: TPanel;
    Panel10: TPanel;
    Cmd_Delete: TSpeedButton;
    Cmd_Add: TSpeedButton;
    StringGrid1: TStringGrid;
    SpeedButton5: TSpeedButton;
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SpeedButton5Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
  private
    { Private declarations }
    iFlag:integer;
    Pcol,Prow:integer;
    No:string;
    procedure init;
    function ReadData(No:string):boolean;
    Function CheckData():boolean;
    Function SaveData():boolean;
  public
    { Public declarations }
  end;

var
  fmfinanceUnpos: TfmfinanceUnpos;

implementation

uses func, untdatadm, Unt_PubStrGrid, Unitreportxf, Public_Don,
  Uinputselect, Login_Man;

{$R *.dfm}
//////////////////////
procedure tfmfinanceUnpos.init;
var
  temp,make:string;
begin
    InitialStrGrid(stringgrid1,'财务退货');
    edit1.Text:=formatdatetime('yyyy''-''mm''-''dd',date);
    Edit8.Text:=Handle_Man;
    //edit5.Text:=shopid;
end;

Function TfmfinanceUnpos.ReadData (No:string):boolean;
var
  sqlsub:widestring;
  k:integer;
begin
  result:=false;
  if (Public_Do='Edited')  then
  begin
    sqlsub:='Select a.*,b.*,c.stock_amount,c.baseprice from Cancel_strip as a, Cancel_strip_detail as b,vselectgoods as c where a.stock_no=b.stock_no and b.goods_no=c.goods_no and c.storage_no=a.storage_no and a.stock_No='''+trim(No)+'''';
    dmmain.CDSexecsql.Close;
    dmmain.CDSexecsql.Data:=adisp.execSql(sqlsub);
    dmmain.CDSexecsql.Open;
    StringGrid1.RowCount:=dmmain.CDSexecsql.RecordCount+1;
    if dmmain.CDSexecsql.IsEmpty then
    begin
        application.MessageBox('此退货单已被删除!',pchar(application.Title),mb_iconwarning);
        exit;
    end;
    //******************
    Edit1.Text:=dmmain.CDSexecsql.Fieldbyname('Copy_Date').AsString;
     Edit2.Text:=dmmain.CDSexecsql.Fieldbyname('stock_No').AsString;
    if iFlag<>1 then
    begin
      Edit6.Text:=dmmain.CDSexecsql.Fieldbyname('Transactor').AsString;
      Edit8.Text:=dmmain.CDSexecsql.Fieldbyname('proposer').AsString;
    end;
    Edit4.Text:=dmmain.CDSexecsql.Fieldbyname('WLDW').AsString;
    Edit5.Text:=dmmain.CDSexecsql.Fieldbyname('Storage_NO').AsString;
    Edit9.Text:=dmmain.CDSexecsql.Fieldbyname('Condense').AsString;
    Edit10.Text:=dmmain.CDSexecsql.Fieldbyname('Remark').AsString;
    wldwno:=trim(dmmain.CDSexecsql.Fieldbyname('Contract_No').AsString);//Contract_No
    for k:=1 to dmmain.CDSexecsql.RecordCount  do
    begin
      StringGrid1.Cells[0,K]:=IntTostr(k); //表示第0列第i行的名称
      StringGrid1.Cells[1,k]:=trim(dmmain.CDSexecsql.Fieldbyname('Goods_NO').AsString);//商品编号
      StringGrid1.Cells[2,k]:=trim(dmmain.CDSexecsql.Fieldbyname('Quality').AsString);//商品名称
      StringGrid1.Cells[3,k]:=trim(dmmain.CDSexecsql.Fieldbyname('amount').AsString);//数量
      StringGrid1.Cells[4,k]:=trim(format('%8.'+inttostr(len)+'f',[dmmain.CDSexecsql.Fieldbyname('PRICE').AsFloat]));
      StringGrid1.Cells[5,k]:=trim(dmmain.CDSexecsql.Fieldbyname('TOTAL_MONEY').AsString);
      StringGrid1.Cells[6,k]:=trim(dmmain.CDSexecsql.Fieldbyname('pass_no').AsString);
      StringGrid1.Cells[7,k]:=trim(dmmain.CDSexecsql.Fieldbyname('Fade_Name').AsString);
      StringGrid1.Cells[8,k]:=trim(dmmain.CDSexecsql.Fieldbyname('baseprice').AsString);
      StringGrid1.Cells[9,k]:=trim(inttostr(dmmain.CDSexecsql.Fieldbyname('stock_amount').AsInteger+dmmain.CDSexecsql.Fieldbyname('amount').AsInteger));
      dmmain.CDSexecsql.Next;
    end;
    GetDataPrint(dmmain.cdsprintmaster,dmmain.CDsexecsql);
    result:=true;
  end;
end;

function TfmfinanceUnpos.CheckData:boolean;
VAR
  i:integer;
begin
  result:=false;
  if Trim(Edit1.Text)='' then
  begin
      application.MessageBox('操作错误,【录单日期】不能为空!请确认!',pchar(application.Title),mb_iconwarning);
      Edit1.SetFocus;
      Exit;
  end;
  if Trim(Edit2.Text)='' then
  begin
      application.MessageBox('操作错误,【单据编号】不能为空!请确认!',pchar(application.Title),mb_iconwarning);
      Edit2.SetFocus;
      Exit;
  end;
  if Trim(Edit4.Text)='' then
  begin
      application.MessageBox('操作错误,【供货单位】不能为空!请确认!',pchar(application.Title),mb_iconwarning);
      Edit4.SetFocus;
      Exit;
  end;
  if Trim(Edit5.Text)='' then
  begin
      application.MessageBox('操作错误,【退货仓库】不能为空!请确认!',pchar(application.Title),mb_iconwarning);
      Edit5.SetFocus;
      Exit;
  end;
  if Trim(Edit6.Text)='' then
  begin
      application.MessageBox('操作错误,【经手人】不能为空!请确认!',pchar(application.Title),mb_iconwarning);
      Edit6.SetFocus;
      Exit;
  end;
  if Trim(Edit8.Text)='' then
  begin
      application.MessageBox('操作错误,【制单人】不能为空!请确认!',pchar(application.Title),mb_iconwarning);
      Edit8.SetFocus;
      Exit;
  end;
  for i:=1 to stringgrid1.RowCount-1 do
  begin
    if StringGrid1.Cells[1,i]='' then
    begin
        application.MessageBox('操作错误,【商品编号】不能为空!请确认!',pchar(application.Title),mb_iconwarning);
        Exit;
    end;
    if (StringGrid1.Cells[3,i]='') or (StringGrid1.Cells[3,i]='0') then
    begin
        application.MessageBox('操作错误,【数量】不能为空!请确认!',pchar(application.Title),mb_iconwarning);
        Exit;
    end;
    if (StringGrid1.Cells[4,i]='') or (StringGrid1.Cells[4,i]='0') or (StringGrid1.Cells[4,i]='0.00') then
    begin
      application.MessageBox('操作错误,【退货单价】不能为空!请确认!',pchar(application.Title),mb_iconwarning);
      Exit;
    end;
  end;
  result:=true;
end;

function TfmfinanceUnpos.SaveData:boolean;
var
  sqlsub:widestring;
  i:integer;
begin
  if Public_Do_Result='02' then
  begin
    sqlsub:='select * from [Cancel_strip] where Stock_No='+''''+Trim(NO)+'''';
    dmmain.CDSexecsql.Close;
    dmmain.CDSexecsql.Data:=adisp.execSql(sqlsub);
    dmmain.CDSexecsql.Open;
    dmmain.CDSexecsql.Edit;
    //dmmain.CDSexecsql.FieldByName('Stock_No').AsString:=Trim(Edit2.Text);
    dmmain.CDSexecsql.FieldByName('WLDW').AsString:=Trim(Edit4.Text);
    dmmain.CDSexecsql.FieldByName('Contract_No').AsString:=trim(wldwno);
    dmmain.CDSexecsql.FieldByName('Storage_NO').AsString:=Trim(Edit5.Text);
    dmmain.CDSexecsql.FieldByName('state').AsBoolean:=true; //财务状态
    dmmain.CDSexecsql.FieldByName('Transactor').AsString:=Trim(Edit6.Text);
    dmmain.CDSexecsql.FieldByName('proposer').AsString:=Trim(Edit8.Text);
    dmmain.CDSexecsql.FieldByName('Condense').AsString:=Trim(Edit9.Text);
    dmmain.CDSexecsql.FieldByName('Remark').AsString:=Trim(Edit10.Text);
    dmmain.CDSexecsql.Post;
    dmmain.cdsReceipt.Close;
    dmmain.cdsReceipt.Open;  //草稿
    dmmain.cdsReceipt.Append;
    dmmain.cdsReceipt.FieldByName('Receipt_NO').AsString:=Trim(Edit2.Text);
    dmmain.cdsReceipt.FieldByName('Receipt_Name').AsString:='财务退货单';
    dmmain.cdsReceipt.FieldByName('Copy_Date').AsString:=Trim(Edit1.Text);
    dmmain.cdsReceipt.FieldByName('Proposer').AsString:=Trim(Edit8.Text);
    dmmain.cdsReceipt.FieldByName('Condense').AsString:=Trim(Edit10.Text);
    dmmain.cdsReceipt.FieldByName('Check_Result').Asinteger:=0;
    dmmain.cdsReceipt.FieldByName('Flag_Sign').AsString:='草稿';
    dmmain.cdsReceipt.FieldByName('Re_part').AsString:=trim(Handle_Part);
    dmmain.cdsReceipt.Post;
    try
      dmmain.cdsReceipt.ApplyUpdates(-1);
      dmmain.CDSexecsql.ApplyUpdates(-1);
    except
      Application.MessageBox('服务器发生故障!',Pchar(Application.Title),Mb_ICONwarning);
      Exit;
    end;
    sqlsub:='select * from [Cancel_strip_detail] where Stock_No='+''''+Trim(NO)+'''';
    dmmain.CDSexecsql.Close;
    dmmain.CDSexecsql.Data:=adisp.execSql(sqlsub);
    dmmain.CDSexecsql.Open;
    for i:=1 to stringgrid1.RowCount-1 do
    begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -