总算忙完了,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
}