Äëÿ çàïóñêà äàííîãî ìàêðîñà íåîáõîäèìî ïåðåéòè â ðåæèì «Ñêëàäñêîé ó÷åò»-«Ó÷åòíûå êàðòî÷êè», âûäåëèòü íîìåíêëàòóðíûå ïîçèöèè è çàïóñòèòü ìàêðîñ.
Ìàêðîñ «Çàêðûòü ïóñòûå ó÷åòíûå êàðòî÷êè ó âûäåëåííûõ ïîçèöèé». Ïîçâîëÿåò ïåðåáèðàòü âûäåëåííûå çàïèñè â ñïèñêå íîìåíêëàòóðû, îòûñêèâàòü ïóñòûå êàðòî÷êè è çàêðûâàòü èõ.
Sub FormMacro_CloseCard(TCSActiveModule)'' Ìàêðîñ äëÿ çàêðûòèÿ ïóñòûõ ó÷åòíûõ êàðòî÷åê' ó âûäåëåííûõ çàïèñåé ' 'Dim BM 'òåêóùàÿ ïîçèöèÿ êóðñîðàDim pbStr 'ïðîãðåñáàðDim I 'ñëóæåáíàÿ ïåðåìåííàÿDim NMkId 'ID íîìåíêëàòóðûDim DepartmentID 'ID ïîäðàçäåëåíèÿDim BalanceNmkCards 'Èíòåðôåéñ "Ó÷åòíûå êàðòî÷êè"Dim NmkCardTotal 'Èíòåðôåéñ "Îáîðîòû ïî ó÷åòíûì êàðòî÷êàì" If TCSActiveModule.SelectedRowsCount > 0 Then 'Eñëè åñòü âûäåëåííûå çàïèñè
DepartmentID=TCSActiveModule.Properties( "CEHA_ID" ).AsInteger 'Çàïîìíèòü ID ïîäðàçäåëåíèÿ, ãäå íàõîäèòñÿ êàðòîòåêà
TCSActiveModule.First 'Âñòàòü íà íà÷àëî
For I = 0 To TCSActiveModule.SelectedRowsCount - 1 'ïåðåáèðàåì âûäåëåííûå çàïèñè íîìåíêëàòóðû êàðòîòåêè
If TCSActiveModule.GotoSelectedRow(I) Then 'ïîçèöèîíèðîâàíèå íà î÷åðåäíóþ âûäåëåííóþ çàïèñüNMkId = TCSActiveModule.Properties( "NMK_ID" ).AsInteger 'Âçÿòü ID íîìåíêëàòóðû
Set BalanceNmkCards = TCSApp.Inventory.BalanceNmkCards( DepartmentID, NMkId ) 'Ïîëó÷èì èíòåðôåéñ "Ó÷åòíûå êàðòî÷êè"
BalanceNmkCards.First 'Âñòàåì íà ïåðâóþ çàïèñü â êàðòîòåêå Do While Not BalanceNmkCards.EOF 'Ïåðåáèðàåì çàïèñè êàðòîòåêè
If BalanceNmkCards.Properties( "CLOSED" ).DisplayText="F" Then 'Åñëè êàðòî÷êà íå çàêðûòà
Set NmkCardTotal = BalanceNmkCards.Properties("BalanceNmkCardTotal").AsIDispatch'Ïîëó÷àåì èíòåðôåéñ ê îáîðîòàì ïî êàðòî÷êå
If NmkCardTotal.Properties("TOTALQUAN_END").AsFloat = 0 Then 'È ïðîâåðÿåì, åñòü ëè îñòàòîê íà êàðòî÷êå (íå âàæíî, ïîëîæèòåëüíûé èëè îòðèöàòåëüíûé) Call BalanceNmkCards.Edit 'Åñëè íåò, òî áåðåì åå íà ðåäàêòèðîâàíèå BalanceNmkCards.Properties( "CLOSED" ).Value="T" 'Åñëè íåò, òî çàêðûòü êàðòî÷êó Call BalanceNmkCards.SaveChanges 'Ñîõðàíèòü êàðòî÷êó, è åñëè ïðîèçîøëà Call BalanceNmkCards.CancelChanges 'îøèáêà, îòìåíèòü âñå èçìåíåíèÿ End If ' Set NmkCardTotal = Nothing 'Îñâîáîäèòü èíòåðôåéñ ê îáîðîòàì ïî êàðòî÷êå End If ' BalanceNmkCards.Next 'Ïåðåáèðàåì çàïèñè êàðòîòåêè Loop 'Êîíåö öèêëà ïî íîìåíêëàòóðå Set BalanceNmkCards = Nothing 'Îñâîáîäèòü èíòåðôåéñ "Ó÷åòíûå êàðòî÷êè" End If '
Next 'ElseCall TCSApp.ShowErrorMessage("Âûäåëèòå çàïèñè äëÿ êîòîðûõ íåîáõîäèìî çàêðûòü ïóñòûå ó÷åòíûå êàðòî÷êè!") End IfEnd Sub
! Ñì. òàêæå: