Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何与Asp.NETWeb应用程序集成?_C#_Asp.net_Integration - Fatal编程技术网

C# 如何与Asp.NETWeb应用程序集成?

C# 如何与Asp.NETWeb应用程序集成?,c#,asp.net,integration,C#,Asp.net,Integration,我们正在使用ASP.Net和C#.Net开发一个ERP。现在,我想将应用程序与Tally集成。这样生成的凭证将以XML格式传输到理货单。如何做到这一点?我需要你所有有价值的贡献。请浏览此链接 产品:rtslinkdll 平台:Windows 2000及以上 理货:版本6.3及以上 类别:DLL以编程方式从理货核算软件推拉[导入和导出]数据 XML代表可扩展标记语言。 XML是一种类似HTML的标记语言,但其设计目的是描述数据并关注数据是什么。 XML标记不是预定义的,您必须定义自己的标记。 XM

我们正在使用ASP.Net和C#.Net开发一个ERP。现在,我想将应用程序与Tally集成。这样生成的凭证将以XML格式传输到理货单。如何做到这一点?我需要你所有有价值的贡献。

请浏览此链接

产品:rtslinkdll 平台:Windows 2000及以上 理货:版本6.3及以上 类别:DLL以编程方式从理货核算软件推拉[导入和导出]数据

XML代表可扩展标记语言。 XML是一种类似HTML的标记语言,但其设计目的是描述数据并关注数据是什么。 XML标记不是预定义的,您必须定义自己的标记。 XML用于交换数据 XML标记区分大小写 XML中的注释与HTML中的注释类似。范例

XML是空元素的简写:以/>结尾的唯一标记表示元素没有内容

逃逸序列 转义序列导致正常解释的转义。C/C++程序员可能经常使用以下转义序列:

“\n”-新行 “\r”-回车 '\t'-Tab

Tally的XML标记示例:

<ENVELOPE> 
<HEADER>
<TALLYREQUEST>Import Data</TALLYREQUEST>
</HEADER>
<BODY>
<IMPORTDATA>
<REQUESTDESC>
<REPORTNAME>All Masters</REPORTNAME>
</REQUESTDESC>
<REQUESTDATA>
<TALLYMESSAGE xmlns:UDF="TallyUDF">

<!— TO DO: Specify the company Name as it appears in Tally -->
<COMPANY NAME="DEMO" ACTION="Alter">
<!—  enable Maintain Multiple Godown -->
<ISMULTIGODOWNON>Yes</ISMULTIGODOWNON>
<!—  enable Use Debit/Credit Notes -->
<ISDCNOTEON>Yes</ISDCNOTEON>
<!—  enable Use Invoice mode for Credit Notes -->
<DNOTEASINVOICE>Yes</DNOTEASINVOICE>
<!—  enable Use Invoice mode for Debit notes -->
<CNOTEASINVOICE>Yes</CNOTEASINVOICE>
<!—  enable Use 0 valued entries in vouchers -->
<USEZEROENTRIES>Yes</USEZEROENTRIES>

</COMPANY>
</TALLYMESSAGE>
</REQUESTDATA>
</IMPORTDATA>
</BODY>
</ENVELOPE>

