首页 > 其他分享 >金蝶K3 报表查询

金蝶K3 报表查询

时间:2024-01-15 16:27:52浏览次数:40  
标签:set 报表 金蝶 get K3 Add using public string

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string baseUrl = "http://192.168.1.1/k3cloud";//服务器地址
            HttpClientEx httpClient = new HttpClientEx();
            httpClient.Url = string.Format("{0}/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc", baseUrl);
            List<object> Parameters = new List<object>();
            Parameters.Add("11111111");//帐套Id
            Parameters.Add("demo");//用户名
            Parameters.Add("123456");//密码
            Parameters.Add(2052);//多语言:中文
            httpClient.Content = JsonConvert.SerializeObject(Parameters);
            var iResult = JObject.Parse(httpClient.AsyncRequest())["LoginResultType"].Value<int>();
            if (iResult == 1)
            {
                while (true)
                {
                    Console.WriteLine("请输入任意字符回车继续,输入【exit】退出!");
                    string key = Console.ReadLine();
                    if (key == "exit") break;
                    httpClient.Url = string.Format("{0}/Kingdee.K3.SCM.WebApi.ServicesStub.InventoryQueryService.GetInventoryData.common.kdsvc", baseUrl);
                    Parameters = new List<object>();
                    InventoryParamModel model = new InventoryParamModel();
                    model.fstocknumbers = "CK001,CK002,CK003";
                    model.isshowauxprop = true;
                    model.isshowstockloc = true;
                    model.pageindex = 1;
                    model.pagerows = 2;
                    Parameters.Add(model);
                    httpClient.Content = JsonConvert.SerializeObject(Parameters);
                    string response = httpClient.AsyncRequest();
                    Console.WriteLine(string.Format("结果={0}", response));
                }
            }
        }
    }

    class InventoryParamModel
    {
        /// <summary>
        /// 库存组织编码,多个使用英文逗号【,】分隔
        /// </summary>
        public string fstockorgnumbers { get; set; }

        /// <summary>
        /// 物料编码,多个使用英文逗号【,】分隔
        /// </summary>
        public string fmaterialnumbers { get; set; }

        /// <summary>
        /// 仓库编码,多个使用英文逗号【,】分隔
        /// </summary>
        public string fstocknumbers { get; set; }

        /// <summary>
        /// 批号编码,多个使用英文逗号【,】分隔
        /// </summary>
        public string flotnumbers { get; set; }

        /// <summary>
        /// 是否查询仓位
        /// </summary>
        public bool isshowstockloc { get; set; }

        /// <summary>
        /// 是否查询辅助属性
        /// </summary>
        public bool isshowauxprop { get; set; }

        /// <summary>
        /// 当前页码
        /// </summary>
        public int pageindex { get; set; }

        /// <summary>
        /// 每页显示行数
        /// </summary>
        public int pagerows { get; set; }
    }

    class HttpClientEx
    {
        /// <summary>
        /// Seivice URL
        /// </summary>
        public string Url { get; set; }
        /// <summary>
        /// 内容
        /// </summary>
        public string Content { get; set; }
        /// <summary>
        /// Cookie,保证登录后,所有访问持有一个Cookie;
        /// </summary>
        static CookieContainer Cookie = new CookieContainer();

        /// <summary>
        /// HTTP访问
        /// </summary>
        public string AsyncRequest()
        {
            HttpWebRequest httpRequest = HttpWebRequest.Create(Url) as HttpWebRequest;
            httpRequest.Method = "POST";
            httpRequest.ContentType = "application/json";
            httpRequest.CookieContainer = Cookie;
            httpRequest.Timeout = 1000 * 60 * 10;//10min

            using (Stream reqStream = httpRequest.GetRequestStream())
            {
                JObject jObj = new JObject();
                jObj.Add("format", 1);
                jObj.Add("useragent", "ApiClient");
                jObj.Add("rid", Guid.NewGuid().ToString().GetHashCode().ToString());
                jObj.Add("parameters", Content);
                jObj.Add("timestamp", DateTime.Now);
                jObj.Add("v", "1.0");
                string sContent = jObj.ToString();
                var bytes = UnicodeEncoding.UTF8.GetBytes(sContent);
                reqStream.Write(bytes, 0, bytes.Length);
                reqStream.Flush();
            }
            using (var repStream = httpRequest.GetResponse().GetResponseStream())
            {
                using (var reader = new StreamReader(repStream))
                {
                    return ValidateResult(reader.ReadToEnd());
                }
            }
        }

        private static string ValidateResult(string responseText)
        {
            if (responseText.StartsWith("response_error:"))
            {
                return responseText.TrimStart("response_error:".ToCharArray());
            }
            return responseText;
        }

    }
}

[参考]
1
2

标签:set,报表,金蝶,get,K3,Add,using,public,string
From: https://www.cnblogs.com/ives/p/17965603

相关文章

  • 金蝶K3Cloud MSSQL CTE BOM反查
    1DROPTABLEJZC_MATERIALIDS2CREATETABLEJZC_MATERIALIDS(FMaterialIdINT)3INSERTJZC_MATERIALIDS(FMaterialId)VALUES(316344)45SELECT*FROMJZC_MATERIALIDS6SELECT*FROMdbo.T_BD_MATERIALWHEREFNUMBER='CL001'78WITHC......
  • 收银软件的这些数据报表可以帮助您制定更有效的营销策略
        这些数据报表可以帮助您更好地了解业务情况和顾客行为,从而制定更有效的营销策略,数据报表是制定有效营销策略的重要工具。通过分析销售数据报表,您可以更好地了解业务情况和顾客行为,从而制定更有效的营销策略。以下是一些利用数据报表制定有效营销策略的方法:锦澄软件小编......
  • RK3568 学习笔记 : 开机上电与串口波特率
    前言开发板:【正点原子】ATK-DLRK3568开发板,包装什么的看上去有点高大上,也有点贵。。开发板资料的Linux-SDK编译通过了,想尝试第一次上电开机,不过,开始出了一点状况,串口信息是乱码,难道【调试串口】数据线有问题?波特率115200bps不正确?调试串口波特率开发板默认有镜像,因此先上电研......
  • RK3568 学习笔记 : 解决 linux_sdk 编译 python 版本报错问题
    前言最近买了【正点原子】的RK3568开发板,下载了开发板的资料,包括LinuxSDK,这个LinuxSDK占用的空间比较大,扩展了一下VM虚拟机ubuntu20.04的硬盘空间,编译才正常通过。编译RK3568LinuxSDK时,遇到python版本的问题,这里做个记录【正点原子】rk3568开发板资料与Lin......
  • 迅为RK3568开发板编译Android12源码包-修改编译线程数
    在编译 Android 系统时,可以通过调整线程数来控制并行编译的任务数量,使用多线程可以加快构建速度。要注意根据 Ubuntu 的处理器内核总数以及内存大小来设置合适的线程数。过高的线程数可能导致系统资源的竞争,过低的线程数则不能充分利用系统的并行处理能力。找到合适的线程数可......
  • 迅为RK3588开发板编译 Buildroot单独编译图形化界面三
    第三步:编译 Recovery首先在 linux 源码目录下输入以下命令进入编译的 UI 界面,进入之后如下所示:./build.sh然后将光标移动到第四个 recovery,点击回车即可开始 recovery 的编译,编译过程如下所示:编译完成如下图所示:第四步:编译 buildroot关注下一章节,迅为RK3588开发板......
  • 金蝶云星空快速二次开发框架
    金蝶云星空快速二次开发框架【VSEP.Zian.Kd.Extend】【VSEP.Zian.Kd.Extend】介绍环境:支持私有云和公有云可配置性强:统一的配置读取方式,类似springboot方式根据指定的账套加载不同的配置文件,框架会自动识别加载不同环境的参数可维护性高:可根据配置相关的WebApi框架实现在线调......
  • 迅为RK3568开发板Android11/12/Linux编译驱动到内核
    在平时的驱动开发中,经常需要在内核中配置某种功能,为了方便大家开发和学习,本小节讲解如何在内核中添加驱动。具体的讲解原理讲解请参考本手册的驱动教程。Android11源码如果想要修改内核,可以运行以下命令进行修改:cdkernel/makeARCH=arm64rockchip_defconfigmakeARCH=arm64men......
  • Finance_金蝶KIS专业版全模块精讲
    金蝶KIS专业版全模块精讲https://www.bilibili.com/video/BV19Y4y1X7DD?p=5&vd_source=8b9de621639420a0ceb703aceed712f7  第2节、公共基础设置新增部门 新增用户      第5节、固定资产  ......
  • 迅为RK3588开发板编译 Buildroot单独编译图形化界面二
    第二步:编译kernel首先在linux源码目录下输入以下命令进入编译的UI界面,进入之后如下所示:./build.sh然后将光标移动到第二个kernel,点击回车即可开始kernel内核的编译,编译过程如下所示:内核编译完如下图所示:编译完成后映像文件会打包成boot.img放到kernel目录。如下图......