金蝶物料数据时间轴

procedure TDocumentStatus_Frame.loginKingdee;
var
RESTClient: TRESTClient;
RESTRequest: TRESTRequest;
RESTResponse: TRESTResponse;
JSONArr, JSONArr1: TJSONArray;
json_str: string;
html: Tstrings;
i: Integer;
Status:string;
FReqQty:string;
FBillNo:string;
begin
try
html := TStringList.Create;
RESTClient := TRESTClient.Create(self);
RESTRequest := TRESTRequest.Create(self);
RESTResponse := TRESTResponse.Create(self);
RESTRequest.Client := RESTClient;
RESTRequest.Response := RESTResponse;
// 登录金蝶
json_str := '{' + '"acctID":"202001*****31592",' + '"username":"Pc",' +
'"password":"
",' + '"lcid":2052' + '}';
RESTClient.BaseURL :=
'https://tomi.ik3cloud.com/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc';
RESTRequest.Method := TRESTRequestMethod.rmpost;
RESTRequest.AddBody(TStringStream.Create(json_str, TEncoding.UTF8),
TRESTContentType.ctAPPLICATION_JSON);
RESTRequest.Execute();
// 查询物料信息
json_str := '{' + '"data":{' + '"FormId": "BD_MATERIAL",' +
'"FieldKeys": "FNumber,FName,FSpecification,FUseOrgId.FName,FDocumentStatus,FForbidStatus,FBaseUnitId.Fname,FCreatorId.Fname,FCreateDate,FBaseProperty,FMaterialGroup.Fname",'
+ '"FilterString": [' +
'{"Left":"(","FieldName":"Fnumber","Compare":"=","Value":"' +
Trim(UniEdit1.Text) + '","Right"😊","Logic":"AND"},' +
'{"Left":"(","FieldName":"FUseOrgId.Fname","Compare":"like","Value":"' +
UniComboBox1.Text + '","Right"😊","Logic":""}' + '],' +
'"OrderString": "",' + '"TopRowCount": 0,' + '"StartRow": 0,' +
'"Limit": 0,' + '"SubSystemId": ""' + '}' + '}';
RESTClient.BaseURL :=
'https://tomi.ik3cloud.com/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc';
RESTRequest.Method := TRESTRequestMethod.rmpost;
RESTRequest.AddBody(TStringStream.Create(json_str, TEncoding.UTF8),
TRESTContentType.ctAPPLICATION_JSON);
RESTRequest.Execute();
JSONArr := TJSONObject.ParseJSONValue(RESTResponse.Content) as TJSONArray;
for i := 0 to JSONArr.Size - 1 do
begin
JSONArr1 := TJSONObject.ParseJSONValue(JSONArr.Items[i].ToString)
as TJSONArray;
html.Add('

');
html.Add('

《拓米物料数据生命周期时间轴》

');
html.Add('
');
html.Add('

' + JSONArr1.Items[1].Value + '

');
html.Add('
');
// 创建第一个时间轴物料创建信息
html.Add('
    ');
    html.Add('
  • ');
    html.Add('
    ');
    html.Add('
    ');
    html.Add('');
    html.Add('物料创建');
    html.Add('' + JSONArr1.Items
    [8].Value + '
    ');
    html.Add('
    ');
    html.Add('
    物料编号:' + JSONArr1.Items[0].Value + '
    创建人:'
    + JSONArr1.Items[7].Value + '
    ');
    html.Add('
    ');
    html.Add('
  • ');
    end;
    // 查询采购申请单
    json_str := '' + '{' + SLineBreak + ' "data": {' + SLineBreak +
    ' "FormId": "PUR_Requisition",' + SLineBreak +
    ' "FieldKeys": "FBillNo,FApplicationOrgId.Fname,FCreatorId.Fname,FBillTypeID.Fname,FMaterialName,FMaterialId,FDocumentStatus,FMaterialId.Fnumber,FCreateDate,FReqQty,FBaseUnitId.Fname",'
    + SLineBreak + ' "FilterString": [' + SLineBreak +
    ' {' + SLineBreak + ' "Left": "(",' +
    SLineBreak + ' "FieldName": "FMaterialId.Fnumber",' +
    SLineBreak + ' "Compare": "=",' + SLineBreak +
    ' "Value": "' + Trim(UniEdit1.Text) + '",' + SLineBreak +
    ' "Right": ")",' + SLineBreak +
    ' "Logic": "AND"' + SLineBreak + ' },' +
    SLineBreak + ' {' + SLineBreak +
    ' "Left": "(",' + SLineBreak +
    ' "FieldName": "FApplicationOrgId.Fname",' + SLineBreak +
    ' "Compare": "like",' + SLineBreak +
    ' "Value": "' + UniComboBox1.Text + '",' + SLineBreak +
    ' "Right": ")",' + SLineBreak +
    ' "Logic": ""' + SLineBreak + ' }' +
    SLineBreak + ' ],' + SLineBreak + ' "OrderString": "FApplicationDate desc",' +
    SLineBreak + ' "TopRowCount": 0,' + SLineBreak +
    ' "StartRow": 0,' + SLineBreak + ' "Limit": 0,' +
    SLineBreak + ' "SubSystemId": ""' + SLineBreak + ' }' +
    SLineBreak + '}';
    RESTClient.BaseURL :=
    'https://tomi.ik3cloud.com/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc';
    RESTRequest.Method := TRESTRequestMethod.rmpost;
    RESTRequest.AddBody(TStringStream.Create(json_str, TEncoding.UTF8),
    TRESTContentType.ctAPPLICATION_JSON);
    RESTRequest.Execute();
    JSONArr := TJSONObject.ParseJSONValue(RESTResponse.Content) as TJSONArray;
    for i := 0 to JSONArr.Size - 1 do
    begin
    JSONArr1 := TJSONObject.ParseJSONValue(JSONArr.Items[i].ToString) as TJSONArray;
    html.Add('
  • ');
    html.Add('
    ');
    html.Add('
    ');
    html.Add('');
    html.Add('采购申请单');
    html.Add(''+JSONArr1.Items[8].Value+'');
    html.Add('
    ');
    if JSONArr1.Items[6].Value = 'A' then
    begin
    Status:='创建';
    end
    else if JSONArr1.Items[6].Value = 'B' then
    begin
    Status:='审核中';
    end
    else if JSONArr1.Items[6].Value = 'C' then
    begin
    Status:='已审核';
    end;
    FReqQty:=format('%.2f',[strtofloat(JSONArr1.Items[9].Value)]);
    html.Add('
    申请单编号:'+JSONArr1.Items[0].Value+';'+'数量:'+FReqQty+JSONArr1.Items[10].Value+'
    申请人:'+JSONArr1.Items[2].Value+'
    单据状态:'+Status+'
    ');
    html.Add('
    ');
    html.Add('
  • ');
    end;
    // 查询采购订单
    json_str := ''

    • '{' + SLineBreak
    • ' "data": {' + SLineBreak
    • ' "FormId": "PUR_PurchaseOrder",' + SLineBreak
    • ' "FieldKeys": "FBillNo,FMaterialId.Fnumber,FPurchaseOrgId.Fname,FCreateDate,FCreatorId.Fname,FDocumentStatus,F_ora_Remarks,FQty,FUnitId.Fname,FPOOrderEntry_Link_FSBillId",' + SLineBreak
    • ' "FilterString": [' + SLineBreak
    • ' {' + SLineBreak
    • ' "Left": "(",' + SLineBreak
    • ' "FieldName": "FMaterialId.Fnumber",' + SLineBreak
    • ' "Compare": "=",' + SLineBreak
    • ' "Value": "'+Trim(UniEdit1.Text) +'",' + SLineBreak
    • ' "Right": ")",' + SLineBreak
    • ' "Logic": "AND"' + SLineBreak
    • ' },' + SLineBreak
    • ' {' + SLineBreak
    • ' "Left": "(",' + SLineBreak
    • ' "FieldName": "FPurchaseOrgId.Fname",' + SLineBreak
    • ' "Compare": "like",' + SLineBreak
    • ' "Value": "'+UniComboBox1.Text+'",' + SLineBreak
    • ' "Right": ")",' + SLineBreak
    • ' "Logic": "AND"' + SLineBreak
    • ' }' + SLineBreak
    • ' ],' + SLineBreak
    • ' "OrderString": "FCreateDate desc",' + SLineBreak
    • ' "TopRowCount": 0,' + SLineBreak
    • ' "StartRow": 0,' + SLineBreak
    • ' "Limit": 0,' + SLineBreak
    • ' "SubSystemId": ""' + SLineBreak
    • ' }' + SLineBreak
    • '}';
      RESTClient.BaseURL :=
      'https://tomi.ik3cloud.com/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc';
      RESTRequest.Method := TRESTRequestMethod.rmpost;
      RESTRequest.AddBody(TStringStream.Create(json_str, TEncoding.UTF8),
      TRESTContentType.ctAPPLICATION_JSON);
      RESTRequest.Execute();
      JSONArr := TJSONObject.ParseJSONValue(RESTResponse.Content) as TJSONArray;
      for i := 0 to JSONArr.Size - 1 do
      begin
      JSONArr1 := TJSONObject.ParseJSONValue(JSONArr.Items[i].ToString) as TJSONArray;
      html.Add('
    • ');
      html.Add('
      ');
      html.Add('
      ');
      html.Add('');
      html.Add('采购订单');
      html.Add(''+JSONArr1.Items[3].Value+'');
      html.Add('
      ');
      if JSONArr1.Items[5].Value = 'A' then
      begin
      Status:='创建';
      end
      else if JSONArr1.Items[5].Value = 'B' then
      begin
      Status:='审核中';
      end
      else if JSONArr1.Items[5].Value = 'C' then
      begin
      Status:='已审核';
      end;
      if JSONArr1.Items[9].Value = 'null' then
      begin
      FBillNo:=JSONArr1.Items[9].Value;
      end
      else if JSONArr1.Items[9].Value <> 'null' then
      begin
      FBillNo:=inquiryNO(JSONArr1.Items[9].Value,'PUR_Requisition');//上查采购申请单编号
      end;
      html.Add('
      订单编号:'+JSONArr1.Items[0].Value+';'+'申请单号:'+FBillNo+'
      数量:'+format('%.2f',[strtofloat(JSONArr1.Items[7].Value)])+JSONArr1.Items[8].Value+'
      采购人:'+JSONArr1.Items[4].Value+'
      订单状态:'+Status+'
      ');
      html.Add('
      ');
      html.Add('
    • ');
      end;
      //查询收料通知单
      json_str := ''
    • '{' + SLineBreak
    • ' "data": {' + SLineBreak
    • ' "FormId": "PUR_ReceiveBill",' + SLineBreak
    • ' "FieldKeys": "FBillNo,FMaterialId.Fnumber,FStockOrgId.Fname,FCreateDate,FCreatorId.Fname,FDocumentStatus,FOrderBillNo,FActlandQty,FActReceiveQty,FInStockQty,FStockID.Fname,FDetailEntity_Link_FSBillId",' + SLineBreak
    • ' "FilterString": [' + SLineBreak
    • ' {' + SLineBreak
    • ' "Left": "(",' + SLineBreak
    • ' "FieldName": "FMaterialId.Fnumber",' + SLineBreak
    • ' "Compare": "=",' + SLineBreak
    • ' "Value": "'+Trim(UniEdit1.Text) +'",' + SLineBreak
    • ' "Right": ")",' + SLineBreak
    • ' "Logic": "AND"' + SLineBreak
    • ' },' + SLineBreak
    • ' {' + SLineBreak
    • ' "Left": "(",' + SLineBreak
    • ' "FieldName": "FStockOrgId.Fname",' + SLineBreak
    • ' "Compare": "like",' + SLineBreak
    • ' "Value": "'+UniComboBox1.Text+'",' + SLineBreak
    • ' "Right": ")",' + SLineBreak
    • ' "Logic": "AND"' + SLineBreak
    • ' }' + SLineBreak
    • ' ],' + SLineBreak
    • ' "OrderString": "FCreateDate desc",' + SLineBreak
    • ' "TopRowCount": 0,' + SLineBreak
    • ' "StartRow": 0,' + SLineBreak
    • ' "Limit": 0,' + SLineBreak
    • ' "SubSystemId": ""' + SLineBreak
    • ' }' + SLineBreak
    • '}';
      RESTClient.BaseURL :=
      'https://tomi.ik3cloud.com/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc';
      RESTRequest.Method := TRESTRequestMethod.rmpost;
      RESTRequest.AddBody(TStringStream.Create(json_str, TEncoding.UTF8),
      TRESTContentType.ctAPPLICATION_JSON);
      RESTRequest.Execute();
      JSONArr := TJSONObject.ParseJSONValue(RESTResponse.Content) as TJSONArray;
      for i := 0 to JSONArr.Size - 1 do
      begin
      JSONArr1 := TJSONObject.ParseJSONValue(JSONArr.Items[i].ToString) as TJSONArray;
      html.Add('
    • ');
      html.Add('
      ');
      html.Add('
      ');
      html.Add('');
      html.Add('收料通知单');
      html.Add(''+JSONArr1.Items[3].Value+'');
      html.Add('
      ');
      if JSONArr1.Items[5].Value = 'A' then
      begin
      Status:='创建';
      end
      else if JSONArr1.Items[5].Value = 'B' then
      begin
      Status:='审核中';
      end
      else if JSONArr1.Items[5].Value = 'C' then
      begin
      Status:='已审核';
      end;
      FBillNo:=inquiryNO(JSONArr1.Items[11].Value,'PUR_PurchaseOrder');//上查采购订单单编号
      html.Add('
      收料单编号:'+JSONArr1.Items[0].Value+';订单编号:'+FBillNo+'
      '+'实到数量:'+format('%.2f',[strtofloat(JSONArr1.Items[7].Value)])+'
      点收数量:'+format('%.2f',[strtofloat(JSONArr1.Items[8].Value)])+'
      收料人:'+JSONArr1.Items[4].Value+'
      收料单状态:'+Status+'
      ');
      html.Add('
      ');
      html.Add('
    • ');
      end;
      //查询采购入库单
      json_str := ''
    • '{' + SLineBreak
    • ' "data": {' + SLineBreak
    • ' "FormId": "STK_InStock",' + SLineBreak
    • ' "FieldKeys": "FBillNo,FStockOrgId.Fname,FCreatorId.Fname,FDocumentStatus,FMaterialId.Fnumber,FInStockEntry_Link_FSBillId,FDate,FRealQty,FUnitID.Fname",' + SLineBreak
    • ' "FilterString": [' + SLineBreak
    • ' {' + SLineBreak
    • ' "Left": "(",' + SLineBreak
    • ' "FieldName": "FMaterialId.Fnumber",' + SLineBreak
    • ' "Compare": "=",' + SLineBreak
    • ' "Value": "'+Trim(UniEdit1.Text)+'",' + SLineBreak
    • ' "Right": ")",' + SLineBreak
    • ' "Logic": "AND"' + SLineBreak
    • ' },' + SLineBreak
    • ' {' + SLineBreak
    • ' "Left": "(",' + SLineBreak
    • ' "FieldName": "FStockOrgId.Fname",' + SLineBreak
    • ' "Compare": "like",' + SLineBreak
    • ' "Value": "'+UniComboBox1.Text+'",' + SLineBreak
    • ' "Right": ")",' + SLineBreak
    • ' "Logic": "AND"' + SLineBreak
    • ' }' + SLineBreak
    • ' ],' + SLineBreak
    • ' "OrderString": "FDate desc",' + SLineBreak
    • ' "TopRowCount": 0,' + SLineBreak
    • ' "StartRow": 0,' + SLineBreak
    • ' "Limit": 0,' + SLineBreak
    • ' "SubSystemId": ""' + SLineBreak
    • ' }' + SLineBreak
    • '}';
      RESTClient.BaseURL :=
      'https://tomi.ik3cloud.com/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc';
      RESTRequest.Method := TRESTRequestMethod.rmpost;
      RESTRequest.AddBody(TStringStream.Create(json_str, TEncoding.UTF8),
      TRESTContentType.ctAPPLICATION_JSON);
      RESTRequest.Execute();
      JSONArr := TJSONObject.ParseJSONValue(RESTResponse.Content) as TJSONArray;
      for i := 0 to JSONArr.Size - 1 do
      begin
      JSONArr1 := TJSONObject.ParseJSONValue(JSONArr.Items[i].ToString) as TJSONArray;
      html.Add('
    • ');
      html.Add('
      ');
      html.Add('
      ');
      html.Add('');
      html.Add('采购入库单');
      html.Add(''+JSONArr1.Items[6].Value+'');
      html.Add('
      ');
      if JSONArr1.Items[3].Value = 'A' then
      begin
      Status:='创建';
      end
      else if JSONArr1.Items[3].Value = 'B' then
      begin
      Status:='审核中';
      end
      else if JSONArr1.Items[3].Value = 'C' then
      begin
      Status:='已审核';
      end;
      FBillNo:=inquiryNO(JSONArr1.Items[5].Value,'PUR_ReceiveBill');//上查收料单编号
      html.Add('
      入库单编号:'+JSONArr1.Items[0].Value+';'+'收料单编号:'+FBillNo+'
      入库数量:'+format('%.2f',[strtofloat(JSONArr1.Items[7].Value)])+JSONArr1.Items[8].Value+'
      入库人:'+JSONArr1.Items[2].Value+'
      订单状态:'+Status+'
      ');
      html.Add('
      ');
      html.Add('
    • ');
      end;
      UniHTMLFrame1.html := html;
      finally
      RESTClient.Free;
      RESTRequest.Free;
      RESTResponse.Free;
      JSONArr.Free;
      JSONArr1.Free;
      html.Free;
      end;
      end;
posted @ 2024-07-15 15:42  左边江湖右边庙  阅读(99)  评论(0)    收藏  举报