导入数据
所有大师
对
对
对
对
对
公共部分类凭证创建:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
}
受保护的void requestTally(字符串pGroupType)
{
WebRequest=WebRequest.Create(TallyUrl.Text);
字符串exportxml=null;
int Amt=int.Parse(VCHAmount.Text);
如果(pGroupType==“”)
{
exportxml=”“+
"" + 
“导入数据”+
"" +  
"" + 
"" + 
"" + 
“凭单”+
"" +  
“##SVCURRENTCOMPANY”+
"" + 
"" +  
"" + 
"" +  
"" + 
“+”2014年6月11日“+”+“+”\r\n+
“付款”+
"1" +
“+”现金“+”+//VchCashBankLed.Text
“会计凭证视图”+
“+”2014年6月11日“+”+
"" +
“+”费用“+”+//VCHLedger.Text
“是的”+
“+500*-1+”+//(金额*-1)
"" +
"" +
“+”现金“+”+//VchCashBankLed.Text
“没有”+
“”+500+“”+//VCHAmount.Text
"" +
"" +
"" +
"" +
"" +
"" +
"";
Write(“警报(“”+exportxml+“”)”);
}
否则{
exportxml=“”+
"" +
"1" +
“出口”+
“收藏”+
“过滤器记录器”+
"" +
"" +
"" +
"" +
"" +
"" +
“分类账”+
“姓名”+
“”+pGroupType+“”+
"" +
"" +
“$$IsLedOfGrp:$Name:$$groupsUndryForesters或$$IsLedOfGrp:$Name:$$GroupIndirectExpenses或$$IsLedOfGrp:$Name:$$GroupDirectExpenses”+
"" +
“$$IsLedOfGrp:$Name:$$GroupBank或$$IsLedOfGrp:$Name:$$GroupBankOD或$$IsLedOfGrp:$Name:$$GroupCash”+
"" +
"" +
"" +
"" +
"";
}
Byte[]bytesToWrite=Encoding.ASCII.GetBytes(exportxml);
Request.Method=“POST”;
Request.ContentLength=bytesToWrite.Length;
Request.ContentType=“text/xml”;
Stream newStream=Request.GetRequestStream();
Write(bytesToWrite,0,bytesToWrite.Length);
newStream.Close();
HttpWebResponse=(HttpWebResponse)Request.GetResponse();
Stream dataStream=response.GetResponseStream();
StreamReader=新的StreamReader(数据流);
字符串responseFromServer=reader.ReadToEnd();
字符串xmlresponse=responseFromServer;
XmlDocument xd=新的XmlDocument();
LoadXml(xmlresponse);
XmlNodeList xmlNameList=xd.SelectNodes(“名称”);
如果(pGroupType==“PartyExpenseFilter”)
{
下摆
public partial class VoucherCreate : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void requestTally(string pGroupType)
    {
        WebRequest Request = WebRequest.Create(TallyUrl.Text);
        string exportxml = null;
        int Amt = int.Parse(VCHAmount.Text);

        if (pGroupType == "")
        {
            exportxml = "<ENVELOPE>" + 
                              "<HEADER>" + 
                                  "<TALLYREQUEST>Import Data</TALLYREQUEST>" + 
                              "</HEADER>" +  
                              "<BODY>" + 
                                  "<IMPORTDATA>" + 
                                      "<REQUESTDESC>" + 
                                          "<REPORTNAME>Vouchers</REPORTNAME>" + 
                                          "<STATICVARIABLES>" +  
                                              "<SVCURRENTCOMPANY>##SVCURRENTCOMPANY</SVCURRENTCOMPANY>" + 
                                          "</STATICVARIABLES>" + 
                                      "</REQUESTDESC>" +  
                                      "<REQUESTDATA>" + 
                                          "<TALLYMESSAGE xmlns:UDF='TallyUDF'>" +  
                                              "<VOUCHER VCHTYPE='Payment' ACTION='Create' OBJVIEW='Accounting Voucher View'>" + 
                                                  "<DATE>" + "11-Jun-2014" + "</DATE>" + "\r\n" +
                                                  "<VOUCHERTYPENAME>Payment</VOUCHERTYPENAME>" +
                                                  "<VOUCHERNUMBER>1</VOUCHERNUMBER>" +
                                                  "<PARTYLEDGERNAME>" +"Cash"+"</PARTYLEDGERNAME>" +//VchCashBankLed.Text 
                                                  "<PERSISTEDVIEW>Accounting Voucher View</PERSISTEDVIEW>" +
                                                  "<EFFECTIVEDATE>" + "11-Jun-2014" + "</EFFECTIVEDATE>" +
                                                  "<ALLLEDGERENTRIES.LIST>" +
                                                      "<LEDGERNAME>" +"Expenses"+ "</LEDGERNAME>" +// VCHLedger.Text 
                                                      "<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>" +
                                                      "<AMOUNT>" +500*-1 +"</AMOUNT>" +//(Amt * -1) 
                                                  "</ALLLEDGERENTRIES.LIST>" +
                                                  "<ALLLEDGERENTRIES.LIST>" +
                                                      "<LEDGERNAME>" +"Cash" +"</LEDGERNAME>" +//VchCashBankLed.Text 
                                                      "<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>" +
                                                      "<AMOUNT>" +500 +"</AMOUNT>" +//VCHAmount.Text 
                                                  "</ALLLEDGERENTRIES.LIST>" +
                                              "</VOUCHER>" +
                                          "</TALLYMESSAGE>" +
                                      "</REQUESTDATA>" +
                                  "</IMPORTDATA>" +
                              "</BODY>" +
                          "</ENVELOPE>";
                 Response.Write("<script LANGUAGE='JavaScript' >alert(''"+exportxml+"'')</script>");
                }
        else{
            exportxml = "<ENVELOPE>" +
                      "<HEADER>" +
                          "<VERSION>1</VERSION>" +
                          "<TALLYREQUEST>Export</TALLYREQUEST>" +
                          "<TYPE>Collection</TYPE>" +
                          "<ID>FilteredLedgers</ID>" +
                      "</HEADER>" +
                      "<BODY>" +
                          "<DESC>" +
                              "<TDL>" +
                                  "<TDLMESSAGE>" +
                                      "<COLLECTION NAME='FilteredLedgers' ISMODIFY='No'>" +
                                          "<SOURCECOLLECTION>Ledger</SOURCECOLLECTION>" +
                                          "<FETCH>Name</FETCH>" +
                                          "<FILTER>" + pGroupType +"</FILTER>" +
                                      "</COLLECTION>" +
                                      "<SYSTEM TYPE='Formulae' NAME='PartyExpense Filter' ISMODIFY='No'>" +
                                        "$$IsLedOfGrp:$Name:$$GroupSundryCreditors OR $$IsLedOfGrp:$Name:$$GroupIndirectExpenses OR $$IsLedOfGrp:$Name:$$GroupDirectExpenses</SYSTEM>" +
                                      "<SYSTEM TYPE='Formulae' NAME='BankCashFilter' ISMODIFY='No'>" +
                                        "$$IsLedOfGrp:$Name:$$GroupBank OR $$IsLedOfGrp:$Name:$$GroupBankOD OR $$IsLedOfGrp:$Name:$$GroupCash</SYSTEM>" +
                                  "</TDLMESSAGE>" +
                             "</TDL>" +
                          "</DESC>" +
                      "</BODY>" +
                  "</ENVELOPE>";
          }


            Byte[] bytesToWrite = Encoding.ASCII.GetBytes(exportxml);

            Request.Method = "POST";
            Request.ContentLength = bytesToWrite.Length;
            Request.ContentType = "text/xml";

            Stream newStream = Request.GetRequestStream();
            newStream.Write(bytesToWrite, 0, bytesToWrite.Length);
            newStream.Close();

            HttpWebResponse response = (HttpWebResponse)Request.GetResponse();
            Stream dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);

            string responseFromServer = reader.ReadToEnd();
            string xmlresponse = responseFromServer;

            XmlDocument xd = new XmlDocument();
            xd.LoadXml(xmlresponse);

            XmlNodeList xmlNameList = xd.SelectNodes("NAME");

            if (pGroupType == "PartyExpenseFilter")
            {
                DropDownList1.Items.Clear();

                for (int i = 0; i < (xmlNameList.Count - 1); i++)
                    {                        
                        DropDownList1.Items.Add(xmlNameList.Item(i).InnerText.ToString());
                    }
            }

            if (pGroupType == "BankCashFilter")
            {
                DropDownList2.Items.Clear();

                for (int i = 0; i < (xmlNameList.Count - 1); i++)
                {
                    DropDownList2.Items.Add(xmlNameList.Item(i).InnerText.ToString());
                } 
            }

    }
         protected void Button1_Click(object sender, EventArgs e)
    {
        requestTally("");
        DropDownList1.Text = "";
        DropDownList2.Text = "";
        VCHAmount.Text = "";
        DropDownList1.Focus();
    }
}
<p>&nbsp;WebRequest Request = WebRequest.Create(TallyUrl.Text);<br />
string exportxml = null;<br />
int Amt = int.Parse(VCHAmount.Text);</p>

<p>exportxml = &quot;&lt;ENVELOPE&gt;&quot; +<br />
&quot;&lt;HEADER&gt;&quot; +<br />
&quot;&lt;TALLYREQUEST&gt;Export Data&lt;/TALLYREQUEST&gt;&quot; +<br />
&quot;&lt;/HEADER&gt;&quot; +<br />
&quot;&lt;BODY&gt;&quot; +<br />
. . .<br />
. . .<br />
&quot;&lt;/BODY&gt;&quot; +<br />
&quot;&lt;/ENVELOPE&gt;&quot;;<br />
}<br />

Byte[] bytesToWrite = Encoding.ASCII.GetBytes(exportxml);</p>

<p>Request.Method = &quot;POST&quot;;<br />
Request.ContentLength = bytesToWrite.Length;<br />
Request.ContentType = &quot;text/xml&quot;;</p>

<p>Stream newStream = Request.GetRequestStream();<br />
newStream.Write(bytesToWrite, 0, bytesToWrite.Length);<br />
newStream.Close();</p>

<p>HttpWebResponse response = (HttpWebResponse)Request.GetResponse();<br />
Stream dataStream = response.GetResponseStream();<br />
StreamReader reader = new StreamReader(dataStream);</p>

<p>string responseFromServer = reader.ReadToEnd();<br />
string xmlresponse = responseFromServer;</p>

<p>XmlDocument xd = new XmlDocument();<br />
xd.LoadXml(xmlresponse);</p>