mojaSymfonia FORUM
https://forum.mix-soft.pl/

Import towarów - aktualizacja stanów minimalnych
https://forum.mix-soft.pl/viewtopic.php?f=2&t=2702
Strona 1 z 1

Autor:  kajzii [ 2011-01-19, 12:07 ]
Tytuł:  Import towarów - aktualizacja stanów minimalnych

Witam, mam w Symfonii Forte Handel v2010.1 import danych dotyczących towarów. Za jego pomocą chce uaktualnić minima na towarach.

Przygotowanie danych:
1. Najpierw wykonuję eksport towarów do excela, układ kolumn jak poniżej:

kod nazwa cena A cena B cena C Cena profilu masa
95708 słup/rygiel 185 mm 782,6 0 0 0 28,76

powierzchnia Cena Zak Stan Min Jm
3,29 316,81 50 szt

2. Zmieniam stany minimalne w kol. Stan Min.
3. Później wykonuje import danych dotyczących towarów, lecz dane nieaktualizują się.

Poniżej podaję kod do importu danych towarów:

//"imtwbly.sc","Import danych dot. towarów", "\Procedury\Raporty operacje kartotek\Towary\",0,1.0.0,SYSTEM





dispatch xTw = xFactory.NewObject("BTowar")
long idtw, row
int err



int sub OnCommand_E(int id, int msg)
endsub

string sPlkIni = KatalogFirmy() + "firma.hm"
string sPlk = GetIni(GetReportName(),"path", sPlkIni)
if splk == "" then sPlk = "C:\\plik.xls"

int sub PrzegladajPlik() // 0 - zapisz, 1 - otworz
sPlk = FileDlg( 1, "Pliki (*.xls)|*.xls*|Wszystkie pliki (*.*)|*.*" )
if sPlk then PrzegladajPlik = 1
endsub

int sub ExForm()
int lrv


Form "Wybór pliku",530,140

Group "Otwórz plik", 10, 10, 505, 50

edit "Nazwa &Pliku",sPlk,85,30,350,20
button "Przeglądaj",450,27,60,25,PrzegladajPlik()

button "O&K",330,80,80,25,2
button "&Anuluj",430,80,80,25,-1

lrv = execform OnCommand_E

PutIni(GetReportName(),"path", sPlk, sPlkIni)
if lrv != 2 then error ""

if (find file sPlk) == "" then Message using "Plik: '%s' nie istnieje.", sPlk

EndSub

ExForm()


dispatch excel
excel.Create("excel.Application")

dispatch wb = excel.Workbooks.Open(sPlk)
dispatch ws = wb.Worksheets(1)




string sub XGetErr(int nErr)
int i
string sGetError

if nErr==771 then
for i=1 to i>xFactory.komunikaty.count
if xFactory.komunikaty.item(i).status then
sGetError+= "Błąd nr."+(using "%d",xFactory.komunikaty.item(i).id)+": '"+xFactory.komunikaty.item(i).tresc+"'\n"//Atrybut: "+xFactory.komunikaty.item(i).nazwapola+"\n"
else
sGetError+="OSTRZEŻENIE !! "+xFactory.komunikaty.item(i).tresc+"\n"
endif
next i
else
Select case nErr
case -4101
sGetError = "Nie odnaleziono rekordu w bazie XT"
case -4010
sGetError = "Nieunikalny kod towaru."
case -4013
sGetError = "Nie podano nazwy obiektu."
case 4
sGetError = "Nie odnaleziono obiektu."
case -4201
sGetError = "Nie można zapisac obiektu, w bazie danych istnieje już obiekt posiadający ten sam skrot i charakter."
case else
sGetError = "Nieznany błąd nr. "+(using "%d",nErr)
endselect
endif

XGetErr = sGetError
endsub




string sKodTw, sTmp

row=2
while ws.cells(row, 1).text != ""

sKodTw = ws.cells(row, 1).text
sTmp = using "|%s|", sKodTw
//xTw.clear()
err = xTw.load(using "kod=\t%s\t", sKodTw)

if err then message XGetErr(err) : goto nxRow

err = xTw.Edit

xTw.CenaA.cena = ws.Cells(row,3).Value
xTw.CenaB.cena = ws.Cells(row,4).Value
xTw.CenaC.cena = ws.Cells(row,5).Value
xTw.NazwaFiskal = ws.Cells(row,6).Value
xTw.PrzelMasa = ws.Cells(row,7).Value
xTw.PrzelJednUz = ws.Cells(row,8).Value



err = xTw.Save

if err then message using "Błąd zapisu danych towaru: %s", xTw.kod



popup(2)


nxRow:
row+=1
Wend


Excel.quit()
message "koniec"



Jeżeli, ktoś może widzi bład w tym imporcie to proszę o pomoc.

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/