piątek, 13 marca 2015

Kompletna hurtownia danych sprzedaży (konsolidacja, słowniki, publikacja do HTML)

Czy można szybko zrobić poważną hurtownię danych?

Taką, żeby się pliki konsolidowały z wielu źródeł, żeby    
dodać 2 słowniki i to z różnych źródeł danych?
I żeby to opublikować i potem cyklicznie publikować w pliku HTML    
np. na serwerze wewnętrznym?
Kupa roboty! Konkretnie - 20 minut! TYLKO 20 minut!

Weźcie to spróbujcie zrobić w czystym Excelku, albo    
super-PowerPivotem, hehehehe!

Film (przydługi, bo KOMPLETNY!):
http://afin.net/webcasts/Demo_DMA_Sales_Cons&Dict&Publ.swf

poniedziałek, 9 marca 2015

Świeżutkie kursy walut na dysku. Tylko brać.

AUTOMATYCZNIE ODŚWIEŻANA TABELKA Z DANYMI W EXCELKU NA DYSKU, zasilana co 10 minut kursami walut z Forex-a, bez otwierania AFINA, Excelka, samo się robi.


Zrobiłem arkusik, wstawiłem do niego kwerendę sieci WEB ze strony
http://www.money.pl/pieniadze/forex/
(wziąłem sobie tylko tabelkę z 4 najpopularniejszymi walutami)
Zapisałem jako 'KursyWalutKwerenda.xls'

Ustawiłem we właściwościach danych zewnętrznych    
autoodświeżanie przy otwarciu pliku.
No, ale co, będę co 10 minut otwierał Excelka, żeby kwerenda    
się odświeżyła? :(
No, nie...

Zrobiłem więc sobie programik w VBScripcie (taki tekst zapisałem    
w Notaniku):

Dim xlApp, xlBook
Set xlApp = CreateObject("Excel.Application")

xlApp.Visible = False
Set xlBookT = xlApp.Workbooks.open    
("D:\AFIN\Proby\VBScript\KursyWalutKwerenda.xls")
xlBookT.Activate
xlBookT.Save
xlBookT.close false

Set xlBookT = Nothing
xlApp.Quit
Set xlApp = Nothing

MsgBox "Job done", vbinformation, "End job"

WScript.Quit


Taki plik tekstowy zapisałem jako    
'VbsOdswiezenieKwerendyWalutowej_WG1.vbs'

Programik działa - wystarczy go uruchomić z Exsploratora. Otwiera    
w tle Excelka (nie widać go, otwiera się "bez interfejsu"), w nim    
ów pliczek, kwerenda się automatycznie odświeża, pliczek jest    
zapisywany, zamykany, potem zamyka się Excelek.
Program wyświetla też komunikat o zakończeniu działania, który,    
oczywiście można usunąć.
Wszystko fajnie.
Więc w Harmonogramie zadań Windows zrobiłem sobie zadanie:    
"Uruchom ów plik-program 'VbsOdswiezenieKwerendyWalutowej_WG1.vbs'    
co 10 minut."

I co 10 minut mam świeżutkiego Excelka z najnowszymi kursami    
walut, tylko brać kwerendami.
Wszystko działa w tle, Excel się nie otwiera (z widocznym    
interfejsem), o nic się nie martwię - AUTOMAT.

poniedziałek, 2 marca 2015

AFIN.NET.IS - Wstawianie (aktualizacja) danych do skoroszytów zamkniętych

Mamy sobie 100 użytkowników.
Każdy z nich ma swój bardzo ważny skoroszyt, w którym ma jakieś    
analizy, wykresy. To dla niego strasznie ważne, bo z tego żyje.
(np. kierownicy MPKów)

Ale wszyscy są uzależnieni od danych wykonania, które są    
centralnie. Jak uaktualnić te 100 skoroszytów, nie mieszając przy    
tym za bardzo?

Na pewno nie wiżualbejzikiem (VBA), jak doradzają specjaliści!
No to jak? Bazodanowo! Taż Excel (jego pliki) kuma ODBC.

Filmik:
http://afin.net/webcasts/Demo_AfinNetIs_InsertingDataIntoClosedWorbooks.swf

czwartek, 5 lutego 2015

Nowa CiZia w mieście, a Wy nic???

Widziałem już tę nową CiZię - fajowa. Młodziutka, świeżutka, ach!

Wy też możecie ją poznać! Wiele odsłania!
http://controlling-zarzadzanie.pl/

Szczególnie, oczywiście, ciekawy jest nasz wkład w CiZię ;)
https://onedrive.live.com/?cid=42AC4083B32E6AB0&id=42AC4083B32E6AB0%212156&v=3

Polecamy. Będzie więcej. Umówcie się z nią na dłużej.

wtorek, 13 stycznia 2015

AFIN.NET.IS - Konsolidacja arkuszy z filtrem

> (...)
> potrzebuje małej pomocy :)
>
> Przygotowałem pewne zestawienie składające się z około 10    
> arkuszy. Teraz chciałbym wyłowić ze wszystkich arkuszy    
> powtarzające się ciągi znaków składające się z 3 liter np.    
> XYZ i automatycznie skopiować cały wiersz w którym wystąpił    
> ciąg znaków do nowego arkusza o takiej samej nazwie (XYZ).

Czy można?
Pewnie. I to jak łatwo-szybko-bezbłędnie.

Filmik:
http://afin.net/webcasts/ZZZ_KonsolidacjaArkuszyZFiltrem.swf

poniedziałek, 12 stycznia 2015

SQLS - Kopia bazy pomiędzy serwerami

Jak wiadomo, bazy danych to poważna sprawa!
Tak śmiertelnie poważna, że można walnąć w ramki i się    
przykryć nogami ze śmiechu, jak się widzi, jak bazodanowcy tej    
powagi bronią.

A tu, weźmy sobie bazkę w bardzo poważnym MS SQL Server Express i    
zróbmy sobie jej kopię do jeszcze bardziej śmiertelnie poważnego    
MS SQL Server 2012 BI.
Sterownikiem accessowym, a co, nie wolno?
Klikając STARTA w Excelku, oczywiście.

Filmik:
http://afin.net/webcasts/Demo_AfinNetIs_CopySqlsDb1ToSqlsDb2.swf

środa, 7 stycznia 2015

Ciekawostka SQL: Sprzedaż wg grup dat, niekoniecznie mających ową sprzedaż

No..., to trzeba potraktować daty... iloczynem kartezjańskim! (widok t1), po to, że jak nie ma daty, to trzeba ją zrobić, by potem dołączyć do niej, nieistniejącą dla niej, sprzedaż (widok t2).
Warto się uczyć SQLka, chłopaki i dziewczyny.
*************
> [author]Jacek P.:[/author]
> Witam,
> mam kwerendę, która wyświetla pewne wartości dla miesięcy w    
> danych latach. Technicznie kwerenda oparta jest o inną kwerendę    
> a ta o tabelę. Nie dla każdego miesiąca mam wartości w tabeli    
> stąd moja kwerenda wynikowa wyświetla tylko niektóre miesiące.    
> Jak zrobić żeby w wyniku mieć wszystkie miesiące począwszy od    
> danej daty, ze stałymi wartościami dla miesięcy, które nie    
> pojawiają się w tabeli?

SQLek:
SELECT t1.[DataRM], t2.[Sprzedaz] FROM
(SELECT DISTINCT FORMAT(r.[data],'yyyy') & '.' &    
FORMAT(m.[data],'mm') AS [DataRM] FROM [Faktura$] r, [Faktura$] m)    
t1
LEFT OUTER JOIN
(SELECT FORMAT([data],'yyyy.mm') AS [DataRM], SUM([wart_net]) AS    
[Sprzedaz] FROM [Faktura$] GROUP BY FORMAT([data],'yyyy.mm')) t2
ON t1.[DataRM]=t2.[DataRM]

Tabelka:
http://afin.net/samples/Data/ODBC/SalesInHTML/Faktura.htm

Wynik:
DataRM    Sprzedaz
2004.01    140
2004.02    41
2004.03    118,4
2004.04    153,9
2004.05    42,6
2004.06    15
2004.07    5
2004.08    3,9
2004.09    13,6
2004.10    5,8
2004.11    4,5
2004.12    11
2005.01    5,2
2005.02    25,5
2005.03    5,5
2005.04    10,4
2005.05    0
2005.06    4,8
2005.07    16,2
2005.08    40,5
2005.09    0
2005.10    0
2005.11    0
2005.12    0

Ciekawostka SQL: Tylko pierwsi!

Ciekawe! Jak wyciągnąć TYLKO PIERWSZY REKORD w danej grupie    
rekordów, ale nie ograniczając widoku do tej grupy, tylko po    
wszystkich grupach z tabeli.
Kluczem jest relacja tabeli z SELECTem zagnieżdżonym, tworzącym    
pole tej tabeli (RowNum)
Warto się uczyć SQLka, chłopaki i dziewczyny.
************

SELECT t1.miasto, t1.nazwa,
  (SELECT COUNT(*) FROM [odbiorca$] AS t2 WHERE t2.nazwa <=    
t1.nazwa AND t1.miasto = t2.miasto) AS RowNum
FROM [odbiorca$] t1
WHERE (SELECT COUNT(*) FROM odbiorca AS t2 WHERE t2.nazwa <=    
t1.nazwa AND t1.miasto = t2.miasto) =1
ORDER BY t1.miasto, t1.nazwa

tu tabelka:
http://afin.net/samples/Data/ODBC/SalesInHTML/Odbiorca.htm

A tu wynik:
miasto    nazwa    RowNum
BIALYSTOK    NOWAK    1
CIECHANOW    ANEX    1
GDANSK    GRZESIEX    1
LEGNICA    EDEX    1
OPOLE    BRONEX    1
SZCZECIN    CELIMP    1
WARSZAWA    IMPEX    1
WROCLAW    AREX    1

Tylko pierwsze numerki. Bez OVER PARTITION BY.
Zrobiłem na podstawie    
http://www.experts-exchange.com/Database/MS_Access/Q_24583991.html
z PLIKU EXCELA na STEROWNIKU EXCELOWYM.