总算忙完了,MD......又一个晚上没睡好.哎~~ 睡觉了.
.....................................................
写入A/R发票单据Code
17
18 oForm = globals.SBO_Application.Forms.Item(pVal.FormUID);
19 oMatrix = (SAPbouiCOM.Matrix)(oForm.Items.Item( " mtx " ).Specific);
20
21 string oCardCode = ((SAPbouiCOM.EditText)(oForm.Items.Item( " cc " ).Specific)).String;
22 DateTime oDocDate = DateTime.Parse(((SAPbouiCOM.EditText)(oForm.Items.Item( " td " ).Specific)).String);
23 DateTime oDocDueDate = DateTime.Parse(((SAPbouiCOM.EditText)(oForm.Items.Item( " ddd " ).Specific)).String);
24
25 SAPbobsCOM.Documents oINV;
26 oINV = (SAPbobsCOM.Documents)(globals.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices));
27 oINV.CardCode = oCardCode;
28 oINV.DocDate = oDocDate;
29 oINV.DocDueDate = oDocDueDate;
30
31 for ( int i = 0 ; i < oMatrix.RowCount; i ++ )
32 {
33 if (i > 0)
34 {
35 oINV.Lines.Add();
36 }
37 oINV.Lines.BaseEntry = Convert.ToInt32(((SAPbouiCOM.EditText)(oMatrix.Columns.Item("mod").Cells.Item(i + 1).Specific)).String);
38 oINV.Lines.BaseLine = Convert.ToInt32(((SAPbouiCOM.EditText)(oMatrix.Columns.Item("modl").Cells.Item(i + 1).Specific)).String);
39 oINV.Lines.BaseType = Convert.ToInt32(SAPbobsCOM.BoObjectTypes.oDeliveryNotes);
40
41 oINV.Lines.ItemCode = ((SAPbouiCOM.EditText)(oMatrix.Columns.Item("mic").Cells.Item(i + 1).Specific)).String;
42 oINV.Lines.Quantity = Convert.ToDouble(((SAPbouiCOM.EditText)(oMatrix.Columns.Item("mqty").Cells.Item(i + 1).Specific)).String);
43 oINV.Lines.PriceAfterVAT = Convert.ToDouble(((SAPbouiCOM.EditText)(oMatrix.Columns.Item("mvt").Cells.Item(i + 1).Specific)).String);
44 oINV.Lines.VatGroup = ((SAPbouiCOM.ComboBox)(oMatrix.Columns.Item("mvg").Cells.Item(i + 1).Specific)).Selected.Value;
45 oINV.Lines.Currency = ((SAPbouiCOM.EditText)(oMatrix.Columns.Item("mce").Cells.Item(i + 1).Specific)).String;
46
47 oINV.Lines.UserFields.Fields.Item("U_BATCH").Value = ((SAPbouiCOM.EditText)(oMatrix.Columns.Item("m5").Cells.Item(i + 1).Specific)).String;
48
49 oRecordset = (SAPbobsCOM.Recordset)(globals.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset));
50 string SQL_ORTT = "SELECT * FROM ORTT WHERE RateDate='" + ((SAPbouiCOM.EditText)(oForm.Items.Item("td").Specific)).String + "' AND Currency='" + ((SAPbouiCOM.EditText)(oMatrix.Columns.Item("mce").Cells.Item(i + 1).Specific)).String + "'";
51 oRecordset.DoQuery(SQL_ORTT);
52 oRecordset.MoveFirst();
53 oINV.Lines.Rate = Convert.ToDouble(oRecordset.Fields.Item("Rate").Value);
54 oINV.Lines.LineTotal = Convert.ToDouble(((SAPbouiCOM.EditText)(oMatrix.Columns.Item("mt").Cells.Item(i + 1).Specific)).String);
55
56 /**/////添加行運費
57 for (int j = 1; j < 4; j++)
58 {
59 if (((SAPbouiCOM.ComboBox)(oMatrix.Columns.Item("f" + j.ToString() + "0").Cells.Item(i + 1).Specific)).Selected != null)
60 {
61 int oExpenseCode = Convert.ToInt32(((SAPbouiCOM.ComboBox)(oMatrix.Columns.Item("f" + j.ToString() + "0").Cells.Item(i + 1).Specific)).Selected.Value);
62 double oLineTotal = Convert.ToDouble(((SAPbouiCOM.EditText)(oMatrix.Columns.Item("f" + j.ToString() + "1").Cells.Item(i + 1).Specific)).String);
63 string oVatGroup = ((SAPbouiCOM.ComboBox)(oMatrix.Columns.Item("f" + j.ToString() + "2").Cells.Item(i + 1).Specific)).Selected.Value;
64
65 if (i > 1)
66 {
67 oINV.Lines.Expenses.Add();
68 }
69 oINV.Lines.Expenses.ExpenseCode = oExpenseCode;
70 oINV.Lines.Expenses.LineTotal = oLineTotal;
71 oINV.Lines.Expenses.VatGroup = oVatGroup;
72 }
73 }
74
75 }
76
77 // 添加主運費
78 for ( int i = 0 ; i < oForm.DataSources.DBDataSources.Item( " @INC3 " ).Size; i ++ )
79 {
80 if (i > 0)
81 {
82 oINV.Expenses.Add();
83 }
84 oINV.Expenses.ExpenseCode = Convert.ToInt32(oForm.DataSources.DBDataSources.Item("@INC3").GetValue("U_ExpnsCode", i));
85 oINV.Expenses.LineTotal = Convert.ToDouble(oForm.DataSources.DBDataSources.Item("@INC3").GetValue("U_LineTotal", i));
86 oINV.Expenses.VatGroup = oForm.DataSources.DBDataSources.Item("@INC3").GetValue("U_VatGroup", i);
87 oINV.Expenses.Remarks = oForm.DataSources.DBDataSources.Item("@INC3").GetValue("U_Comments", i);
88 }
89
90
91 int val = oINV.Add();
92 if (val == 0 )
93 {
94 globals.SBO_Application.SetStatusBarMessage("添加成功", SAPbouiCOM.BoMessageTime.bmt_Short, false);
95 }
96 else
97 {
98 //int err = globals.oCompany.GetLastErrorCode();
99 globals.oCompany.GetLastError(out globals.lErrCode, out globals.sErrMsg);
100 globals.SBO_Application.SetStatusBarMessage("添加失敗" + globals.sErrMsg, SAPbouiCOM.BoMessageTime.bmt_Short, true);
101 }