金蝶物料数据时间轴
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('' + JSONArr1.Items
[8].Value + '');
html.Add('
html.Add('物料编号:' + JSONArr1.Items[0].Value + '');
创建人:'
+ JSONArr1.Items[7].Value + '
html.Add('
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(' '); - '{' + 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(' '); - '{' + 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(' '); - '{' + 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(' ');
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('
end;
// 查询采购订单
json_str := ''
end;
//查询收料通知单
json_str := ''
end;
//查询采购入库单
json_str := ''
end;
UniHTMLFrame1.html := html;
finally
RESTClient.Free;
RESTRequest.Free;
RESTResponse.Free;
JSONArr.Free;
JSONArr1.Free;
html.Free;
end;
end;

浙公网安备 33010602011771号